{"openapi":"3.1.0","info":{"title":"Polymorph API","description":"Polymorph backend API","version":"0.1.0"},"paths":{"/activity-overview/summary":{"get":{"tags":["activity-overview"],"summary":"Get Activity Overview Summary","description":"Stat tiles + the fixed 14-day sent/scheduled series behind the\nActivity Overview header. Rate-limited per (org, user).","operationId":"get_activity_overview_summary","parameters":[{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityOverviewSummaryResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/activity-overview/calendar":{"get":{"tags":["activity-overview"],"summary":"Get Activity Overview Calendar","description":"One week of send-batch cards (``week_start`` = viewer-local Monday;\nomitted = the current week). Rate-limited per (org, user).","operationId":"get_activity_overview_calendar","parameters":[{"name":"week_start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Week Start"}},{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityCalendarResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/activity-overview/day":{"get":{"tags":["activity-overview"],"summary":"Get Activity Overview Day","description":"The selected-day panel: campaign/other batches plus the Testing\nrollup expanded by variant family. Rate-limited per (org, user).","operationId":"get_activity_overview_day","parameters":[{"name":"day","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Day"}},{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityDayResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ad-inspiration":{"get":{"tags":["ad-inspiration"],"summary":"List Ad Inspiration","operationId":"list_ad_inspiration","parameters":[{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_AdInspirationItemInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ad-inspiration/{ad_id}":{"get":{"tags":["ad-inspiration"],"summary":"Get Ad Inspiration","operationId":"get_ad_inspiration","parameters":[{"name":"ad_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Ad Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdInspirationItemInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["ad-inspiration"],"summary":"Delete Ad Inspiration","operationId":"delete_ad_inspiration","parameters":[{"name":"ad_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Ad Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ad-inspiration/{ad_id}/regenerate-brief":{"post":{"tags":["ad-inspiration"],"summary":"Regenerate Ad Inspiration Brief","description":"Re-distill one ad's writer brief through the relevance judge.\n\nSynchronous single-Haiku-call sibling of :func:`preview_clean_ad_inspiration`\n(same judge, same client injection), rate-limited at the LLM tier. Audited\nonly when the brief actually changed — a ``not_transferable`` verdict\nleaves the row untouched.","operationId":"regenerate_ad_inspiration_brief","parameters":[{"name":"ad_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Ad Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegenerateAdInspirationBriefResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ad-inspiration/refresh-now":{"post":{"tags":["ad-inspiration"],"summary":"Refresh Ad Inspiration Now","description":"Enqueue an on-demand ad-inspiration ingestion for the caller's org.\n\nMirrors :func:`segments_sync_now`: deterministic ``_job_id`` so rapid\nclicks collapse, the actual scrape runs in the per-org worker with\n``force=True`` to bypass the TTL. A no-op without an Apify token.","operationId":"refresh_ad_inspiration_now","responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncNowResponse"}}}}}}},"/ad-inspiration/refresh-now/status":{"get":{"tags":["ad-inspiration"],"summary":"Get Ad Inspiration Refresh Status","operationId":"get_ad_inspiration_refresh_status","parameters":[{"name":"job_id","in":"query","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdInspirationRefreshStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ad-inspiration/generate-variants":{"post":{"tags":["ad-inspiration"],"summary":"Generate Ad Variants Now","description":"Enqueue a batch of ad-inspired push variant drafts for the caller's org.\n\nMirrors :func:`refresh_ad_inspiration_now`: one server-side job drafts\nthe whole batch (never a client-side fan-out of per-ad calls), with a\nunique-per-click ``_job_id`` for the status poll.","operationId":"generate_ad_variants_now","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateAdVariantsRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncNowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ad-inspiration/generate-variants/status":{"get":{"tags":["ad-inspiration"],"summary":"Get Ad Variant Generation Status","operationId":"get_ad_variant_generation_status","parameters":[{"name":"job_id","in":"query","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdVariantGenerationStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ad-inspiration/clean/preview":{"post":{"tags":["ad-inspiration"],"summary":"Preview Clean Ad Inspiration","description":"Compute removable ads per quality issue, plus the kept-in-use count.\n\nThe LLM \"unrelated\" judge runs once here; the follow-up ``POST /clean``\ndeletes exactly the ids surfaced, so there is no re-run drift. Rate-limited\nbecause the unrelated pass spends LLM tokens.","operationId":"preview_clean_ad_inspiration","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CleanAdInspirationPreviewRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CleanAdInspirationPreviewResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ad-inspiration/clean":{"post":{"tags":["ad-inspiration"],"summary":"Clean Ad Inspiration","description":"Bulk-delete the confirmed ad ids from a preview, then audit-log it.\n\nVariant-referenced ads are excluded at preview time and re-verified again\nhere at delete time (the use case drops any now-referenced id), so an ad a\nvariant started using during the review window is never hard-deleted.","operationId":"clean_ad_inspiration","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CleanAdInspirationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CleanAdInspirationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/invoke-tool-stream":{"post":{"tags":["agent"],"summary":"Invoke Agent Tool Stream","description":"Run one forced-tool turn and stream the canonical SSE events.\n\nEvent schema is the frozen list: ``text_delta``, ``tool_call_start``,\n``tool_call_end``, ``turn_done``, ``error``, ``persisted``. The\nstream closes on ``persisted``; no bespoke event names are permitted\non this route — see root CLAUDE.md → \"Consolidate at the Right Layer\"\nand ``backend/src/api/CLAUDE.md`` rule 16.","operationId":"invoke_agent_tool_stream","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvokeAgentToolStreamRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent-insights":{"get":{"tags":["agent-insights"],"summary":"List Agent Insights","operationId":"list_agent_insights","parameters":[{"name":"region_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Region Id"}},{"name":"state_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"State Id"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/InsightKind"},{"type":"null"}],"title":"Kind"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/InsightStatus"},{"type":"null"}],"title":"Status"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_AgentInsightResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai-proposed-actions":{"get":{"tags":["ai-proposed-actions"],"summary":"List Ai Proposed Actions","operationId":"list_ai_proposed_actions","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ProposalStatus"},{"type":"null"}],"title":"Status"}},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ProposalEntityType"},{"type":"null"}],"title":"Entity Type"}},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string","format":"uuid"}},{"type":"null"}],"title":"Entity Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIProposedActionListResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai-proposed-actions/{proposal_id}/approve":{"post":{"tags":["ai-proposed-actions"],"summary":"Approve Ai Proposed Action","operationId":"approve_ai_proposed_action","parameters":[{"name":"proposal_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Proposal Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIProposedActionInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai-proposed-actions/{proposal_id}/reject":{"post":{"tags":["ai-proposed-actions"],"summary":"Reject Ai Proposed Action","operationId":"reject_ai_proposed_action","parameters":[{"name":"proposal_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Proposal Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RejectAIProposedActionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIProposedActionInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai-proposed-actions/{proposal_id}":{"patch":{"tags":["ai-proposed-actions"],"summary":"Update Ai Proposed Action","operationId":"update_ai_proposed_action","parameters":[{"name":"proposal_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Proposal Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAIProposedActionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIProposedActionInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api-keys":{"post":{"tags":["api-keys"],"summary":"Create Api Key","operationId":"create_api_key","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["api-keys"],"summary":"List Api Keys","operationId":"list_api_keys","parameters":[{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ApiKeyListScope","default":"mine"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiKeySortField"},{"type":"null"}],"title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"title":"Sort Order"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_ApiKeyResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api-keys/{api_key_id}/revoke":{"post":{"tags":["api-keys"],"summary":"Revoke Api Key","operationId":"revoke_api_key","parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Api Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/authorization-requests/{request_token}":{"get":{"tags":["oauth"],"summary":"Get Oauth Authorization Request","operationId":"get_oauth_authorization_request","parameters":[{"name":"request_token","in":"path","required":true,"schema":{"type":"string","title":"Request Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthAuthorizationPromptInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/authorization-requests/{request_token}/decision":{"post":{"tags":["oauth"],"summary":"Decide Oauth Authorization Request","operationId":"decide_oauth_authorization_request","parameters":[{"name":"request_token","in":"path","required":true,"schema":{"type":"string","title":"Request Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecideOAuthAuthorizationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthAuthorizationDecisionInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/builder-credentials":{"get":{"tags":["builder-credentials"],"summary":"Get Builder Credentials","operationId":"get_builder_credentials","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuilderCredentialsInfo"}}}}}},"put":{"tags":["builder-credentials"],"summary":"Set Builder Credential","operationId":"set_builder_credential","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/SetOpenAIApiKeyRequest"},{"$ref":"#/components/schemas/SetOpenAISubscriptionRequest"}],"title":"Body","discriminator":{"propertyName":"kind","mapping":{"openai_api_key":"#/components/schemas/SetOpenAIApiKeyRequest","openai_subscription":"#/components/schemas/SetOpenAISubscriptionRequest"}}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuilderCredentialStatusInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/builder-credentials/runtime-settings":{"put":{"tags":["builder-credentials"],"summary":"Set Builder Runtime Settings","operationId":"set_builder_runtime_settings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetBuilderRuntimeSettingsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuilderRuntimeSettingsInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/builder-credentials/subscription-login":{"post":{"tags":["builder-credentials"],"summary":"Start Subscription Login","operationId":"start_subscription_login","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionLoginStartResult"}}}}}}},"/builder-credentials/subscription-login/complete":{"post":{"tags":["builder-credentials"],"summary":"Complete Subscription Login","operationId":"complete_subscription_login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteSubscriptionLoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuilderCredentialStatusInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/builder-credentials/{kind}":{"delete":{"tags":["builder-credentials"],"summary":"Remove Builder Credential","operationId":"remove_builder_credential","parameters":[{"name":"kind","in":"path","required":true,"schema":{"$ref":"#/components/schemas/BuilderCredentialKind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assets":{"post":{"tags":["assets"],"summary":"Upload Asset","operationId":"upload_asset","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_asset"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["assets"],"summary":"List Assets","operationId":"list_assets","parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/AssetKind"},{"type":"null"}],"title":"Kind"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_AssetResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assets/generate":{"post":{"tags":["assets"],"summary":"Generate Asset","operationId":"generate_asset","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateAssetRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetGenerationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assets/generations":{"get":{"tags":["assets"],"summary":"List Asset Generations","operationId":"list_asset_generations","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_AssetGenerationResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assets/generations/{generation_id}":{"get":{"tags":["assets"],"summary":"Get Asset Generation","operationId":"get_asset_generation","parameters":[{"name":"generation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Generation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetGenerationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assets/{asset_id}":{"get":{"tags":["assets"],"summary":"Get Asset","operationId":"get_asset","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetSignedUrlResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/brand":{"get":{"tags":["brand"],"summary":"Get Brand Theme","operationId":"get_brand_theme","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandThemeResponse"}}}}}},"patch":{"tags":["brand"],"summary":"Update Brand Theme","operationId":"update_brand_theme","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBrandThemeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandThemeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/brand/logo":{"post":{"tags":["brand"],"summary":"Upload Brand Logo","operationId":"upload_brand_logo","parameters":[{"name":"target","in":"query","required":true,"schema":{"type":"string","description":"wordmark | wordmark_footer | symbol | favicon","title":"Target"},"description":"wordmark | wordmark_footer | symbol | favicon"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_brand_logo"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandThemeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/brand/preview":{"get":{"tags":["brand"],"summary":"Get Brand Preview","operationId":"get_brand_preview","parameters":[{"name":"channel","in":"query","required":true,"schema":{"enum":["email","sms","push"],"type":"string","title":"Channel"}},{"name":"fixture","in":"query","required":true,"schema":{"enum":["offer","personal_note"],"type":"string","title":"Fixture"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandPreviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/brand/source":{"post":{"tags":["brand"],"summary":"Upload Brand Kit Source","operationId":"upload_brand_kit_source","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_brand_kit_source"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandThemeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/demo/brand-references":{"post":{"tags":["brand-references"],"summary":"Upload Brand Reference","operationId":"upload_brand_reference","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_brand_reference"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandReferenceInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["brand-references"],"summary":"List Brand References","operationId":"list_brand_references","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_BrandReferenceInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/demo/brand-references/{reference_id}":{"patch":{"tags":["brand-references"],"summary":"Update Brand Reference","operationId":"update_brand_reference","parameters":[{"name":"reference_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Reference Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBrandReferenceAnnotationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandReferenceInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["brand-references"],"summary":"Delete Brand Reference","operationId":"delete_brand_reference","parameters":[{"name":"reference_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Reference Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaigns":{"post":{"tags":["campaigns"],"summary":"Create Campaign","operationId":"create_campaign","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["campaigns"],"summary":"List Campaigns","operationId":"list_campaigns","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/CampaignStatus"},{"type":"null"}],"title":"Status"}},{"name":"segment_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Segment Id"}},{"name":"sort_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/CampaignSortField","default":"created_at"}},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","default":"desc"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_CampaignResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaigns/templates":{"get":{"tags":["campaigns"],"summary":"List Email Templates","operationId":"list_email_templates","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_EmailTemplateResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaigns/templates/from-variant":{"post":{"tags":["campaigns"],"summary":"Create Email Template From Variant","operationId":"create_email_template_from_variant","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmailTemplateFromVariantRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplateDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaigns/templates/{template_ref}":{"get":{"tags":["campaigns"],"summary":"Get Email Template","operationId":"get_email_template","parameters":[{"name":"template_ref","in":"path","required":true,"schema":{"type":"string","title":"Template Ref"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplateDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaigns/templates/{template_id}":{"patch":{"tags":["campaigns"],"summary":"Update Email Template","operationId":"update_email_template","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmailTemplateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplateDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["campaigns"],"summary":"Archive Email Template","operationId":"archive_email_template","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaigns/{campaign_id}":{"get":{"tags":["campaigns"],"summary":"Get Campaign","operationId":"get_campaign","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["campaigns"],"summary":"Update Campaign","operationId":"update_campaign","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaigns/{campaign_id}/results":{"get":{"tags":["campaigns"],"summary":"Get Campaign Results","operationId":"get_campaign_results","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":14,"title":"Window Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignResultsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaigns/{campaign_id}/sender-validation":{"get":{"tags":["campaigns"],"summary":"Get Campaign Sender Validations","operationId":"get_campaign_sender_validations","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignSenderValidationsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaigns/{campaign_id}/variants/{variant_id}/field-coverage":{"get":{"tags":["campaigns"],"summary":"Get Variant Field Coverage","operationId":"get_variant_field_coverage","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantFieldCoverageResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaign-stages":{"post":{"tags":["campaign-stages"],"summary":"Create Campaign Stage","operationId":"create_campaign_stage","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignStageCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignStageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["campaign-stages"],"summary":"List Campaign Stages","operationId":"list_campaign_stages","parameters":[{"name":"campaign_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_CampaignStageResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaign-stages/{stage_id}":{"get":{"tags":["campaign-stages"],"summary":"Get Campaign Stage","operationId":"get_campaign_stage","parameters":[{"name":"stage_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Stage Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignStageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["campaign-stages"],"summary":"Update Campaign Stage","operationId":"update_campaign_stage","parameters":[{"name":"stage_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Stage Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignStageUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignStageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["campaign-stages"],"summary":"Delete Campaign Stage","operationId":"delete_campaign_stage","parameters":[{"name":"stage_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Stage Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaign-stages/{stage_id}/prospective":{"get":{"tags":["campaign-stages"],"summary":"Get Stage Prospective","operationId":"get_stage_prospective","parameters":[{"name":"stage_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Stage Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProspectiveStageViewInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaign-stages/{stage_id}/prospective-contacts":{"get":{"tags":["campaign-stages"],"summary":"List Stage Prospective Contacts","operationId":"list_stage_prospective_contacts","parameters":[{"name":"stage_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Stage Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"campaign_stage_variant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Campaign Stage Variant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_ProspectiveAssignmentRow_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaign-stage-variants":{"post":{"tags":["campaign-stage-variants"],"summary":"Create Campaign Stage Variant","operationId":"create_campaign_stage_variant","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignStageVariantCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignStageVariantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["campaign-stage-variants"],"summary":"List Campaign Stage Variants","operationId":"list_campaign_stage_variants","parameters":[{"name":"campaign_stage_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Stage Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_CampaignStageVariantResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaign-stage-variants/weights":{"post":{"tags":["campaign-stage-variants"],"summary":"Set Campaign Stage Variant Weights","operationId":"set_campaign_stage_variant_weights","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetCampaignStageVariantWeightsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CampaignStageVariantResponse"},"type":"array","title":"Response Set Campaign Stage Variant Weights"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaign-stage-variants/{variant_join_id}":{"get":{"tags":["campaign-stage-variants"],"summary":"Get Campaign Stage Variant","operationId":"get_campaign_stage_variant","parameters":[{"name":"variant_join_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Join Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignStageVariantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["campaign-stage-variants"],"summary":"Delete Campaign Stage Variant","operationId":"delete_campaign_stage_variant","parameters":[{"name":"variant_join_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Join Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/profile":{"get":{"tags":["organizations"],"summary":"Get Organization Profile","operationId":"get_organization_profile","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationProfileResponse"}}}}}},"patch":{"tags":["organizations"],"summary":"Update Organization Profile","operationId":"update_organization_profile","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationProfileRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/logo":{"post":{"tags":["organizations"],"summary":"Upload Organization Logo","operationId":"upload_organization_logo","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_organization_logo"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/check-slug":{"get":{"tags":["organizations"],"summary":"Check Slug Availability","operationId":"check_slug_availability","parameters":[{"name":"slug","in":"query","required":true,"schema":{"type":"string","minLength":3,"maxLength":100,"title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlugAvailabilityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/settings":{"get":{"tags":["organizations"],"summary":"Get Organization Settings","operationId":"get_organization_settings","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationSettingsResponse"}}}}}},"patch":{"tags":["organizations"],"summary":"Update Organization Settings","operationId":"update_organization_settings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationSettingsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationSettingsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/global-control-stats":{"get":{"tags":["organizations"],"summary":"Get Organization Global Control Stats","operationId":"get_organization_global_control_stats","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationGlobalControlStatsResult"}}}}}}},"/organizations/local-control-stats":{"get":{"tags":["organizations"],"summary":"Get Organization Local Control Stats","operationId":"get_organization_local_control_stats","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationLocalControlStatsResult"}}}}}}},"/organizations":{"post":{"tags":["organizations"],"summary":"Create Organization","operationId":"create_organization","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/demo":{"post":{"tags":["organizations"],"summary":"Create Demo Organization","operationId":"create_demo_organization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDemoOrganizationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/demo/retry":{"post":{"tags":["organizations"],"summary":"Retry Demo Provisioning","operationId":"retry_demo_provisioning","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RetryDemoProvisioningRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/demo/setup":{"get":{"tags":["organizations"],"summary":"Get Demo Setup Progress","operationId":"get_demo_setup_progress","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoSetupProgressResponse"}}}}}}},"/organizations/demo/setup/logs":{"get":{"tags":["organizations"],"summary":"List Demo Setup Log Lines","operationId":"list_demo_setup_log_lines","parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Run Id"}},{"name":"stage_key","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DemoProvisionStageKey"},{"type":"null"}],"title":"Stage Key"}},{"name":"after_seq","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"After Seq"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_DemoProvisionLogLineInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{organization_id}/switch":{"put":{"tags":["organizations"],"summary":"Switch Organization","operationId":"switch_organization","parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Organization Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Switch Organization"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{organization_id}":{"delete":{"tags":["organizations"],"summary":"Delete Organization","operationId":"delete_organization","parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Organization Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Delete Organization"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overview-cards":{"get":{"tags":["overview-cards"],"summary":"Get Overview Cards","operationId":"get_overview_cards","parameters":[{"name":"section","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OverviewSection","default":"sessions"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverviewCardsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["overview-cards"],"summary":"Set Overview Cards","operationId":"set_overview_cards","parameters":[{"name":"section","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OverviewSection","default":"sessions"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverviewCardsUpsertRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverviewCardsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overview/cohort-event-rate":{"get":{"tags":["overview"],"summary":"Get Overview Cohort Event Rate","description":"Per-bucket treated/control event-rate counts, bucketed by\n``granularity`` (daily/weekly — the same window controls as the lift line\nchart). ``audience`` picks the population: ``new_signups`` (default) rows\nthe signup cohorts created within the last ``window_days`` (per-cohort\n``n``); ``everyone`` rows the whole current base by activity day over the\nsame window, each arm's ``n`` its constant census. ``outcome_id`` is an\n``event_definition_id``. ``measure`` selects the event value plotted\nper bar (a value measure → ``value_sum / n``; the boolean default → the\n``did / n`` conversion share) so the chart follows the same toggle as the\nheader. ``percentile_p`` (value measures only) swaps each bar's value\nfor the cell's ``percentile_cont(percentile_p)`` — the Rank statistic.\nRate-limited per (org, user); the Overview\ndrives it on mount and on outcome/window change.","operationId":"get_overview_cohort_event_rate","parameters":[{"name":"kind","in":"query","required":true,"schema":{"$ref":"#/components/schemas/OutcomeKind"}},{"name":"outcome_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Outcome Id"}},{"name":"window_days","in":"query","required":true,"schema":{"type":"integer","maximum":365,"minimum":1,"title":"Window Days"}},{"name":"granularity","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Granularity"}},{"name":"audience","in":"query","required":false,"schema":{"$ref":"#/components/schemas/CohortAudience","default":"new_signups"}},{"name":"measure","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SeriesMeasure","default":"converted_contacts"}},{"name":"contacted_window_days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contacted Window Days"}},{"name":"percentile_p","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Percentile P"}},{"name":"region_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Region Id"}},{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortEventRateResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overview/cohort-event-rates":{"post":{"tags":["overview"],"summary":"Get Overview Cohort Event Rates","description":"All pinned cohort grids in one round-trip — the batched form of the\nsingular ``/overview/cohort-event-rate`` GET, fanned out per target so the\nengagement section issues one POST instead of one GET per card. Each target\nruns the same cache-backed ``GetOverviewCohortEventRateUseCase`` on its own\nsession (concurrent reads); one target failing (404 outcome, 400 statistic\nmismatch) degrades to a per-outcome error entry, never a batch 500. Rate-\nlimited per (org, user) like the singular route + the sibling batched\n``/global-lift/measure`` fan-out; the Overview drives it on mount and on\noutcome/window/statistic change.","operationId":"get_overview_cohort_event_rates","parameters":[{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCohortEventRateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCohortEventRateResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overview/distribution":{"get":{"tags":["overview"],"summary":"Get Overview Distribution","description":"Per-arm value-by-percentile curves of a measured event, pooled across\ncohorts. ``outcome_id`` is an ``event_definition_id`` (event outcomes\nonly — conversions have no value distribution); each contact's\n``SUM(events.value)`` over the last ``window_days`` (0 when it fired\nnothing) is sampled at a shared set of percentiles so the Polymorph\n(treated) and Global-control curves overlay on one axis. Presence-only\ndefinitions (PostHog, count-only Supabase configs) are rejected with a\n400. Rate-limited per (org, user); the Overview drives it when a card\nswitches to the distribution view mode.","operationId":"get_overview_distribution","parameters":[{"name":"kind","in":"query","required":true,"schema":{"$ref":"#/components/schemas/OutcomeKind"}},{"name":"outcome_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Outcome Id"}},{"name":"window_days","in":"query","required":true,"schema":{"type":"integer","maximum":365,"minimum":1,"title":"Window Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventPercentileCurvesInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overview/send-activity":{"get":{"tags":["overview"],"summary":"Get Overview Send Activity","description":"Pooled send-relative activity curve across active MDP-state\nexperiments: per integer hour-delta in [-12, +12] from each member's send\nanchor, how many treatment (``enqueued``) and held-back control members\nwere active (fired >=1 event in that hour bucket). The treatment −\ncontrol gap at positive deltas is the send's activation lift; the\nnegative-delta region is the randomization balance check. Sends are\nwindowed to the last ``window_days`` ending one day ago so every member's\n+12h tail is observable. Rate-limited per (org, user); the Overview\ndrives it on mount and on window change.","operationId":"get_overview_send_activity","parameters":[{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":2,"default":7,"title":"Window Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendActivityCurveResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overview/trial-retention":{"get":{"tags":["overview"],"summary":"Get Overview Trial Retention","description":"Trial-retention survival curve over days since signup: the share of the\nmatured signup cohort still active at each day, Polymorph (treated) vs the\nGlobal-control arm. The treated − control gap is the trial drop-off\nPolymorph prevented. The curve spans a fixed 14-day horizon. With\n``population_in_range`` the cohort is the recent matured band (signups\n``[now − max(window_days, 30), now − 14]``); otherwise it is the whole\nmatured base back to a fixed floor. Empty when global control was never\nenabled (no randomized arm to compare). Rate-limited per (org, user); the\nOverview drives it on mount and on window/population change.","operationId":"get_overview_trial_retention","parameters":[{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":2,"default":7,"title":"Window Days"}},{"name":"population_in_range","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Population In Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrialRetentionCurveResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overview/impact-summary":{"get":{"tags":["overview"],"summary":"Get Overview Impact Summary","description":"Org-wide scale stats for the Overview band — messages delivered +\nexperiments running over the window. ``population_in_range`` scopes the\nEffort stats to contacts who signed up in the displayed range (the\nreference-population toggle). Rate-limited per (org, user); the\nOverview drives it on every mount and window change.","operationId":"get_overview_impact_summary","parameters":[{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Window Days"}},{"name":"granularity","in":"query","required":false,"schema":{"$ref":"#/components/schemas/Granularity","default":"daily"}},{"name":"population_in_range","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Population In Range"}},{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverviewImpactSummaryResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overview/intraday-overlay":{"get":{"tags":["overview"],"summary":"Get Overview Intraday Overlay","description":"The Effort band's intraday \"since 12am\" overlay — today's cumulative\nmessages-sent and contacts-reached curves over the prior ``window_days``\ndays (default 7, driven by the page lookback), keyed to the viewer's\norg-local midnight. Fetched lazily when a delivery card is expanded.\nRate-limited per (org, user).","operationId":"get_overview_intraday_overlay","parameters":[{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":7,"title":"Window Days"}},{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverviewIntradayOverlayResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/login/google":{"get":{"tags":["auth"],"summary":"Login Google","description":"Initiates Google OAuth flow via Stytch Discovery.","operationId":"login_google","parameters":[{"name":"redirect_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/email/send-otp":{"post":{"tags":["auth"],"summary":"Send Email Otp","operationId":"send_email_otp","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailOTPRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/email/verify-otp":{"post":{"tags":["auth"],"summary":"Verify Email Otp","operationId":"verify_email_otp","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailOTPVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/csrf":{"get":{"tags":["auth"],"summary":"Get Csrf Token","operationId":"get_csrf_token","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/callback":{"get":{"tags":["auth"],"summary":"Auth Callback","operationId":"auth_callback","parameters":[{"name":"discovery_oauth_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Discovery Oauth Token"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}},{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/context":{"get":{"tags":["auth"],"summary":"Get Auth Context","operationId":"get_auth_context","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthContextInfo"}}}}}}},"/auth/logout":{"post":{"tags":["auth"],"summary":"Logout","operationId":"logout","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/dev-login":{"get":{"tags":["auth"],"summary":"Dev Login","description":"One-click local dev auth. Only active when ENV=local.","operationId":"dev_login","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/chat/conversations":{"post":{"tags":["chat"],"summary":"Create Chat Conversation","operationId":"create_chat_conversation","responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateConversationResponse"}}}}}},"get":{"tags":["chat"],"summary":"List Chat Conversations","operationId":"list_chat_conversations","parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ConversationKind"},{"type":"null"}],"title":"Kind"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatConversationListResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/chat/conversations/{conversation_id}":{"get":{"tags":["chat"],"summary":"Get Chat Conversation","operationId":"get_chat_conversation","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Conversation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatConversationDetailInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["chat"],"summary":"Rename Chat Conversation","operationId":"rename_chat_conversation","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Conversation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenameConversationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatConversationSummaryInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["chat"],"summary":"Delete Chat Conversation","operationId":"delete_chat_conversation","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Conversation Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/chat/conversations/{conversation_id}/messages":{"post":{"tags":["chat"],"summary":"Send Chat Message","operationId":"send_chat_message","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Conversation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/chat/conversations/{conversation_id}/approve-tool":{"post":{"tags":["chat"],"summary":"Approve Tool","description":"Resume a paused chat loop after the engineer approves or rejects the pending tool.\n\nReturns an SSE stream identical in shape to /messages — the model's\npost-resolution turn streams to the same client handler.","operationId":"approve_tool","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Conversation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveToolRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/invitations/my-pending":{"get":{"tags":["invitations"],"summary":"List My Pending Invitations","operationId":"list_my_pending_invitations","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_InvitationDetails_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/invitations/batch-action":{"post":{"tags":["invitations"],"summary":"Batch Invite Action","operationId":"batch_invite_action","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchActionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/BatchInviteResultItem"},"type":"array","title":"Response Batch Invite Action"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/invitations/bulk":{"post":{"tags":["invitations"],"summary":"Bulk Invite Users","operationId":"bulk_invite_users","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkInviteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/BulkInviteResponseItem"},"type":"array","title":"Response Bulk Invite Users"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/invitations":{"get":{"tags":["invitations"],"summary":"List Pending Invitations","operationId":"list_pending_invitations","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_OrganizationInvitation_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/invitations/accept/{token}":{"get":{"tags":["invitations"],"summary":"Get Invitation Details","operationId":"get_invitation_details","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitationDetails"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["invitations"],"summary":"Accept Invitation","operationId":"accept_invitation","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Accept Invitation"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/invitations/{invitation_id}/resend":{"post":{"tags":["invitations"],"summary":"Resend Invitation","operationId":"resend_invitation","parameters":[{"name":"invitation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Invitation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInvitation"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/invitations/{invitation_id}":{"delete":{"tags":["invitations"],"summary":"Cancel Invitation","operationId":"cancel_invitation","parameters":[{"name":"invitation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Invitation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Cancel Invitation"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/performance/combined":{"get":{"tags":["performance"],"summary":"Get Performance Combined Read","description":"The Performance band in ONE read — headline metrics + sparklines + every\nprojection (the page-scope stats cell plus each tracked-target chip) for\nthe metric over the window, with region membership materialized once.\nRate-limited per (org, user); the PerformancePage drives it on\nevery window/metric/audience/region change, replacing the old ~8-query,\n(K+1)-projection burst.","operationId":"get_performance_combined_read","parameters":[{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":7,"title":"Window Days"}},{"name":"metric_event_key","in":"query","required":false,"schema":{"type":"string","default":"session","title":"Metric Event Key"}},{"name":"audience","in":"query","required":false,"schema":{"$ref":"#/components/schemas/CohortAudience","default":"everyone"}},{"name":"region_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Region Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceCombinedReadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/with-roles":{"get":{"tags":["users"],"summary":"List Members With Roles","operationId":"list_members_with_roles","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/MemberSortField"},{"type":"null"}],"title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"title":"Sort Order"}},{"name":"role","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/MemberOrganizationRole"},{"type":"null"}],"title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_MemberWithRoleInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{member_id}/role":{"patch":{"tags":["users"],"summary":"Update Member Role","operationId":"update_member_role","parameters":[{"name":"member_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Member Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRoleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberWithRoleInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/{member_id}":{"delete":{"tags":["users"],"summary":"Remove Member","operationId":"remove_member","parameters":[{"name":"member_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Member Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/data-dictionary":{"get":{"tags":["data-dictionary"],"summary":"List Data Dictionary Entries","operationId":"list_data_dictionary_entries","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"curation_state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DataDictionaryCurationState"},{"type":"null"}],"title":"Curation State"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_DataDictionaryEntryResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["data-dictionary"],"summary":"Create Data Dictionary Entry","operationId":"create_data_dictionary_entry","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDataDictionaryEntryRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataDictionaryEntryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/data-dictionary/seed":{"post":{"tags":["data-dictionary"],"summary":"Seed Data Dictionary","description":"Enqueue one LLM seeding pass per source integration of the org.\n\nDeclared above the ``/{entry_id}`` routes so a future addition of\n``POST /{entry_id}`` cannot silently shadow this static path.","operationId":"seed_data_dictionary","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeedDataDictionaryResponse"}}}}}}},"/data-dictionary/{entry_id}":{"get":{"tags":["data-dictionary"],"summary":"Get Data Dictionary Entry","operationId":"get_data_dictionary_entry","parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Entry Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataDictionaryEntryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["data-dictionary"],"summary":"Update Data Dictionary Entry","operationId":"update_data_dictionary_entry","parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Entry Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDataDictionaryEntryRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataDictionaryEntryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/data-dictionary/{entry_id}/curation":{"put":{"tags":["data-dictionary"],"summary":"Set Data Dictionary Entry Curation","operationId":"set_data_dictionary_entry_curation","parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Entry Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDataDictionaryCurationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataDictionaryEntryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/design-inspiration":{"get":{"tags":["design-inspiration"],"summary":"List Design Inspiration Items","operationId":"list_design_inspiration_items","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_DesignInspirationItemInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["design-inspiration"],"summary":"Create Design Inspiration Item","operationId":"create_design_inspiration_item","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDesignInspirationItemRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignInspirationItemInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/design-inspiration/{item_id}":{"get":{"tags":["design-inspiration"],"summary":"Get Design Inspiration Item","operationId":"get_design_inspiration_item","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignInspirationItemInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["design-inspiration"],"summary":"Delete Design Inspiration Item","operationId":"delete_design_inspiration_item","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/design-inspiration/ingest-url":{"post":{"tags":["design-inspiration"],"summary":"Ingest Design Inspiration Url","operationId":"ingest_design_inspiration_url","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestDesignInspirationUrlRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignInspirationItemInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/design-inspiration/{item_id}/regenerate-brief":{"post":{"tags":["design-inspiration"],"summary":"Regenerate Design Inspiration Item Brief","operationId":"regenerate_design_inspiration_item_brief","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegenerateDesignInspirationBriefResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/design-round-batches":{"post":{"tags":["design-rounds"],"summary":"Create Design Round Batch","operationId":"create_design_round_batch","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDesignRoundBatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignRoundBatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["design-rounds"],"summary":"List Design Round Batches","operationId":"list_design_round_batches","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_DesignRoundBatchResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/design-round-batches/{batch_id}":{"get":{"tags":["design-rounds"],"summary":"Get Design Round Batch","operationId":"get_design_round_batch","parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Batch Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignRoundBatchWithCandidatesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/design-round-batches/candidates/{candidate_id}/variant":{"post":{"tags":["design-rounds"],"summary":"Convert Design Round Candidate","operationId":"convert_design_round_candidate","parameters":[{"name":"candidate_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Candidate Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignRoundCandidateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/event-definitions":{"post":{"tags":["event-definitions"],"summary":"Create Event Definition","operationId":"create_event_definition","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEventDefinitionRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventDefinitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["event-definitions"],"summary":"List Event Definitions","operationId":"list_event_definitions","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"integration_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_EventDefinitionResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/event-definitions/{event_definition_id}":{"get":{"tags":["event-definitions"],"summary":"Get Event Definition","operationId":"get_event_definition","parameters":[{"name":"event_definition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Event Definition Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventDefinitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["event-definitions"],"summary":"Delete Event Definition","operationId":"delete_event_definition","parameters":[{"name":"event_definition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Event Definition Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/event-definitions/{event_definition_id}/events":{"get":{"tags":["event-definitions"],"summary":"List Event Definition Events","description":"List the raw ``events`` rows for one event definition, newest first.\n\nResolves the definition (org-scoped; foreign/unknown id → 404), reads\nits ``event_key``, and returns the keyset-paginated raw bucket rows\n(``occurred_at DESC, id DESC``), each carrying the recipient's contact\nidentity projection — the event profile drawer's recent-events list.","operationId":"list_event_definition_events","parameters":[{"name":"event_definition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Event Definition Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_EventRowInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/event-definitions/{event_definition_id}/enable":{"post":{"tags":["event-definitions"],"summary":"Enable Event Definition","operationId":"enable_event_definition","parameters":[{"name":"event_definition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Event Definition Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventDefinitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/event-definitions/{event_definition_id}/disable":{"post":{"tags":["event-definitions"],"summary":"Disable Event Definition","operationId":"disable_event_definition","parameters":[{"name":"event_definition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Event Definition Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventDefinitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/event-definitions/{event_definition_id}/series":{"post":{"tags":["event-definitions"],"summary":"Get Event Definition Series","description":"Return a zero-filled time series for one event definition.\n\nResolves the definition (org-scoped; foreign/unknown id → 404), reads\nits ``event_key``, and queries ``events`` over ``[start, end)`` at the\nrequested ``granularity`` for the requested ``measure``, projected\ninto the shared ``ChartInfo`` DTO so the frontend ``ChartView``\nconsumes it directly. The single series is named by the ``event_key``;\n``y_label`` keeps the measure label. An optional ``contact_ids``\ncohort restricts the series to those contacts.","operationId":"get_event_definition_series","parameters":[{"name":"event_definition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Event Definition Id"}},{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventSeriesRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/event-definitions/series":{"post":{"tags":["event-definitions"],"summary":"Get Event Series Batch","description":"Return one ``ChartInfo`` covering many event definitions at once.\n\nThe collection-level companion to ``/{id}/series`` so one call serves\na whole page of event cards. The literal ``/series`` path is distinct\nfrom ``/{event_definition_id}/series`` (different depth). Emits one\nseries per definition in ``breakdown.event_definition_ids`` order,\neach named by its ``event_key``; a foreign/unknown id → 404. An\noptional ``cohort_segment_id`` restricts every series to that\nsegment's current open members (resolved server-side); a segment\nover the member cap → 400.","operationId":"get_event_series_batch","parameters":[{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventSeriesBatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/event-definitions/{event_definition_id}/sync":{"post":{"tags":["event-definitions"],"summary":"Sync Event Definition","description":"Enqueue an on-demand sync run for one event definition.\n\nValidates the definition belongs to the caller's org (foreign/unknown\nid → 404) and enqueues a single ``run_event_sync`` job. 202 with the\narq trigger token so the UI can echo it for trace/debug; the runner's\nwrite-phase advisory lock serialises the WRITE of any cron tick that\noverlaps the manual run (pulls may overlap). Rate-limited 2/60s like\nthe attribute-mapping sync-now route.","operationId":"sync_event_definition","parameters":[{"name":"event_definition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Event Definition Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncNowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/event-definitions/{event_definition_id}/backfill":{"post":{"tags":["event-definitions"],"summary":"Backfill Event Definition","description":"Enqueue a wider-window historical backfill for one definition.\n\nValidates the definition belongs to the caller's org (foreign/unknown\nid → 404) and enqueues one ``run_event_sync`` job with an explicit\n``(start, end)`` pair derived from ``window_days``. The runner is\nshared with the cron + manual ``/sync`` paths — backfill differs only\nin the window the caller passes, so the source-pull → resolve →\nupsert path stays single-source-of-truth.\n\nRate-limited 1/60s **per (org, user, event_definition_id)** so a user\ncan backfill multiple distinct definitions in quick succession but\ncan't re-fire the same one within the cooldown. The check is inline\nrather than decorator-form because FastAPI binds dependency-decorator\nrate limits before path params resolve, so a per-path-param key\ncan't be expressed at the decorator. ``/sync``'s 2/60s remains\ndecorator-form because it's coarser-grained.","operationId":"backfill_event_definition","parameters":[{"name":"event_definition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Event Definition Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackfillEventDefinitionRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncNowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/experiment-definitions":{"post":{"tags":["experiment-definitions"],"summary":"Create Experiment Definition","operationId":"create_experiment_definition","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDefinitionCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDefinitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["experiment-definitions"],"summary":"List Experiment Definitions","operationId":"list_experiment_definitions","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"source_state_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Source State Id"}},{"name":"variant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Variant Id"}},{"name":"is_draft","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Draft"}},{"name":"exclude_control","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Exclude Control"}},{"name":"exclude_without_cohorts","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Exclude Without Cohorts"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_ExperimentDefinitionResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/experiment-definitions/state-counts":{"get":{"tags":["experiment-definitions"],"summary":"Get Experiment Definition State Counts","operationId":"get_experiment_definition_state_counts","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDefinitionStateCountsResponse"}}}}}}},"/experiment-definitions/{definition_id}":{"get":{"tags":["experiment-definitions"],"summary":"Get Experiment Definition","operationId":"get_experiment_definition","parameters":[{"name":"definition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Definition Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDefinitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["experiment-definitions"],"summary":"Update Experiment Definition","operationId":"update_experiment_definition","parameters":[{"name":"definition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Definition Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDefinitionUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDefinitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/experiment-groups/{variant_id}":{"get":{"tags":["experiment-groups"],"summary":"Get Experiment Group","operationId":"get_experiment_group","parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentGroupDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/experiment-instances":{"post":{"tags":["experiment-instances"],"summary":"Provision Experiment Instances","operationId":"provision_experiment_instances","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionExperimentInstancesRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionExperimentInstancesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["experiment-instances"],"summary":"List Experiment Instances","operationId":"list_experiment_instances","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"experiment_definition_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Experiment Definition Id"}},{"name":"variant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Variant Id"}},{"name":"source_state_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source State Ids"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"window_days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":365,"minimum":1},{"type":"null"}],"title":"Window Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_ExperimentInstanceResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/experiment-instances/{instance_id}/members":{"get":{"tags":["experiment-instances"],"summary":"List Experiment Instance Members","operationId":"list_experiment_instance_members","parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Instance Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_ExperimentInstanceMemberResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/experiment-instances/{instance_id}":{"get":{"tags":["experiment-instances"],"summary":"Get Experiment Instance","operationId":"get_experiment_instance","parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Instance Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentInstanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/global-lift/measure":{"post":{"tags":["global-lift"],"summary":"Measure Global Lift","description":"Compute one cohort split and N per-metric lift cards for the org.\n\nCohorts (treated + control) are pulled once and shared across every\nmetric on the request. Each card runs ``series_by_bucket`` per arm\nand emits a directional ``treated − control`` lift (rate diff for\nboolean, mean diff for value) — no significance gating, see\n``MeasureGlobalLiftUseCase``'s module docstring. Rate-limited per\n(org, user). The cap was 2/60s when this was a manual refresh-button\ncallsite; the Overview dashboard now drives it on every mount and\non every (event, window, granularity) URL change, so the cap is\nset to absorb a normal interaction burst (a window flip across 5\noptions costs 5 distinct cache keys). 30/60s matches\n``update_organization_settings``. Inline rate-limit rather than\ndependency-decorator to mirror ``measure_goal_attribute_binding``.","operationId":"measure_global_lift","parameters":[{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeasureGlobalLiftRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlobalLiftResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/attribute-mappings":{"post":{"tags":["attribute-mappings"],"summary":"Create Attribute Mapping","operationId":"create_attribute_mapping","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAttributeMappingRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributeMappingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["attribute-mappings"],"summary":"List Attribute Mappings","operationId":"list_attribute_mappings","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"integration_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Integration Id"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"is_enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Enabled"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_AttributeMappingResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/attribute-mappings/sync-now":{"post":{"tags":["attribute-mappings"],"summary":"Attribute Mappings Sync Now","description":"Enqueue an on-demand attribute-sync run for the caller's org.\n\nEvery enabled, non-deleted attribute mapping in the org is\nre-synced against its configured source (currently Supabase).\n202 with the arq ``job_id`` — the UI can display it for\ntrace/debug. Per-mapping advisory locks inside the runner\nserialise any cron tick that overlaps the manual run.\n\nDeclared above the ``/{mapping_id}`` routes so a future addition\nof ``POST /{mapping_id}`` cannot silently shadow this static path.","operationId":"attribute_mappings_sync_now","responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncNowResponse"}}}}}}},"/attribute-mappings/row-counts":{"post":{"tags":["attribute-mappings"],"summary":"Attribute Mappings Row Counts","description":"Lazy per-mapping ``contact_attributes`` row counts for the page.\n\nSplit out of ``GET /attribute-mappings``, which used to count inline:\ncounting a mapping's owned rows is a full table scan for large orgs\n(Pingo: ~60M rows) and blocked every list render. The page loads the\nmappings first, then calls this with the loaded ids to fill the \"Rows\"\ncolumn. Read-only POST (the id list is the request body) — no audit\nlog, no side effects. Declared above ``/{mapping_id}`` so the static\npath isn't shadowed by the id route.","operationId":"attribute_mappings_row_counts","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributeMappingRowCountsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributeMappingRowCountsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/attribute-mappings/{mapping_id}":{"get":{"tags":["attribute-mappings"],"summary":"Get Attribute Mapping","operationId":"get_attribute_mapping","parameters":[{"name":"mapping_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mapping Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributeMappingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["attribute-mappings"],"summary":"Update Attribute Mapping","operationId":"update_attribute_mapping","parameters":[{"name":"mapping_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mapping Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAttributeMappingRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributeMappingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["attribute-mappings"],"summary":"Delete Attribute Mapping","operationId":"delete_attribute_mapping","parameters":[{"name":"mapping_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mapping Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/attribute-mappings/{mapping_id}/enable":{"post":{"tags":["attribute-mappings"],"summary":"Enable Attribute Mapping","operationId":"enable_attribute_mapping","parameters":[{"name":"mapping_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mapping Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributeMappingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/attribute-mappings/{mapping_id}/disable":{"post":{"tags":["attribute-mappings"],"summary":"Disable Attribute Mapping","operationId":"disable_attribute_mapping","parameters":[{"name":"mapping_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mapping Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributeMappingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/attribute-mappings/{mapping_id}/sync":{"post":{"tags":["attribute-mappings"],"summary":"Sync Attribute Mapping","description":"Enqueue an on-demand attribute-sync run for one mapping.\n\nValidates the mapping belongs to the caller's org (foreign/unknown id\n-> 404) and enqueues a single ``run_attribute_sync(mapping_id=...)``\njob. 202 with the arq trigger token; the per-mapping lease inside the\nrunner serialises any overlapping cron tick. Mirrors\n``sync_event_definition``; rate-limited 2/60s like ``/sync-now``.","operationId":"sync_attribute_mapping","parameters":[{"name":"mapping_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mapping Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncNowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-attributes/keys":{"get":{"tags":["contact-attributes"],"summary":"List Attribute Keys","operationId":"list_attribute_keys","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_AttributeKeyResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-attributes/personalization-tokens":{"get":{"tags":["contact-attributes"],"summary":"Get Personalization Tokens","operationId":"get_personalization_tokens","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonalizationTokenCatalogResult"}}}}}}},"/contact-attributes/{attribute_key}/distribution":{"get":{"tags":["contact-attributes"],"summary":"Get Attribute Distribution","operationId":"get_attribute_distribution","parameters":[{"name":"attribute_key","in":"path","required":true,"schema":{"type":"string","title":"Attribute Key"}},{"name":"value_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ContactAttributeValueType"},{"type":"null"}],"title":"Value Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributeDistributionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-rewards":{"get":{"tags":["contact-mdp-rewards"],"summary":"Get Contact Mdp Reward Spec","operationId":"get_contact_mdp_reward_spec","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactMdpRewardSpecResponse"}}}}}},"put":{"tags":["contact-mdp-rewards"],"summary":"Save Contact Mdp Reward Spec","operationId":"save_contact_mdp_reward_spec","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveContactMdpRewardSpecRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactMdpRewardSpecResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-rewards/suggest-override":{"post":{"tags":["contact-mdp-rewards"],"summary":"Suggest Reward Override","operationId":"suggest_reward_override","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuggestRewardOverrideRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RewardOverrideSuggestionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/partition":{"get":{"tags":["contact-mdp-states"],"summary":"Get Contact Mdp Partition","operationId":"get_contact_mdp_partition","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ContactMdpPartitionResponse"},{"type":"null"}],"title":"Response Get Contact Mdp Partition"}}}}}}},"/contact-mdp-states/attributes":{"get":{"tags":["contact-mdp-states"],"summary":"List Contact Mdp Attributes","operationId":"list_contact_mdp_attributes","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_AttributeKeyResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/attribute-summary":{"get":{"tags":["contact-mdp-states"],"summary":"Get Contact Mdp Attribute Summary","operationId":"get_contact_mdp_attribute_summary","parameters":[{"name":"attribute_key","in":"query","required":true,"schema":{"type":"string","title":"Attribute Key"}},{"name":"value_type","in":"query","required":true,"schema":{"enum":["boolean","number","datetime"],"type":"string","title":"Value Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MdpAttributeSummaryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/preview":{"post":{"tags":["contact-mdp-states"],"summary":"Preview Contact Mdp States","operationId":"preview_contact_mdp_states","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewContactMdpStatesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MdpStateTreeNode"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/save":{"post":{"tags":["contact-mdp-states"],"summary":"Save Contact Mdp States","operationId":"save_contact_mdp_states","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveContactMdpStatesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactMdpPartitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/set-collapsed":{"post":{"tags":["contact-mdp-states"],"summary":"Set Contact Mdp State Collapsed","operationId":"set_contact_mdp_state_collapsed","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetContactMdpStateCollapsedRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactMdpStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/recompute-utilities":{"post":{"tags":["contact-mdp-states"],"summary":"Recompute Contact Mdp State Utilities","operationId":"recompute_contact_mdp_state_utilities","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateUtilityRecomputeResult"}}}}}}},"/contact-mdp-states/tree":{"get":{"tags":["contact-mdp-states"],"summary":"Get Contact Mdp State Tree","operationId":"get_contact_mdp_state_tree","parameters":[{"name":"include_counts","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Counts"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MdpStateTreeNode"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/outcome-flows":{"get":{"tags":["contact-mdp-states"],"summary":"Get Contact Mdp State Outcome Flows","operationId":"get_contact_mdp_state_outcome_flows","parameters":[{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Window Days"}},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/MdpOutcomeFlowScope","default":"window"}},{"name":"cohort_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Cohort Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MdpStateOutcomeFlowsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states":{"get":{"tags":["contact-mdp-states"],"summary":"List Contact Mdp States","operationId":"list_contact_mdp_states","parameters":[{"name":"ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ids"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_ContactMdpStateResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/experiment-design-guide":{"get":{"tags":["contact-mdp-states"],"summary":"Get Experiment Design Guide","operationId":"get_experiment_design_guide","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Get Experiment Design Guide"}}}}}}},"/contact-mdp-states/allocation-movement":{"get":{"tags":["contact-mdp-states"],"summary":"Get State Allocation Movement","operationId":"get_state_allocation_movement","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateAllocationMovementResult"}}}}}}},"/contact-mdp-states/{state_id}/experiment-history":{"get":{"tags":["contact-mdp-states"],"summary":"Get State Experiment History","operationId":"get_state_experiment_history","parameters":[{"name":"state_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"State Id"}},{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Window Days"}},{"name":"include_ancestors","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Ancestors"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateExperimentHistoryResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/{state_id}/transition-stats":{"get":{"tags":["contact-mdp-states"],"summary":"Get State Transition Stats","operationId":"get_state_transition_stats","parameters":[{"name":"state_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"State Id"}},{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Window Days"}},{"name":"partition_version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Partition Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateTransitionStatsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/{state_id}/members":{"get":{"tags":["contact-mdp-states"],"summary":"List Contact Mdp State Members","operationId":"list_contact_mdp_state_members","parameters":[{"name":"state_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"State Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_ContactInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/{state_id}/membership":{"get":{"tags":["contact-mdp-states"],"summary":"Get Contact Mdp State Membership","operationId":"get_contact_mdp_state_membership","parameters":[{"name":"state_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"State Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MdpStateMembershipResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/{state_id}/allocation-preview":{"get":{"tags":["contact-mdp-states"],"summary":"Get Contact Mdp State Allocation Preview","operationId":"get_contact_mdp_state_allocation_preview","parameters":[{"name":"state_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"State Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateAllocationPreviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/{state_id}/allocation-history":{"get":{"tags":["contact-mdp-states"],"summary":"Get State Allocation History","operationId":"get_state_allocation_history","parameters":[{"name":"state_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"State Id"}},{"name":"lookback_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":90,"title":"Lookback Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateAllocationHistoryResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/{state_id}/allocator-strategy":{"patch":{"tags":["contact-mdp-states"],"summary":"Set Contact Mdp State Allocator Strategy","operationId":"set_contact_mdp_state_allocator_strategy","parameters":[{"name":"state_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"State Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetAllocatorStrategyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactMdpStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact-mdp-states/bulk-allocator-strategy":{"post":{"tags":["contact-mdp-states"],"summary":"Bulk Set Contact Mdp State Allocator Strategy","operationId":"bulk_set_contact_mdp_state_allocator_strategy","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetAllocatorStrategyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkAllocatorStrategyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mdp-health/excluded-days":{"post":{"tags":["mdp-health"],"summary":"Create Mdp Excluded Day","operationId":"create_mdp_excluded_day","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMdpExcludedDayRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MdpExcludedDayResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["mdp-health"],"summary":"List Mdp Excluded Days","operationId":"list_mdp_excluded_days","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_MdpExcludedDayResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mdp-health/excluded-days/{excluded_day_id}":{"delete":{"tags":["mdp-health"],"summary":"Revoke Mdp Excluded Day","operationId":"revoke_mdp_excluded_day","parameters":[{"name":"excluded_day_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Excluded Day Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MdpExcludedDayResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mdp-health/daily-flows":{"get":{"tags":["mdp-health"],"summary":"Get Mdp Daily Flows","operationId":"get_mdp_daily_flows","parameters":[{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":7,"default":30,"title":"Window Days"}},{"name":"state_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State Ids"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MdpDailyFlowsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mdp-regions":{"get":{"tags":["mdp-regions"],"summary":"List Mdp Regions","operationId":"list_mdp_regions","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_MdpRegionInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mdp-regions/overview":{"get":{"tags":["mdp-regions"],"summary":"Get Mdp Regions Overview","operationId":"get_mdp_regions_overview","parameters":[{"name":"include_counts","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Counts"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionsOverviewResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mdp-regions/{region_id}":{"get":{"tags":["mdp-regions"],"summary":"Get Mdp Region","operationId":"get_mdp_region","parameters":[{"name":"region_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Region Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MdpRegionInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["mdp-regions"],"summary":"Rename Mdp Region","operationId":"rename_mdp_region","parameters":[{"name":"region_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Region Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenameMdpRegionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MdpRegionInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/region-experiments":{"post":{"tags":["region-experiments"],"summary":"Launch Region Experiment","operationId":"launch_region_experiment","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LaunchRegionExperimentRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionExperimentInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["region-experiments"],"summary":"List Region Experiments","operationId":"list_region_experiments","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegionExperimentStatus"},{"type":"null"}],"title":"Status"}},{"name":"region_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Region Id"}},{"name":"variant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Variant Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_RegionExperimentInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/region-experiments/{region_experiment_id}":{"get":{"tags":["region-experiments"],"summary":"Get Region Experiment","operationId":"get_region_experiment","parameters":[{"name":"region_experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Region Experiment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionExperimentInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/region-experiments/{region_experiment_id}/member-states":{"get":{"tags":["region-experiments"],"summary":"List Region Experiment Member States","operationId":"list_region_experiment_member_states","parameters":[{"name":"region_experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Region Experiment Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_RegionExperimentMemberStateInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/render-grades":{"post":{"tags":["render-grades"],"summary":"Create Render Grade","operationId":"create_render_grade","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRenderGradeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailRenderGradeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["render-grades"],"summary":"List Render Grades","operationId":"list_render_grades","parameters":[{"name":"variant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Variant Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_EmailRenderGradeResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/render-grades/{grade_id}":{"get":{"tags":["render-grades"],"summary":"Get Render Grade","operationId":"get_render_grade","parameters":[{"name":"grade_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Grade Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailRenderGradeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/render-grades/{grade_id}/screenshot":{"get":{"tags":["render-grades"],"summary":"Get Render Grade Screenshot","operationId":"get_render_grade_screenshot","parameters":[{"name":"grade_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Grade Id"}}],"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contacts":{"get":{"tags":["contacts"],"summary":"Contacts List","description":"List contacts.\n\n``attribute_filters`` is an optional JSON-encoded array of\n``AttributeFilter`` objects. Each filter is AND-ed: a contact is\nreturned only when it has a ``contact_attributes`` row matching\nevery filter (attribute_key + value_type + op against\nvalue_number). A contact missing the attribute row never matches —\nEXISTS semantics — so unmapped contacts are excluded the moment\nany attribute filter is applied.","operationId":"contacts_list","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":200,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"include_anonymous","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Anonymous"}},{"name":"has_email","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Email"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ContactSortField"},{"type":"null"}],"title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"title":"Sort Order"}},{"name":"attribute_filters","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribute Filters"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactListResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contacts/{contact_id}":{"get":{"tags":["contacts"],"summary":"Contacts Get","operationId":"contacts_get","parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactDTO"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["contacts"],"summary":"Contacts Update","operationId":"contacts_update","parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactDTO"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["contacts"],"summary":"Contacts Delete","operationId":"contacts_delete","parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contacts/{contact_id}/attributes":{"get":{"tags":["contacts"],"summary":"Contacts List Attributes","operationId":"contacts_list_attributes","parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Contact Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_ContactAttributeResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contacts/{contact_id}/attribute-changes":{"get":{"tags":["contacts"],"summary":"Contacts List Attribute Changes","operationId":"contacts_list_attribute_changes","parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Contact Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_ContactAttributeChangeEvent_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contacts/{contact_id}/activity":{"get":{"tags":["contacts"],"summary":"Contacts List Activity","operationId":"contacts_list_activity","parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Contact Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_Annotated_Union_NotificationActivityEvent__VariantInteractionActivityEvent__EventActivityEvent___FieldInfo_annotation_NoneType__required_True__discriminator__source____"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contacts/{contact_id}/current-mdp-state":{"get":{"tags":["contacts"],"summary":"Contacts Get Current Mdp State","operationId":"contacts_get_current_mdp_state","parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ContactMdpStateResponse"},{"type":"null"}],"title":"Response Contacts Get Current Mdp State"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contacts/match-emails":{"post":{"tags":["contacts"],"summary":"Contacts Match Emails","operationId":"contacts_match_emails","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchEmailsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchEmailsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/email/senders":{"get":{"tags":["email-senders"],"summary":"Get Available Email Senders","operationId":"get_available_email_senders","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailSendersResult"}}}}}}},"/email-templates":{"post":{"tags":["email-templates"],"summary":"Mint Email Template","operationId":"mint_email_template","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MintEmailTemplateRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MintEmailTemplateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/catalog":{"get":{"tags":["integrations"],"summary":"List Integration Catalog","operationId":"list_integration_catalog","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"exclude_connected","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Exclude Connected"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_IntegrationCatalogEntryResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/catalog/categories":{"get":{"tags":["integrations"],"summary":"Get Integration Catalog Categories","operationId":"get_integration_catalog_categories","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationCatalogCategoriesResponse"}}}}}}},"/integrations/catalog/{slug}":{"get":{"tags":["integrations"],"summary":"Get Integration Catalog Entry","operationId":"get_integration_catalog_entry","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationCatalogEntryDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations":{"get":{"tags":["integrations"],"summary":"List Integrations","operationId":"list_integrations","parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationKind"},{"type":"null"}],"title":"Kind"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationProvider"},{"type":"null"}],"title":"Provider"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationSortField"},{"type":"null"}],"title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"title":"Sort Order"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_IntegrationResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["integrations"],"summary":"Connect Integration","operationId":"connect_integration","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectIntegrationRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}":{"get":{"tags":["integrations"],"summary":"Get Integration","operationId":"get_integration","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["integrations"],"summary":"Disconnect Integration","operationId":"disconnect_integration","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/member-access":{"get":{"tags":["integrations"],"summary":"List Integration Member Access","operationId":"list_integration_member_access","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_IntegrationMemberAccessGrantResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/member-access/{member_id}":{"put":{"tags":["integrations"],"summary":"Set Integration Member Access","operationId":"set_integration_member_access","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}},{"name":"member_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Member Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetIntegrationMemberAccessRequest"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["integrations"],"summary":"Delete Integration Member Access","operationId":"delete_integration_member_access","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}},{"name":"member_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Member Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/app-access":{"get":{"tags":["integrations"],"summary":"List Integration Polymorphic App Access","operationId":"list_integration_polymorphic_app_access","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_IntegrationPolymorphicAppAccessResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/tags":{"get":{"tags":["integrations"],"summary":"Get Integration Tags","operationId":"get_integration_tags","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationTagsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["integrations"],"summary":"Set Integration Tags","operationId":"set_integration_tags","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationTagsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/test":{"post":{"tags":["integrations"],"summary":"Test Integration","operationId":"test_integration","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TestIntegrationRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestIntegrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/contact-sync":{"get":{"tags":["integrations"],"summary":"Get Contact Sync Config","operationId":"get_contact_sync_config","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ContactSyncConfigResponse"},{"type":"null"}],"title":"Response Get Contact Sync Config"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["integrations"],"summary":"Set Contact Sync Config","operationId":"set_contact_sync_config","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactSyncConfigRequest"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["integrations"],"summary":"Delete Contact Sync Config","operationId":"delete_contact_sync_config","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/contact-sync/sync-now":{"post":{"tags":["integrations"],"summary":"Integrations Sync Contacts Now","description":"Enqueue an on-demand contact sync for one integration.\n\nReturns 202 with the arq ``job_id`` so the UI can poll progress.\nThe ``_job_id`` is deterministic (``sync_contacts_manual:{id}``) so\nduplicate clicks collapse at the queue level instead of spawning\nparallel runs. The per-integration xact lock shared with the cron\npath serialises anything that does slip through.","operationId":"integrations_sync_contacts_now","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncNowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/push-token-sync/apply":{"post":{"tags":["integrations"],"summary":"Apply Push Token Mapping","description":"Apply a discovered push-token mapping to ``config.sync_push_tokens``.\n\nHeld under a per-integration advisory xact lock with a CAS on\n``proposal_version`` — a stale apply (operator clicked while a\nfresh discovery overwrote the proposal) refuses with 409. Mirrors\n``set_contact_sync_config`` for shape and error semantics.","operationId":"apply_push_token_mapping","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyPushTokenMappingRequest"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/push-token-sync/sync-now":{"post":{"tags":["integrations"],"summary":"Integrations Sync Push Tokens Now","description":"Enqueue an on-demand push-token sync.\n\nMirrors :func:`integrations_sync_contacts_now`: deterministic\n``_job_id`` so rapid clicks collapse, validation runs in the\nrequest transaction, the actual sync runs in the cron-style\ncross-org runner.","operationId":"integrations_sync_push_tokens_now","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncNowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/supabase-sample":{"get":{"tags":["integrations"],"summary":"Sample Supabase Integration Table","operationId":"sample_supabase_integration_table","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}},{"name":"table","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":200,"title":"Table"}},{"name":"row_limit","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":1,"default":1,"title":"Row Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SampleSupabaseTableResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/schema-cache":{"get":{"tags":["integrations"],"summary":"Get Integration Schema Cache","description":"Read-only fetch of one ``integration_schemas`` snapshot.\n\nSurface for the AttributeMapping drawer's pre-table-pick suggestion\nchips (PR 2). 404s when the cache row is missing — drawer falls\nback to the live ``sample_supabase_integration_table`` flow once a\ntable is chosen.","operationId":"get_integration_schema_cache","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationSchemaSnapshotInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/data-brief":{"get":{"tags":["integrations"],"summary":"Get Integration Data Brief","description":"The composed brief a build receives for this integration —\nsurface for the admin Builder → Data tab. 404s on an unknown id;\na cross-org id fails the org gate inside the repository read.","operationId":"get_integration_data_brief","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataBriefInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/oauth/supabase/start":{"get":{"tags":["integrations"],"summary":"Start Supabase Oauth","operationId":"start_supabase_oauth","parameters":[{"name":"redirect_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationOAuthStartResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/oauth/supabase/callback":{"get":{"tags":["integrations"],"summary":"Supabase Oauth Callback","operationId":"supabase_oauth_callback","parameters":[{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"error","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/composio/connect":{"post":{"tags":["integrations"],"summary":"Start Composio Connect","operationId":"start_composio_connect","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartComposioConnectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationOAuthStartResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/composio/callback":{"get":{"tags":["integrations"],"summary":"Composio Connect Callback","operationId":"composio_connect_callback","parameters":[{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"connected_account_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connected Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/oauth/slack/start":{"get":{"tags":["integrations"],"summary":"Start Slack Oauth","operationId":"start_slack_oauth","parameters":[{"name":"redirect_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationOAuthStartResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/oauth/slack/callback":{"get":{"tags":["integrations"],"summary":"Slack Oauth Callback","operationId":"slack_oauth_callback","parameters":[{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"error","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/slack/channels":{"get":{"tags":["integrations"],"summary":"List Slack Channels","operationId":"list_slack_channels","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_SlackChannelInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/slack/channel":{"put":{"tags":["integrations"],"summary":"Set Slack Channel","operationId":"set_slack_channel","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetSlackChannelRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/oauth/github/start":{"get":{"tags":["integrations"],"summary":"Start Github Oauth","operationId":"start_github_oauth","parameters":[{"name":"redirect_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect To"}},{"name":"mode","in":"query","required":false,"schema":{"$ref":"#/components/schemas/GithubInstallMode","default":"install"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationOAuthStartResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/oauth/github/callback":{"get":{"tags":["integrations"],"summary":"Github Oauth Callback","operationId":"github_oauth_callback","parameters":[{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"installation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Installation Id"}},{"name":"setup_action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Setup Action"}},{"name":"error","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/oauth/github/choose":{"post":{"tags":["integrations"],"summary":"Choose Github Installation","operationId":"choose_github_installation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChooseGithubInstallationRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/custom-domains":{"post":{"tags":["integrations"],"summary":"Connect Custom Domain","operationId":"connect_custom_domain","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectCustomDomainRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/custom-domains/{integration_id}/status":{"get":{"tags":["integrations"],"summary":"Get Custom Domain Status","operationId":"get_custom_domain_status","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/capabilities":{"get":{"tags":["integration-capability-groups"],"summary":"Get Integration Capability Catalog","operationId":"get_integration_capability_catalog","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationCapabilityCatalogResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/capability-groups":{"post":{"tags":["integration-capability-groups"],"summary":"Create Integration Capability Group","operationId":"create_integration_capability_group","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIntegrationCapabilityGroupRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationCapabilityGroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/capability-groups/{capability_group_id}":{"delete":{"tags":["integration-capability-groups"],"summary":"Delete Integration Capability Group","operationId":"delete_integration_capability_group","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}},{"name":"capability_group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Capability Group Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/source/schema":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Source Schema","operationId":"polymorphic_app_data_source_schema","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataSchemaRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataSchemaResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/source/sample":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Source Sample","operationId":"polymorphic_app_data_source_sample","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataSampleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataRowsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/source/query":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Source Query","operationId":"polymorphic_app_data_source_query","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataQueryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataQueryRowsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/source/aggregate":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Source Aggregate","operationId":"polymorphic_app_data_source_aggregate","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataAggregateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataAggregateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/source/api-read":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Source Api Read","operationId":"polymorphic_app_data_source_api_read","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataApiReadRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataApiReadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/http/request":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Http Request","operationId":"polymorphic_app_data_http_request","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataHttpRequestRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataHttpRequestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/tools/list":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data List Tools","operationId":"polymorphic_app_data_list_tools","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataListToolsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationToolListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/tools/execute":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Execute Tool","operationId":"polymorphic_app_data_execute_tool","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataExecuteToolRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationToolExecutionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/workflows/run":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Workflows Run","operationId":"polymorphic_app_data_workflows_run","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataWorkflowRunRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataWorkflowRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/workflows/get-run":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Workflows Get Run","operationId":"polymorphic_app_data_workflows_get_run","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataWorkflowGetRunRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataWorkflowGetRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/viewer":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Viewer","operationId":"polymorphic_app_data_viewer","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppViewerResolveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppViewerResolveResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/assets/put":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Assets Put","operationId":"polymorphic_app_data_assets_put","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataAssetResponse"}}}}}}},"/app-data/assets/get":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Assets Get","operationId":"polymorphic_app_data_assets_get","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataGetAssetRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataAssetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/assets/list":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Assets List","operationId":"polymorphic_app_data_assets_list","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataListAssetsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataAssetListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/assets/delete":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Assets Delete","operationId":"polymorphic_app_data_assets_delete","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataDeleteAssetRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataAssetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-data/assets/set-public":{"post":{"tags":["polymorphic-app-data"],"summary":"Polymorphic App Data Assets Set Public","operationId":"polymorphic_app_data_assets_set_public","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataSetAssetPublicRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDataAssetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/expectations":{"post":{"tags":["polymorphic-app-expectations"],"summary":"Capture Polymorphic App Expectation","operationId":"capture_polymorphic_app_expectation","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppExpectationSpec"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppExpectationInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["polymorphic-app-expectations"],"summary":"List Polymorphic App Expectations","operationId":"list_polymorphic_app_expectations","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_PolymorphicAppExpectationInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/expectations/{expectation_id}":{"delete":{"tags":["polymorphic-app-expectations"],"summary":"Retire Polymorphic App Expectation","operationId":"retire_polymorphic_app_expectation","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"expectation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Expectation Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/public/app-assets/{asset_id}":{"get":{"tags":["polymorphic-app-assets"],"summary":"Get Public Polymorphic App Asset","operationId":"get_public_polymorphic_app_asset","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/polymorphic-app-runtime-boots":{"get":{"tags":["admin"],"summary":"List Polymorphic App Runtime Boots","operationId":"list_polymorphic_app_runtime_boots","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppChannel"},{"type":"null"}],"title":"Channel"}},{"name":"boot_path","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppBootPath"},{"type":"null"}],"title":"Boot Path"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppBootStatus"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_PolymorphicAppRuntimeBootInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/polymorphic-app-build-runs":{"get":{"tags":["admin"],"summary":"List Polymorphic App Build Runs","operationId":"list_polymorphic_app_build_runs","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppBuildRunStatus"},{"type":"null"}],"title":"Status"}},{"name":"builder_mode","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppBuilderMode"},{"type":"null"}],"title":"Builder Mode"}},{"name":"failure_class","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppBuildFailureClass"},{"type":"null"}],"title":"Failure Class"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_PolymorphicAppBuildRunInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/polymorphic-app-build-runs/{run_id}":{"get":{"tags":["admin"],"summary":"Get Polymorphic App Build Run","operationId":"get_polymorphic_app_build_run","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppBuildRunInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/polymorphic-app-build-runs/{run_id}/transcript":{"get":{"tags":["admin"],"summary":"Get Polymorphic App Build Run Transcript","operationId":"get_polymorphic_app_build_run_transcript","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppBuildRunTranscriptInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/polymorphic-app-maintainer/apps":{"get":{"tags":["admin"],"summary":"List Polymorphic App Maintainer Apps","operationId":"list_polymorphic_app_maintainer_apps","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}},{"name":"is_maintainer_enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Maintainer Enabled"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_PolymorphicAppMaintainerAppInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/polymorphic-app-maintainer/apps/{polymorphic_app_id}":{"put":{"tags":["admin"],"summary":"Set Polymorphic App Maintainer Enabled","operationId":"set_polymorphic_app_maintainer_enabled","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPolymorphicAppMaintainerEnabledRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppMaintainerAppInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/polymorphic-app-maintainer/apps/{polymorphic_app_id}/run":{"post":{"tags":["admin"],"summary":"Run Polymorphic App Maintainer Now","operationId":"run_polymorphic_app_maintainer_now","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunPolymorphicAppMaintainerNowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/polymorphic-app-maintainer/runs":{"get":{"tags":["admin"],"summary":"List Polymorphic App Maintainer Runs","operationId":"list_polymorphic_app_maintainer_runs","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}},{"name":"polymorphic_app_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Polymorphic App Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppMaintainerRunStatus"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_PolymorphicAppMaintainerRunInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/polymorphic-app-maintainer/runs/{run_id}":{"get":{"tags":["admin"],"summary":"Get Polymorphic App Maintainer Run","operationId":"get_polymorphic_app_maintainer_run","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppMaintainerRunDetailInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/polymorphic-app-build-transcripts/{build_run_id}/download-url":{"get":{"tags":["admin"],"summary":"Get Polymorphic App Build Transcript Download Url","operationId":"get_polymorphic_app_build_transcript_download_url","parameters":[{"name":"build_run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Build Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppBuildTranscriptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-app-access-requests":{"post":{"tags":["polymorphic-app-access-requests"],"summary":"Request Polymorphic App Access","operationId":"request_polymorphic_app_access","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestPolymorphicAppAccessRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppAccessRequestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["polymorphic-app-access-requests"],"summary":"List Polymorphic App Access Requests","operationId":"list_polymorphic_app_access_requests","parameters":[{"name":"scope","in":"query","required":false,"schema":{"enum":["reviewable","mine"],"type":"string","default":"reviewable","title":"Scope"}},{"name":"polymorphic_app_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Polymorphic App Id"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","resolved"],"type":"string"},{"type":"null"}],"title":"State"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_PolymorphicAppAccessRequestResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-app-access-requests/{request_id}/resolve":{"post":{"tags":["polymorphic-app-access-requests"],"summary":"Resolve Polymorphic App Access Request","operationId":"resolve_polymorphic_app_access_request","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveAccessRequestRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppAccessRequestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-app-source-access-requests":{"post":{"tags":["polymorphic-app-source-access-requests"],"summary":"Request Polymorphic App Source Access","operationId":"request_polymorphic_app_source_access","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestPolymorphicAppSourceAccessRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppSourceAccessRequestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["polymorphic-app-source-access-requests"],"summary":"List Polymorphic App Source Access Requests","operationId":"list_polymorphic_app_source_access_requests","parameters":[{"name":"polymorphic_app_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Polymorphic App Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppSourceAccessRequestStatus"},{"type":"null"}],"title":"Status"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_PolymorphicAppSourceAccessRequestResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-app-source-access-requests/{request_id}/resolve":{"post":{"tags":["polymorphic-app-source-access-requests"],"summary":"Resolve Polymorphic App Source Access Request","operationId":"resolve_polymorphic_app_source_access_request","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolvePolymorphicAppSourceAccessRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppSourceAccessRequestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integration-access-requests":{"post":{"tags":["integration-access-requests"],"summary":"Request Integration Access","operationId":"request_integration_access","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestIntegrationAccessRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationAccessRequestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["integration-access-requests"],"summary":"List Integration Access Requests","operationId":"list_integration_access_requests","parameters":[{"name":"scope","in":"query","required":false,"schema":{"enum":["reviewable","mine"],"type":"string","default":"reviewable","title":"Scope"}},{"name":"integration_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Integration Id"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","resolved"],"type":"string"},{"type":"null"}],"title":"State"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_IntegrationAccessRequestResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integration-access-requests/{request_id}/resolve":{"post":{"tags":["integration-access-requests"],"summary":"Resolve Integration Access Request","operationId":"resolve_integration_access_request","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveAccessRequestRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationAccessRequestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/access-requests/queue":{"get":{"tags":["access-requests"],"summary":"List Access Request Queue","operationId":"list_access_request_queue","parameters":[{"name":"state","in":"query","required":false,"schema":{"enum":["pending","resolved"],"type":"string","default":"pending","title":"State"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_Annotated_Union_PolymorphicAppAccessRequestResponse__IntegrationAccessRequestResponse___FieldInfo_annotation_NoneType__required_True__discriminator__kind____"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/access-requests/pending-count":{"get":{"tags":["access-requests"],"summary":"Get Pending Access Request Count","operationId":"get_pending_access_request_count","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessRequestPendingCountResponse"}}}}}}},"/access-requests/{request_id}":{"get":{"tags":["access-requests"],"summary":"Get Access Request","operationId":"get_access_request","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PolymorphicAppAccessRequestResponse"},{"$ref":"#/components/schemas/IntegrationAccessRequestResponse"}],"discriminator":{"propertyName":"kind","mapping":{"polymorphic_app":"#/components/schemas/PolymorphicAppAccessRequestResponse","integration":"#/components/schemas/IntegrationAccessRequestResponse"}},"title":"Response Get Access Request"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/workflow-runs":{"get":{"tags":["admin"],"summary":"List Workflow Runs For Admin","operationId":"list_workflow_runs_for_admin","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/WorkflowRunStatus"},{"type":"null"}],"title":"Status"}},{"name":"workflow_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workflow Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_WorkflowRunAdminInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin"],"summary":"Trigger Workflow Run For Admin","operationId":"trigger_workflow_run_for_admin","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerWorkflowRunRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunAdminInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/workflow-runs/{run_id}":{"get":{"tags":["admin"],"summary":"Get Workflow Run For Admin","operationId":"get_workflow_run_for_admin","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunAdminDetailInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/workflow-runs/{run_id}/cancel":{"post":{"tags":["admin"],"summary":"Cancel Workflow Run For Admin","operationId":"cancel_workflow_run_for_admin","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunAdminInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/workflow-runs/{run_id}/payload":{"get":{"tags":["admin"],"summary":"Get Workflow Run Payload For Admin","operationId":"get_workflow_run_payload_for_admin","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"kind","in":"query","required":true,"schema":{"$ref":"#/components/schemas/WorkflowRunPayloadKind"}},{"name":"step_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunPayloadInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/workflow-definitions":{"get":{"tags":["admin"],"summary":"List Workflow Definitions For Admin","operationId":"list_workflow_definitions_for_admin","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowDefinitionInfo"},"type":"array","title":"Response List Workflow Definitions For Admin"}}}}}}},"/workflow-runs":{"get":{"tags":["workflow-runs"],"summary":"List Workflow Runs","operationId":"list_workflow_runs","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/WorkflowRunStatus"},{"type":"null"}],"title":"Status"}},{"name":"awaiting_signal","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Awaiting Signal"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workflow Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_WorkflowRunInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow-runs/{run_id}":{"get":{"tags":["workflow-runs"],"summary":"Get Workflow Run","operationId":"get_workflow_run","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunMemberDetailInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow-runs/{run_id}/signals/{step_key}":{"post":{"tags":["workflow-runs"],"summary":"Send Workflow Run Signal","operationId":"send_workflow_run_signal","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"step_key","in":"path","required":true,"schema":{"type":"string","title":"Step Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowSignalRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowSignalResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/workflow-schedules":{"get":{"tags":["admin"],"summary":"List Workflow Schedules For Admin","operationId":"list_workflow_schedules_for_admin","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_WorkflowScheduleAdminInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin"],"summary":"Create Workflow Schedule For Admin","operationId":"create_workflow_schedule_for_admin","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkflowScheduleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowScheduleAdminInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/workflow-schedules/{schedule_id}":{"get":{"tags":["admin"],"summary":"Get Workflow Schedule For Admin","operationId":"get_workflow_schedule_for_admin","parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowScheduleAdminInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin"],"summary":"Update Workflow Schedule For Admin","operationId":"update_workflow_schedule_for_admin","parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkflowScheduleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowScheduleAdminInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin"],"summary":"Delete Workflow Schedule For Admin","operationId":"delete_workflow_schedule_for_admin","parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows":{"post":{"tags":["workflows"],"summary":"Create Workflow","operationId":"create_workflow","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkflowRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["workflows"],"summary":"List Workflows","operationId":"list_workflows","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_WorkflowInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/runs/{run_id}/cancel":{"post":{"tags":["workflows"],"summary":"Cancel Workflow Run","operationId":"cancel_workflow_run","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{workflow_id}":{"get":{"tags":["workflows"],"summary":"Get Workflow","operationId":"get_workflow","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["workflows"],"summary":"Update Workflow","operationId":"update_workflow","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkflowRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["workflows"],"summary":"Archive Workflow","operationId":"archive_workflow","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{workflow_id}/run":{"post":{"tags":["workflows"],"summary":"Run Workflow","operationId":"run_workflow","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/signal-event-receipts":{"get":{"tags":["admin"],"summary":"List Signal Event Receipts For Admin","operationId":"list_signal_event_receipts_for_admin","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationProvider"},{"type":"null"}],"title":"Provider"}},{"name":"outcome","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SignalReceiptOutcomeFilter"},{"type":"null"}],"title":"Outcome"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_SignalEventReceiptAdminInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/signal-event-receipts/{receipt_id}":{"get":{"tags":["admin"],"summary":"Get Signal Event Receipt For Admin","operationId":"get_signal_event_receipt_for_admin","parameters":[{"name":"receipt_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Receipt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalEventReceiptAdminDetailInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-telemetry/v1/traces":{"post":{"tags":["polymorphic-app-telemetry"],"summary":"Ingest Polymorphic App Spans","operationId":"ingest_polymorphic_app_spans","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/app-telemetry/root-spans":{"get":{"tags":["polymorphic-app-telemetry"],"summary":"List Polymorphic App Root Spans","operationId":"list_polymorphic_app_root_spans","parameters":[{"name":"polymorphic_app_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Polymorphic App Id"}},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppChannel"},{"type":"null"}],"title":"Channel"}},{"name":"member_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Member Id"}},{"name":"status_class","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpStatusClass"},{"type":"null"}],"title":"Status Class"}},{"name":"errors_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Errors Only"}},{"name":"min_duration_ms","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Duration Ms"}},{"name":"path_prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path Prefix"}},{"name":"method","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"}},{"name":"route_path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Path"}},{"name":"started_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started After"}},{"name":"started_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started Before"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_PolymorphicAppRootSpanInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-telemetry/route-traffic":{"get":{"tags":["polymorphic-app-telemetry"],"summary":"Get Polymorphic App Route Traffic","operationId":"get_polymorphic_app_route_traffic","parameters":[{"name":"polymorphic_app_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Polymorphic App Id"}},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppChannel"},{"type":"null"}],"title":"Channel"}},{"name":"started_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started After"}},{"name":"started_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started Before"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppRouteTrafficResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/app-telemetry/traces/{trace_id}":{"get":{"tags":["polymorphic-app-telemetry"],"summary":"Get Polymorphic App Trace","operationId":"get_polymorphic_app_trace","parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trace Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppTraceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps":{"post":{"tags":["polymorphic-apps"],"summary":"Create Polymorphic App","operationId":"create_polymorphic_app","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePolymorphicAppRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["polymorphic-apps"],"summary":"List Polymorphic Apps","operationId":"list_polymorphic_apps","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppStatus"},{"type":"null"}],"title":"Status"}},{"name":"build_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Status"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"access","in":"query","required":false,"schema":{"anyOf":[{"enum":["managed","shared"],"type":"string"},{"type":"null"}],"title":"Access"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_PolymorphicAppResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/discoverable":{"get":{"tags":["polymorphic-apps"],"summary":"List Discoverable Polymorphic Apps","operationId":"list_discoverable_polymorphic_apps","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_PolymorphicAppDiscoveryResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/status-counts":{"get":{"tags":["polymorphic-apps"],"summary":"Get Polymorphic App Status Counts","operationId":"get_polymorphic_app_status_counts","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppStatusCountsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/check-slug":{"get":{"tags":["polymorphic-apps"],"summary":"Check Polymorphic App Slug","operationId":"check_polymorphic_app_slug","parameters":[{"name":"slug","in":"query","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"polymorphic_app_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Polymorphic App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppSlugAvailabilityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/by-slug/{slug}":{"get":{"tags":["polymorphic-apps"],"summary":"Get Polymorphic App By Slug","operationId":"get_polymorphic_app_by_slug","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}":{"get":{"tags":["polymorphic-apps"],"summary":"Get Polymorphic App","operationId":"get_polymorphic_app","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["polymorphic-apps"],"summary":"Update Polymorphic App","operationId":"update_polymorphic_app","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePolymorphicAppRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["polymorphic-apps"],"summary":"Delete Polymorphic App","operationId":"delete_polymorphic_app","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/star":{"put":{"tags":["polymorphic-apps"],"summary":"Set Polymorphic App Star","operationId":"set_polymorphic_app_star","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPolymorphicAppStarRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppStarResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/versions/{version_id}/screenshot":{"get":{"tags":["polymorphic-apps"],"summary":"Get Polymorphic App Version Screenshot","operationId":"get_polymorphic_app_version_screenshot","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}}],"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/member-access":{"get":{"tags":["polymorphic-apps"],"summary":"List Polymorphic App Member Access","operationId":"list_polymorphic_app_member_access","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_MemberAccessGrantResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/member-access/{member_id}":{"put":{"tags":["polymorphic-apps"],"summary":"Set Polymorphic App Member Access","operationId":"set_polymorphic_app_member_access","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"member_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Member Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetMemberAccessRequest"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["polymorphic-apps"],"summary":"Delete Polymorphic App Member Access","operationId":"delete_polymorphic_app_member_access","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"member_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Member Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/integration-access":{"get":{"tags":["polymorphic-apps"],"summary":"List Polymorphic App Integration Access","operationId":"list_polymorphic_app_integration_access","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_PolymorphicAppIntegrationAccessResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/integration-access/{integration_id}":{"put":{"tags":["polymorphic-apps"],"summary":"Set Polymorphic App Integration Access","operationId":"set_polymorphic_app_integration_access","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPolymorphicAppIntegrationAccessRequest"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["polymorphic-apps"],"summary":"Delete Polymorphic App Integration Access","operationId":"delete_polymorphic_app_integration_access","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/tags":{"get":{"tags":["polymorphic-apps"],"summary":"Get Polymorphic App Tags","operationId":"get_polymorphic_app_tags","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppTagsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["polymorphic-apps"],"summary":"Set Polymorphic App Tags","operationId":"set_polymorphic_app_tags","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppTagsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/permitted-integrations":{"get":{"tags":["polymorphic-apps"],"summary":"Get Polymorphic App Permitted Integrations","operationId":"get_polymorphic_app_permitted_integrations","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppPermittedIntegrationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/visibility":{"put":{"tags":["polymorphic-apps"],"summary":"Set Polymorphic App Visibility","operationId":"set_polymorphic_app_visibility","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPolymorphicAppVisibilityRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/capability":{"put":{"tags":["polymorphic-apps"],"summary":"Set Polymorphic App Capability","description":"Org-admin toggle over the bit-authorized capabilities (asset storage).","operationId":"set_polymorphic_app_capability","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPolymorphicAppCapabilityRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/asset-usage":{"get":{"tags":["polymorphic-apps"],"summary":"Get Polymorphic App Asset Usage","operationId":"get_polymorphic_app_asset_usage","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppAssetUsageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/archive":{"post":{"tags":["polymorphic-apps"],"summary":"Archive Polymorphic App","operationId":"archive_polymorphic_app","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/open":{"post":{"tags":["polymorphic-apps"],"summary":"Open Polymorphic App","operationId":"open_polymorphic_app","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenPolymorphicAppRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenPolymorphicAppResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/build-preview":{"get":{"tags":["polymorphic-apps"],"summary":"Get Polymorphic App Build Preview","operationId":"get_polymorphic_app_build_preview","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppBuildPreviewResponse"},{"type":"null"}],"title":"Response Get Polymorphic App Build Preview"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/debug-overview":{"get":{"tags":["polymorphic-apps"],"summary":"Get Polymorphic App Debug Overview","operationId":"get_polymorphic_app_debug_overview","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppDebugOverviewInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/warm":{"post":{"tags":["polymorphic-apps"],"summary":"Warm Polymorphic App","operationId":"warm_polymorphic_app","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WarmPolymorphicAppRuntimeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/builder-conversation":{"post":{"tags":["polymorphic-apps"],"summary":"Get Or Create Polymorphic App Builder Conversation","operationId":"get_or_create_polymorphic_app_builder_conversation","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppBuilderConversationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/versions":{"get":{"tags":["polymorphic-apps"],"summary":"List Polymorphic App Versions","operationId":"list_polymorphic_app_versions","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_PolymorphicAppVersionResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/versions/{version_id}/restore":{"post":{"tags":["polymorphic-apps"],"summary":"Restore Polymorphic App Version","operationId":"restore_polymorphic_app_version","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/apps/resolve":{"post":{"tags":["internal-polymorphic-apps"],"summary":"Internal Polymorphic Apps Resolve","operationId":"internal_polymorphic_apps_resolve","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppRouteResolveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppRouteResolveResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/apps/v2/resolve":{"post":{"tags":["internal-polymorphic-apps"],"summary":"Internal Polymorphic Apps Resolve V2","operationId":"internal_polymorphic_apps_resolve_v2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppRouteResolveV2Request"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppRouteResolveResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/apps/wake":{"post":{"tags":["internal-polymorphic-apps"],"summary":"Internal Polymorphic Apps Wake","operationId":"internal_polymorphic_apps_wake","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppRuntimeWakeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuntimeRouteInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/apps/v2/wake":{"post":{"tags":["internal-polymorphic-apps"],"summary":"Internal Polymorphic Apps Wake V2","operationId":"internal_polymorphic_apps_wake_v2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppRuntimeWakeV2Request"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuntimeRouteInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/apps/redeem-open-token":{"post":{"tags":["internal-polymorphic-apps"],"summary":"Internal Polymorphic Apps Redeem Open Token","operationId":"internal_polymorphic_apps_redeem_open_token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppOpenTokenRedeemRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppOpenTokenRedeemResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/apps/verify-api-key":{"post":{"tags":["internal-polymorphic-apps"],"summary":"Internal Polymorphic Apps Verify Api Key","operationId":"internal_polymorphic_apps_verify_api_key","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppOpenTokenRedeemResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/apps/report-dead":{"post":{"tags":["internal-polymorphic-apps"],"summary":"Internal Polymorphic Apps Report Dead","operationId":"internal_polymorphic_apps_report_dead","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppRuntimeReportDeadRequest"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/apps/telemetry":{"post":{"tags":["internal-polymorphic-apps"],"summary":"Internal Polymorphic Apps Telemetry","operationId":"internal_polymorphic_apps_telemetry","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppRootSpanReportRequest"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/polymorph-runtime/v1/{app_id}/{runtime_id}/{channel}/{version_id}/{morph_segment}/{nonce}/{signature}/api/runtime/v1/document":{"get":{"tags":["polymorph-runtime"],"summary":"Polymorph Runtime Document","operationId":"polymorph_runtime_document","parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"runtime_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Runtime Id"}},{"name":"channel","in":"path","required":true,"schema":{"$ref":"#/components/schemas/PolymorphicAppChannel"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}},{"name":"morph_segment","in":"path","required":true,"schema":{"type":"string","title":"Morph Segment"}},{"name":"nonce","in":"path","required":true,"schema":{"type":"string","title":"Nonce"}},{"name":"signature","in":"path","required":true,"schema":{"type":"string","title":"Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Polymorph Runtime Document"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/polymorph-runtime/v1/{app_id}/{runtime_id}/{channel}/{version_id}/{morph_segment}/{nonce}/{signature}/api/runtime/v1/datasets/{dataset_id}":{"post":{"tags":["polymorph-runtime"],"summary":"Polymorph Runtime Dataset","operationId":"polymorph_runtime_dataset","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"runtime_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Runtime Id"}},{"name":"channel","in":"path","required":true,"schema":{"$ref":"#/components/schemas/PolymorphicAppChannel"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}},{"name":"morph_segment","in":"path","required":true,"schema":{"type":"string","title":"Morph Segment"}},{"name":"nonce","in":"path","required":true,"schema":{"type":"string","title":"Nonce"}},{"name":"signature","in":"path","required":true,"schema":{"type":"string","title":"Signature"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphDatasetRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphDatasetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/polymorph-runtime/v1/{app_id}/{runtime_id}/{channel}/{version_id}/{morph_segment}/{nonce}/{signature}/api/runtime/v1/resources/{resource_id}/{operation_id}":{"post":{"tags":["polymorph-runtime"],"summary":"Polymorph Runtime Resource","operationId":"polymorph_runtime_resource","parameters":[{"name":"resource_id","in":"path","required":true,"schema":{"type":"string","title":"Resource Id"}},{"name":"operation_id","in":"path","required":true,"schema":{"type":"string","title":"Operation Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"runtime_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Runtime Id"}},{"name":"channel","in":"path","required":true,"schema":{"$ref":"#/components/schemas/PolymorphicAppChannel"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}},{"name":"morph_segment","in":"path","required":true,"schema":{"type":"string","title":"Morph Segment"}},{"name":"nonce","in":"path","required":true,"schema":{"type":"string","title":"Nonce"}},{"name":"signature","in":"path","required":true,"schema":{"type":"string","title":"Signature"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphResourceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphMutationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/polymorph-runtime/v1/{app_id}/{runtime_id}/{channel}/{version_id}/{morph_segment}/{nonce}/{signature}/api/runtime/v1/actions/{action_id}":{"post":{"tags":["polymorph-runtime"],"summary":"Polymorph Runtime Action","operationId":"polymorph_runtime_action","parameters":[{"name":"action_id","in":"path","required":true,"schema":{"type":"string","title":"Action Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"runtime_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Runtime Id"}},{"name":"channel","in":"path","required":true,"schema":{"$ref":"#/components/schemas/PolymorphicAppChannel"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}},{"name":"morph_segment","in":"path","required":true,"schema":{"type":"string","title":"Morph Segment"}},{"name":"nonce","in":"path","required":true,"schema":{"type":"string","title":"Nonce"}},{"name":"signature","in":"path","required":true,"schema":{"type":"string","title":"Signature"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphActionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphDatasetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/polymorph-runtime/v1/{app_id}/{runtime_id}/{channel}/{version_id}/{morph_segment}/{nonce}/{signature}/api/runtime/v1/resources/{resource_id}/{operation_id}/files":{"post":{"tags":["polymorph-runtime"],"summary":"Polymorph Runtime Resource File Upload","operationId":"polymorph_runtime_resource_file_upload","parameters":[{"name":"resource_id","in":"path","required":true,"schema":{"type":"string","title":"Resource Id"}},{"name":"operation_id","in":"path","required":true,"schema":{"type":"string","title":"Operation Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"runtime_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Runtime Id"}},{"name":"channel","in":"path","required":true,"schema":{"$ref":"#/components/schemas/PolymorphicAppChannel"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}},{"name":"morph_segment","in":"path","required":true,"schema":{"type":"string","title":"Morph Segment"}},{"name":"nonce","in":"path","required":true,"schema":{"type":"string","title":"Nonce"}},{"name":"signature","in":"path","required":true,"schema":{"type":"string","title":"Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/polymorph-runtime/v1/{app_id}/{runtime_id}/{channel}/{version_id}/{morph_segment}/{nonce}/{signature}/api/runtime/v1/resources/{resource_id}/records/{record_id_b64}/files/{field_id}":{"get":{"tags":["polymorph-runtime"],"summary":"Polymorph Runtime Resource File Download","operationId":"polymorph_runtime_resource_file_download","parameters":[{"name":"resource_id","in":"path","required":true,"schema":{"type":"string","title":"Resource Id"}},{"name":"record_id_b64","in":"path","required":true,"schema":{"type":"string","title":"Record Id B64"}},{"name":"field_id","in":"path","required":true,"schema":{"type":"string","title":"Field Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"runtime_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Runtime Id"}},{"name":"channel","in":"path","required":true,"schema":{"$ref":"#/components/schemas/PolymorphicAppChannel"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}},{"name":"morph_segment","in":"path","required":true,"schema":{"type":"string","title":"Morph Segment"}},{"name":"nonce","in":"path","required":true,"schema":{"type":"string","title":"Nonce"}},{"name":"signature","in":"path","required":true,"schema":{"type":"string","title":"Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/polymorph-runtime/v1/{app_id}/{runtime_id}/{channel}/{version_id}/{morph_segment}/{nonce}/{signature}/api/runtime/v1/chats/{chat_id}/messages":{"post":{"tags":["polymorph-runtime"],"summary":"Polymorph Runtime Chat Send","operationId":"polymorph_runtime_chat_send","parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"string","title":"Chat Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"runtime_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Runtime Id"}},{"name":"channel","in":"path","required":true,"schema":{"$ref":"#/components/schemas/PolymorphicAppChannel"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}},{"name":"morph_segment","in":"path","required":true,"schema":{"type":"string","title":"Morph Segment"}},{"name":"nonce","in":"path","required":true,"schema":{"type":"string","title":"Nonce"}},{"name":"signature","in":"path","required":true,"schema":{"type":"string","title":"Signature"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatSendRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/polymorph-runtime/v1/{app_id}/{runtime_id}/{channel}/{version_id}/{morph_segment}/{nonce}/{signature}/api/runtime/v1/chats/{chat_id}/conversations":{"get":{"tags":["polymorph-runtime"],"summary":"Polymorph Runtime Chat Conversations","operationId":"polymorph_runtime_chat_conversations","parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"string","title":"Chat Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"runtime_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Runtime Id"}},{"name":"channel","in":"path","required":true,"schema":{"$ref":"#/components/schemas/PolymorphicAppChannel"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}},{"name":"morph_segment","in":"path","required":true,"schema":{"type":"string","title":"Morph Segment"}},{"name":"nonce","in":"path","required":true,"schema":{"type":"string","title":"Nonce"}},{"name":"signature","in":"path","required":true,"schema":{"type":"string","title":"Signature"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Pagesize"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatConversationPageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/polymorph-runtime/v1/{app_id}/{runtime_id}/{channel}/{version_id}/{morph_segment}/{nonce}/{signature}/api/runtime/v1/chats/{chat_id}/conversations/{conversation_id}":{"get":{"tags":["polymorph-runtime"],"summary":"Polymorph Runtime Chat Conversation","operationId":"polymorph_runtime_chat_conversation","parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"string","title":"Chat Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"runtime_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Runtime Id"}},{"name":"channel","in":"path","required":true,"schema":{"$ref":"#/components/schemas/PolymorphicAppChannel"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}},{"name":"morph_segment","in":"path","required":true,"schema":{"type":"string","title":"Morph Segment"}},{"name":"nonce","in":"path","required":true,"schema":{"type":"string","title":"Nonce"}},{"name":"signature","in":"path","required":true,"schema":{"type":"string","title":"Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatConversationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/polymorph-runtime/v1/{app_id}/{runtime_id}/{channel}/{version_id}/{morph_segment}/{nonce}/{signature}/api/health":{"get":{"tags":["polymorph-runtime"],"summary":"Polymorph Runtime Health","operationId":"polymorph_runtime_health","parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"runtime_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Runtime Id"}},{"name":"channel","in":"path","required":true,"schema":{"$ref":"#/components/schemas/PolymorphicAppChannel"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}},{"name":"morph_segment","in":"path","required":true,"schema":{"type":"string","title":"Morph Segment"}},{"name":"nonce","in":"path","required":true,"schema":{"type":"string","title":"Nonce"}},{"name":"signature","in":"path","required":true,"schema":{"type":"string","title":"Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"}]},"title":"Response Polymorph Runtime Health"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-sessions/attach":{"post":{"tags":["morph-sessions"],"summary":"Attach Morph Session","operationId":"attach_morph_session","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachMorphSessionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachMorphSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-sessions/{morph_session_id}/status":{"get":{"tags":["morph-sessions"],"summary":"Get Morph Session Status","operationId":"get_morph_session_status","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"morph_session_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Morph Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MorphSessionStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-sessions/{morph_session_id}/interrupt":{"post":{"tags":["morph-sessions"],"summary":"Interrupt Morph Session","operationId":"interrupt_morph_session","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"morph_session_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Morph Session Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-sessions/{morph_session_id}/discard":{"post":{"tags":["morph-sessions"],"summary":"Discard Morph Session","operationId":"discard_morph_session","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"morph_session_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Morph Session Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-sessions/{morph_session_id}/end":{"post":{"tags":["morph-sessions"],"summary":"End Morph Session","operationId":"end_morph_session","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"morph_session_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Morph Session Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-sessions/{morph_session_id}/apply":{"post":{"tags":["morph-sessions"],"summary":"Apply Morph Session","operationId":"apply_morph_session","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"morph_session_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Morph Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolymorphicAppResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-sessions/intent":{"post":{"tags":["morph-sessions"],"summary":"Intent Morph Session","operationId":"intent_morph_session","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntentMorphSessionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntentMorphSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-sessions/warm":{"post":{"tags":["morph-sessions"],"summary":"Warm Morph Session","operationId":"warm_morph_session","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MorphSessionLeaseRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WarmMorphSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-sessions/renew":{"post":{"tags":["morph-sessions"],"summary":"Renew Morph Session Lease","operationId":"renew_morph_session_lease","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MorphSessionLeaseRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenewMorphSessionLeaseResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-sessions/release":{"post":{"tags":["morph-sessions"],"summary":"Release Morph Session Lease","operationId":"release_morph_session_lease","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MorphSessionLeaseRequest"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-sessions/{morph_session_id}/detach":{"post":{"tags":["morph-sessions"],"summary":"Detach Morph Session","operationId":"detach_morph_session","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"morph_session_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Morph Session Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-sessions/{morph_session_id}/reattach":{"post":{"tags":["morph-sessions"],"summary":"Reattach Morph Session","operationId":"reattach_morph_session","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"morph_session_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Morph Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReattachMorphSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-sessions/resumable":{"get":{"tags":["morph-sessions"],"summary":"List Resumable Morph Sessions","operationId":"list_resumable_morph_sessions","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_MorphSessionResumableInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-conversations":{"get":{"tags":["morph-sessions"],"summary":"List Morph Conversations","operationId":"list_morph_conversations","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_MorphConversationInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/polymorphic-apps/{polymorphic_app_id}/morph-sessions/{morph_session_id}/versions":{"get":{"tags":["morph-sessions"],"summary":"List Morph Session Versions","operationId":"list_morph_session_versions","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}},{"name":"morph_session_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Morph Session Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_PolymorphicAppVersionResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/llm-proxy/v1/messages":{"post":{"tags":["llm-proxy"],"summary":"Proxy Sandbox Llm Messages","operationId":"proxy_sandbox_llm_messages","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/segments":{"post":{"tags":["segments"],"summary":"Create Segment","operationId":"create_segment","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSegmentRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["segments"],"summary":"List Segments","operationId":"list_segments","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"is_enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Enabled"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_SegmentResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/segments/sync-now":{"post":{"tags":["segments"],"summary":"Segments Sync Now","description":"Enqueue an on-demand segment-sync run for the caller's org.\n\nEvery enabled, non-deleted segment in the org is re-synced against\nthe current ``contact_attributes`` state. 202 with the arq\n``job_id`` — the UI can display it for trace/debug. Per-segment\nadvisory locks inside the runner serialise any cron tick that\noverlaps the manual run.\n\nDeclared above the ``/{segment_id}`` routes so a future addition\nof ``POST /{segment_id}`` cannot silently shadow this static path.\n\nNote: segment membership reads from ``contact_attributes``, which\nis refreshed by ``POST /attribute-mappings/sync-now`` (or the\ncron). If mapping config just changed, trigger attribute sync\nfirst — this endpoint does not cascade.","operationId":"segments_sync_now","responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncNowResponse"}}}}}}},"/segments/{segment_id}":{"get":{"tags":["segments"],"summary":"Get Segment","operationId":"get_segment","parameters":[{"name":"segment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Segment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["segments"],"summary":"Update Segment","operationId":"update_segment","parameters":[{"name":"segment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Segment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSegmentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["segments"],"summary":"Delete Segment","operationId":"delete_segment","parameters":[{"name":"segment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Segment Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/segments/{segment_id}/members":{"get":{"tags":["segments"],"summary":"List Segment Members","operationId":"list_segment_members","parameters":[{"name":"segment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Segment Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_SegmentMemberResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/segments/{segment_id}/enable":{"post":{"tags":["segments"],"summary":"Enable Segment","operationId":"enable_segment","parameters":[{"name":"segment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Segment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/segments/{segment_id}/disable":{"post":{"tags":["segments"],"summary":"Disable Segment","operationId":"disable_segment","parameters":[{"name":"segment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Segment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sidebar-sections":{"get":{"tags":["sidebar-sections"],"summary":"List Sidebar Sections","operationId":"list_sidebar_sections","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_SidebarSectionResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["sidebar-sections"],"summary":"Create Sidebar Section","operationId":"create_sidebar_section","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SidebarSectionCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SidebarSectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sidebar-sections/order":{"put":{"tags":["sidebar-sections"],"summary":"Reorder Sidebar Sections","operationId":"reorder_sidebar_sections","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SidebarSectionsReorderRequest"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sidebar-sections/items/{polymorphic_app_id}":{"put":{"tags":["sidebar-sections"],"summary":"Move Sidebar App","operationId":"move_sidebar_app","parameters":[{"name":"polymorphic_app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Polymorphic App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SidebarAppMoveRequest"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sidebar-sections/{section_id}":{"patch":{"tags":["sidebar-sections"],"summary":"Rename Sidebar Section","operationId":"rename_sidebar_section","parameters":[{"name":"section_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Section Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SidebarSectionRenameRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SidebarSectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["sidebar-sections"],"summary":"Delete Sidebar Section","operationId":"delete_sidebar_section","parameters":[{"name":"section_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Section Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/slack-agent-threads":{"get":{"tags":["slack-agent-threads"],"summary":"List Slack Agent Threads","operationId":"list_slack_agent_threads","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_SlackAgentThreadInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/public/surveys/r/{token}":{"get":{"tags":["surveys"],"summary":"Record Public Survey Response","operationId":"record_public_survey_response","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/sync-overview":{"get":{"tags":["admin"],"summary":"Get Sync Overview","operationId":"get_sync_overview","parameters":[{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncOverviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/sync-overview/runs":{"get":{"tags":["admin"],"summary":"List Sync Runs","operationId":"list_sync_runs","parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SyncResourceType"},{"type":"null"}],"title":"Resource Type"}},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_SyncRunResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/sync-overview/failures":{"get":{"tags":["admin"],"summary":"List Failure Events","operationId":"list_failure_events","parameters":[{"name":"where_label","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Where Label"}},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}},{"name":"fingerprints","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fingerprints"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_FailureEventResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/sync-overview/failure-health":{"get":{"tags":["admin"],"summary":"Get Failure Health","operationId":"get_failure_health","parameters":[{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailureHealthResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/sync-overview/failure-series":{"post":{"tags":["admin"],"summary":"Get Failure Series","operationId":"get_failure_series","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailureSeriesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/sync-overview/campaign-health":{"get":{"tags":["admin"],"summary":"Get Campaign Sync Health","operationId":"get_campaign_sync_health","parameters":[{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignSyncHealthResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/sync-overview/experiment-instances":{"get":{"tags":["admin"],"summary":"List Experiment Instance Health","operationId":"list_experiment_instance_health","parameters":[{"name":"is_control","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Control"}},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_AdminExperimentInstanceHealthInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/sync-overview/experiment-state-counts":{"get":{"tags":["admin"],"summary":"Get Experiment State Contact Counts","operationId":"get_experiment_state_contact_counts","parameters":[{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentStateCountsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/sync-overview/experiment-series":{"get":{"tags":["admin"],"summary":"Get Experiment Instance Series","operationId":"get_experiment_instance_series","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":7,"default":30,"title":"Days"}},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentSeriesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/sync-overview/notification-cohort-series":{"get":{"tags":["admin"],"summary":"Get Notification Cohort Series","operationId":"get_notification_cohort_series","parameters":[{"name":"organization_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Organization Id"}},{"name":"channel","in":"query","required":true,"schema":{"$ref":"#/components/schemas/NotificationChannel"}},{"name":"window_hours","in":"query","required":false,"schema":{"type":"integer","maximum":336,"minimum":1,"default":24,"title":"Window Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminNotificationCohortSeriesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/sync-overview/notification-failure-groups":{"get":{"tags":["admin"],"summary":"Get Notification Failure Groups","operationId":"get_notification_failure_groups","parameters":[{"name":"organization_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Organization Id"}},{"name":"channel","in":"query","required":true,"schema":{"$ref":"#/components/schemas/NotificationChannel"}},{"name":"window_hours","in":"query","required":false,"schema":{"type":"integer","maximum":336,"minimum":1,"default":24,"title":"Window Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminNotificationFailureGroupsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/sync-overview/experiment-instances/run-now":{"post":{"tags":["admin"],"summary":"Trigger Experiment Instance Creation","operationId":"trigger_experiment_instance_creation","responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncNowResponse"}}}}}}},"/admin/sync-overview/attribute-syncs/{mapping_id}/reconcile-now":{"post":{"tags":["admin"],"summary":"Trigger Attribute Reconciliation","operationId":"trigger_attribute_reconciliation","parameters":[{"name":"mapping_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mapping Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncNowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/variant-generation-runs":{"get":{"tags":["admin"],"summary":"List Variant Generation Runs","operationId":"list_variant_generation_runs","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/VariantGenerationKind"},{"type":"null"}],"title":"Kind"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/VariantGenerationRunStatus"},{"type":"null"}],"title":"Status"}},{"name":"forked_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Forked Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_VariantGenerationRunInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/variant-generation-runs/{run_id}":{"get":{"tags":["admin"],"summary":"Get Variant Generation Run","operationId":"get_variant_generation_run","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantGenerationRunDetailInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/variant-generation-runs/{run_id}/fork":{"post":{"tags":["admin"],"summary":"Fork Variant Generation Run","operationId":"fork_variant_generation_run","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForkVariantGenerationRunRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantGenerationRunInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/variant-generation-runs/{run_id}/save-draft":{"post":{"tags":["admin"],"summary":"Save Variant Generation Run Draft","operationId":"save_variant_generation_run_draft","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveVariantGenerationDraftResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/variant-grading/run-now":{"post":{"tags":["admin"],"summary":"Trigger Variant Grading","operationId":"trigger_variant_grading","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GradingRunRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncNowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/variant-grading/organizations":{"get":{"tags":["admin"],"summary":"List Internal Organizations","operationId":"list_internal_organizations","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_InternalOrganizationSummaryInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/variant-grading/organizations/{organization_id}/partition":{"get":{"tags":["admin"],"summary":"Get Internal Org Partition","operationId":"get_internal_org_partition","parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Organization Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactMdpPartitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/variant-grading/schedules":{"post":{"tags":["admin"],"summary":"Create Variant Grading Schedule","operationId":"create_variant_grading_schedule","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantGradingScheduleCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantGradingScheduleSummaryInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin"],"summary":"List Variant Grading Schedules","operationId":"list_variant_grading_schedules","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_VariantGradingScheduleSummaryInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/variant-grading/schedules/{schedule_id}":{"delete":{"tags":["admin"],"summary":"Delete Variant Grading Schedule","operationId":"delete_variant_grading_schedule","parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/company-wall":{"get":{"tags":["admin"],"summary":"Get Company Wall Summary","description":"Rate-limited per user alone — the staff caller can org-switch, so\nan org-keyed bucket would multiply; 12/60s covers the 15s-polling TV\n(4/min) plus the mount-time warmup of the other three ranges and\nrange-chip cycling, while capping the cold N-orgs fan-out. The\nlimiter fails open on transient Redis errors by design.","operationId":"get_company_wall_summary","parameters":[{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":7,"title":"Window Days"}},{"name":"granularity","in":"query","required":false,"schema":{"$ref":"#/components/schemas/Granularity","default":"daily"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyWallSummaryResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/component-catalog/grades/run":{"post":{"tags":["admin"],"summary":"Run Component Grade","operationId":"run_component_grade","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunComponentGradeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentGradeInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/component-catalog/grades":{"get":{"tags":["admin"],"summary":"List Component Grades","operationId":"list_component_grades","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"component_kind","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentKind"},{"type":"null"}],"title":"Component Kind"}},{"name":"component_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Key"}},{"name":"latest_per_component","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Latest Per Component"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_ComponentGradeInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/component-catalog/custom-components":{"get":{"tags":["admin"],"summary":"List Custom Components In Use","operationId":"list_custom_components_in_use","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_ComponentCatalogEntryInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/conversion-definitions":{"post":{"tags":["conversion-definitions"],"summary":"Create Conversion Definition","operationId":"create_conversion_definition","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversionDefinitionCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversionDefinitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["conversion-definitions"],"summary":"List Conversion Definitions","operationId":"list_conversion_definitions","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_ConversionDefinitionResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/conversion-definitions/order":{"put":{"tags":["conversion-definitions"],"summary":"Set Conversion Definition Order","operationId":"set_conversion_definition_order","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetConversionDefinitionOrderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ConversionDefinitionResponse"},"type":"array","title":"Response Set Conversion Definition Order"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/conversion-definitions/{definition_id}":{"patch":{"tags":["conversion-definitions"],"summary":"Update Conversion Definition","operationId":"update_conversion_definition","parameters":[{"name":"definition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Definition Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversionDefinitionUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversionDefinitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["conversion-definitions"],"summary":"Delete Conversion Definition","operationId":"delete_conversion_definition","parameters":[{"name":"definition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Definition Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tracked-targets":{"post":{"tags":["tracked-targets"],"summary":"Create Tracked Target","operationId":"create_tracked_target","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTrackedTargetRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackedTargetInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["tracked-targets"],"summary":"List Tracked Targets","operationId":"list_tracked_targets","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_TrackedTargetInfo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tracked-targets/{tracked_target_id}":{"delete":{"tags":["tracked-targets"],"summary":"Delete Tracked Target","operationId":"delete_tracked_target","parameters":[{"name":"tracked_target_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tracked Target Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants":{"post":{"tags":["variants"],"summary":"Create Variant","operationId":"create_variant","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["variants"],"summary":"List Variants","operationId":"list_variants","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/VariantChannel"},{"type":"null"}],"title":"Channel"}},{"name":"created_by_kind","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/VariantCreatorKind"},{"type":"null"}],"title":"Created By Kind"}},{"name":"lifecycle_status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/VariantLifecycleStatus"},{"type":"null"}],"title":"Lifecycle Status"}},{"name":"tag","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tag"}},{"name":"inspiration_ad_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Inspiration Ad Id"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"title":"Sort Order"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"include_analytics","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Analytics"}},{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_VariantResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/bulk":{"post":{"tags":["variants"],"summary":"Bulk Create Variants","description":"Atomically create up to 20 validated variants in one call.\n\nAny per-item validation failure rejects the whole batch; a vanished\n``inspiration_ad_id`` is nulled per item instead (the use case\nre-verifies ads at create time). One ``VARIANT_CREATED`` audit row per\ncreated variant.","operationId":"bulk_create_variants","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreateVariantsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreateVariantsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/bulk-approve":{"post":{"tags":["variants"],"summary":"Bulk Approve Variants","description":"Approve up to 100 PENDING variants in one request transaction.\n\nPer-item outcome (approved / already_approved / rejected_variant /\nnot_found), items in input order (deduped). One ``VARIANT_APPROVED``\naudit row per real transition — never for an idempotent re-approve.","operationId":"bulk_approve_variants","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkApproveVariantsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkApproveVariantsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/bulk-stop":{"post":{"tags":["variants"],"summary":"Bulk Stop Variants","description":"Stop up to 50 variants in one request transaction.\n\nComposes ``StopVariantUseCase`` per found id (the stop cascade is\nper-variant). Per-item outcome (stopped / nothing_live / not_found),\nitems in input order (deduped). One ``VARIANT_STOPPED`` audit row per\nitem that actually retired something.","operationId":"bulk_stop_variants","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkStopVariantsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkStopVariantsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/bulk-auto-assign":{"post":{"tags":["variants"],"summary":"Bulk Auto Assign Variants","description":"Let an agent place up to 20 variants into every fitting region.\n\nOne batched LLM call decides coverage subtractively per approved variant —\nevery region minus the ones it excludes for a concrete reason — then\nlaunches a region experiment for each remaining region via\n``LaunchRegionExperimentUseCase``. When ``approve_first`` is set, draft\nvariants are approved first (same request). One\n``REGION_EXPERIMENT_LAUNCHED`` audit row per launched assignment, plus one\n``VARIANT_APPROVED`` per real approval.","operationId":"bulk_auto_assign_variants","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkAutoAssignVariantsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkAutoAssignVariantsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/bulk-delete":{"post":{"tags":["variants"],"summary":"Bulk Delete Variants","description":"Delete up to 100 pristine variants in one request transaction.\n\nComposes ``DeleteVariantUseCase`` per found id (each hard-delete re-roots\nits family). Per-item outcome (deleted / blocked / not_found), items in\ninput order (deduped). One ``VARIANT_DELETED`` audit row per deleted item.","operationId":"bulk_delete_variants","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteVariantsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteVariantsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/bulk-fork":{"post":{"tags":["variants"],"summary":"Bulk Fork Variants","description":"Fork up to 50 variants along one axis (send_window | locale).\n\nA send_window fork re-times each parent verbatim (one fork per variant); a\nlocale fork wraps each parent's copy in ``[[LOCALE=<tag>]]`` markers (one\nfork per (variant × tag)). Per-item outcome (forked /\nskipped_existing_localization / unsupported_source / not_found), items in\ninput order (deduped). One ``VARIANT_CREATED`` audit row per created fork.","operationId":"bulk_fork_variants","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkForkVariantsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkForkVariantsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/{variant_id}/approve":{"post":{"tags":["variants"],"summary":"Approve Variant","operationId":"approve_variant","parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/{variant_id}/stop-preview":{"get":{"tags":["variants"],"summary":"Get Variant Stop Preview","operationId":"get_variant_stop_preview","parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StopVariantPreviewInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/{variant_id}/stop":{"post":{"tags":["variants"],"summary":"Stop Variant","operationId":"stop_variant","parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/StopVariantRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StopVariantResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/{variant_id}":{"delete":{"tags":["variants"],"summary":"Delete Variant","operationId":"delete_variant","parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}},{"name":"reason","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Reason"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["variants"],"summary":"Get Variant","operationId":"get_variant","parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["variants"],"summary":"Update Variant","operationId":"update_variant","parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/conversion-lift":{"post":{"tags":["variants"],"summary":"Get Conversion Lift","operationId":"get_conversion_lift","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversionLiftRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"items":{"$ref":"#/components/schemas/ConversionLiftEntryInfo"},"type":"array"},"type":"object","title":"Response Get Conversion Lift"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/send-projections":{"post":{"tags":["variants"],"summary":"Get Variant Send Projections","operationId":"get_variant_send_projections","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantSendProjectionsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"$ref":"#/components/schemas/VariantSendProjectionInfo"},"type":"object","title":"Response Get Variant Send Projections"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/rank-history":{"get":{"tags":["variants"],"summary":"Get Variant Rank History","operationId":"get_variant_rank_history","parameters":[{"name":"conversion_definition_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Conversion Definition Id"}},{"name":"metric_event_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metric Event Key"}},{"name":"region_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Region Id"}},{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":90,"title":"Window Days"}},{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantRankHistoryInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/{variant_id}/similar":{"get":{"tags":["variants"],"summary":"Get Similar Variants","operationId":"get_similar_variants","parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":5,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimilarVariantsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/{variant_id}/engagement":{"get":{"tags":["variants"],"summary":"Get Variant Engagement Rates","operationId":"get_variant_engagement_rates","parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}},{"name":"window_days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":365,"minimum":1},{"type":"null"}],"title":"Window Days"}},{"name":"region_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string","format":"uuid"}},{"type":"null"}],"title":"Region Ids"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantEngagementRatesResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/{variant_id}/send-volume":{"get":{"tags":["variants"],"summary":"Get Variant Send Volume","operationId":"get_variant_send_volume","parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}},{"name":"granularity","in":"query","required":false,"schema":{"$ref":"#/components/schemas/Granularity","default":"daily"}},{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Window Days"}},{"name":"region_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string","format":"uuid"}},{"type":"null"}],"title":"Region Ids"}},{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/{variant_id}/conversion-series":{"get":{"tags":["variants"],"summary":"Get Variant Conversion Series","operationId":"get_variant_conversion_series","parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}},{"name":"conversion_definition_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Conversion Definition Id"}},{"name":"window_days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":365,"minimum":1},{"type":"null"}],"title":"Window Days"}},{"name":"region_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string","format":"uuid"}},{"type":"null"}],"title":"Region Ids"}},{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantConversionSeriesInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/{variant_id}/lift-series":{"get":{"tags":["variants"],"summary":"Get Variant Lift Series","operationId":"get_variant_lift_series","parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}},{"name":"conversion_definition_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Conversion Definition Id"}},{"name":"window_days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":365,"minimum":1},{"type":"null"}],"title":"Window Days"}},{"name":"region_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string","format":"uuid"}},{"type":"null"}],"title":"Region Ids"}},{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantLiftSeriesInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/{variant_id}/preview":{"post":{"tags":["variants"],"summary":"Preview Variant","operationId":"preview_variant","parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewVariantRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/EmailPreview"},{"$ref":"#/components/schemas/PushPreview"}],"discriminator":{"propertyName":"channel","mapping":{"email":"#/components/schemas/EmailPreview","fcm":"#/components/schemas/PushPreview","expo":"#/components/schemas/PushPreview"}},"title":"Response Preview Variant"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variants/preview-draft":{"post":{"tags":["variants"],"summary":"Preview Draft Variant","description":"The ``draft_content`` target of the preview capability — same\n``PreviewVariantUseCase`` union as ``POST /{variant_id}/preview``; a\nsibling route exists only because a path parameter cannot express an\nunsaved draft's missing id (api/CLAUDE.md rule 17).","operationId":"preview_draft_variant","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewDraftVariantRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/EmailPreview"},{"$ref":"#/components/schemas/PushPreview"}],"title":"Response Preview Draft Variant","discriminator":{"propertyName":"channel","mapping":{"email":"#/components/schemas/EmailPreview","fcm":"#/components/schemas/PushPreview","expo":"#/components/schemas/PushPreview"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variant-groups/status-counts":{"get":{"tags":["variant-groups"],"summary":"Get Variant Group Status Counts","operationId":"get_variant_group_status_counts","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/VariantChannel"},{"type":"null"}],"title":"Channel"}},{"name":"region_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string","format":"uuid"}},{"type":"null"}],"title":"Region Ids"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantGroupStatusCountsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/variant-groups":{"get":{"tags":["variant-groups"],"summary":"List Variant Groups","operationId":"list_variant_groups","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/VariantChannel"},{"type":"null"}],"title":"Channel"}},{"name":"lifecycle_status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/VariantLifecycleStatus"},{"type":"null"}],"title":"Lifecycle Status"}},{"name":"region_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string","format":"uuid"}},{"type":"null"}],"title":"Region Ids"}},{"name":"family_root_variant_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string","format":"uuid"}},{"type":"null"}],"title":"Family Root Variant Ids"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/VariantGroupSortField"},{"type":"null"}],"title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"title":"Sort Order"}},{"name":"sort_conversion_definition_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Sort Conversion Definition Id"}},{"name":"sort_conversion_measure","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ConversionSortMeasure"},{"type":"null"}],"title":"Sort Conversion Measure"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"X-Viewer-Timezone","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Viewer-Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_VariantFamilyResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vips":{"get":{"tags":["vips"],"summary":"Vips List","operationId":"vips_list","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"sort_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/VipSortField","default":"added"}},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","default":"desc"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_VipResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["vips"],"summary":"Vips Add","operationId":"vips_add","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VipAddRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VipResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vips/candidates":{"get":{"tags":["vips"],"summary":"Vips List Candidates","operationId":"vips_list_candidates","parameters":[{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":5,"title":"Per Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_VipCandidateResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vips/overview":{"get":{"tags":["vips"],"summary":"Vips Get Overview","operationId":"vips_get_overview","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VipsOverviewResponse"}}}}}}},"/vips/{contact_id}":{"get":{"tags":["vips"],"summary":"Vips Get","operationId":"vips_get","parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VipProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["vips"],"summary":"Vips Remove","operationId":"vips_remove","parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Contact Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vips/{contact_id}/brief/refresh":{"post":{"tags":["vips"],"summary":"Vips Refresh Brief","operationId":"vips_refresh_brief","parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Contact Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncNowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vips/{contact_id}/drafts":{"post":{"tags":["vips"],"summary":"Vips Draft Pushes","operationId":"vips_draft_pushes","parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Contact Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncNowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vips/{contact_id}/drafts/status":{"get":{"tags":["vips"],"summary":"Get Vip Drafts Status","operationId":"get_vip_drafts_status","parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Contact Id"}},{"name":"job_id","in":"query","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VipDraftsStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/public/email-assets/{asset_id}":{"get":{"tags":["email-assets"],"summary":"Get Public Email Asset","operationId":"get_public_email_asset","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/preview/variants/{variant_id}":{"get":{"tags":["preview"],"summary":"Get Variant Shareable Preview","operationId":"get_variant_shareable_preview","parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}},{"name":"contact_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/notifications":{"get":{"tags":["notifications"],"summary":"List Notifications","operationId":"list_notifications","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/NotificationStatus"},{"type":"null"}],"title":"Status"}},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/NotificationChannel"},{"type":"null"}],"title":"Channel"}},{"name":"contact_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string","format":"uuid"}},{"type":"null"}],"title":"Contact Ids"}},{"name":"campaign_stage_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Campaign Stage Id"}},{"name":"sort_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/NotificationSortField","default":"scheduled_at"}},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","default":"desc"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResult_NotificationResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["notifications"],"summary":"Send Notification Adhoc","operationId":"send_notification_adhoc","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationAdhocCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/notifications/{notification_id}":{"get":{"tags":["notifications"],"summary":"Get Notification","operationId":"get_notification","parameters":[{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Notification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/public/unsubscribe/{token}":{"get":{"tags":["unsubscribe"],"summary":"Get Unsubscribe Page","operationId":"get_unsubscribe_page","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["unsubscribe"],"summary":"Confirm Unsubscribe","operationId":"confirm_unsubscribe","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhooks/resend":{"post":{"tags":["webhooks"],"summary":"Ingest Resend Webhook","operationId":"ingest_resend_webhook","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"integer"},"type":"object","title":"Response Ingest Resend Webhook"}}}}}}},"/webhooks/slack/platform/events":{"post":{"tags":["webhooks"],"summary":"Ingest Slack Platform Events Webhook","operationId":"ingest_slack_platform_events_webhook","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"object","title":"Response Ingest Slack Platform Events Webhook"}}}}}}},"/webhooks/signals/{provider}":{"post":{"tags":["webhooks"],"summary":"Ingest Signal Webhook","operationId":"ingest_signal_webhook","parameters":[{"name":"provider","in":"path","required":true,"schema":{"$ref":"#/components/schemas/IntegrationProvider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSignalIngestResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AIProposedActionInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"type":{"$ref":"#/components/schemas/ProposalType"},"entity_type":{"$ref":"#/components/schemas/ProposalEntityType"},"entity_id":{"type":"string","format":"uuid","title":"Entity Id"},"payload":{"$ref":"#/components/schemas/NewVariantPayloadInfo"},"rationale":{"type":"string","title":"Rationale"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"status":{"$ref":"#/components/schemas/ProposalStatus"},"source_tool":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Tool"},"source_conversation_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Source Conversation Id"},"resolved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolved At"},"resolved_by_member_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Resolved By Member Id"},"resolution_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolution Note"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","type","entity_type","entity_id","payload","rationale","status","created_at","updated_at"],"title":"AIProposedActionInfo","description":"Full read model for an ``ai_proposed_actions`` row.\n\nMirrors the table column-for-column with two refinements: ``type``\n/ ``entity_type`` / ``status`` are surfaced as typed enums, and\n``payload`` is typed so the dispatcher branches on ``type`` over a\nvalidated payload, never a raw dict. New proposal types extend the\nunion — never add a ``dict`` fallback, that would silently\nre-admit malformed payloads."},"AIProposedActionListResult":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AIProposedActionInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"AIProposedActionListResult","description":"Page of inbox proposals with cursor for next/prev.\n\nMirrors ``PageResult[AIProposedActionInfo]`` but typed at the\nAPI boundary so the OpenAPI schema doesn't recurse through the\ngeneric — Orval-generated hooks read this concrete type cleanly."},"AccessRequestPendingCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"AccessRequestPendingCountResponse"},"AccessRequestStatus":{"type":"string","enum":["pending","approved","rejected"],"title":"AccessRequestStatus"},"AccessRole":{"type":"string","enum":["read","write","admin"],"title":"AccessRole"},"ActivityBatchInfo":{"properties":{"kind":{"type":"string","enum":["campaign","testing","other"],"title":"Kind"},"campaign_stage_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Campaign Stage Id"},"stage_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage Name"},"stage_position":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stage Position"},"campaign_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Campaign Id"},"campaign_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Name"},"segment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Segment Id"},"segment_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment Name"},"segment_member_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Segment Member Count"},"scheduled_count":{"type":"integer","title":"Scheduled Count"},"sent_count":{"type":"integer","title":"Sent Count"},"failed_count":{"type":"integer","title":"Failed Count"},"first_scheduled_at":{"type":"string","format":"date-time","title":"First Scheduled At"},"test_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Test Count"}},"type":"object","required":["kind","campaign_stage_id","stage_name","stage_position","campaign_id","campaign_name","segment_id","segment_name","segment_member_count","scheduled_count","sent_count","failed_count","first_scheduled_at","test_count"],"title":"ActivityBatchInfo"},"ActivityCalendarDayInfo":{"properties":{"day":{"type":"string","format":"date","title":"Day"},"is_today":{"type":"boolean","title":"Is Today"},"sent_total":{"type":"integer","title":"Sent Total"},"scheduled_total":{"type":"integer","title":"Scheduled Total"},"failed_total":{"type":"integer","title":"Failed Total"},"batches":{"items":{"$ref":"#/components/schemas/ActivityBatchInfo"},"type":"array","title":"Batches"}},"type":"object","required":["day","is_today","sent_total","scheduled_total","failed_total","batches"],"title":"ActivityCalendarDayInfo"},"ActivityCalendarResult":{"properties":{"week_start":{"type":"string","format":"date","title":"Week Start"},"timezone":{"type":"string","title":"Timezone"},"days":{"items":{"$ref":"#/components/schemas/ActivityCalendarDayInfo"},"type":"array","title":"Days"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["week_start","timezone","days","computed_at"],"title":"ActivityCalendarResult"},"ActivityDayResult":{"properties":{"day":{"type":"string","format":"date","title":"Day"},"timezone":{"type":"string","title":"Timezone"},"batches":{"items":{"$ref":"#/components/schemas/ActivityBatchInfo"},"type":"array","title":"Batches"},"testing_families":{"items":{"$ref":"#/components/schemas/ActivityTestingFamilyInfo"},"type":"array","title":"Testing Families"},"testing_holdout_count":{"type":"integer","title":"Testing Holdout Count"},"testing_test_count":{"type":"integer","title":"Testing Test Count"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["day","timezone","batches","testing_families","testing_holdout_count","testing_test_count","computed_at"],"title":"ActivityDayResult"},"ActivityHeatmapResult":{"properties":{"configured":{"type":"boolean","title":"Configured"},"event_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Key"},"window_days":{"type":"integer","title":"Window Days"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"weekday_labels":{"items":{"type":"string"},"type":"array","title":"Weekday Labels"},"values":{"items":{"items":{"type":"number"},"type":"array"},"type":"array","title":"Values"},"max_value":{"type":"number","title":"Max Value"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["configured","event_key","window_days","tz","weekday_labels","values","max_value","computed_at"],"title":"ActivityHeatmapResult"},"ActivityOverviewSummaryResult":{"properties":{"sent_last_7d":{"$ref":"#/components/schemas/ImpactStatInfo"},"scheduled_next_7d":{"type":"integer","title":"Scheduled Next 7D"},"scheduled_campaign_count":{"type":"integer","title":"Scheduled Campaign Count"},"scheduled_testing_family_count":{"type":"integer","title":"Scheduled Testing Family Count"},"contacts_reached_7d":{"type":"integer","title":"Contacts Reached 7D"},"active_contacts_total":{"type":"integer","title":"Active Contacts Total"},"failed_systemic_7d":{"type":"integer","title":"Failed Systemic 7D","default":0},"failed_undeliverable_7d":{"type":"integer","title":"Failed Undeliverable 7D","default":0},"sent_scheduled_7d":{"type":"integer","title":"Sent Scheduled 7D","default":0},"delivery_rate_systemic_7d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Delivery Rate Systemic 7D"},"reachable_share_7d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reachable Share 7D"},"attempted_7d":{"type":"integer","title":"Attempted 7D","default":0},"window_expired_7d":{"type":"integer","title":"Window Expired 7D","default":0},"sent_on_time_rate_7d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sent On Time Rate 7D"},"messages_queued":{"type":"integer","title":"Messages Queued"},"oldest_queued_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest Queued At"},"series":{"items":{"$ref":"#/components/schemas/ActivitySendDayInfo"},"type":"array","title":"Series"},"timezone":{"type":"string","title":"Timezone"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["sent_last_7d","scheduled_next_7d","scheduled_campaign_count","scheduled_testing_family_count","contacts_reached_7d","active_contacts_total","messages_queued","oldest_queued_at","series","timezone","computed_at"],"title":"ActivityOverviewSummaryResult"},"ActivitySendDayInfo":{"properties":{"day":{"type":"string","format":"date","title":"Day"},"sent":{"type":"integer","title":"Sent"},"scheduled":{"type":"integer","title":"Scheduled"},"failed":{"type":"integer","title":"Failed"},"window_expired":{"type":"integer","title":"Window Expired","default":0},"failed_systemic":{"type":"integer","title":"Failed Systemic","default":0},"is_today":{"type":"boolean","title":"Is Today"}},"type":"object","required":["day","sent","scheduled","failed","is_today"],"title":"ActivitySendDayInfo"},"ActivityTestingFamilyInfo":{"properties":{"family_root_variant_id":{"type":"string","format":"uuid","title":"Family Root Variant Id"},"members":{"items":{"$ref":"#/components/schemas/ActivityTestingMemberInfo"},"type":"array","title":"Members"},"region_names":{"items":{"type":"string"},"type":"array","title":"Region Names","default":[]}},"type":"object","required":["family_root_variant_id","members"],"title":"ActivityTestingFamilyInfo"},"ActivityTestingMemberInfo":{"properties":{"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"display_copy":{"type":"string","title":"Display Copy","default":""},"display_body":{"type":"string","title":"Display Body","default":""},"channel":{"type":"string","title":"Channel"},"scheduled_count":{"type":"integer","title":"Scheduled Count"},"sent_count":{"type":"integer","title":"Sent Count"},"failed_count":{"type":"integer","title":"Failed Count"}},"type":"object","required":["variant_id","name","channel","scheduled_count","sent_count","failed_count"],"title":"ActivityTestingMemberInfo"},"AdInspirationItemInfo":{"properties":{"id":{"type":"string","title":"Id"},"source":{"type":"string","title":"Source"},"external_ref":{"type":"string","title":"External Ref"},"advertiser_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Advertiser Name"},"headline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headline"},"primary_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Text"},"cta_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta Label"},"media_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Media Kind"},"inspiration_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inspiration Summary"},"inspiration_display":{"type":"string","title":"Inspiration Display"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At"}},"type":"object","required":["id","source","external_ref","inspiration_display","fetched_at"],"title":"AdInspirationItemInfo","description":"Public list shape for a stored ad-inspiration item.\n\nDecouples the API contract from the ``AdInspirationItem`` table model,\ndropping internal fields (``organization_id``, ``raw_payload``)."},"AdInspirationRefreshStatusResponse":{"properties":{"status":{"$ref":"#/components/schemas/JobRunStatus"},"pulled_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pulled Count"}},"type":"object","required":["status"],"title":"AdInspirationRefreshStatusResponse"},"AdVariantGenerationMode":{"type":"string","enum":["threshold"],"title":"AdVariantGenerationMode","description":"The generation pipeline one manual ad-variant run drives.\n\nSingle-member since the classic slot pipeline's removal — kept on the\nwire because deployed clients pin ``mode=\"threshold\"`` explicitly.\n``THRESHOLD`` is the over-generate, grade, and gate pipeline\n(:class:`DraftLifecycleCopyUseCase`) under\n``VsSelectionPolicy.THRESHOLD``: one emission of candidates, one grading\npass, and every candidate clearing the absolute bar is revealed (0 to n)."},"AdVariantGenerationResult":{"properties":{"requested":{"type":"integer","title":"Requested"},"channel":{"type":"string","title":"Channel"},"drafts":{"items":{"$ref":"#/components/schemas/GeneratedAdVariantDraft"},"type":"array","title":"Drafts"}},"type":"object","required":["requested","channel","drafts"],"title":"AdVariantGenerationResult","description":"A generation run's drafts — live snapshot or completed result.\n\nWhile the run is live, the status poll serves the worker's growing\n``{job_id}:partial`` snapshot in this same shape (drafts in completion\norder); the final job result equals the last snapshot. Failed slots are\nsimply absent from ``drafts``, so ``len(drafts) < requested`` reads as\n\"generated k of n\"."},"AdVariantGenerationStatusResponse":{"properties":{"status":{"$ref":"#/components/schemas/JobRunStatus"},"result":{"anyOf":[{"$ref":"#/components/schemas/AdVariantGenerationResult"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["status"],"title":"AdVariantGenerationStatusResponse"},"AdhocPushDraft":{"properties":{"title":{"type":"string","minLength":1,"title":"Title"},"body":{"type":"string","minLength":1,"title":"Body"}},"type":"object","required":["title","body"],"title":"AdhocPushDraft","description":"Inline push copy for a variant-less adhoc send (``variant_id=NULL``\nrow; push-only in v1).\n\nBoth fields strip before the length check, so a whitespace-only title\nis rejected rather than stored as copy that renders blank on a phone\n(a bare ``min_length=1`` counts the space)."},"AdminAttributeSyncInfo":{"properties":{"org_name":{"type":"string","title":"Org Name"},"mapping_id":{"type":"string","format":"uuid","title":"Mapping Id"},"attribute_name":{"type":"string","title":"Attribute Name"},"is_enabled":{"type":"boolean","title":"Is Enabled","default":true},"last_synced_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Synced At"},"last_sync_duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Sync Duration Ms"},"consecutive_failures":{"type":"integer","title":"Consecutive Failures","default":0},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"degraded":{"type":"boolean","title":"Degraded","default":false},"last_reconciliation_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Reconciliation Started At"},"last_reconciliation_completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Reconciliation Completed At"},"reconcile_wedged":{"type":"boolean","title":"Reconcile Wedged","default":false}},"type":"object","required":["org_name","mapping_id","attribute_name"],"title":"AdminAttributeSyncInfo"},"AdminCampaignStageHealthInfo":{"properties":{"org_name":{"type":"string","title":"Org Name"},"campaign_name":{"type":"string","title":"Campaign Name"},"stage_label":{"type":"string","title":"Stage Label"},"stage_position":{"type":"integer","title":"Stage Position"},"segment_members":{"type":"integer","title":"Segment Members","default":0},"due_now_members":{"type":"integer","title":"Due Now Members","default":0},"members_sent":{"type":"integer","title":"Members Sent","default":0},"members_held_back":{"type":"integer","title":"Members Held Back","default":0},"consecutive_unproductive_ticks":{"type":"integer","title":"Consecutive Unproductive Ticks","default":0},"oldest_untouched_entered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest Untouched Entered At"}},"type":"object","required":["org_name","campaign_name","stage_label","stage_position"],"title":"AdminCampaignStageHealthInfo"},"AdminContactSyncInfo":{"properties":{"org_name":{"type":"string","title":"Org Name"},"integration_status":{"type":"string","title":"Integration Status"},"last_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run At"},"has_cursor":{"type":"boolean","title":"Has Cursor","default":false},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"}},"type":"object","required":["org_name","integration_status"],"title":"AdminContactSyncInfo"},"AdminEventSyncInfo":{"properties":{"org_name":{"type":"string","title":"Org Name"},"event_key":{"type":"string","title":"Event Key"},"integration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Integration Id"},"is_enabled":{"type":"boolean","title":"Is Enabled","default":true},"last_synced_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Synced At"},"last_sync_duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Sync Duration Ms"},"last_row_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Row Count"},"failure_count":{"type":"integer","title":"Failure Count","default":0},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"}},"type":"object","required":["org_name","event_key"],"title":"AdminEventSyncInfo"},"AdminExperimentInstanceHealthInfo":{"properties":{"org_name":{"type":"string","title":"Org Name"},"experiment_instance_id":{"type":"string","format":"uuid","title":"Experiment Instance Id"},"variant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Name"},"cohort_date":{"type":"string","format":"date","title":"Cohort Date"},"status":{"$ref":"#/components/schemas/ExperimentInstanceStatus"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"member_count":{"type":"integer","title":"Member Count","default":0},"pending_count":{"type":"integer","title":"Pending Count","default":0},"sent_count":{"type":"integer","title":"Sent Count","default":0},"held_back_count":{"type":"integer","title":"Held Back Count","default":0},"failed_count":{"type":"integer","title":"Failed Count","default":0},"undeliverable_count":{"type":"integer","title":"Undeliverable Count","default":0},"skipped_count":{"type":"integer","title":"Skipped Count","default":0},"skipped_no_address_count":{"type":"integer","title":"Skipped No Address Count","default":0},"skipped_contact_deleted_count":{"type":"integer","title":"Skipped Contact Deleted Count","default":0}},"type":"object","required":["org_name","experiment_instance_id","cohort_date","status"],"title":"AdminExperimentInstanceHealthInfo"},"AdminExperimentStateCountInfo":{"properties":{"source_state_id":{"type":"string","format":"uuid","title":"Source State Id"},"contacts_in_state":{"type":"integer","title":"Contacts In State"}},"type":"object","required":["source_state_id","contacts_in_state"],"title":"AdminExperimentStateCountInfo"},"AdminExperimentSyncInfo":{"properties":{"org_name":{"type":"string","title":"Org Name"},"experiment_definition_id":{"type":"string","format":"uuid","title":"Experiment Definition Id"},"variant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Name"},"source_state_id":{"type":"string","format":"uuid","title":"Source State Id"},"last_instance_created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Instance Created At"},"instance_count":{"type":"integer","title":"Instance Count","default":0},"failure_count":{"type":"integer","title":"Failure Count","default":0},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"}},"type":"object","required":["org_name","experiment_definition_id","source_state_id"],"title":"AdminExperimentSyncInfo"},"AdminFailureGroupInfo":{"properties":{"fingerprint":{"type":"string","title":"Fingerprint"},"count":{"type":"integer","title":"Count","default":0},"latest_at":{"type":"string","format":"date-time","title":"Latest At"},"where_label":{"type":"string","title":"Where Label"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["fingerprint","latest_at","where_label"],"title":"AdminFailureGroupInfo"},"AdminNotificationCohortBucketInfo":{"properties":{"hour":{"type":"string","format":"date-time","title":"Hour"},"sent":{"type":"integer","title":"Sent"},"scheduled_open":{"type":"integer","title":"Scheduled Open"},"failed_systemic":{"type":"integer","title":"Failed Systemic"},"undeliverable":{"type":"integer","title":"Undeliverable"},"window_expired":{"type":"integer","title":"Window Expired"},"policy_suppressed":{"type":"integer","title":"Policy Suppressed"},"cohort":{"type":"integer","title":"Cohort"}},"type":"object","required":["hour","sent","scheduled_open","failed_systemic","undeliverable","window_expired","policy_suppressed","cohort"],"title":"AdminNotificationCohortBucketInfo"},"AdminNotificationCohortSeriesResponse":{"properties":{"window_end":{"type":"string","format":"date-time","title":"Window End"},"buckets":{"items":{"$ref":"#/components/schemas/AdminNotificationCohortBucketInfo"},"type":"array","title":"Buckets"}},"type":"object","required":["window_end","buckets"],"title":"AdminNotificationCohortSeriesResponse"},"AdminNotificationDeliveryInfo":{"properties":{"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"org_name":{"type":"string","title":"Org Name"},"channel":{"$ref":"#/components/schemas/NotificationChannel"},"pending_count":{"type":"integer","title":"Pending Count","default":0},"due_count":{"type":"integer","title":"Due Count","default":0},"sending_count":{"type":"integer","title":"Sending Count","default":0},"sent_count":{"type":"integer","title":"Sent Count","default":0},"failed_count":{"type":"integer","title":"Failed Count","default":0},"undeliverable_count":{"type":"integer","title":"Undeliverable Count","default":0},"cancelled_count":{"type":"integer","title":"Cancelled Count","default":0},"unsubscribed_count":{"type":"integer","title":"Unsubscribed Count","default":0},"held_back_count":{"type":"integer","title":"Held Back Count","default":0},"suppressed_count":{"type":"integer","title":"Suppressed Count","default":0},"last_sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Sent At"},"last_failure_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Failure At"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"expired_count":{"type":"integer","title":"Expired Count","default":0},"policy_suppressed_count":{"type":"integer","title":"Policy Suppressed Count","default":0},"oldest_due_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Oldest Due Minutes"},"delivered_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Delivered Rate"},"degraded_since":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Degraded Since"},"hour_buckets":{"items":{"$ref":"#/components/schemas/AdminNotificationHourBucketInfo"},"type":"array","title":"Hour Buckets"}},"type":"object","required":["organization_id","org_name","channel"],"title":"AdminNotificationDeliveryInfo"},"AdminNotificationFailureGroupInfo":{"properties":{"failure_class":{"type":"string","title":"Failure Class"},"raw_prefix":{"type":"string","title":"Raw Prefix"},"count":{"type":"integer","title":"Count"},"first_seen":{"type":"string","format":"date-time","title":"First Seen"},"last_seen":{"type":"string","format":"date-time","title":"Last Seen"},"burst_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Burst Note"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","required":["failure_class","raw_prefix","count","first_seen","last_seen"],"title":"AdminNotificationFailureGroupInfo"},"AdminNotificationFailureGroupsResponse":{"properties":{"groups":{"items":{"$ref":"#/components/schemas/AdminNotificationFailureGroupInfo"},"type":"array","title":"Groups"},"truncated":{"type":"boolean","title":"Truncated"}},"type":"object","required":["groups","truncated"],"title":"AdminNotificationFailureGroupsResponse"},"AdminNotificationHourBucketInfo":{"properties":{"hour":{"type":"string","format":"date-time","title":"Hour"},"sent":{"type":"integer","title":"Sent","default":0},"cohort":{"type":"integer","title":"Cohort","default":0}},"type":"object","required":["hour"],"title":"AdminNotificationHourBucketInfo"},"AdminPushTokenSyncInfo":{"properties":{"org_name":{"type":"string","title":"Org Name"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"integration_provider":{"$ref":"#/components/schemas/IntegrationProvider"},"integration_status":{"$ref":"#/components/schemas/IntegrationStatus"},"last_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run At"},"last_completed_sweep_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Completed Sweep At"},"forward_cursor_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Forward Cursor At"},"reconciliation_cursor_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reconciliation Cursor At"},"last_reconciliation_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Reconciliation Started At"},"last_reconciliation_completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Reconciliation Completed At"},"lease_expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Lease Expires At"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"}},"type":"object","required":["org_name","integration_id","integration_provider","integration_status"],"title":"AdminPushTokenSyncInfo"},"AdminSegmentSyncInfo":{"properties":{"org_name":{"type":"string","title":"Org Name"},"segment_name":{"type":"string","title":"Segment Name"},"is_enabled":{"type":"boolean","title":"Is Enabled","default":true},"last_synced_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Synced At"},"last_sync_duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Sync Duration Ms"},"consecutive_failures":{"type":"integer","title":"Consecutive Failures","default":0},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"}},"type":"object","required":["org_name","segment_name"],"title":"AdminSegmentSyncInfo"},"AdminWorkerLivenessInfo":{"properties":{"last_beat_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Beat At"},"stale":{"type":"boolean","title":"Stale","default":true},"worker_alive":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Worker Alive"},"queue_depth":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Queue Depth"},"interactive_worker_alive":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Interactive Worker Alive"},"interactive_queue_depth":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interactive Queue Depth"}},"type":"object","title":"AdminWorkerLivenessInfo"},"AgentInsightResponse":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"region_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Id"},"state_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State Id"},"kind":{"$ref":"#/components/schemas/InsightKind"},"title":{"type":"string","title":"Title"},"summary":{"type":"string","title":"Summary"},"scope_key":{"type":"string","title":"Scope Key"},"dedup_key":{"type":"string","title":"Dedup Key"},"evidence":{"items":{"$ref":"#/components/schemas/EvidenceRef"},"type":"array","title":"Evidence"},"confidence":{"$ref":"#/components/schemas/InsightConfidence"},"status":{"$ref":"#/components/schemas/InsightStatus"},"supersedes_insight_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Supersedes Insight Id"},"superseded_by_insight_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Superseded By Insight Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","organization_id","kind","title","summary","scope_key","dedup_key","evidence","confidence","status"],"title":"AgentInsightResponse"},"AgentStepSpec":{"properties":{"id":{"anyOf":[{"type":"string","pattern":"^s[1-9][0-9]{0,5}$"},{"type":"null"}],"title":"Id"},"title":{"type":"string","maxLength":120,"minLength":1,"title":"Title"},"inputs":{"items":{"$ref":"#/components/schemas/StepInputSpec"},"type":"array","maxItems":16,"title":"Inputs"},"kind":{"type":"string","const":"agent","title":"Kind"},"image":{"type":"string","maxLength":255,"pattern":"^(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)*)(?::[0-9]{1,5})?/)?[a-z0-9]+(?:(?:[._]|__|-+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|-+)[a-z0-9]+)*)*(?::[A-Za-z0-9_][A-Za-z0-9_.-]{0,127}|@sha256:[a-f0-9]{64})$","title":"Image"},"prompt":{"type":"string","maxLength":8000,"minLength":1,"title":"Prompt"}},"additionalProperties":false,"type":"object","required":["title","kind","image","prompt"],"title":"AgentStepSpec","description":"One headless agent run inside the member's own container image.\n\n``image`` is the public image the agent runs in and ``prompt`` its\ninstruction; turn, cost, and wall-clock caps are platform constants,\nnever member input. The output is the agent's final reply under\n``AGENT_STEP_RESULT_FIELD``, the one key a later step can bind."},"AggregateOperation":{"type":"string","enum":["max","min","sum","avg","count","exists","latest_by","earliest_by"],"title":"AggregateOperation"},"AggregateSource":{"properties":{"kind":{"type":"string","const":"aggregate","title":"Kind","default":"aggregate"},"operation":{"$ref":"#/components/schemas/AggregateOperation"},"column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Column"},"rank_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rank Column"},"value_type":{"$ref":"#/components/schemas/ContactAttributeValueType"}},"type":"object","required":["operation","value_type"],"title":"AggregateSource"},"AllocatorStrategy":{"type":"string","enum":["balanced","ucb"],"title":"AllocatorStrategy"},"AndNode":{"properties":{"kind":{"type":"string","const":"and","title":"Kind"},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/LeafNode"},{"$ref":"#/components/schemas/EventLeafNode"},{"$ref":"#/components/schemas/AndNode"},{"$ref":"#/components/schemas/OrNode"},{"$ref":"#/components/schemas/NotNode"}],"discriminator":{"propertyName":"kind","mapping":{"and":"#/components/schemas/AndNode","event":"#/components/schemas/EventLeafNode","leaf":"#/components/schemas/LeafNode","not":"#/components/schemas/NotNode","or":"#/components/schemas/OrNode"}}},"type":"array","title":"Children"}},"additionalProperties":false,"type":"object","required":["kind","children"],"title":"AndNode","description":"Logical AND over ``children``. Children are themselves nodes —\ntypically leaves at depth 3, but can be nested AND/OR/NOT subtrees\nwithin the depth budget."},"ApiKeyListScope":{"type":"string","enum":["mine","all"],"title":"ApiKeyListScope"},"ApiKeyResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"status":{"$ref":"#/components/schemas/ApiKeyStatus"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"polymorphic_app_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Polymorphic App Id"},"member":{"$ref":"#/components/schemas/MemberSummaryInfo"}},"type":"object","required":["id","name","key_prefix","status","created_at","revoked_at","last_used_at","polymorphic_app_id","member"],"title":"ApiKeyResponse"},"ApiKeySortField":{"type":"string","enum":["name","created_at","last_used_at"],"title":"ApiKeySortField"},"ApiKeyStatus":{"type":"string","enum":["active","revoked"],"title":"ApiKeyStatus"},"ApiKeyVerifyRequest":{"properties":{"key":{"type":"string","title":"Key"},"host":{"type":"string","title":"Host"}},"type":"object","required":["key","host"],"title":"ApiKeyVerifyRequest"},"AppStoreBlock":{"properties":{"block_type":{"type":"string","const":"app_store","title":"Block Type","default":"app_store"},"heading":{"type":"string","title":"Heading","default":"Open App"},"apple_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apple Url"},"play_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Play Url"}},"additionalProperties":false,"type":"object","title":"AppStoreBlock"},"ApplyPushTokenMappingRequest":{"properties":{"mapping":{"$ref":"#/components/schemas/MappingChoiceConfig"},"proposal_version":{"type":"integer","title":"Proposal Version"}},"type":"object","required":["mapping","proposal_version"],"title":"ApplyPushTokenMappingRequest","description":"Operator-facing apply payload for a discovered push-token mapping.\n\nCarries the structured mapping the operator selected from the\ndrawer (preserving the join + filter shape the LLM emitted) and the\n``proposal_version`` it was generated against — the use case\nrefuses a stale apply (operator opened the drawer, fresh discovery\noverwrote the proposal mid-air, operator clicked Apply)."},"ApprovalStepSpec":{"properties":{"id":{"anyOf":[{"type":"string","pattern":"^s[1-9][0-9]{0,5}$"},{"type":"null"}],"title":"Id"},"title":{"type":"string","maxLength":120,"minLength":1,"title":"Title"},"inputs":{"items":{"$ref":"#/components/schemas/StepInputSpec"},"type":"array","maxItems":16,"title":"Inputs"},"kind":{"type":"string","const":"approval","title":"Kind"},"message":{"type":"string","maxLength":8000,"minLength":1,"title":"Message"},"timeout_minutes":{"type":"integer","maximum":20160.0,"minimum":5.0,"title":"Timeout Minutes"}},"additionalProperties":false,"type":"object","required":["title","kind","message","timeout_minutes"],"title":"ApprovalStepSpec"},"ApproveToolRequest":{"properties":{"tool_use_id":{"type":"string","maxLength":200,"minLength":1,"title":"Tool Use Id"},"decision":{"type":"string","enum":["approve","reject"],"title":"Decision"},"reason":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Reason"},"structured_response":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Structured Response"}},"type":"object","required":["tool_use_id","decision"],"title":"ApproveToolRequest"},"ArmConversionRateInfo":{"properties":{"conversion_definition_id":{"type":"string","format":"uuid","title":"Conversion Definition Id"},"rate":{"type":"number","title":"Rate"}},"type":"object","required":["conversion_definition_id","rate"],"title":"ArmConversionRateInfo"},"ArmCountInfo":{"properties":{"definition_id":{"type":"string","format":"uuid","title":"Definition Id"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["definition_id","count"],"title":"ArmCountInfo"},"ArmEventRateInfo":{"properties":{"n":{"type":"integer","title":"N"},"did":{"type":"integer","title":"Did"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"}},"type":"object","required":["n","did"],"title":"ArmEventRateInfo","description":"One arm's per-cohort outcome figure (Polymorph or Global control).\n\n``n`` is the arm's contact count in the cohort; ``did`` is how many of\nthem fired the event at least once, so ``did <= n`` — the frontend\nforms the share ``did / n``. ``value`` is the per-member mean for\nvalue measures (``value_sum / n``); ``None`` when the cell is a share\n(the boolean measure), where ``did / n`` is plotted instead."},"AssetGenerationResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"$ref":"#/components/schemas/AssetGenerationStatus"},"prompt":{"type":"string","title":"Prompt"},"aspect_ratio":{"type":"string","title":"Aspect Ratio"},"image_size":{"type":"string","title":"Image Size"},"model":{"type":"string","title":"Model"},"reference_asset_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Reference Asset Ids"},"output_asset":{"anyOf":[{"$ref":"#/components/schemas/AssetResponse"},{"type":"null"}]},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","status","prompt","aspect_ratio","image_size","model","reference_asset_ids","output_asset","error_message","created_at"],"title":"AssetGenerationResponse","description":"Full read model for an ``asset_generations`` row.\n\n``output_asset`` is the materialized ``Asset`` rendered through the same\npathway as the assets list (``public_url`` included); ``None`` while the\nrun is pending/running/failed, or after the output asset was deleted."},"AssetGenerationStatus":{"type":"string","enum":["pending","running","succeeded","failed"],"title":"AssetGenerationStatus"},"AssetGenerationSummaryInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"prompt":{"type":"string","title":"Prompt"},"model":{"type":"string","title":"Model"},"reference_asset_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Reference Asset Ids"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","prompt","model","reference_asset_ids","created_at"],"title":"AssetGenerationSummaryInfo","description":"Compact generation-provenance shape carried on a generated asset."},"AssetKind":{"type":"string","enum":["image","file","font"],"title":"AssetKind"},"AssetResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"kind":{"$ref":"#/components/schemas/AssetKind"},"filename":{"type":"string","title":"Filename"},"content_type":{"type":"string","title":"Content Type"},"size_bytes":{"type":"integer","title":"Size Bytes"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"public_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Url"},"origin":{"type":"string","enum":["uploaded","reference","generated"],"title":"Origin","default":"uploaded"},"annotation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Annotation"},"generation":{"anyOf":[{"$ref":"#/components/schemas/AssetGenerationSummaryInfo"},{"type":"null"}]}},"type":"object","required":["id","organization_id","kind","filename","content_type","size_bytes","created_at","public_url"],"title":"AssetResponse","description":"Minimal asset metadata returned from CRUD endpoints."},"AssetSignedUrlResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"signed_url":{"type":"string","title":"Signed Url"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["id","signed_url","expires_at"],"title":"AssetSignedUrlResponse","description":"Short-lived signed URL for displaying an asset's bytes."},"AttachMorphSessionRequest":{"properties":{"draft_id":{"type":"string","title":"Draft Id"},"lease_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lease Id"},"route":{"type":"string","title":"Route"},"page_age_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Page Age Ms"}},"type":"object","required":["draft_id","route"],"title":"AttachMorphSessionRequest"},"AttachMorphSessionResponse":{"properties":{"morph_session_id":{"type":"string","format":"uuid","title":"Morph Session Id"},"conversation_id":{"type":"string","format":"uuid","title":"Conversation Id"},"session_origin":{"type":"string","title":"Session Origin"},"sandbox_state":{"$ref":"#/components/schemas/MorphSandboxState"}},"type":"object","required":["morph_session_id","conversation_id","session_origin","sandbox_state"],"title":"AttachMorphSessionResponse"},"AttributeBreakdown":{"properties":{"mode":{"type":"string","const":"attribute","title":"Mode","default":"attribute"},"event_definition_id":{"type":"string","format":"uuid","title":"Event Definition Id"},"attribute_key":{"type":"string","title":"Attribute Key"}},"type":"object","required":["event_definition_id","attribute_key"],"title":"AttributeBreakdown"},"AttributeBucket":{"properties":{"attribute_key":{"type":"string","title":"Attribute Key"},"value_type":{"type":"string","enum":["boolean","number","datetime"],"title":"Value Type"},"bucket":{"oneOf":[{"$ref":"#/components/schemas/BooleanBucket"},{"$ref":"#/components/schemas/RangeBucket"},{"$ref":"#/components/schemas/DatetimeRangeBucket"},{"$ref":"#/components/schemas/UnsetBucket"}],"title":"Bucket","discriminator":{"propertyName":"kind","mapping":{"boolean":"#/components/schemas/BooleanBucket","datetime_range":"#/components/schemas/DatetimeRangeBucket","range":"#/components/schemas/RangeBucket","unset":"#/components/schemas/UnsetBucket"}}}},"type":"object","required":["attribute_key","value_type","bucket"],"title":"AttributeBucket","description":"One attribute-key + the bucket condition on it. The leaf-level\nunit the bucket-predicate SQL builder ANDs together."},"AttributeDistributionResponse":{"properties":{"chart":{"$ref":"#/components/schemas/ChartInfo"},"value_type":{"$ref":"#/components/schemas/ContactAttributeValueType"},"total_contacts":{"type":"integer","title":"Total Contacts"},"set_count":{"type":"integer","title":"Set Count"},"unset_count":{"type":"integer","title":"Unset Count"}},"type":"object","required":["chart","value_type","total_contacts","set_count","unset_count"],"title":"AttributeDistributionResponse"},"AttributeFilter":{"properties":{"attribute_key":{"type":"string","title":"Attribute Key"},"value_type":{"type":"string","enum":["number","boolean","datetime","string","entity"],"title":"Value Type"},"op":{"type":"string","enum":["eq","neq","gt","gte","lt","lte","in"],"title":"Op"},"value":{"title":"Value"},"entity_kind":{"anyOf":[{"type":"string","enum":["contact","member","segment","campaign","integration","attribute","notification"]},{"type":"null"}],"title":"Entity Kind"}},"type":"object","required":["attribute_key","value_type","op"],"title":"AttributeFilter"},"AttributeKeyResponse":{"properties":{"attribute_key":{"type":"string","title":"Attribute Key"},"value_type":{"$ref":"#/components/schemas/ContactAttributeValueType"}},"type":"object","required":["attribute_key","value_type"],"title":"AttributeKeyResponse","description":"One distinct ``attribute_key`` present in the org, with its\n``value_type`` — the breadth of the EAV schema, not a per-contact\nrow. ``value_type`` is ``MIN(value_type)`` across the key's rows;\na single key carries one type in practice (the owning mapping pins\nit), so the MIN is a deterministic representative."},"AttributeLocaleSource":{"properties":{"kind":{"type":"string","const":"attribute","title":"Kind","default":"attribute"},"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"AttributeLocaleSource","description":"Locale-typed contact attribute referenced inside a marker tag.\n\nThe renderer resolves ``name`` to the contact's stored locale value at\nsend time; without a contact (no-contact preview), resolution falls\nback to the source locale and the marker emits its body verbatim."},"AttributeMappingConfig":{"properties":{"table":{"type":"string","title":"Table"},"external_id_column":{"type":"string","title":"External Id Column"},"scope_filters":{"items":{"$ref":"#/components/schemas/SourceTableFilter"},"type":"array","title":"Scope Filters"},"membership_filters":{"items":{"$ref":"#/components/schemas/SourceTableFilter"},"type":"array","title":"Membership Filters"},"source":{"oneOf":[{"$ref":"#/components/schemas/ColumnSource"},{"$ref":"#/components/schemas/PredicateSource"},{"$ref":"#/components/schemas/AggregateSource"},{"$ref":"#/components/schemas/TopKSource"}],"title":"Source","discriminator":{"propertyName":"kind","mapping":{"aggregate":"#/components/schemas/AggregateSource","column":"#/components/schemas/ColumnSource","predicate":"#/components/schemas/PredicateSource","top_k":"#/components/schemas/TopKSource"}}},"row_limit":{"type":"integer","title":"Row Limit","default":50000},"dirty_scan_strategy":{"$ref":"#/components/schemas/DirtyScanStrategy","default":"scoped"},"updated_at_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At Column","default":"updated_at"},"keyset_tiebreaker_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Keyset Tiebreaker Column"}},"type":"object","required":["table","external_id_column","source"],"title":"AttributeMappingConfig"},"AttributeMappingResponse":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"integration_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Id"},"source_kind":{"type":"string","title":"Source Kind"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"value_type":{"$ref":"#/components/schemas/ContactAttributeValueType"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"last_synced_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Synced At"},"last_sync_duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Sync Duration Ms"},"last_row_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Row Count"},"total_rows":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Rows"},"consecutive_failures":{"type":"integer","title":"Consecutive Failures"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","organization_id","name","source_kind","config","value_type","is_enabled","consecutive_failures"],"title":"AttributeMappingResponse"},"AttributeMappingRowCountsRequest":{"properties":{"mapping_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Mapping Ids"}},"type":"object","required":["mapping_ids"],"title":"AttributeMappingRowCountsRequest"},"AttributeMappingRowCountsResponse":{"properties":{"counts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Counts"}},"type":"object","required":["counts"],"title":"AttributeMappingRowCountsResponse","description":"Per-mapping ``contact_attributes`` row counts, keyed by mapping id.\n\nThe list endpoint no longer counts inline — counting owned rows is a\nfull table scan for large orgs (Pingo: ~60M rows) and blocked every\npage load. The page renders the mappings first, then fetches these\ncounts lazily for the loaded ids. Mappings with zero owned rows are\nabsent from ``counts``; the caller defaults to 0."},"AuthContextInfo":{"properties":{"user":{"$ref":"#/components/schemas/Member"},"organization":{"$ref":"#/components/schemas/Organization"},"organizations":{"items":{"$ref":"#/components/schemas/Organization"},"type":"array","title":"Organizations"},"role":{"$ref":"#/components/schemas/MemberOrganizationRole","default":"member"},"feature_gates":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Feature Gates","default":{}},"organization_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Logo Url"},"organization_logo_urls":{"additionalProperties":{"type":"string"},"type":"object","title":"Organization Logo Urls","default":{}},"pending_invites_count":{"type":"integer","title":"Pending Invites Count","default":0}},"type":"object","required":["user","organization","organizations"],"title":"AuthContextInfo"},"AutoAssignItemOutcome":{"type":"string","enum":["launched","no_region_match","not_approved","control_channel","not_found"],"title":"AutoAssignItemOutcome"},"AutoAssignVariantItemResult":{"properties":{"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"outcome":{"$ref":"#/components/schemas/AutoAssignItemOutcome"},"launched":{"items":{"$ref":"#/components/schemas/LaunchedRegionAssignmentInfo"},"type":"array","title":"Launched"},"skipped_regions":{"items":{"$ref":"#/components/schemas/SkippedRegionAssignmentInfo"},"type":"array","title":"Skipped Regions"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["variant_id","outcome"],"title":"AutoAssignVariantItemResult"},"BackfillEventDefinitionRequest":{"properties":{"window_days":{"type":"integer","maximum":90.0,"minimum":1.0,"title":"Window Days"}},"type":"object","required":["window_days"],"title":"BackfillEventDefinitionRequest"},"BatchActionRequest":{"properties":{"actions":{"items":{"$ref":"#/components/schemas/BatchInviteActionItem"},"type":"array","title":"Actions"}},"type":"object","required":["actions"],"title":"BatchActionRequest"},"BatchCohortEventRateRequest":{"properties":{"targets":{"items":{"$ref":"#/components/schemas/CohortEventRateTargetInfo"},"type":"array","maxItems":8,"minItems":1,"title":"Targets"},"contacted_window_days":{"anyOf":[{"type":"integer","enum":[1,7]},{"type":"null"}],"title":"Contacted Window Days"}},"type":"object","required":["targets"],"title":"BatchCohortEventRateRequest","description":"POST body for ``/overview/cohort-event-rates``.\n\n``targets`` is bounded 1..8 — one grid per pinned card, same cap as the\nlift strip's ``outcomes`` — so the engagement section's per-card fan-out\ncollapses into one round-trip. ``contacted_window_days`` is the shared\n\"Contacted last 1d/7d\" overlay applied to every target (``None`` = off);\n``Literal[1, 7]`` makes any other window unrepresentable."},"BatchCohortEventRateResult":{"properties":{"results":{"items":{"$ref":"#/components/schemas/CohortEventRateBatchEntryInfo"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"BatchCohortEventRateResult"},"BatchInviteActionItem":{"properties":{"token":{"type":"string","title":"Token"},"action":{"$ref":"#/components/schemas/InviteActionType"}},"type":"object","required":["token","action"],"title":"BatchInviteActionItem"},"BatchInviteResultItem":{"properties":{"token":{"type":"string","title":"Token"},"action":{"$ref":"#/components/schemas/InviteActionType"},"success":{"type":"boolean","title":"Success"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Id"}},"type":"object","required":["token","action","success"],"title":"BatchInviteResultItem"},"BodyTextBlock":{"properties":{"block_type":{"type":"string","const":"body_text","title":"Block Type","default":"body_text"},"body":{"type":"string","title":"Body","default":""},"size":{"type":"string","enum":["sm","md","lg"],"title":"Size","default":"md"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"alignment":{"type":"string","enum":["left","center"],"title":"Alignment","default":"left"},"eyebrow":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrow"},"eyebrow_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrow Color"},"headline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headline"},"cta_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta Label"},"cta_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta Url"}},"additionalProperties":false,"type":"object","title":"BodyTextBlock"},"Body_upload_asset":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_asset"},"Body_upload_brand_kit_source":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_brand_kit_source"},"Body_upload_brand_logo":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_brand_logo"},"Body_upload_brand_reference":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"annotation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Annotation"},"kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},"type":"object","required":["file"],"title":"Body_upload_brand_reference"},"Body_upload_organization_logo":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_organization_logo"},"BooleanBucket":{"properties":{"kind":{"type":"string","const":"boolean","title":"Kind"},"value":{"type":"boolean","title":"Value"}},"type":"object","required":["kind","value"],"title":"BooleanBucket"},"BooleanDiscretization":{"properties":{"kind":{"type":"string","const":"boolean","title":"Kind"}},"type":"object","required":["kind"],"title":"BooleanDiscretization"},"BrandFontFaceInfo":{"properties":{"family":{"type":"string","title":"Family"},"source":{"type":"string","enum":["google","uploaded","system"],"title":"Source"},"substitute_of":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Substitute Of"},"overridden":{"type":"boolean","title":"Overridden","default":false},"uploaded_asset_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Uploaded Asset Id"},"hosted_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hosted Url"},"hosted_format":{"anyOf":[{"type":"string","enum":["woff2","woff","truetype","opentype"]},{"type":"null"}],"title":"Hosted Format"}},"additionalProperties":false,"type":"object","required":["family","source"],"title":"BrandFontFaceInfo","description":"One resolved brand face as the Brand settings surface reads it.\n\n``family`` is the identified brand name for uploaded faces (the\nladder keeps the CSS name on ``synthetic_family``) and the resolved\nrenderable family otherwise. ``hosted_url``/``hosted_format`` let the\nsettings page load a self-hosted face with the same ``@font-face``\nsource emails use."},"BrandPreviewResponse":{"properties":{"channel":{"type":"string","enum":["email","sms","push"],"title":"Channel"},"fixture":{"type":"string","enum":["offer","personal_note"],"title":"Fixture"},"sender_label":{"type":"string","title":"Sender Label"},"sender_address":{"type":"string","title":"Sender Address"},"timestamp_label":{"type":"string","title":"Timestamp Label"},"subject":{"type":"string","title":"Subject"},"preheader":{"type":"string","title":"Preheader"},"html":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Html"},"sms":{"anyOf":[{"$ref":"#/components/schemas/RenderedSms"},{"type":"null"}]},"push":{"anyOf":[{"$ref":"#/components/schemas/RenderedPush"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["channel","fixture","sender_label","sender_address","timestamp_label","subject","preheader"],"title":"BrandPreviewResponse","description":"Channel-discriminated preview output."},"BrandReferenceInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"kind":{"$ref":"#/components/schemas/BrandReferenceKind"},"filename":{"type":"string","title":"Filename"},"content_type":{"type":"string","title":"Content Type"},"size_bytes":{"type":"integer","title":"Size Bytes"},"annotation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Annotation"},"font_family_display":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Font Family Display"},"public_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Url"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","kind","filename","content_type","size_bytes","annotation","font_family_display","public_url","created_at"],"title":"BrandReferenceInfo","description":"A brand reference plus the metadata of its backing asset.\n\n``public_url`` is the permanent ``/public/email-assets/{id}`` proxy URL for\n``asset`` and ``font`` kinds (both are publicly served), ``None`` for\n``reference_email`` (email bytes stay private)."},"BrandReferenceKind":{"type":"string","enum":["asset","reference_email","font"],"title":"BrandReferenceKind"},"BrandSymbolBlock":{"properties":{"block_type":{"type":"string","const":"brand_symbol","title":"Block Type","default":"brand_symbol"},"symbol_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol Url"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"additionalProperties":false,"type":"object","title":"BrandSymbolBlock","description":"Small symbol-mark + wordmark lockup above a hero headline.\n\nSymbol falls back to ``theme.logo_symbol_url``; label falls back to\nnothing (the org name is owned by the renderer caller, not the\ntheme). Both ``None`` renders as a layout-preserving spacer."},"BrandThemeResponse":{"properties":{"body_font_family":{"type":"string","title":"Body Font Family"},"heading_font_family":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Heading Font Family"},"primary_color":{"type":"string","title":"Primary Color"},"accent_color":{"type":"string","title":"Accent Color"},"logo_wordmark_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Wordmark Url"},"logo_wordmark_footer_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Wordmark Footer Url"},"logo_symbol_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Symbol Url"},"logo_favicon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Favicon Url"},"wash_background_color":{"type":"string","title":"Wash Background Color"},"body_text_color":{"type":"string","title":"Body Text Color"},"card_border_radius":{"type":"integer","title":"Card Border Radius"},"mailing_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mailing Address"},"brand_kit_extraction_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Kit Extraction Status"},"brand_kit_extracted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Kit Extracted At"},"typography":{"anyOf":[{"$ref":"#/components/schemas/BrandTypographyInfo"},{"type":"null"}]}},"type":"object","required":["body_font_family","heading_font_family","primary_color","accent_color","logo_wordmark_url","logo_wordmark_footer_url","logo_symbol_url","logo_favicon_url","wash_background_color","body_text_color","card_border_radius","mailing_address","brand_kit_extraction_status","brand_kit_extracted_at"],"title":"BrandThemeResponse"},"BrandTypographyInfo":{"properties":{"heading":{"anyOf":[{"$ref":"#/components/schemas/BrandFontFaceInfo"},{"type":"null"}]},"body":{"anyOf":[{"$ref":"#/components/schemas/BrandFontFaceInfo"},{"type":"null"}]},"heading_pinned":{"anyOf":[{"$ref":"#/components/schemas/BrandFontFaceInfo"},{"type":"null"}]},"body_pinned":{"anyOf":[{"$ref":"#/components/schemas/BrandFontFaceInfo"},{"type":"null"}]}},"additionalProperties":false,"type":"object","title":"BrandTypographyInfo","description":"Crawl faces plus manual pins, or absent when the org has neither.\n\n``heading``/``body`` stay the crawl-resolved faces (the revert target\nthe settings page names), ``None`` for a pin-before-any-crawl org.\n``*_pinned`` are the manual picks; a pin is the slot's active face.\n``overridden`` on a crawl face mirrors pin presence for that slot."},"BriefRegenerationOutcome":{"type":"string","enum":["updated","not_transferable"],"title":"BriefRegenerationOutcome"},"BriefStatTileInfo":{"properties":{"label":{"type":"string","title":"Label"},"value":{"type":"string","title":"Value"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","required":["label","value","note"],"title":"BriefStatTileInfo"},"BuildHarness":{"type":"string","enum":["claude_code","openai_agents"],"title":"BuildHarness","description":"The agent framework that drives an app build's passes."},"BuilderCredentialKind":{"type":"string","enum":["openai_api_key","openai_subscription"],"title":"BuilderCredentialKind"},"BuilderCredentialStatusInfo":{"properties":{"secret_hint":{"type":"string","title":"Secret Hint"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["secret_hint"],"title":"BuilderCredentialStatusInfo","description":"What the staff surface may know about a stored credential: that it\nexists, its last 4 characters, and when it changed — never the payload."},"BuilderCredentialsInfo":{"properties":{"openai_api_key":{"anyOf":[{"$ref":"#/components/schemas/BuilderCredentialStatusInfo"},{"type":"null"}]},"openai_subscription":{"anyOf":[{"$ref":"#/components/schemas/BuilderCredentialStatusInfo"},{"type":"null"}]},"active_strategy":{"$ref":"#/components/schemas/OpenAICredentialStrategy"},"build_harness":{"$ref":"#/components/schemas/BuildHarness"},"runtime_settings_revision":{"type":"integer","minimum":0.0,"title":"Runtime Settings Revision"},"is_polymorpher_enabled":{"type":"boolean","title":"Is Polymorpher Enabled"}},"type":"object","required":["active_strategy","build_harness","runtime_settings_revision","is_polymorpher_enabled"],"title":"BuilderCredentialsInfo"},"BuilderRuntimeSettingsInfo":{"properties":{"build_harness":{"$ref":"#/components/schemas/BuildHarness"},"active_strategy":{"$ref":"#/components/schemas/OpenAICredentialStrategy"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"},"is_polymorpher_enabled":{"type":"boolean","title":"Is Polymorpher Enabled"}},"type":"object","required":["build_harness","active_strategy","revision","is_polymorpher_enabled"],"title":"BuilderRuntimeSettingsInfo"},"BulkAllocatorStrategyResponse":{"properties":{"updated_count":{"type":"integer","title":"Updated Count"}},"type":"object","required":["updated_count"],"title":"BulkAllocatorStrategyResponse"},"BulkApproveItemOutcome":{"type":"string","enum":["approved","already_approved","rejected_variant","not_found"],"title":"BulkApproveItemOutcome"},"BulkApproveVariantItemResult":{"properties":{"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"outcome":{"$ref":"#/components/schemas/BulkApproveItemOutcome"}},"type":"object","required":["variant_id","outcome"],"title":"BulkApproveVariantItemResult"},"BulkApproveVariantsRequest":{"properties":{"variant_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":100,"minItems":1,"title":"Variant Ids"}},"type":"object","required":["variant_ids"],"title":"BulkApproveVariantsRequest"},"BulkApproveVariantsResult":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BulkApproveVariantItemResult"},"type":"array","title":"Items"},"approved":{"type":"integer","title":"Approved"}},"type":"object","required":["items","approved"],"title":"BulkApproveVariantsResult"},"BulkAutoAssignVariantsRequest":{"properties":{"variant_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":20,"minItems":1,"title":"Variant Ids"},"approve_first":{"type":"boolean","title":"Approve First","default":false}},"type":"object","required":["variant_ids"],"title":"BulkAutoAssignVariantsRequest"},"BulkAutoAssignVariantsResult":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AutoAssignVariantItemResult"},"type":"array","title":"Items"},"launched":{"type":"integer","title":"Launched"},"approve_outcomes":{"anyOf":[{"items":{"$ref":"#/components/schemas/BulkApproveVariantItemResult"},"type":"array"},{"type":"null"}],"title":"Approve Outcomes"}},"type":"object","required":["items","launched"],"title":"BulkAutoAssignVariantsResult"},"BulkCreateVariantsRequest":{"properties":{"variants":{"items":{"$ref":"#/components/schemas/VariantCreateRequest"},"type":"array","maxItems":20,"title":"Variants"}},"type":"object","required":["variants"],"title":"BulkCreateVariantsRequest"},"BulkCreateVariantsResult":{"properties":{"created":{"type":"integer","title":"Created"}},"type":"object","required":["created"],"title":"BulkCreateVariantsResult"},"BulkDeleteItemOutcome":{"type":"string","enum":["deleted","blocked","not_found"],"title":"BulkDeleteItemOutcome"},"BulkDeleteVariantItemResult":{"properties":{"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"outcome":{"$ref":"#/components/schemas/BulkDeleteItemOutcome"}},"type":"object","required":["variant_id","outcome"],"title":"BulkDeleteVariantItemResult"},"BulkDeleteVariantsRequest":{"properties":{"variant_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":100,"minItems":1,"title":"Variant Ids"},"reason":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Reason"}},"type":"object","required":["variant_ids"],"title":"BulkDeleteVariantsRequest"},"BulkDeleteVariantsResult":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BulkDeleteVariantItemResult"},"type":"array","title":"Items"},"deleted":{"type":"integer","title":"Deleted"}},"type":"object","required":["items","deleted"],"title":"BulkDeleteVariantsResult"},"BulkForkItemOutcome":{"type":"string","enum":["forked","skipped_existing_localization","unsupported_source","not_found"],"title":"BulkForkItemOutcome"},"BulkForkVariantItemResult":{"properties":{"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"outcome":{"$ref":"#/components/schemas/BulkForkItemOutcome"},"created_variant_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Created Variant Ids"}},"type":"object","required":["variant_id","outcome","created_variant_ids"],"title":"BulkForkVariantItemResult"},"BulkForkVariantsRequest":{"properties":{"variant_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":50,"minItems":1,"title":"Variant Ids"},"axis":{"$ref":"#/components/schemas/VariantForkAxis"},"send_window_start_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Send Window Start Local"},"send_window_end_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Send Window End Local"},"locale_tags":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":5,"minItems":1},{"type":"null"}],"title":"Locale Tags"},"fork_axis_note":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Fork Axis Note"}},"type":"object","required":["variant_ids","axis"],"title":"BulkForkVariantsRequest"},"BulkForkVariantsResult":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BulkForkVariantItemResult"},"type":"array","title":"Items"},"created":{"type":"integer","title":"Created"}},"type":"object","required":["items","created"],"title":"BulkForkVariantsResult"},"BulkInviteRequest":{"properties":{"emails":{"items":{"type":"string","format":"email"},"type":"array","maxItems":50,"title":"Emails"},"role":{"$ref":"#/components/schemas/MemberOrganizationRole","default":"member"}},"type":"object","required":["emails"],"title":"BulkInviteRequest"},"BulkInviteResponseItem":{"properties":{"email":{"type":"string","title":"Email"},"success":{"type":"boolean","title":"Success"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["email","success"],"title":"BulkInviteResponseItem"},"BulkStopItemOutcome":{"type":"string","enum":["stopped","nothing_live","not_found"],"title":"BulkStopItemOutcome"},"BulkStopVariantItemResult":{"properties":{"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"outcome":{"$ref":"#/components/schemas/BulkStopItemOutcome"},"result":{"anyOf":[{"$ref":"#/components/schemas/StopVariantResult"},{"type":"null"}]}},"type":"object","required":["variant_id","outcome","result"],"title":"BulkStopVariantItemResult"},"BulkStopVariantsRequest":{"properties":{"variant_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":50,"minItems":1,"title":"Variant Ids"},"reason":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Reason"}},"type":"object","required":["variant_ids"],"title":"BulkStopVariantsRequest"},"BulkStopVariantsResult":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BulkStopVariantItemResult"},"type":"array","title":"Items"},"stopped":{"type":"integer","title":"Stopped"}},"type":"object","required":["items","stopped"],"title":"BulkStopVariantsResult"},"CampaignArmBreakdown":{"properties":{"mode":{"type":"string","const":"campaign_arms","title":"Mode","default":"campaign_arms"},"event_definition_id":{"type":"string","format":"uuid","title":"Event Definition Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"stage_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Stage Id"}},"type":"object","required":["event_definition_id","campaign_id"],"title":"CampaignArmBreakdown","description":"One primary event split into ``treated`` vs ``control`` for a campaign.\n\nCohorts are derived from\n:meth:`NotificationRepository.list_first_anchor_per_contact_for_campaign`\n+ the shared sent-wins dedupe so each contact lands in EXACTLY one\narm — same independence guarantee the goal-lift path relies on.\n``stage_id`` narrows the underlying notification query to one stage\n(the multi-stage drill-down); ``None`` covers every stage of the\ncampaign."},"CampaignCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"status":{"anyOf":[{"$ref":"#/components/schemas/CampaignStatus"},{"type":"null"}]},"segment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Segment Id"},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starts At"},"ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends At"}},"type":"object","required":["name"],"title":"CampaignCreateRequest"},"CampaignRef":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","name"],"title":"CampaignRef"},"CampaignResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"name":{"type":"string","title":"Name"},"status":{"$ref":"#/components/schemas/CampaignStatus"},"segment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Segment Id"},"segment_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment Name"},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starts At"},"ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"stage_count":{"type":"integer","title":"Stage Count","default":0},"top_stage_names":{"items":{"type":"string"},"type":"array","maxItems":3,"title":"Top Stage Names"},"reach_total":{"type":"integer","title":"Reach Total","default":0},"sent_lifetime":{"type":"integer","title":"Sent Lifetime","default":0},"sent_last_7d":{"type":"integer","title":"Sent Last 7D","default":0},"sends_series":{"anyOf":[{"$ref":"#/components/schemas/ChartInfo"},{"type":"null"}]}},"type":"object","required":["id","organization_id","name","status","segment_id","created_at","updated_at"],"title":"CampaignResponse"},"CampaignResultsCampaignResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"status":{"$ref":"#/components/schemas/CampaignStatus"},"segment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Segment Id"},"segment_member_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Segment Member Count"}},"type":"object","required":["id","name","status","segment_id","segment_member_count"],"title":"CampaignResultsCampaignResponse"},"CampaignResultsResponse":{"properties":{"campaign":{"$ref":"#/components/schemas/CampaignResultsCampaignResponse"},"window_days":{"type":"integer","title":"Window Days"},"stages":{"items":{"$ref":"#/components/schemas/CampaignResultsStageResponse"},"type":"array","title":"Stages"}},"type":"object","required":["campaign","window_days","stages"],"title":"CampaignResultsResponse"},"CampaignResultsStageResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"position":{"type":"integer","title":"Position"},"parent_stage_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parent Stage Id"},"entry_condition":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/LeafNode"},{"$ref":"#/components/schemas/EventLeafNode"},{"$ref":"#/components/schemas/AndNode"},{"$ref":"#/components/schemas/OrNode"},{"$ref":"#/components/schemas/NotNode"}],"discriminator":{"propertyName":"kind","mapping":{"and":"#/components/schemas/AndNode","event":"#/components/schemas/EventLeafNode","leaf":"#/components/schemas/LeafNode","not":"#/components/schemas/NotNode","or":"#/components/schemas/OrNode"}}},{"type":"null"}],"title":"Entry Condition"},"segment_size":{"type":"integer","title":"Segment Size"},"sent_count":{"type":"integer","title":"Sent Count"},"variant_count":{"type":"integer","title":"Variant Count"},"variants":{"items":{"$ref":"#/components/schemas/CampaignResultsVariantResponse"},"type":"array","title":"Variants"}},"type":"object","required":["id","name","position","segment_size","sent_count","variant_count","variants"],"title":"CampaignResultsStageResponse"},"CampaignResultsVariantResponse":{"properties":{"sent_count":{"type":"integer","title":"Sent Count"},"delivered_count":{"type":"integer","title":"Delivered Count"},"opened_count":{"type":"integer","title":"Opened Count"},"clicked_count":{"type":"integer","title":"Clicked Count"},"bounced_count":{"type":"integer","title":"Bounced Count"},"complained_count":{"type":"integer","title":"Complained Count"},"delivered_rate":{"type":"number","title":"Delivered Rate"},"open_rate":{"type":"number","title":"Open Rate"},"click_rate":{"type":"number","title":"Click Rate"},"bounce_rate":{"type":"number","title":"Bounce Rate"},"campaign_stage_variant_id":{"type":"string","format":"uuid","title":"Campaign Stage Variant Id"},"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"channel":{"type":"string","title":"Channel"},"position":{"type":"integer","title":"Position"},"weight":{"type":"integer","title":"Weight"},"weight_pct":{"type":"number","title":"Weight Pct"},"segment_size":{"type":"integer","title":"Segment Size"},"last_sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Sent At"}},"type":"object","required":["sent_count","delivered_count","opened_count","clicked_count","bounced_count","complained_count","delivered_rate","open_rate","click_rate","bounce_rate","campaign_stage_variant_id","variant_id","name","channel","position","weight","weight_pct","segment_size","last_sent_at"],"title":"CampaignResultsVariantResponse"},"CampaignSenderValidationsResult":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VariantSenderValidation"},"type":"array","title":"Items"}},"additionalProperties":false,"type":"object","required":["items"],"title":"CampaignSenderValidationsResult"},"CampaignSortField":{"type":"string","enum":["name","status","created_at","updated_at"],"title":"CampaignSortField"},"CampaignStageCreateRequest":{"properties":{"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"position":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Position"},"parent_stage_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parent Stage Id"},"entry_condition":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/LeafNode"},{"$ref":"#/components/schemas/EventLeafNode"},{"$ref":"#/components/schemas/AndNode"},{"$ref":"#/components/schemas/OrNode"},{"$ref":"#/components/schemas/NotNode"}],"discriminator":{"propertyName":"kind","mapping":{"and":"#/components/schemas/AndNode","event":"#/components/schemas/EventLeafNode","leaf":"#/components/schemas/LeafNode","not":"#/components/schemas/NotNode","or":"#/components/schemas/OrNode"}}},{"type":"null"}],"title":"Entry Condition"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"min_wait_seconds":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Min Wait Seconds"},"default_send_window_start_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Default Send Window Start Local"},"default_send_window_end_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Default Send Window End Local"}},"type":"object","required":["campaign_id"],"title":"CampaignStageCreateRequest"},"CampaignStageResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"position":{"type":"integer","title":"Position"},"parent_stage_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parent Stage Id"},"entry_condition":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/LeafNode"},{"$ref":"#/components/schemas/EventLeafNode"},{"$ref":"#/components/schemas/AndNode"},{"$ref":"#/components/schemas/OrNode"},{"$ref":"#/components/schemas/NotNode"}],"discriminator":{"propertyName":"kind","mapping":{"and":"#/components/schemas/AndNode","event":"#/components/schemas/EventLeafNode","leaf":"#/components/schemas/LeafNode","not":"#/components/schemas/NotNode","or":"#/components/schemas/OrNode"}}},{"type":"null"}],"title":"Entry Condition"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"min_wait_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Wait Seconds"},"default_send_window_start_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Default Send Window Start Local"},"default_send_window_end_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Default Send Window End Local"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"sent_people":{"type":"integer","title":"Sent People","default":0}},"type":"object","required":["id","organization_id","campaign_id","position","name","min_wait_seconds","default_send_window_start_local","default_send_window_end_local","created_at","updated_at"],"title":"CampaignStageResponse"},"CampaignStageSummaryInfo":{"properties":{"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"campaign_name":{"type":"string","title":"Campaign Name"},"stage_id":{"type":"string","format":"uuid","title":"Stage Id"},"stage_position":{"type":"integer","title":"Stage Position"},"stage_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage Name"}},"type":"object","required":["campaign_id","campaign_name","stage_id","stage_position","stage_name"],"title":"CampaignStageSummaryInfo","description":"Minimal denormalized embed for a campaign-stage reference.\n\nMirrors ``ContactSummaryInfo`` — carries only what the UI needs to\nrender a ``Campaign Name › Stage 2`` tile + drawer link without\na second round-trip per row. ``stage_name`` is null when the\nstage was created without an explicit name; UI falls back to\n``Stage {position + 1}``."},"CampaignStageUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"min_wait_seconds":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Min Wait Seconds"},"entry_condition":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/LeafNode"},{"$ref":"#/components/schemas/EventLeafNode"},{"$ref":"#/components/schemas/AndNode"},{"$ref":"#/components/schemas/OrNode"},{"$ref":"#/components/schemas/NotNode"}],"discriminator":{"propertyName":"kind","mapping":{"and":"#/components/schemas/AndNode","event":"#/components/schemas/EventLeafNode","leaf":"#/components/schemas/LeafNode","not":"#/components/schemas/NotNode","or":"#/components/schemas/OrNode"}}},{"type":"null"}],"title":"Entry Condition"},"default_send_window_start_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Default Send Window Start Local"},"default_send_window_end_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Default Send Window End Local"}},"type":"object","title":"CampaignStageUpdateRequest"},"CampaignStageVariantCreateRequest":{"properties":{"campaign_stage_id":{"type":"string","format":"uuid","title":"Campaign Stage Id"},"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"weight":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Weight"},"position":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Position"}},"type":"object","required":["campaign_stage_id","variant_id"],"title":"CampaignStageVariantCreateRequest"},"CampaignStageVariantResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"campaign_stage_id":{"type":"string","format":"uuid","title":"Campaign Stage Id"},"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"weight":{"type":"integer","title":"Weight"},"position":{"type":"integer","title":"Position"},"sent_count":{"type":"integer","title":"Sent Count","default":0},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","campaign_stage_id","variant_id","weight","position","created_at","updated_at"],"title":"CampaignStageVariantResponse"},"CampaignStatus":{"type":"string","enum":["draft","scheduled","active","paused","ended","archived"],"title":"CampaignStatus"},"CampaignSyncHealthResponse":{"properties":{"stages":{"items":{"$ref":"#/components/schemas/AdminCampaignStageHealthInfo"},"type":"array","title":"Stages"}},"type":"object","required":["stages"],"title":"CampaignSyncHealthResponse"},"CampaignUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"status":{"anyOf":[{"$ref":"#/components/schemas/CampaignStatus"},{"type":"null"}]},"segment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Segment Id"},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starts At"},"ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends At"}},"type":"object","title":"CampaignUpdateRequest"},"ChallengeCardBlock":{"properties":{"block_type":{"type":"string","const":"challenge_card","title":"Block Type","default":"challenge_card"},"icon_emoji":{"type":"string","title":"Icon Emoji","default":""},"icon_background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Background Color"},"eyebrow":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrow"},"eyebrow_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrow Color"},"headline":{"type":"string","title":"Headline","default":""},"body":{"type":"string","title":"Body","default":""},"cta_label":{"type":"string","title":"Cta Label","default":""},"cta_url":{"type":"string","title":"Cta Url","default":""},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color"}},"additionalProperties":false,"type":"object","title":"ChallengeCardBlock"},"ChartInfo":{"properties":{"chart_type":{"type":"string","enum":["bar","line","area"],"title":"Chart Type"},"series":{"items":{"$ref":"#/components/schemas/ChartSeriesInfo"},"type":"array","title":"Series"},"x_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X Label"},"y_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Y Label"},"series_provisional_last":{"type":"boolean","title":"Series Provisional Last","default":false}},"type":"object","required":["chart_type","series"],"title":"ChartInfo"},"ChartPointInfo":{"properties":{"x":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"}],"title":"X"},"y":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"integer"},{"type":"null"}],"title":"Y"}},"type":"object","required":["x","y"],"title":"ChartPointInfo"},"ChartSeriesInfo":{"properties":{"name":{"type":"string","title":"Name"},"data":{"items":{"$ref":"#/components/schemas/ChartPointInfo"},"type":"array","title":"Data"},"series_type":{"anyOf":[{"type":"string","enum":["bar","line","area"]},{"type":"null"}],"title":"Series Type"}},"type":"object","required":["name","data"],"title":"ChartSeriesInfo"},"ChatConversationDetailInfo":{"properties":{"id":{"type":"string","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"actor_type":{"$ref":"#/components/schemas/ConversationActorType"},"kind":{"$ref":"#/components/schemas/ConversationKind"},"turns":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Turns"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","title","summary","actor_type","kind","turns","created_at","updated_at"],"title":"ChatConversationDetailInfo"},"ChatConversationListItemInfo":{"properties":{"id":{"type":"string","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"updatedAt":{"type":"string","title":"Updatedat"}},"additionalProperties":false,"type":"object","required":["id","title","updatedAt"],"title":"ChatConversationListItemInfo"},"ChatConversationListResult":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ChatConversationSummaryInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"ChatConversationListResult"},"ChatConversationPageResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ChatConversationListItemInfo"},"type":"array","title":"Items"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"}},"additionalProperties":false,"type":"object","required":["items","nextCursor"],"title":"ChatConversationPageResponse"},"ChatConversationResponse":{"properties":{"id":{"type":"string","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"turns":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Turns"}},"additionalProperties":false,"type":"object","required":["id","title","turns"],"title":"ChatConversationResponse"},"ChatConversationSummaryInfo":{"properties":{"id":{"type":"string","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"actor_type":{"$ref":"#/components/schemas/ConversationActorType"},"kind":{"$ref":"#/components/schemas/ConversationKind"},"turn_count":{"type":"integer","title":"Turn Count"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","title","actor_type","kind","turn_count","updated_at","created_at"],"title":"ChatConversationSummaryInfo"},"ChatSendRequest":{"properties":{"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"content":{"type":"string","maxLength":10000,"minLength":1,"title":"Content"}},"additionalProperties":false,"type":"object","required":["content"],"title":"ChatSendRequest","description":"A null ``conversation_id`` creates one, and ``conversation_created``\nopens the stream."},"ChooseGithubInstallationRequest":{"properties":{"token":{"type":"string","minLength":1,"title":"Token"},"installation_id":{"type":"integer","minimum":1.0,"title":"Installation Id"}},"type":"object","required":["token","installation_id"],"title":"ChooseGithubInstallationRequest"},"CleanAdInspirationPreviewRequest":{"properties":{"issues":{"items":{"$ref":"#/components/schemas/InspirationIssueKind"},"type":"array","title":"Issues"}},"type":"object","required":["issues"],"title":"CleanAdInspirationPreviewRequest"},"CleanAdInspirationPreviewResult":{"properties":{"flagged":{"items":{"$ref":"#/components/schemas/CleanFlaggedAdInfo"},"type":"array","title":"Flagged"},"kept_in_use":{"type":"integer","title":"Kept In Use"},"total_removable":{"type":"integer","title":"Total Removable"}},"type":"object","required":["flagged","kept_in_use","total_removable"],"title":"CleanAdInspirationPreviewResult","description":"One clean-preview pass: the removable ads, each with its issues.\n\n``flagged`` is every removable ad (variant-referenced ads are excluded\nand counted in ``kept_in_use`` instead), newest fetch first, each with\nall the issues it triggers. ``total_removable`` equals ``len(flagged)``."},"CleanAdInspirationRequest":{"properties":{"ad_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":500,"title":"Ad Ids"}},"type":"object","required":["ad_ids"],"title":"CleanAdInspirationRequest"},"CleanAdInspirationResult":{"properties":{"deleted":{"type":"integer","title":"Deleted"}},"type":"object","required":["deleted"],"title":"CleanAdInspirationResult"},"CleanFlaggedAdInfo":{"properties":{"ad":{"$ref":"#/components/schemas/AdInspirationItemInfo"},"issues":{"items":{"$ref":"#/components/schemas/InspirationIssueKind"},"type":"array","title":"Issues"},"duplicate_of":{"anyOf":[{"$ref":"#/components/schemas/AdInspirationItemInfo"},{"type":"null"}]}},"type":"object","required":["ad","issues"],"title":"CleanFlaggedAdInfo","description":"One removable ad plus every quality issue it triggers.\n\n``issues`` can carry more than one kind: the detectors run independently\nover the same pool, so an ad can be duplicate *and* low-quality *and*\nunrelated at once. ``duplicate_of`` is the kept anchor this ad\nnear-duplicates — set exactly when ``DUPLICATE`` is among ``issues``."},"CohortAudience":{"type":"string","enum":["new_signups","everyone"],"title":"CohortAudience","description":"Which population the cohort-event-rate grid measures.\n\n``new_signups`` keeps the signup-cohort semantics — each row a signup\nbucket, ``n`` the cohort size. ``everyone`` measures the whole current\nbase by activity day — each row an activity bucket, ``n`` the arm's\nconstant census."},"CohortEventRateBatchEntryInfo":{"properties":{"outcome_id":{"type":"string","format":"uuid","title":"Outcome Id"},"result":{"anyOf":[{"$ref":"#/components/schemas/CohortEventRateResult"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["outcome_id"],"title":"CohortEventRateBatchEntryInfo","description":"One target's outcome — its grid OR a per-target error, never both.\n\nThe fan-out is degrade-per-target like the lift strip's ``unavailable``:\none target raising (a 404 outcome, a 400 statistic mismatch) yields an\n``error`` entry while the rest still return, so a single bad pin never\n500s the batch. ``result`` is populated on success, ``error`` carries the\nfailure message on failure."},"CohortEventRateResult":{"properties":{"not_yet_enabled":{"type":"boolean","title":"Not Yet Enabled"},"cohorts":{"items":{"$ref":"#/components/schemas/CohortEventRateRow"},"type":"array","title":"Cohorts"}},"type":"object","required":["not_yet_enabled","cohorts"],"title":"CohortEventRateResult"},"CohortEventRateRow":{"properties":{"signup_day":{"type":"string","format":"date","title":"Signup Day"},"treated":{"$ref":"#/components/schemas/ArmEventRateInfo"},"control":{"$ref":"#/components/schemas/ArmEventRateInfo"},"contacted":{"anyOf":[{"$ref":"#/components/schemas/ArmEventRateInfo"},{"type":"null"}]},"provisional":{"type":"boolean","title":"Provisional","default":false}},"type":"object","required":["signup_day","treated","control"],"title":"CohortEventRateRow"},"CohortEventRateTargetInfo":{"properties":{"kind":{"$ref":"#/components/schemas/OutcomeKind"},"outcome_id":{"type":"string","format":"uuid","title":"Outcome Id"},"window_days":{"type":"integer","maximum":365.0,"minimum":1.0,"title":"Window Days"},"granularity":{"$ref":"#/components/schemas/Granularity"},"measure":{"$ref":"#/components/schemas/SeriesMeasure","default":"converted_contacts"},"percentile_p":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Percentile P"}},"type":"object","required":["kind","outcome_id","window_days","granularity"],"title":"CohortEventRateTargetInfo","description":"One requested cohort grid — the singular route's per-call params.\n\nCarries everything ``GET /overview/cohort-event-rate`` takes EXCEPT\n``contacted_window_days``, which is request-global on\n:class:`BatchCohortEventRateRequest` (one recency overlay shared by\nevery pinned card, mirroring how the frontend's ``useOverviewCohorts``\nthreads a single ``contactedWindow`` through every request). ``outcome_id``\nis also the response key, so a card's result is looked up by its pin id."},"ColumnSource":{"properties":{"kind":{"type":"string","const":"column","title":"Kind","default":"column"},"column":{"type":"string","title":"Column"},"value_type":{"$ref":"#/components/schemas/ContactAttributeValueType"},"normalizer":{"anyOf":[{"$ref":"#/components/schemas/LocaleAliasNormalizerConfig"},{"type":"null"}]}},"type":"object","required":["column","value_type"],"title":"ColumnSource"},"CompanyWallAggregateInfo":{"properties":{"messages_sent":{"$ref":"#/components/schemas/ImpactStatInfo"},"contacts_reached":{"$ref":"#/components/schemas/ImpactStatInfo"},"experiments_running":{"$ref":"#/components/schemas/ImpactStatInfo"},"messages_sent_series":{"items":{"type":"integer"},"type":"array","title":"Messages Sent Series"},"contacts_reached_series":{"items":{"type":"integer"},"type":"array","title":"Contacts Reached Series"},"experiments_running_series":{"items":{"type":"integer"},"type":"array","title":"Experiments Running Series"},"customers_live":{"type":"integer","title":"Customers Live"}},"type":"object","required":["messages_sent","contacts_reached","experiments_running","messages_sent_series","contacts_reached_series","experiments_running_series","customers_live"],"title":"CompanyWallAggregateInfo","description":"Cross-org Effort band: populated entries summed field-wise.\n\nEach stat's ``delta`` is recomposed from the summed current + prior\nwindows (``prior = value / (1 + delta)`` per org, exact because\n``ImpactStatInfo.from_window`` nulls the delta only when prior <= 0) —\nsumming the per-org fractions directly would double-count. An org\nwith ``delta == -1`` (current 0, prior magnitude lost) makes the\npooled delta unrecoverable, so it reports ``None`` instead."},"CompanyWallOrgInfo":{"properties":{"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"name":{"type":"string","title":"Name"},"emoji":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emoji"},"status":{"$ref":"#/components/schemas/CompanyWallOrgStatus"},"enabled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Enabled At"},"impact":{"anyOf":[{"$ref":"#/components/schemas/OverviewImpactSummaryResult"},{"type":"null"}]},"engagement_cards":{"items":{"$ref":"#/components/schemas/OutcomeLiftCardInfo"},"type":"array","title":"Engagement Cards"},"monetization_cards":{"items":{"$ref":"#/components/schemas/OutcomeLiftCardInfo"},"type":"array","title":"Monetization Cards"}},"type":"object","required":["organization_id","name","status","enabled_at","impact","engagement_cards","monetization_cards"],"title":"CompanyWallOrgInfo"},"CompanyWallOrgStatus":{"type":"string","enum":["populated","unavailable"],"title":"CompanyWallOrgStatus"},"CompanyWallSummaryResult":{"properties":{"aggregate":{"$ref":"#/components/schemas/CompanyWallAggregateInfo"},"orgs":{"items":{"$ref":"#/components/schemas/CompanyWallOrgInfo"},"type":"array","title":"Orgs"},"window_days":{"type":"integer","title":"Window Days"},"granularity":{"$ref":"#/components/schemas/Granularity"}},"type":"object","required":["aggregate","orgs","window_days","granularity"],"title":"CompanyWallSummaryResult"},"CompleteSubscriptionLoginRequest":{"properties":{"callback_url":{"type":"string","minLength":1,"title":"Callback Url"}},"type":"object","required":["callback_url"],"title":"CompleteSubscriptionLoginRequest"},"ComponentCatalogEntryInfo":{"properties":{"kind":{"$ref":"#/components/schemas/ComponentKind"},"key":{"type":"string","title":"Key"},"title":{"type":"string","title":"Title"},"source":{"type":"string","enum":["first-party","custom"],"title":"Source"},"latest_grade":{"anyOf":[{"$ref":"#/components/schemas/ComponentGradeInfo"},{"type":"null"}]},"polymorphic_apps_using":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Polymorphic Apps Using"},"component_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Version"}},"type":"object","required":["kind","key","title","source","latest_grade","polymorphic_apps_using"],"title":"ComponentCatalogEntryInfo"},"ComponentGradeInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"component_kind":{"$ref":"#/components/schemas/ComponentKind"},"component_key":{"type":"string","title":"Component Key"},"component_version":{"type":"string","title":"Component Version"},"status":{"$ref":"#/components/schemas/ComponentGradeStatus"},"verdict":{"anyOf":[{"$ref":"#/components/schemas/ComponentGradeVerdict"},{"type":"null"}]},"overall_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Overall Score"},"dimensions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Dimensions"},"detected_tells":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Detected Tells"},"reasons":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasons"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"screenshot_storage_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Storage Key"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"}},"type":"object","required":["id","component_kind","component_key","component_version","status","verdict","overall_score","dimensions","detected_tells","reasons","model","screenshot_storage_key","error_message","created_at","updated_at","finished_at"],"title":"ComponentGradeInfo"},"ComponentGradeStatus":{"type":"string","enum":["pending","running","succeeded","failed"],"title":"ComponentGradeStatus"},"ComponentGradeVerdict":{"type":"string","enum":["pass","fail"],"title":"ComponentGradeVerdict"},"ComponentKind":{"type":"string","enum":["chart","widget","custom"],"title":"ComponentKind"},"ComposioAccessTier":{"type":"string","enum":["read_only","full_access"],"title":"ComposioAccessTier"},"ComposioConnectionInfo":{"properties":{"toolkit_slug":{"type":"string","title":"Toolkit Slug"},"toolkit_name":{"type":"string","title":"Toolkit Name"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"category_ids":{"items":{"type":"string"},"type":"array","title":"Category Ids"},"access_tier":{"$ref":"#/components/schemas/ComposioAccessTier"},"connection_status":{"type":"string","title":"Connection Status"},"account_word_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Word Id"}},"type":"object","required":["toolkit_slug","toolkit_name","logo_url","category_ids","access_tier","connection_status","account_word_id"],"title":"ComposioConnectionInfo"},"ConnectCustomDomainRequest":{"properties":{"domain":{"type":"string","maxLength":253,"minLength":1,"title":"Domain"},"from_email":{"type":"string","maxLength":320,"minLength":3,"title":"From Email"},"reply_to_email":{"anyOf":[{"type":"string","maxLength":320,"minLength":3},{"type":"null"}],"title":"Reply To Email"}},"type":"object","required":["domain","from_email"],"title":"ConnectCustomDomainRequest"},"ConnectIntegrationRequest":{"properties":{"provider":{"$ref":"#/components/schemas/IntegrationProvider"},"sub_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Key"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"credentials":{"additionalProperties":true,"type":"object","title":"Credentials"}},"type":"object","required":["provider"],"title":"ConnectIntegrationRequest"},"ContactAttributeChangeEvent":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"attribute_key":{"type":"string","title":"Attribute Key"},"from_value_type":{"anyOf":[{"$ref":"#/components/schemas/ContactAttributeValueType"},{"type":"null"}]},"from_value_number":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"From Value Number"},"from_value_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Value Text"},"to_value_type":{"anyOf":[{"$ref":"#/components/schemas/ContactAttributeValueType"},{"type":"null"}]},"to_value_number":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"To Value Number"},"to_value_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Value Text"},"observed_at":{"type":"string","format":"date-time","title":"Observed At"}},"type":"object","required":["id","attribute_key","observed_at"],"title":"ContactAttributeChangeEvent","description":"One observed change to a contact's attribute value. NULL-ness\nencodes the row kind: first observation (``from_*`` unset), value\nupdate (both sides set), deletion (``to_*`` unset)."},"ContactAttributeResponse":{"properties":{"attribute_key":{"type":"string","title":"Attribute Key"},"value_type":{"$ref":"#/components/schemas/ContactAttributeValueType"},"value_number":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Value Number"},"value_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value Text"},"last_synced_at":{"type":"string","format":"date-time","title":"Last Synced At"},"source_mapping_id":{"type":"string","format":"uuid","title":"Source Mapping Id"},"source_mapping_name":{"type":"string","title":"Source Mapping Name"},"source_mapping_deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Source Mapping Deleted At"}},"type":"object","required":["attribute_key","value_type","last_synced_at","source_mapping_id","source_mapping_name","source_mapping_deleted_at"],"title":"ContactAttributeResponse"},"ContactAttributeValueType":{"type":"string","enum":["number","boolean","datetime","string","locale"],"title":"ContactAttributeValueType"},"ContactBriefInfo":{"properties":{"teaser":{"type":"string","title":"Teaser"},"narrative":{"type":"string","title":"Narrative"},"headline_facts":{"items":{"type":"string"},"type":"array","title":"Headline Facts"},"behavioral_patterns":{"items":{"type":"string"},"type":"array","title":"Behavioral Patterns"},"momentum":{"type":"string","title":"Momentum"},"do_not_say":{"items":{"type":"string"},"type":"array","title":"Do Not Say"},"stat_tiles":{"items":{"$ref":"#/components/schemas/BriefStatTileInfo"},"type":"array","title":"Stat Tiles"},"built_at":{"type":"string","format":"date-time","title":"Built At"},"events_through_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Events Through At"},"window_days":{"type":"integer","title":"Window Days"},"model":{"type":"string","title":"Model"}},"type":"object","required":["teaser","narrative","headline_facts","behavioral_patterns","momentum","do_not_say","stat_tiles","built_at","events_through_at","window_days","model"],"title":"ContactBriefInfo"},"ContactDTO":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"source_providers":{"items":{"type":"string"},"type":"array","title":"Source Providers"},"last_seen_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Seen At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"is_anonymous":{"type":"boolean","title":"Is Anonymous","default":false}},"type":"object","required":["id","name","email","phone","tags","source_providers","last_seen_at","created_at"],"title":"ContactDTO"},"ContactInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"source_providers":{"items":{"type":"string"},"type":"array","title":"Source Providers"},"last_seen_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Seen At"},"is_anonymous":{"type":"boolean","title":"Is Anonymous"}},"type":"object","required":["id","name","email","phone","tags","source_providers","last_seen_at","is_anonymous"],"title":"ContactInfo","description":"Public projection of ``Contact`` returned alongside membership rows.\n\nMirrors the public fields of ``api.contacts.ContactDTO`` — kept here\ninstead of importing that route DTO to keep ``api`` out of the\n``core`` import graph."},"ContactListResult":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ContactDTO"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"ContactListResult"},"ContactMdpPartitionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"dimensions":{"items":{"$ref":"#/components/schemas/MdpDimensionInfo"},"type":"array","title":"Dimensions"},"rewards_objective_available":{"type":"boolean","title":"Rewards Objective Available","default":false},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","dimensions","created_at","updated_at"],"title":"ContactMdpPartitionResponse"},"ContactMdpRewardSpecResponse":{"properties":{"spec":{"anyOf":[{"$ref":"#/components/schemas/RewardSpecInfo"},{"type":"null"}]},"states":{"items":{"$ref":"#/components/schemas/RewardStatePreviewInfo"},"type":"array","title":"States"}},"type":"object","required":["spec","states"],"title":"ContactMdpRewardSpecResponse"},"ContactMdpStateResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"partition_id":{"type":"string","format":"uuid","title":"Partition Id"},"buckets":{"items":{"$ref":"#/components/schemas/AttributeBucket"},"type":"array","title":"Buckets"},"superseded_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Superseded At"},"collapsed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Collapsed At"},"allocator_strategy":{"$ref":"#/components/schemas/AllocatorStrategy"},"computed_utility":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Computed Utility"},"utility_computed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Utility Computed At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","partition_id","buckets","superseded_at","allocator_strategy","created_at","updated_at"],"title":"ContactMdpStateResponse"},"ContactSortField":{"type":"string","enum":["name","last_seen_at","created_at"],"title":"ContactSortField"},"ContactSummaryInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},"type":"object","required":["id","name","email"],"title":"ContactSummaryInfo"},"ContactSyncConfigRequest":{"properties":{"table":{"type":"string","title":"Table"},"external_id_column":{"type":"string","title":"External Id Column"},"email_column":{"type":"string","title":"Email Column"},"name_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Column"},"updated_at_column":{"type":"string","title":"Updated At Column","default":"updated_at"},"property_mappings":{"items":{"$ref":"#/components/schemas/PropertyMappingConfig"},"type":"array","maxItems":30,"title":"Property Mappings"},"deletion_sweep":{"type":"boolean","title":"Deletion Sweep","default":false}},"type":"object","required":["table","external_id_column","email_column"],"title":"ContactSyncConfigRequest"},"ContactSyncConfigResponse":{"properties":{"table":{"type":"string","title":"Table"},"external_id_column":{"type":"string","title":"External Id Column"},"email_column":{"type":"string","title":"Email Column"},"name_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Column"},"updated_at_column":{"type":"string","title":"Updated At Column","default":"updated_at"},"property_mappings":{"items":{"$ref":"#/components/schemas/PropertyMappingConfig"},"type":"array","maxItems":30,"title":"Property Mappings"},"deletion_sweep":{"type":"boolean","title":"Deletion Sweep","default":false}},"type":"object","required":["table","external_id_column","email_column"],"title":"ContactSyncConfigResponse"},"ContactUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"}},"type":"object","title":"ContactUpdate"},"ControlContent":{"properties":{"channel":{"type":"string","const":"control","title":"Channel"}},"additionalProperties":false,"type":"object","required":["channel"],"title":"ControlContent","description":"Holdout variant payload — discriminator only, no fields to render.\n\nA control variant is selected by the stage's weighted picker like any\nother, but the enqueue path writes a ``held_back`` notification\nwithout rendering, address resolution, or provider invocation. The\npayload is shape-only so the discriminated union stays well-formed."},"ConversationActorType":{"type":"string","enum":["member","system"],"title":"ConversationActorType","description":"Who owns this conversation — the human member who started it, or the\nsystem itself (background agents that have no logged-in member).\n\nSystem-owned conversations have ``member_id IS NULL`` and are reachable\nby any member of the owning organization. Authorization branches on\nthis discriminator in ``GetChatConversationUseCase`` /\n``DeleteChatConversationUseCase``; member-owned conversations keep the\npre-existing ownership check."},"ConversationKind":{"type":"string","enum":["chat","campaign_manager","mapping_disambiguation","slack","app_builder","morph_session","app_maintainer"],"title":"ConversationKind","description":"The agent role driving the conversation. ``CHAT`` is the\ninteractive human-in-the-loop assistant. ``CAMPAIGN_MANAGER`` is a\nretired agent role — its UI surfaces and cron were removed and\nnothing creates these rows today; the value is retained as the\ncanonical per-org system-conversation seam, since it is the only\nkind the partial unique index that keeps system rows at\none-per-(org, kind) actually covers (the kinds below are all\nexcluded), so it backs the race-safe\n``get_or_create_for_org_and_kind`` path for a future per-org\nbackground agent.\n``MAPPING_DISAMBIGUATION`` is a lever-pull conversation opened by\npush-token discovery when the LLM needs operator input to pick a\ncandidate or run a flatten-view; the partial unique index that\nkeeps system rows at one-per-(org, kind) explicitly EXCLUDES this\nkind so an org can carry one disambiguation thread per integration\nthat needs review. ``SLACK`` is the\nper-Slack-thread internal agent conversation — one per mention\nthread, also excluded from the partial index, keyed by\n``SlackAgentThread.conversation_id`` instead.\n``APP_BUILDER`` is the per-app editor thread — one per\n``polymorphic_apps`` row, also excluded from the partial index,\nkeyed by ``polymorphic_apps.conversation_id`` instead; like\n``MAPPING_DISAMBIGUATION`` it is write-enabled for org members\nbecause the editor flows member instructions through the agent\nloop. ``MORPH_SESSION`` is the per-edit-session thread — one per\n``morph_sessions`` row, also\nexcluded from the partial index, keyed by\n``morph_sessions.conversation_id`` instead.\n``APP_MAINTAINER`` is the per-app maintainer thread the daily\nbackground agent runs in, one per ``polymorphic_apps`` row, keyed\nby ``polymorphic_apps.maintainer_conversation_id``; unlike\n``APP_BUILDER`` it stays read-only for org members, since no member\nwrites into it. Future agent roles\nadd new values; the enum is the discriminator callers filter on\n(e.g. list-by-kind)."},"ConversionCombinator":{"type":"string","enum":["and","or"],"title":"ConversionCombinator"},"ConversionDefinitionCreateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"kind":{"$ref":"#/components/schemas/ConversionKind"},"events":{"$ref":"#/components/schemas/ConversionDefinitionEventsInfo"},"attribution_window_days":{"type":"integer","minimum":1.0,"title":"Attribution Window Days","default":7}},"type":"object","required":["kind","events"],"title":"ConversionDefinitionCreateRequest"},"ConversionDefinitionEventsInfo":{"properties":{"op":{"$ref":"#/components/schemas/ConversionCombinator"},"event_keys":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Event Keys"}},"type":"object","required":["op","event_keys"],"title":"ConversionDefinitionEventsInfo"},"ConversionDefinitionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"kind":{"$ref":"#/components/schemas/ConversionKind"},"events":{"$ref":"#/components/schemas/ConversionDefinitionEventsInfo"},"attribution_window_days":{"type":"integer","title":"Attribution Window Days"},"is_hidden_from_variants":{"type":"boolean","title":"Is Hidden From Variants"},"position":{"type":"integer","title":"Position"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","name","kind","events","attribution_window_days","is_hidden_from_variants","position"],"title":"ConversionDefinitionResponse"},"ConversionDefinitionUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"kind":{"anyOf":[{"$ref":"#/components/schemas/ConversionKind"},{"type":"null"}]},"events":{"anyOf":[{"$ref":"#/components/schemas/ConversionDefinitionEventsInfo"},{"type":"null"}]},"attribution_window_days":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Attribution Window Days"},"is_hidden_from_variants":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Hidden From Variants"}},"type":"object","title":"ConversionDefinitionUpdateRequest"},"ConversionKind":{"type":"string","enum":["rate","measurable"],"title":"ConversionKind"},"ConversionLiftEntryInfo":{"properties":{"definition_id":{"type":"string","format":"uuid","title":"Definition Id"},"kind":{"$ref":"#/components/schemas/ConversionKind"},"treated_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Treated Value"},"control_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Control Value"},"lift":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lift"},"relative_lift":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Relative Lift"},"confidence":{"anyOf":[{"$ref":"#/components/schemas/ExperimentLiftConfidence"},{"type":"null"}]},"treated_n":{"type":"integer","title":"Treated N","default":0},"control_n":{"type":"integer","title":"Control N","default":0},"treated_numerator":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Treated Numerator"},"control_numerator":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Control Numerator"}},"type":"object","required":["definition_id","kind"],"title":"ConversionLiftEntryInfo","description":"One active conversion definition's pooled-then-standardized lift for one\ngroup. ``treated_value`` / ``control_value`` are per-population arm values —\na rate in ``[0, 1]`` for a ``rate`` definition, a mean in the event's value\nunits for a ``measurable`` one. ``lift`` is percentage points (``×100``) for\nrate and the absolute mean delta for measurable (see ``kind``);\n``relative_lift`` = ``treated / control - 1`` when ``control_value > 0``,\nelse ``None``. ``treated_n`` / ``control_n`` are the pooled arm populations\nover the strata that entered the standardized figure. ``treated_numerator``\n/ ``control_numerator`` are the exact converted counts behind a ``rate``\ndefinition's arm rates (the \"X / Y\" absolute display, numerator over\n``treated_n`` / ``control_n``); ``None`` for a ``measurable`` definition,\nwhose ``treated_value`` is already an absolute mean. Every value is\n``None`` until a state carries both a pooled treated send and an\nunambiguous control arm (a definition graded in no such state, or created\nafter the last grading run)."},"ConversionLiftGroupInfo":{"properties":{"key":{"type":"string","title":"Key"},"variant_ids":{"items":{"type":"string","format":"uuid"},"type":"array","minItems":1,"title":"Variant Ids"}},"type":"object","required":["key","variant_ids"],"title":"ConversionLiftGroupInfo","description":"One content group's lift request: an opaque ``key`` (the caller's\ngrouping id — a ``content_hash`` for the grouped variants page, or any\nstable token for a flat consumer) and its member ``variant_ids``. A\nsingle-variant group degenerates to the per-variant read."},"ConversionLiftRequest":{"properties":{"groups":{"anyOf":[{"items":{"$ref":"#/components/schemas/ConversionLiftGroupInfo"},"type":"array"},{"type":"null"}],"title":"Groups"},"campaign_stage_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Campaign Stage Ids"},"campaign_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Campaign Ids"},"campaign_stage_variant_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Campaign Stage Variant Ids"},"region_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Region Ids"}},"type":"object","title":"ConversionLiftRequest","description":"One batched conversion-lift read against exactly one target: ``groups``\n(content-hash-keyed variant groups, read from the precomputed grades),\n``campaign_stage_ids`` (live per-stage cohort vs the stage's held-back\narm), ``campaign_ids`` (the same live read pooled across every stage of\nthe campaign — first-touch anchors campaign-wide, sent-wins across\nstages), or ``campaign_stage_variant_ids`` (the stage read at per-arm\ngrain: the arm's sent recipients vs the whole stage's pooled held-back\narm). Response keys are the group ``key``s / the stage id strings / the\ncampaign id strings / the stage-variant id strings; all map to the same\n``ConversionLiftEntryInfo`` list. Providing more or fewer than one target\nis rejected. ``region_ids`` narrows the ``groups`` read to grades on the\nselected regions' member states (union); it is rejected with the campaign\ntargets — campaign sends carry no experiment instance, so a region scope\ncannot attribute them."},"ConversionOutcomeRefInfo":{"properties":{"kind":{"type":"string","const":"conversion","title":"Kind"},"conversion_definition_id":{"type":"string","format":"uuid","title":"Conversion Definition Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"conversion_kind":{"$ref":"#/components/schemas/ConversionKind"},"op":{"$ref":"#/components/schemas/ConversionCombinator"},"event_keys":{"items":{"type":"string"},"type":"array","title":"Event Keys"}},"type":"object","required":["kind","conversion_definition_id","conversion_kind","op","event_keys"],"title":"ConversionOutcomeRefInfo","description":"Response descriptor for a conversion outcome card.\n\nCarries the definition's display fields (``name`` may be unset —\nthe frontend falls back to the event-key join) and its scoring\nshape (``conversion_kind`` + ``op`` + ``event_keys``) so the card\nlabels and formats without a second fetch."},"ConversionOutcomeSpecInfo":{"properties":{"kind":{"type":"string","const":"conversion","title":"Kind"},"conversion_definition_id":{"type":"string","format":"uuid","title":"Conversion Definition Id"},"start":{"type":"string","format":"date-time","title":"Start"},"end":{"type":"string","format":"date-time","title":"End"}},"type":"object","required":["kind","conversion_definition_id","start","end"],"title":"ConversionOutcomeSpecInfo","description":"A conversion outcome's spec — a definition reference plus a window.\n\nThe definition owns the semantics (AND/OR key-set, rate vs\nmeasurable), so unlike an event spec there is no ``measure`` or\n``granularity`` to choose: the kind implies the measure, and v1\nrenders no trend line. The window bounds the qualification read\nexactly like an event spec's header window."},"ConversionSortMeasure":{"type":"string","enum":["lift","value"],"title":"ConversionSortMeasure"},"CountdownBlock":{"properties":{"block_type":{"type":"string","const":"countdown","title":"Block Type","default":"countdown"},"target_date_iso":{"type":"string","title":"Target Date Iso","default":""},"format":{"type":"string","title":"Format","default":"Offer valid until {date}"}},"additionalProperties":false,"type":"object","title":"CountdownBlock","description":"Server-rendered countdown.\n\nMVP renders to a static \"Offer valid until X\" string at send time,\nwith ``target_date_iso`` resolved against the recipient's timezone."},"CreateApiKeyRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"polymorphic_app_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Polymorphic App Id"}},"type":"object","required":["name"],"title":"CreateApiKeyRequest"},"CreateApiKeyResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"key":{"type":"string","title":"Key"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"polymorphic_app_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Polymorphic App Id"},"member":{"$ref":"#/components/schemas/MemberSummaryInfo"}},"type":"object","required":["id","name","key_prefix","key","created_at","polymorphic_app_id","member"],"title":"CreateApiKeyResponse"},"CreateAttributeMappingRequest":{"properties":{"name":{"type":"string","title":"Name"},"integration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Integration Id"},"source_kind":{"type":"string","title":"Source Kind"},"config":{"anyOf":[{"$ref":"#/components/schemas/AttributeMappingConfig"},{"$ref":"#/components/schemas/EventStreamAttributeConfig"}],"title":"Config"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["name","source_kind","config"],"title":"CreateAttributeMappingRequest"},"CreateConversationResponse":{"properties":{"id":{"type":"string","title":"Id"}},"type":"object","required":["id"],"title":"CreateConversationResponse"},"CreateDataDictionaryEntryRequest":{"properties":{"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"table_schema":{"type":"string","title":"Table Schema","default":"public"},"table_name":{"type":"string","title":"Table Name"},"column_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Column Name"},"meaning":{"type":"string","title":"Meaning"},"units":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Units"},"traps":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Traps"},"canonical_expression":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical Expression"}},"type":"object","required":["integration_id","table_name","meaning"],"title":"CreateDataDictionaryEntryRequest"},"CreateDemoOrganizationRequest":{"properties":{"name":{"type":"string","title":"Name"},"source_url":{"type":"string","title":"Source Url"}},"type":"object","required":["name","source_url"],"title":"CreateDemoOrganizationRequest"},"CreateDesignInspirationItemRequest":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"image_asset_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Image Asset Id"}},"type":"object","title":"CreateDesignInspirationItemRequest"},"CreateDesignRoundBatchRequest":{"properties":{"brief_label":{"type":"string","title":"Brief Label"},"brief_prompt":{"type":"string","title":"Brief Prompt"},"styles":{"items":{"type":"string"},"type":"array","title":"Styles"},"reference_asset_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Reference Asset Ids"},"output_format":{"$ref":"#/components/schemas/DesignRoundBatchOutputFormat","default":"blocks"}},"type":"object","required":["brief_label","brief_prompt","styles"],"title":"CreateDesignRoundBatchRequest"},"CreateEmailTemplateFromVariantRequest":{"properties":{"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"name":{"type":"string","minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["variant_id","name"],"title":"CreateEmailTemplateFromVariantRequest"},"CreateEventDefinitionRequest":{"properties":{"event_key":{"type":"string","title":"Event Key"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"source_kind":{"$ref":"#/components/schemas/EventSourceKind"},"config":{"oneOf":[{"$ref":"#/components/schemas/PostHogHogQLEventConfig"},{"$ref":"#/components/schemas/SupabaseTableEventConfig"}],"title":"Config","discriminator":{"propertyName":"kind","mapping":{"posthog_hogql":"#/components/schemas/PostHogHogQLEventConfig","supabase_table":"#/components/schemas/SupabaseTableEventConfig"}}}},"type":"object","required":["event_key","integration_id","source_kind","config"],"title":"CreateEventDefinitionRequest"},"CreateIntegrationCapabilityGroupRequest":{"properties":{"name":{"type":"string","maxLength":80,"minLength":1,"title":"Name"},"capability_keys":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Capability Keys"}},"type":"object","required":["name","capability_keys"],"title":"CreateIntegrationCapabilityGroupRequest"},"CreateMdpExcludedDayRequest":{"properties":{"cohort_date":{"type":"string","format":"date","title":"Cohort Date"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["cohort_date","reason"],"title":"CreateMdpExcludedDayRequest"},"CreatePolymorphicAppRequest":{"properties":{"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"instruction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instruction"},"seed_instruction":{"type":"boolean","title":"Seed Instruction","default":true},"integration_access":{"items":{"$ref":"#/components/schemas/PolymorphicAppIntegrationAccessSelectionInfo"},"type":"array","maxItems":100,"title":"Integration Access"}},"type":"object","title":"CreatePolymorphicAppRequest"},"CreateRenderGradeRequest":{"properties":{"variant_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Variant Id"},"html":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Html","description":"Raw email HTML to grade, captured verbatim. No {{field}} template substitution runs, so any merge tags render literally and are graded as they appear."},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"}},"type":"object","title":"CreateRenderGradeRequest","description":"Grade one email's rendered pixels: a saved variant XOR raw HTML."},"CreateSegmentRequest":{"properties":{"name":{"type":"string","title":"Name"},"segment_type":{"type":"string","title":"Segment Type"},"collector_config":{"additionalProperties":true,"type":"object","title":"Collector Config"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["name","segment_type","collector_config"],"title":"CreateSegmentRequest"},"CreateTrackedTargetRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"metric_event_key":{"type":"string","title":"Metric Event Key"},"audience":{"$ref":"#/components/schemas/CohortAudience","default":"everyone"},"region_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Region Id"},"conversion_definition_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Conversion Definition Id"}},"type":"object","required":["metric_event_key"],"title":"CreateTrackedTargetRequest"},"CreateWorkflowRequest":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"}},"type":"object","required":["name"],"title":"CreateWorkflowRequest"},"CreateWorkflowScheduleRequest":{"properties":{"workflow_name":{"type":"string","title":"Workflow Name"},"params":{"additionalProperties":true,"type":"object","title":"Params"},"cron":{"type":"string","title":"Cron"},"timezone":{"type":"string","title":"Timezone"},"is_enabled":{"type":"boolean","title":"Is Enabled","default":true}},"type":"object","required":["workflow_name","params","cron","timezone"],"title":"CreateWorkflowScheduleRequest"},"DataDictionaryCurationState":{"type":"string","enum":["draft","curated"],"title":"DataDictionaryCurationState"},"DataDictionaryEntryInfo":{"properties":{"table_schema":{"type":"string","title":"Table Schema"},"table_name":{"type":"string","title":"Table Name"},"column_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Column Name"},"meaning":{"type":"string","title":"Meaning"},"units":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Units"},"traps":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Traps"},"canonical_expression":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical Expression"}},"type":"object","required":["table_schema","table_name","meaning"],"title":"DataDictionaryEntryInfo","description":"One curated entry as the app-build prompts render it.\n\nCarries the subject and the prose only: no id, integration, or\ntimestamps, and no ``curation_state`` because a draft never reaches\na prompt. That keeps the rendered section stable across builds that\nchanged nothing but an edit stamp."},"DataDictionaryEntryResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"table_schema":{"type":"string","title":"Table Schema"},"table_name":{"type":"string","title":"Table Name"},"column_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Column Name"},"meaning":{"type":"string","title":"Meaning"},"units":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Units"},"traps":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Traps"},"canonical_expression":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical Expression"},"curation_state":{"$ref":"#/components/schemas/DataDictionaryCurationState"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","integration_id","table_schema","table_name","column_name","meaning","units","traps","canonical_expression","curation_state"],"title":"DataDictionaryEntryResponse"},"DatetimeEdgesDiscretization":{"properties":{"kind":{"type":"string","const":"datetime_edges","title":"Kind"},"edges":{"items":{"$ref":"#/components/schemas/OffsetSpec"},"type":"array","title":"Edges"}},"type":"object","required":["kind","edges"],"title":"DatetimeEdgesDiscretization"},"DatetimeGranularityDiscretization":{"properties":{"kind":{"type":"string","const":"datetime_granularity","title":"Kind"},"amount":{"type":"integer","title":"Amount"},"unit":{"type":"string","enum":["minutes","hours","days","weeks"],"title":"Unit"}},"type":"object","required":["kind","amount","unit"],"title":"DatetimeGranularityDiscretization"},"DatetimeRangeBucket":{"properties":{"kind":{"type":"string","const":"datetime_range","title":"Kind"},"lo":{"anyOf":[{"$ref":"#/components/schemas/OffsetSpec"},{"type":"null"}]},"hi":{"anyOf":[{"$ref":"#/components/schemas/OffsetSpec"},{"type":"null"}]}},"type":"object","required":["kind","lo","hi"],"title":"DatetimeRangeBucket","description":"Half-open ``[lo, hi)`` on the time axis, bounds RELATIVE to now:\neach bound is a signed :class:`OffsetSpec` from the evaluation\ninstant (``lo`` the older bound, e.g. ``offset(-90, days)``; ``hi``\nthe newer, e.g. ``offset(-7, days)``), so membership rolls with\ntime — \"churned 1–7 days ago\" stays that cohort forever. ``lo=None``\nis ``-inf`` (min-outlier), ``hi=None`` is ``+inf`` (max-outlier).\n\nBounds are ``OffsetSpec`` ONLY — never ``NowSpec`` — because leaf\nidentity keys on bucket JSON (``canonical_vector`` / ``_leaf_key``\ncompare ``model_dump_json()`` output) and two spellings of the same\ninstant (``now`` vs ``offset(0)``) would spuriously supersede leaves\non re-save. ``offset(0)`` is the one canonical \"now\"."},"DecideOAuthAuthorizationRequest":{"properties":{"approved":{"type":"boolean","title":"Approved"}},"type":"object","required":["approved"],"title":"DecideOAuthAuthorizationRequest"},"DemoMailboxInfo":{"properties":{"address":{"type":"string","title":"Address"},"signup_status":{"$ref":"#/components/schemas/MailboxSignupStatus"},"ingested_count":{"type":"integer","title":"Ingested Count"}},"type":"object","required":["address","signup_status","ingested_count"],"title":"DemoMailboxInfo"},"DemoProvisionLogLineInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"seq":{"type":"integer","title":"Seq"},"stage_key":{"anyOf":[{"$ref":"#/components/schemas/DemoProvisionStageKey"},{"type":"null"}]},"level":{"type":"string","title":"Level"},"message":{"type":"string","title":"Message"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","seq","stage_key","level","message","created_at"],"title":"DemoProvisionLogLineInfo"},"DemoProvisionRunInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"$ref":"#/components/schemas/DemoProvisionRunStatus"},"current_stage_key":{"anyOf":[{"$ref":"#/components/schemas/DemoProvisionStageKey"},{"type":"null"}]},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"heartbeat_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Heartbeat At"}},"type":"object","required":["id","status","current_stage_key","error_message","started_at","finished_at","heartbeat_at"],"title":"DemoProvisionRunInfo"},"DemoProvisionRunStatus":{"type":"string","enum":["pending","running","succeeded","failed"],"title":"DemoProvisionRunStatus"},"DemoProvisionStageInfo":{"properties":{"stage_key":{"$ref":"#/components/schemas/DemoProvisionStageKey"},"status":{"$ref":"#/components/schemas/DemoProvisionStageStatus"},"progress_pct":{"type":"integer","title":"Progress Pct"},"attempt":{"type":"integer","title":"Attempt"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"}},"type":"object","required":["stage_key","status","progress_pct","attempt","error_message","started_at","finished_at"],"title":"DemoProvisionStageInfo"},"DemoProvisionStageKey":{"type":"string","enum":["brand_import","plan_generation","foundation_fill","attribute_fill","contact_fill","event_fill","campaign_fill","notification_fill","mdp_fill"],"title":"DemoProvisionStageKey"},"DemoProvisionStageStatus":{"type":"string","enum":["pending","running","succeeded","failed","skipped"],"title":"DemoProvisionStageStatus"},"DemoProvisionStatus":{"type":"string","enum":["pending","extracting_brand","generating_plan","populating","ready","failed"],"title":"DemoProvisionStatus"},"DemoSetupProgressResponse":{"properties":{"run":{"anyOf":[{"$ref":"#/components/schemas/DemoProvisionRunInfo"},{"type":"null"}]},"stages":{"items":{"$ref":"#/components/schemas/DemoProvisionStageInfo"},"type":"array","title":"Stages"},"provision_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provision Status"},"provision_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provision Error"},"has_plan":{"type":"boolean","title":"Has Plan"},"mailbox":{"anyOf":[{"$ref":"#/components/schemas/DemoMailboxInfo"},{"type":"null"}]}},"type":"object","required":["run","stages","provision_status","provision_error","has_plan"],"title":"DemoSetupProgressResponse"},"DesignBriefRegenerationOutcome":{"type":"string","enum":["updated","dropped"],"title":"DesignBriefRegenerationOutcome"},"DesignInspirationItemInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"source":{"type":"string","title":"Source"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"design_brief":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Design Brief"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"drop_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Drop Reason"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","source","tags","created_at"],"title":"DesignInspirationItemInfo","description":"Public shape for a curated design-inspiration item.\n\nDecouples the API contract from the ``DesignInspirationItem`` table\nmodel, dropping the internal ``raw_meta`` leftovers."},"DesignRoundBatchOutputFormat":{"type":"string","enum":["blocks","raw_html","mixed"],"title":"DesignRoundBatchOutputFormat"},"DesignRoundBatchResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"brief_label":{"type":"string","title":"Brief Label"},"brief_prompt":{"type":"string","title":"Brief Prompt"},"styles":{"items":{"type":"string"},"type":"array","title":"Styles"},"reference_asset_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Reference Asset Ids"},"status":{"$ref":"#/components/schemas/DesignRoundBatchStatus"},"output_format":{"$ref":"#/components/schemas/DesignRoundBatchOutputFormat"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"candidate_count":{"type":"integer","title":"Candidate Count"},"converted_count":{"type":"integer","title":"Converted Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","brief_label","brief_prompt","styles","reference_asset_ids","status","output_format","error_message","candidate_count","converted_count","created_at"],"title":"DesignRoundBatchResponse"},"DesignRoundBatchStatus":{"type":"string","enum":["pending","running","complete","failed"],"title":"DesignRoundBatchStatus"},"DesignRoundBatchWithCandidatesResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"brief_label":{"type":"string","title":"Brief Label"},"brief_prompt":{"type":"string","title":"Brief Prompt"},"styles":{"items":{"type":"string"},"type":"array","title":"Styles"},"reference_asset_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Reference Asset Ids"},"status":{"$ref":"#/components/schemas/DesignRoundBatchStatus"},"output_format":{"$ref":"#/components/schemas/DesignRoundBatchOutputFormat"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"candidate_count":{"type":"integer","title":"Candidate Count"},"converted_count":{"type":"integer","title":"Converted Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"candidates":{"items":{"$ref":"#/components/schemas/DesignRoundCandidateResponse"},"type":"array","title":"Candidates"}},"type":"object","required":["id","brief_label","brief_prompt","styles","reference_asset_ids","status","output_format","error_message","candidate_count","converted_count","created_at","candidates"],"title":"DesignRoundBatchWithCandidatesResponse"},"DesignRoundCandidateResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"batch_id":{"type":"string","format":"uuid","title":"Batch Id"},"style":{"type":"string","title":"Style"},"candidate_index":{"type":"integer","title":"Candidate Index"},"kind":{"type":"string","enum":["template","freeform","raw_html"],"title":"Kind"},"name":{"type":"string","title":"Name"},"subject":{"type":"string","title":"Subject"},"html":{"type":"string","title":"Html"},"revision_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revision Notes"},"variant_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Variant Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","batch_id","style","candidate_index","kind","name","subject","html","created_at"],"title":"DesignRoundCandidateResponse"},"DirtyScanStrategy":{"type":"string","enum":["scoped","python_scope"],"title":"DirtyScanStrategy"},"DividerBlock":{"properties":{"block_type":{"type":"string","const":"divider","title":"Block Type","default":"divider"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"padding":{"type":"integer","title":"Padding","default":0}},"additionalProperties":false,"type":"object","title":"DividerBlock"},"EdgesDiscretization":{"properties":{"kind":{"type":"string","const":"edges","title":"Kind"},"edges":{"items":{"type":"number"},"type":"array","title":"Edges"}},"type":"object","required":["kind","edges"],"title":"EdgesDiscretization"},"EmailContent":{"properties":{"channel":{"type":"string","const":"email","title":"Channel"},"mode":{"type":"string","enum":["plaintext","composed"],"title":"Mode","default":"plaintext"},"layout":{"type":"string","enum":["card","canvas"],"title":"Layout","default":"card"},"from_name":{"type":"string","title":"From Name","default":""},"from_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"From Email"},"subject":{"type":"string","title":"Subject","default":""},"body_text":{"type":"string","title":"Body Text","default":""},"body_html":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Html"},"cta":{"anyOf":[{"$ref":"#/components/schemas/EmailCtaConfig"},{"type":"null"}]},"blocks":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/HeaderBlock"},{"$ref":"#/components/schemas/BrandSymbolBlock"},{"$ref":"#/components/schemas/HeroBlock"},{"$ref":"#/components/schemas/ItemListCardBlock"},{"$ref":"#/components/schemas/StateCardBlock"},{"$ref":"#/components/schemas/OfferCardBlock"},{"$ref":"#/components/schemas/ChallengeCardBlock"},{"$ref":"#/components/schemas/TestimonialBlock"},{"$ref":"#/components/schemas/InfoCalloutBlock"},{"$ref":"#/components/schemas/BodyTextBlock"},{"$ref":"#/components/schemas/LocalizedTextBlock"},{"$ref":"#/components/schemas/SurveyRowsBlock"},{"$ref":"#/components/schemas/CountdownBlock"},{"$ref":"#/components/schemas/AppStoreBlock"},{"$ref":"#/components/schemas/SignatureBlock"},{"$ref":"#/components/schemas/FooterBlock"},{"$ref":"#/components/schemas/DividerBlock"},{"$ref":"#/components/schemas/MediaBlock"},{"$ref":"#/components/schemas/MediaSplitBlock"},{"$ref":"#/components/schemas/MediaPairBlock"},{"$ref":"#/components/schemas/ProductCardBlock"},{"$ref":"#/components/schemas/PromoBarBlock"},{"$ref":"#/components/schemas/FullBleedHeroBlock"},{"$ref":"#/components/schemas/SectionCardBlock"},{"$ref":"#/components/schemas/OrgBlockRef"}],"discriminator":{"propertyName":"block_type","mapping":{"app_store":"#/components/schemas/AppStoreBlock","body_text":"#/components/schemas/BodyTextBlock","brand_symbol":"#/components/schemas/BrandSymbolBlock","challenge_card":"#/components/schemas/ChallengeCardBlock","countdown":"#/components/schemas/CountdownBlock","divider":"#/components/schemas/DividerBlock","footer":"#/components/schemas/FooterBlock","full_bleed_hero":"#/components/schemas/FullBleedHeroBlock","header":"#/components/schemas/HeaderBlock","hero":"#/components/schemas/HeroBlock","info_callout":"#/components/schemas/InfoCalloutBlock","item_list_card":"#/components/schemas/ItemListCardBlock","localized_text":"#/components/schemas/LocalizedTextBlock","media":"#/components/schemas/MediaBlock","media_pair":"#/components/schemas/MediaPairBlock","media_split":"#/components/schemas/MediaSplitBlock","offer_card":"#/components/schemas/OfferCardBlock","org_block":"#/components/schemas/OrgBlockRef","product_card":"#/components/schemas/ProductCardBlock","promo_bar":"#/components/schemas/PromoBarBlock","section_card":"#/components/schemas/SectionCardBlock","signature":"#/components/schemas/SignatureBlock","state_card":"#/components/schemas/StateCardBlock","survey_rows":"#/components/schemas/SurveyRowsBlock","testimonial":"#/components/schemas/TestimonialBlock"}}},"type":"array"},{"type":"null"}],"title":"Blocks"},"envelope":{"anyOf":[{"$ref":"#/components/schemas/EmailEnvelopeConfig"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["channel"],"title":"EmailContent"},"EmailCtaConfig":{"properties":{"label":{"type":"string","title":"Label"},"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url"}},"additionalProperties":false,"type":"object","required":["label","url"],"title":"EmailCtaConfig"},"EmailEnvelopeConfig":{"properties":{"preheader":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preheader"}},"additionalProperties":false,"type":"object","title":"EmailEnvelopeConfig","description":"Email chrome extras that aren't already on EmailContent.\n\n``subject`` / ``from_name`` / ``from_email`` stay on EmailContent\n(shared with plaintext mode). The envelope carries only the\npreview-text row that the block engine's chrome pastes into the\nhidden preheader div."},"EmailOTPRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"EmailOTPRequest"},"EmailOTPVerifyRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"code":{"type":"string","title":"Code"}},"type":"object","required":["email","code"],"title":"EmailOTPVerifyRequest"},"EmailPreview":{"properties":{"channel":{"type":"string","const":"email","title":"Channel","default":"email"},"html":{"type":"string","title":"Html"},"plaintext":{"type":"string","title":"Plaintext"},"subject":{"type":"string","title":"Subject"},"preheader":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preheader"},"from_name":{"type":"string","title":"From Name"},"to":{"type":"string","title":"To"},"text_slots":{"anyOf":[{"items":{"$ref":"#/components/schemas/TextSlotInfo"},"type":"array"},{"type":"null"}],"title":"Text Slots"}},"additionalProperties":false,"type":"object","required":["html","plaintext","subject","from_name","to"],"title":"EmailPreview"},"EmailRenderGradeResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"$ref":"#/components/schemas/RenderGradeStatus"},"variant_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Variant Id"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"overall_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Overall Score"},"verdict":{"anyOf":[{"$ref":"#/components/schemas/RenderGradeVerdict"},{"type":"null"}]},"dimensions":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Dimensions"},"detected_tells":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Detected Tells"},"reasons":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasons"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"screenshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Url"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","status","variant_id","subject","overall_score","verdict","dimensions","detected_tells","reasons","model","error_message","screenshot_url","created_at"],"title":"EmailRenderGradeResponse"},"EmailSenderSource":{"properties":{"email":{"type":"string","title":"Email"},"display_name":{"type":"string","title":"Display Name"},"source":{"$ref":"#/components/schemas/EmailSenderSourceKind"},"is_testing_only":{"type":"boolean","title":"Is Testing Only"}},"additionalProperties":false,"type":"object","required":["email","display_name","source","is_testing_only"],"title":"EmailSenderSource","description":"One row in the picker.\n\n``is_testing_only`` doubles as the UI's grouping key and the\nbackend's \"reject for bulk\" flag, set consistently alongside\n``source=polymorph_testing``."},"EmailSenderSourceKind":{"type":"string","enum":["resend","custom_domain","polymorph_testing"],"title":"EmailSenderSourceKind"},"EmailSendersResult":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EmailSenderSource"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"EmailSendersResult","description":"Enumeration response envelope.\n\nNon-paginated: the list is bounded (at most three entries in the\ncurrent provider set — one per kind). Follows the small-typed-\nenvelope convention rather than ``PageResult[T]`` per the\nbackend/usecases/CLAUDE.md discussion around list UCs."},"EmailTemplateDetailResponse":{"properties":{"name":{"type":"string","title":"Name"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"},"org_binding":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Org Binding"},"mode":{"type":"string","enum":["composed","plaintext"],"title":"Mode"},"block_sequence_labels":{"items":{"type":"string"},"type":"array","title":"Block Sequence Labels"},"preview_html":{"type":"string","title":"Preview Html"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"content":{"$ref":"#/components/schemas/EmailContent"}},"additionalProperties":false,"type":"object","required":["name","label","description","org_binding","mode","block_sequence_labels","preview_html","content"],"title":"EmailTemplateDetailResponse"},"EmailTemplateResponse":{"properties":{"name":{"type":"string","title":"Name"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"},"org_binding":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Org Binding"},"mode":{"type":"string","enum":["composed","plaintext"],"title":"Mode"},"block_sequence_labels":{"items":{"type":"string"},"type":"array","title":"Block Sequence Labels"},"preview_html":{"type":"string","title":"Preview Html"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"additionalProperties":false,"type":"object","required":["name","label","description","org_binding","mode","block_sequence_labels","preview_html"],"title":"EmailTemplateResponse"},"EventActivityEvent":{"properties":{"source":{"type":"string","const":"event","title":"Source","default":"event"},"id":{"type":"string","format":"uuid","title":"Id"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"event_key":{"type":"string","title":"Event Key"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"}},"type":"object","required":["id","occurred_at","event_key","value"],"title":"EventActivityEvent"},"EventComputeKind":{"type":"string","enum":["last_occurred_at","sum_over_window"],"title":"EventComputeKind"},"EventDefinitionResponse":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"event_key":{"type":"string","title":"Event Key"},"integration_id":{"type":"string","title":"Integration Id"},"source_kind":{"type":"string","title":"Source Kind"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"importance":{"type":"integer","title":"Importance"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"last_synced_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Synced At"}},"type":"object","required":["id","organization_id","event_key","integration_id","source_kind","config","is_enabled","importance"],"title":"EventDefinitionResponse"},"EventLeafNode":{"properties":{"kind":{"type":"string","const":"event","title":"Kind"},"event_key":{"type":"string","maxLength":120,"minLength":1,"title":"Event Key"},"min_count":{"type":"integer","maximum":10000.0,"minimum":1.0,"title":"Min Count","default":1},"window":{"oneOf":[{"$ref":"#/components/schemas/TrailingWindowSpec"},{"$ref":"#/components/schemas/SinceDateSpec"}],"title":"Window","discriminator":{"propertyName":"kind","mapping":{"since_date":"#/components/schemas/SinceDateSpec","trailing":"#/components/schemas/TrailingWindowSpec"}}}},"additionalProperties":false,"type":"object","required":["kind","event_key","window"],"title":"EventLeafNode","description":"Predicate over performed events: \"did ``event_key`` at least\n``min_count`` times inside ``window``.\" A leaf like\n:class:`LeafNode`, but probing the ``events`` table instead of\n``contact_attributes`` — so attribute-only surfaces (segment\nconfigs, the segment SQL compiler, region descriptors) reject it\nwith explicit walks rather than a validation-context flag (the\n``allow_context_ref`` flag mechanism fires on programmatic\nconstruction too — a known bug class).\n\nThe count sums stored bucket values (``SUM(COALESCE(value, 1))``):\nfor count-style definitions each bucket's ``value`` IS its\noccurrence count, so ``min_count`` reads as \"at least N times\"; for\nvalue-mapped definitions it compares against the summed measure.\n\nField order is the frozen wire order (``kind, event_key, min_count,\nwindow``) — pinned by the exact-JSON parity tests against the\nfrontend serializer."},"EventOutcomeRef":{"properties":{"kind":{"type":"string","const":"event","title":"Kind"},"event_definition_id":{"type":"string","format":"uuid","title":"Event Definition Id"},"event_key":{"type":"string","title":"Event Key"},"measure":{"$ref":"#/components/schemas/SeriesMeasure"},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit"}},"type":"object","required":["kind","event_definition_id","event_key","measure"],"title":"EventOutcomeRef","description":"Response descriptor for an event outcome card.\n\n``unit`` mirrors the event definition's ``config[\"unit\"]`` — ``\"currency\"``\nflags a dollar outcome so the card renders ``$1,234`` instead of a bare\nnumber; ``None`` keeps today's numeric rendering."},"EventOutcomeSpec":{"properties":{"kind":{"type":"string","const":"event","title":"Kind"},"event_definition_id":{"type":"string","format":"uuid","title":"Event Definition Id"},"measure":{"$ref":"#/components/schemas/SeriesMeasure"},"granularity":{"$ref":"#/components/schemas/Granularity"},"start":{"type":"string","format":"date-time","title":"Start"},"end":{"type":"string","format":"date-time","title":"End"},"percentile_p":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percentile P"}},"type":"object","required":["kind","event_definition_id","measure","granularity","start","end"],"title":"EventOutcomeSpec","description":"An event outcome's full spec — event + measure + its own time window.\n\nPer-card window/granularity makes the dashboard surface independent\ntoolbars per card (the cohort is shared and fetched once; only the\n``series_by_bucket`` reads vary by spec). Before this, the whole\nrequest shared a single window which prevented \"30d paid + 7d\nsessions\" side-by-side comparisons."},"EventPercentileCurvesInfo":{"properties":{"percentiles":{"items":{"type":"number"},"type":"array","title":"Percentiles"},"treated":{"items":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"array","title":"Treated"},"control":{"items":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"array","title":"Control"},"treated_n":{"type":"integer","title":"Treated N","default":0},"control_n":{"type":"integer","title":"Control N","default":0}},"type":"object","required":["percentiles","treated","control"],"title":"EventPercentileCurvesInfo","description":"A measured event's per-arm value-by-percentile curves.\n\nThe distribution shape for ``GET /overview/distribution`` — the quantile\n(inverse-CDF) counterpart of the scalar cohort grid: for each arm, the\nper-contact windowed event value (``SUM(events.value)`` over the window,\n``0`` for cohort contacts with no events — the non-converters stay in\nthe curve) at each sampled percentile. ``percentiles`` is the shared\nx-axis — ascending points in ``[0, 100]`` (unit steps, with a denser\ngeometric tail past 99). ``treated`` / ``control`` are the value at each\npercentile for the non-control / global-control arm (same length as\n``percentiles``), pooled across all signup cohorts. A ``None`` sample\nmarks a tail rank the arm is too small to resolve (the distribution\nuse case's gate — the repository always emits floats). An arm with no\ncontacts is an empty list. ``treated_n`` / ``control_n`` are each arm's\ncohort headcount — the sample size behind its curve."},"EventRowInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"contact_id":{"type":"string","format":"uuid","title":"Contact Id"},"contact":{"anyOf":[{"$ref":"#/components/schemas/ContactSummaryInfo"},{"type":"null"}]}},"type":"object","required":["id","occurred_at","value","contact_id"],"title":"EventRowInfo"},"EventSeriesBatchRequest":{"properties":{"breakdown":{"oneOf":[{"$ref":"#/components/schemas/EventsBreakdown"},{"$ref":"#/components/schemas/AttributeBreakdown"},{"$ref":"#/components/schemas/SegmentBreakdown"},{"$ref":"#/components/schemas/CampaignArmBreakdown"}],"title":"Breakdown","discriminator":{"propertyName":"mode","mapping":{"attribute":"#/components/schemas/AttributeBreakdown","campaign_arms":"#/components/schemas/CampaignArmBreakdown","events":"#/components/schemas/EventsBreakdown","segments":"#/components/schemas/SegmentBreakdown"}}},"granularity":{"$ref":"#/components/schemas/Granularity"},"measure":{"$ref":"#/components/schemas/SeriesMeasure"},"start":{"type":"string","format":"date-time","title":"Start"},"end":{"type":"string","format":"date-time","title":"End"},"cohort_segment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Cohort Segment Id"}},"type":"object","required":["breakdown","granularity","measure","start","end"],"title":"EventSeriesBatchRequest"},"EventSeriesRequest":{"properties":{"granularity":{"$ref":"#/components/schemas/Granularity"},"measure":{"$ref":"#/components/schemas/SeriesMeasure"},"start":{"type":"string","format":"date-time","title":"Start"},"end":{"type":"string","format":"date-time","title":"End"},"contact_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Contact Ids"}},"type":"object","required":["granularity","measure","start","end"],"title":"EventSeriesRequest"},"EventSourceKind":{"type":"string","enum":["posthog_hogql","supabase_table"],"title":"EventSourceKind"},"EventStreamAttributeConfig":{"properties":{"event_key":{"type":"string","title":"Event Key"},"compute":{"$ref":"#/components/schemas/EventComputeKind","default":"last_occurred_at"},"window_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Window Days"}},"type":"object","required":["event_key"],"title":"EventStreamAttributeConfig","description":"Config for ``attribute_mappings.source_kind == 'event_stream'``.\n\nDerives one per-contact attribute from the org's local ``events``\ntable. Two computes:\n\n  * ``last_occurred_at`` — the latest ``occurred_at`` of\n    ``event_key`` per contact, stored as a datetime.\n  * ``sum_over_window`` — ``SUM(events.value)`` over the trailing\n    ``window_days`` per contact, stored as a number. Recomputed over\n    the full window every tick, so the value decays as events age\n    out and a contact with no in-window events loses its row.\n    Count-only event definitions (no ``value_column``) ingest\n    per-bucket counts into ``events.value``, so their windowed sum\n    is the contact's occurrences-in-window.\n\nNo filter fields: a computed attribute covers every contact who has\nthe event, so a partial / contact-filtered population is\nunrepresentable by construction (unlike\n:class:`AttributeMappingConfig`, whose remote-table source carries\n``scope_filters`` / ``membership_filters``)."},"EventsBreakdown":{"properties":{"mode":{"type":"string","const":"events","title":"Mode","default":"events"},"event_definition_ids":{"items":{"type":"string","format":"uuid"},"type":"array","minItems":1,"title":"Event Definition Ids"}},"type":"object","required":["event_definition_ids"],"title":"EventsBreakdown"},"EvidenceRef":{"properties":{"ref_type":{"$ref":"#/components/schemas/EvidenceRefType"},"ref_id":{"type":"string","format":"uuid","title":"Ref Id"}},"type":"object","required":["ref_type","ref_id"],"title":"EvidenceRef"},"EvidenceRefType":{"type":"string","enum":["state","region","proposal","experiment_definition","experiment_instance","variant"],"title":"EvidenceRefType","description":"The kind of row an :class:`EvidenceRef` points at.\n\nEach value names the same-org table the repository resolves the\n``ref_id`` against when validating evidence integrity."},"ExperimentDefinitionCreateRequest":{"properties":{"attribution_window_seconds":{"type":"integer","exclusiveMinimum":0.0,"title":"Attribution Window Seconds","default":86400},"attribution_window_seconds_secondary":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Attribution Window Seconds Secondary"},"source_state_id":{"type":"string","format":"uuid","title":"Source State Id"},"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"is_draft":{"type":"boolean","title":"Is Draft","default":true}},"type":"object","required":["source_state_id","variant_id"],"title":"ExperimentDefinitionCreateRequest"},"ExperimentDefinitionResponse":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"source_state_id":{"type":"string","title":"Source State Id"},"variant_id":{"type":"string","title":"Variant Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"attribution_window_seconds":{"type":"integer","title":"Attribution Window Seconds"},"attribution_window_seconds_secondary":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Attribution Window Seconds Secondary"},"is_draft":{"type":"boolean","title":"Is Draft"},"source_state_superseded":{"type":"boolean","title":"Source State Superseded","default":false},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"source_state_buckets":{"anyOf":[{"items":{"$ref":"#/components/schemas/AttributeBucket"},"type":"array"},{"type":"null"}],"title":"Source State Buckets"},"variant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Name"},"variant_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Channel"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"body_snippet":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Snippet"},"channel_display":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Display"},"latest_instance_created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Instance Created At"},"latest_instance_member_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Latest Instance Member Count"}},"type":"object","required":["id","organization_id","source_state_id","variant_id","attribution_window_seconds","is_draft","created_at","updated_at"],"title":"ExperimentDefinitionResponse"},"ExperimentDefinitionStateCountInfo":{"properties":{"source_state_id":{"type":"string","title":"Source State Id"},"experiment_count":{"type":"integer","title":"Experiment Count"},"active_experiment_count":{"type":"integer","title":"Active Experiment Count"},"control_share":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Control Share"}},"type":"object","required":["source_state_id","experiment_count","active_experiment_count"],"title":"ExperimentDefinitionStateCountInfo","description":"One current state's experiment tallies for the states-list Experiments\ncolumn. ``experiment_count`` includes drafts (the column shows every arm);\n``active_experiment_count`` is the live subset; ``control_share`` is the\nrealized held-back share of the state's provisioned cohort over the\ntrailing coverage window (``None`` when it provisioned no cohort in that\nwindow, ``0.0`` when it provisioned one and held nobody back). NOT an\narm ratio: control-first carves the control arm off the top, so arm\ncounts say nothing about the split."},"ExperimentDefinitionStateCountsResponse":{"properties":{"counts":{"items":{"$ref":"#/components/schemas/ExperimentDefinitionStateCountInfo"},"type":"array","title":"Counts"}},"type":"object","required":["counts"],"title":"ExperimentDefinitionStateCountsResponse"},"ExperimentDefinitionUpdateRequest":{"properties":{"is_draft":{"type":"boolean","title":"Is Draft"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["is_draft"],"title":"ExperimentDefinitionUpdateRequest"},"ExperimentGroupDetailResponse":{"properties":{"variant_id":{"type":"string","title":"Variant Id"},"variant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Name"},"variant_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Channel"},"channel_display":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Display"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"body_snippet":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Snippet"},"experiment_count":{"type":"integer","title":"Experiment Count"},"is_active":{"type":"boolean","title":"Is Active"},"latest_instance_created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Instance Created At"},"latest_instance_member_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Latest Instance Member Count"},"control_variant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Control Variant Id"},"source_state_ids":{"items":{"type":"string"},"type":"array","title":"Source State Ids","default":[]}},"type":"object","required":["variant_id","experiment_count","is_active"],"title":"ExperimentGroupDetailResponse","description":"The group header plus the control variant resolved across the\ngroup's states. ``control_variant_id`` is the single live\n``control``-channel arm shared by the states this variant runs in\n(the region control companion) — None when those states carry zero or\nmore than one distinct control variant, so the outcomes surface only\ndraws a treated-vs-control comparison for an unambiguous control.\n\n``source_state_ids`` are the live (non-draft) states this variant runs\nin. The outcomes surface passes them to scope the control variant's\ncohorts to these states — the control arm runs in every state of the\npartition, so pooling it unscoped would compare against a different\npopulation than the treated arm."},"ExperimentInstanceMemberResponse":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"experiment_instance_id":{"type":"string","title":"Experiment Instance Id"},"contact_id":{"type":"string","title":"Contact Id"},"contact":{"$ref":"#/components/schemas/ContactSummaryInfo"},"outcome_state_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outcome State Id"},"sent_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sent At"},"send_status":{"$ref":"#/components/schemas/MemberSendStatus"},"failure_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Reason"},"assigned_at":{"type":"string","title":"Assigned At"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["id","organization_id","experiment_instance_id","contact_id","contact","outcome_state_id","sent_at","send_status","failure_reason","assigned_at","created_at","updated_at"],"title":"ExperimentInstanceMemberResponse"},"ExperimentInstanceResponse":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"experiment_definition_id":{"type":"string","title":"Experiment Definition Id"},"source_state_id":{"type":"string","title":"Source State Id"},"cohort_date":{"type":"string","title":"Cohort Date"},"send_anchor_at":{"type":"string","title":"Send Anchor At"},"attribution_window_seconds":{"type":"integer","title":"Attribution Window Seconds"},"attribution_window_seconds_secondary":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Attribution Window Seconds Secondary"},"status":{"type":"string","title":"Status"},"outcome_states":{"anyOf":[{"items":{"$ref":"#/components/schemas/OutcomeStateCountInfo"},"type":"array"},{"type":"null"}],"title":"Outcome States"},"outcome_states_secondary":{"anyOf":[{"items":{"$ref":"#/components/schemas/OutcomeStateCountInfo"},"type":"array"},{"type":"null"}],"title":"Outcome States Secondary"},"send_status_counts":{"items":{"$ref":"#/components/schemas/MemberSendStatusCountInfo"},"type":"array","title":"Send Status Counts"},"graded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Graded At"},"graded_secondary_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Graded Secondary At"},"member_count":{"type":"integer","title":"Member Count"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["id","organization_id","experiment_definition_id","source_state_id","cohort_date","send_anchor_at","attribution_window_seconds","attribution_window_seconds_secondary","status","outcome_states","outcome_states_secondary","send_status_counts","graded_at","graded_secondary_at","member_count","created_at","updated_at"],"title":"ExperimentInstanceResponse"},"ExperimentInstanceStatus":{"type":"string","enum":["pending","sent","graded"],"title":"ExperimentInstanceStatus"},"ExperimentInstanceSummaryInfo":{"properties":{"experiment_instance_id":{"type":"string","format":"uuid","title":"Experiment Instance Id"},"experiment_definition_id":{"type":"string","format":"uuid","title":"Experiment Definition Id"},"definition_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Definition Name"},"variant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Name"},"variant_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Channel"},"cohort_date":{"type":"string","format":"date","title":"Cohort Date"},"status":{"type":"string","title":"Status"}},"type":"object","required":["experiment_instance_id","experiment_definition_id","definition_name","variant_name","variant_channel","cohort_date","status"],"title":"ExperimentInstanceSummaryInfo","description":"Minimal denormalized embed for an experiment-instance (\"Cohort\")\nreference. The experiment analogue of ``CampaignStageSummaryInfo`` — carries\nonly what the UI needs to render a cohort cell/pill + drawer link without\na second round-trip per row. The label falls back ``definition_name`` →\n``variant_name`` → \"Experiment\"; ``cohort_date`` + ``status`` render the\ncohort line. Resolved from a notification's ``experiment_instance_id`` via\na single batched ``instances ⨝ definitions ⨝ variants`` JOIN."},"ExperimentLiftConfidence":{"type":"string","enum":["gathering","directional","powered","no_lift"],"title":"ExperimentLiftConfidence","description":"The trust tier of a variant's pooled lift, by increasing confidence.\n\n``GATHERING`` — too little graded evidence to assess (no number shown).\n``DIRECTIONAL`` — assessed, but the pooled lift is not yet significant\n(``|z| < 1.96``); the number is an early read, not a verdict.\n``POWERED`` — assessed, significant, positive (the green check).\n``NO_LIFT`` — assessed, significant, non-positive (the honest negative)."},"ExperimentSeriesResponse":{"properties":{"creation":{"$ref":"#/components/schemas/ChartInfo"},"sending":{"$ref":"#/components/schemas/ChartInfo"},"grading":{"$ref":"#/components/schemas/ChartInfo"}},"type":"object","required":["creation","sending","grading"],"title":"ExperimentSeriesResponse"},"ExperimentStateCountsResponse":{"properties":{"counts":{"items":{"$ref":"#/components/schemas/AdminExperimentStateCountInfo"},"type":"array","title":"Counts"}},"type":"object","required":["counts"],"title":"ExperimentStateCountsResponse"},"FailureEventResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"source":{"$ref":"#/components/schemas/FailureEventSource"},"where_label":{"type":"string","title":"Where Label"},"exception_type":{"type":"string","title":"Exception Type"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"org_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Org Name"}},"type":"object","required":["id","created_at","source","where_label","exception_type"],"title":"FailureEventResponse"},"FailureEventSource":{"type":"string","enum":["worker_crash","worker_timeout","swallowed"],"title":"FailureEventSource"},"FailureHealthResponse":{"properties":{"groups":{"items":{"$ref":"#/components/schemas/AdminFailureGroupInfo"},"type":"array","title":"Groups"}},"type":"object","required":["groups"],"title":"FailureHealthResponse"},"FailureSeriesRequest":{"properties":{"window":{"$ref":"#/components/schemas/FailureSeriesWindow","default":"24h"},"fingerprints":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Fingerprints"},"organization_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Organization Id"}},"type":"object","title":"FailureSeriesRequest"},"FailureSeriesWindow":{"type":"string","enum":["24h","7d","30d","90d"],"title":"FailureSeriesWindow"},"FieldCoverageInfo":{"properties":{"field_name":{"type":"string","title":"Field Name"},"is_identity":{"type":"boolean","title":"Is Identity"},"source":{"type":"string","enum":["properties","contact_attribute","identity"],"title":"Source"},"has_count":{"type":"integer","title":"Has Count"},"missing_count":{"type":"integer","title":"Missing Count"},"coverage_pct":{"type":"number","title":"Coverage Pct"}},"type":"object","required":["field_name","is_identity","source","has_count","missing_count","coverage_pct"],"title":"FieldCoverageInfo"},"FooterBlock":{"properties":{"block_type":{"type":"string","const":"footer","title":"Block Type","default":"footer"},"layout":{"type":"string","enum":["centered","split"],"title":"Layout","default":"centered"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"logo_width":{"type":"integer","title":"Logo Width","default":80},"receiving_line":{"type":"string","title":"Receiving Line","default":""},"note_lines":{"items":{"type":"string"},"type":"array","title":"Note Lines"},"unsubscribe_url":{"type":"string","title":"Unsubscribe Url","default":""},"privacy_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Privacy Url"},"org_name":{"type":"string","title":"Org Name","default":""},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color"}},"additionalProperties":false,"type":"object","title":"FooterBlock","description":"Org footer — receiving line, unsub/privacy links, brand mark.\n\nTwo arrangements: ``centered`` (faded logo above the receiving\nline) and ``split`` (receiving line, hairline divider, then logo\nleft beside ``note_lines`` right — the brand sign-off shape)."},"ForkVariantGenerationRunRequest":{"properties":{"step_index":{"type":"integer","minimum":0.0,"title":"Step Index"},"edited_system":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Edited System"},"edited_messages":{"anyOf":[{"items":{"$ref":"#/components/schemas/VariantGenerationStepMessageInfo"},"type":"array","minItems":1},{"type":"null"}],"title":"Edited Messages","description":"Exactly one message — the replayed call sends a single user turn."}},"type":"object","required":["step_index"],"title":"ForkVariantGenerationRunRequest"},"FullBleedHeroBlock":{"properties":{"block_type":{"type":"string","const":"full_bleed_hero","title":"Block Type","default":"full_bleed_hero"},"image_url":{"type":"string","title":"Image Url","default":""},"alt":{"type":"string","title":"Alt","default":""},"background_color":{"anyOf":[{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},{"type":"null"}],"title":"Background Color"}},"additionalProperties":false,"type":"object","title":"FullBleedHeroBlock","description":"Edge-to-edge hero image spanning the full card width — the\nfull-bleed product / editorial photography lead.\n\n``background_color`` letterboxes a narrower image; the card's\n``overflow:hidden`` clips the top corners to the card radius in\n``rounded_card`` mode, the same mechanism the full-bleed\n:class:`MediaBlock` relies on. ``image_url`` must resolve through the\nemail-asset proxy (enforced plan-wide by the demo invariant walk)."},"GenerateAdVariantsRequest":{"properties":{"channel":{"type":"string","enum":["fcm","expo"],"title":"Channel"},"mode":{"$ref":"#/components/schemas/AdVariantGenerationMode","default":"threshold"},"instruction":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Instruction"},"inspiration_ad_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Inspiration Ad Id"}},"type":"object","required":["channel"],"title":"GenerateAdVariantsRequest"},"GenerateAssetRequest":{"properties":{"prompt":{"type":"string","title":"Prompt"},"reference_asset_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Reference Asset Ids"},"aspect_ratio":{"type":"string","enum":["1:1","2:3","3:2","3:4","4:3","4:5","5:4","9:16","16:9","21:9"],"title":"Aspect Ratio","default":"1:1"},"image_size":{"type":"string","enum":["1K","2K","4K"],"title":"Image Size","default":"2K"}},"type":"object","required":["prompt"],"title":"GenerateAssetRequest"},"GeneratedAdVariantDraft":{"properties":{"inspiration_ad_id":{"type":"string","title":"Inspiration Ad Id"},"ad_label":{"type":"string","title":"Ad Label"},"title":{"type":"string","title":"Title"},"body":{"type":"string","title":"Body"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"probability":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Probability"},"composite":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Composite"}},"type":"object","required":["inspiration_ad_id","ad_label","title","body"],"title":"GeneratedAdVariantDraft","description":"One ad-inspired push draft produced by the batch generation job.\n\n``ad_label`` is the human-readable handle for the source ad\n(``advertiser_name or headline or \"Ad\"``) so the review modal never\nresolves the ad row just to caption a draft."},"GithubCommentStepSpec":{"properties":{"id":{"anyOf":[{"type":"string","pattern":"^s[1-9][0-9]{0,5}$"},{"type":"null"}],"title":"Id"},"title":{"type":"string","maxLength":120,"minLength":1,"title":"Title"},"inputs":{"items":{"$ref":"#/components/schemas/StepInputSpec"},"type":"array","maxItems":16,"title":"Inputs"},"kind":{"type":"string","const":"github_comment","title":"Kind"},"repository":{"type":"string","maxLength":140,"pattern":"^[A-Za-z0-9_.\\-]+/[A-Za-z0-9_.\\-]+$","title":"Repository"},"issue_number":{"type":"string","maxLength":64,"title":"Issue Number","default":""},"body":{"type":"string","maxLength":8000,"title":"Body","default":""}},"additionalProperties":false,"type":"object","required":["title","kind","repository"],"title":"GithubCommentStepSpec","description":"One comment on an issue or pull request. ``repository`` is required\nand never interpolated: its pattern rejects braces by construction, so\nbound data can never retarget the repo. ``issue_number`` is a string\nbecause it may be ``{{a_binding}}``; the executor parses it to a\npositive int at run time."},"GithubInstallMode":{"type":"string","enum":["install","authorize"],"title":"GithubInstallMode"},"GithubPullRequestOpenedTriggerConfig":{"properties":{"kind":{"type":"string","const":"github_pull_request_opened","title":"Kind","default":"github_pull_request_opened"},"repository_full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repository Full Name"}},"type":"object","title":"GithubPullRequestOpenedTriggerConfig"},"GithubSignalContent":{"properties":{"provider":{"type":"string","const":"github","title":"Provider","default":"github"},"repository_full_name":{"type":"string","title":"Repository Full Name"},"number":{"type":"integer","title":"Number"},"is_pull_request":{"type":"boolean","title":"Is Pull Request"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"},"html_url":{"type":"string","title":"Html Url"},"action":{"type":"string","title":"Action"}},"type":"object","required":["repository_full_name","number","is_pull_request","html_url","action"],"title":"GithubSignalContent"},"GlobalArmCohortStatsInfo":{"properties":{"arm":{"type":"string","enum":["treated","control","contacted"],"title":"Arm"},"n":{"type":"integer","title":"N"},"converted_n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Converted N"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"},"mean":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mean"}},"type":"object","required":["arm","n"],"title":"GlobalArmCohortStatsInfo","description":"One arm's per-card cohort summary (treated, control, or contacted).\n\nBoolean cards (``measure == converted_contacts``) populate\n``converted_n`` + ``rate``; value cards (``value_sum`` /\n``average_per_member``) populate ``mean``. ``n`` is the arm's\ncohort size — shared across every card on the same response.\n``\"contacted\"`` is the optional display-only overlay arm (a slice of\ntreated who were sent a message in the last 1d/7d); it carries no\nlift delta — the headline ``lift`` stays ``treated − control``."},"GlobalLiftResult":{"properties":{"enabled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Enabled At"},"not_yet_enabled":{"type":"boolean","title":"Not Yet Enabled"},"cohort_treated_n":{"type":"integer","title":"Cohort Treated N"},"cohort_control_n":{"type":"integer","title":"Cohort Control N"},"cohort_contacted_n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cohort Contacted N"},"window_start":{"type":"string","format":"date-time","title":"Window Start"},"window_end":{"type":"string","format":"date-time","title":"Window End"},"cards":{"items":{"$ref":"#/components/schemas/OutcomeLiftCardInfo"},"type":"array","title":"Cards"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"},"unavailable":{"items":{"$ref":"#/components/schemas/UnavailableOutcomeInfo"},"type":"array","title":"Unavailable"}},"type":"object","required":["enabled_at","not_yet_enabled","cohort_treated_n","cohort_control_n","window_start","window_end","cards","computed_at"],"title":"GlobalLiftResult","description":"The full dashboard payload: one cohort split, N outcome cards.\n\nThe top-level ``window_start``/``window_end`` carry the widest span\nacross all event cards for callers that need an overall range; each\ncard's own time range is recoverable from the request order (the\ncards array preserves it 1:1)."},"GradingRunRequest":{"properties":{"organization_id":{"type":"string","title":"Organization Id"},"split_attribute_key":{"type":"string","title":"Split Attribute Key"},"split_bucket":{"oneOf":[{"$ref":"#/components/schemas/BooleanBucket"},{"$ref":"#/components/schemas/RangeBucket"},{"$ref":"#/components/schemas/DatetimeRangeBucket"},{"$ref":"#/components/schemas/UnsetBucket"}],"title":"Split Bucket","discriminator":{"propertyName":"kind","mapping":{"boolean":"#/components/schemas/BooleanBucket","datetime_range":"#/components/schemas/DatetimeRangeBucket","range":"#/components/schemas/RangeBucket","unset":"#/components/schemas/UnsetBucket"}}}},"type":"object","required":["organization_id","split_attribute_key","split_bucket"],"title":"GradingRunRequest"},"Granularity":{"type":"string","enum":["minutely","hourly","daily","weekly","monthly"],"title":"Granularity"},"GranularityDiscretization":{"properties":{"kind":{"type":"string","const":"granularity","title":"Kind"},"size":{"type":"number","title":"Size"}},"type":"object","required":["kind","size"],"title":"GranularityDiscretization"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HeaderBlock":{"properties":{"block_type":{"type":"string","const":"header","title":"Block Type","default":"header"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"alignment":{"type":"string","enum":["left","center"],"title":"Alignment","default":"left"},"logo_width":{"type":"integer","title":"Logo Width","default":110},"wordmark_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wordmark Text"},"wordmark_font_family":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wordmark Font Family"},"wordmark_font_size":{"type":"integer","title":"Wordmark Font Size","default":22}},"additionalProperties":false,"type":"object","title":"HeaderBlock","description":"Top-of-card brand chrome.\n\nTwo modes:\n- **Logo-only**: just ``logo_url`` set. Renders the wordmark image\n  centered/left, hairline divider beneath. Use when the brand\n  logo is itself a complete wordmark (image with text baked in).\n- **Lockup (logo + wordmark text)**: ``logo_url`` + ``wordmark_text``.\n  Renders symbol on the left, wordmark text inline on the right,\n  vertically centered. Use when the brand logo is a symbol/mark\n  and the wordmark is set in a typeface (the Catchback shape:\n  symbol + \"CATCHBACK CARDS\" in Orbitron).\n\nThe wordmark belongs HERE, not as a ``HeroBlock.pre_headline``.\nPutting the org name in both places produces the \"two titles\"\nsmell — the most common variant defect.\n\n``wordmark_font_family`` overrides ``theme.heading_font``; the\nrenderer auto-loads its Google Font ``<link>`` (already wired for\nOrbitron, Inter, Geist, Lexend, Koulen, DM Sans). New families\nmust be added to ``GOOGLE_FONTS`` in\n``core/domain/dtos/brand_theme.py`` AND covered by\n``_collect_extra_fonts`` — otherwise the ``font-family`` CSS sets\nsilently but the font never loads, falling back to system sans."},"HeroBlock":{"properties":{"block_type":{"type":"string","const":"hero","title":"Block Type","default":"hero"},"eyebrow":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/HeroEyebrowPlainConfig"},{"$ref":"#/components/schemas/HeroEyebrowChipConfig"}],"discriminator":{"propertyName":"kind","mapping":{"chip":"#/components/schemas/HeroEyebrowChipConfig","plain":"#/components/schemas/HeroEyebrowPlainConfig"}}},{"type":"null"}],"title":"Eyebrow"},"pre_headline":{"anyOf":[{"$ref":"#/components/schemas/HeroPreHeadlineConfig"},{"type":"null"}]},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"},"icon_from_brand_symbol":{"type":"boolean","title":"Icon From Brand Symbol","default":false},"headline":{"type":"string","title":"Headline","default":""},"headline_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Headline Size"},"italic":{"type":"boolean","title":"Italic","default":false},"body_paragraphs":{"items":{"type":"string"},"type":"array","title":"Body Paragraphs"},"alignment":{"type":"string","enum":["left","center"],"title":"Alignment","default":"center"},"field":{"type":"string","enum":["none","brand","accent","wash"],"title":"Field","default":"none"},"show_logo":{"type":"boolean","title":"Show Logo","default":false},"boxed_subhead":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Boxed Subhead"},"edge_images":{"items":{"type":"string"},"type":"array","maxItems":6,"title":"Edge Images"}},"additionalProperties":false,"type":"object","title":"HeroBlock","description":"Headline + body paragraphs — the primary message slot.\n\nUse ``icon_url`` ONLY for an icon-shaped image (the renderer crops\nto 80×80 with rounded corners). For hero artwork (cinematic\nintros, product photography, art reveals), use ``MediaBlock``\nplaced before or after this block.\n\n``pre_headline`` is for kickers and greetings, NOT for the brand\nwordmark. The wordmark belongs on ``HeaderBlock.wordmark_text``.\n\nLayout decision: for messaging-led emails put hero BEFORE media so\ncopy is read first. For visual-led announcements (card art, photo\nreveals) put media first."},"HeroEyebrowChipConfig":{"properties":{"kind":{"type":"string","const":"chip","title":"Kind","default":"chip"},"text":{"type":"string","title":"Text"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color"},"border_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Border Color"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"}},"additionalProperties":false,"type":"object","required":["text"],"title":"HeroEyebrowChipConfig"},"HeroEyebrowPlainConfig":{"properties":{"kind":{"type":"string","const":"plain","title":"Kind","default":"plain"},"text":{"type":"string","title":"Text"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"}},"additionalProperties":false,"type":"object","required":["text"],"title":"HeroEyebrowPlainConfig"},"HeroPreHeadlineConfig":{"properties":{"text":{"type":"string","title":"Text"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"font_family":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Font Family"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"}},"additionalProperties":false,"type":"object","required":["text"],"title":"HeroPreHeadlineConfig","description":"Oversized slot above the headline — for greetings, kickers, or\nsection markers, NOT for the brand wordmark.\n\nThe brand wordmark belongs in ``HeaderBlock.wordmark_text``. Putting\nthe org name in both places renders as two stacked titles, which is\nthe most common variant defect.\n\nExamples of legitimate ``pre_headline`` use: a localized greeting\n(\"Bonjour, Camille.\"), a section-marker oversized line above a\nheadline (\"YOUR FRIDAY DROP\"), or a multi-line title with subtitle.\n\n``font_family`` overrides ``theme.body_font_family``. The renderer\nauto-loads its Google Font ``<link>`` ONLY if the family is in the\n``GOOGLE_FONTS`` whitelist (``core/domain/dtos/brand_theme.py``)\nAND ``_collect_extra_fonts`` walks ``HeroBlock.pre_headline``.\nSetting an unsupported family silently falls back to system sans."},"HtmlVariantSource":{"properties":{"kind":{"type":"string","const":"html","title":"Kind","default":"html"},"html":{"type":"string","minLength":1,"title":"Html"},"subject":{"type":"string","title":"Subject","default":""},"preheader":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preheader"},"from_name":{"type":"string","title":"From Name","default":""},"from_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"From Email"},"text_overrides":{"additionalProperties":{"type":"string"},"type":"object","title":"Text Overrides"}},"additionalProperties":false,"type":"object","required":["html"],"title":"HtmlVariantSource","description":"An authored HTML email design plus the text edited on top of it.\n\n``html`` is immutable after create: the design is a hand-built\ndocument we did not author programmatically and cannot safely\nregenerate, so every edit is a text-slot override rather than a\nrewrite (``html_text_slots``)."},"HttpStatusClass":{"type":"string","enum":["2xx","3xx","4xx","5xx"],"title":"HttpStatusClass"},"ImpactStatInfo":{"properties":{"value":{"type":"number","title":"Value"},"delta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Delta"}},"type":"object","required":["value"],"title":"ImpactStatInfo","description":"One scale stat: a value + optional period-over-period delta.\n\n``delta`` is the fractional change vs the prior equal-length window\n(``0.12`` → +12%), ``None`` when no prior-window comparison is computed\n(e.g. a point-in-time count like experiments running)."},"InfoCalloutBlock":{"properties":{"block_type":{"type":"string","const":"info_callout","title":"Block Type","default":"info_callout"},"icon_emoji":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Emoji"},"icon_background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Background Color"},"body":{"type":"string","title":"Body","default":""},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color"},"text_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Color"}},"additionalProperties":false,"type":"object","title":"InfoCalloutBlock"},"IngestDesignInspirationUrlRequest":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"IngestDesignInspirationUrlRequest"},"InsightConfidence":{"type":"string","enum":["low","medium","high"],"title":"InsightConfidence"},"InsightKind":{"type":"string","enum":["experiment_result","population_shift","variant_learning","risk","opportunity","note"],"title":"InsightKind"},"InsightStatus":{"type":"string","enum":["active","superseded","dismissed"],"title":"InsightStatus"},"InspirationIssueKind":{"type":"string","enum":["duplicate","unrelated","low_quality"],"title":"InspirationIssueKind"},"IntegrationAccessRequestResponse":{"properties":{"kind":{"type":"string","const":"integration","title":"Kind","default":"integration"},"id":{"type":"string","format":"uuid","title":"Id"},"status":{"$ref":"#/components/schemas/AccessRequestStatus"},"requester":{"$ref":"#/components/schemas/MemberSummaryInfo"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"provider":{"$ref":"#/components/schemas/IntegrationProvider"},"sub_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Key"},"integration_status":{"$ref":"#/components/schemas/IntegrationStatus"},"current_capability_group":{"anyOf":[{"$ref":"#/components/schemas/IntegrationCapabilityGroupRefInfo"},{"type":"null"}]},"requested_capability_group":{"$ref":"#/components/schemas/IntegrationCapabilityGroupRefInfo"},"previous_capability_group":{"anyOf":[{"$ref":"#/components/schemas/IntegrationCapabilityGroupRefInfo"},{"type":"null"}]},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"resolved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"$ref":"#/components/schemas/MemberSummaryInfo"},{"type":"null"}]},"resolution_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolution Note"}},"type":"object","required":["id","status","requester","integration_id","provider","sub_key","integration_status","current_capability_group","requested_capability_group","previous_capability_group","note","created_at","resolved_at","resolved_by","resolution_note"],"title":"IntegrationAccessRequestResponse"},"IntegrationAccessSummaryInfo":{"properties":{"capability_group_count":{"type":"integer","title":"Capability Group Count"},"capability_count":{"type":"integer","title":"Capability Count"},"people_count":{"type":"integer","title":"People Count"},"my_capability_group":{"anyOf":[{"$ref":"#/components/schemas/IntegrationCapabilityGroupRefInfo"},{"type":"null"}]},"capability_groups":{"items":{"$ref":"#/components/schemas/IntegrationCapabilityGroupRefInfo"},"type":"array","title":"Capability Groups"}},"type":"object","required":["capability_group_count","capability_count","people_count","my_capability_group","capability_groups"],"title":"IntegrationAccessSummaryInfo"},"IntegrationCapabilityCatalogResponse":{"properties":{"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"provider":{"$ref":"#/components/schemas/IntegrationProvider"},"capabilities":{"items":{"$ref":"#/components/schemas/IntegrationCapabilityResponse"},"type":"array","title":"Capabilities"},"groups":{"items":{"$ref":"#/components/schemas/IntegrationCapabilityGroupResponse"},"type":"array","title":"Groups"}},"type":"object","required":["integration_id","provider","capabilities","groups"],"title":"IntegrationCapabilityCatalogResponse"},"IntegrationCapabilityGroupPreset":{"type":"string","enum":["read_only","read_and_write","full_access"],"title":"IntegrationCapabilityGroupPreset"},"IntegrationCapabilityGroupRefInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"preset":{"anyOf":[{"$ref":"#/components/schemas/IntegrationCapabilityGroupPreset"},{"type":"null"}]}},"type":"object","required":["id","name","preset"],"title":"IntegrationCapabilityGroupRefInfo"},"IntegrationCapabilityGroupResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"name":{"type":"string","title":"Name"},"preset":{"anyOf":[{"$ref":"#/components/schemas/IntegrationCapabilityGroupPreset"},{"type":"null"}]},"capability_keys":{"items":{"type":"string"},"type":"array","title":"Capability Keys"},"role":{"$ref":"#/components/schemas/AccessRole"},"member_count":{"type":"integer","title":"Member Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","integration_id","name","preset","capability_keys","role","member_count","created_at"],"title":"IntegrationCapabilityGroupResponse"},"IntegrationCapabilityResponse":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"role":{"$ref":"#/components/schemas/AccessRole"}},"type":"object","required":["key","label","role"],"title":"IntegrationCapabilityResponse"},"IntegrationCatalogAuthMode":{"type":"string","enum":["oauth","credential","none"],"title":"IntegrationCatalogAuthMode"},"IntegrationCatalogCategoriesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/IntegrationCatalogCategoryResponse"},"type":"array","title":"Items"},"total_connectable":{"type":"integer","title":"Total Connectable"}},"type":"object","required":["items","total_connectable"],"title":"IntegrationCatalogCategoriesResponse"},"IntegrationCatalogCategoryResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"toolkit_count":{"type":"integer","title":"Toolkit Count"}},"type":"object","required":["id","name","toolkit_count"],"title":"IntegrationCatalogCategoryResponse"},"IntegrationCatalogEntryDetailResponse":{"properties":{"entry":{"$ref":"#/components/schemas/IntegrationCatalogEntryResponse"},"read_only_tools_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Read Only Tools Count"},"full_access_tools_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Full Access Tools Count"},"read_only_capabilities":{"items":{"type":"string"},"type":"array","title":"Read Only Capabilities"},"connected_integration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Connected Integration Id"}},"type":"object","required":["entry","read_only_tools_count","full_access_tools_count","read_only_capabilities","connected_integration_id"],"title":"IntegrationCatalogEntryDetailResponse"},"IntegrationCatalogEntryResponse":{"properties":{"slug":{"type":"string","title":"Slug"},"source":{"$ref":"#/components/schemas/IntegrationCatalogSource"},"provider":{"anyOf":[{"$ref":"#/components/schemas/IntegrationProvider"},{"type":"null"}]},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"category_ids":{"items":{"type":"string"},"type":"array","title":"Category Ids"},"tools_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tools Count"},"auth_mode":{"$ref":"#/components/schemas/IntegrationCatalogAuthMode"},"connected_integration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Connected Integration Id"}},"type":"object","required":["slug","source","provider","name","description","logo_url","category_ids","tools_count","auth_mode","connected_integration_id"],"title":"IntegrationCatalogEntryResponse"},"IntegrationCatalogSource":{"type":"string","enum":["composio","first_party"],"title":"IntegrationCatalogSource"},"IntegrationKind":{"type":"string","enum":["source","outbound","api"],"title":"IntegrationKind"},"IntegrationMemberAccessGrantResponse":{"properties":{"member":{"$ref":"#/components/schemas/MemberSummaryInfo"},"role":{"$ref":"#/components/schemas/AccessRole"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"capability_group":{"$ref":"#/components/schemas/IntegrationCapabilityGroupRefInfo"}},"type":"object","required":["member","role","created_at","updated_at","capability_group"],"title":"IntegrationMemberAccessGrantResponse"},"IntegrationOAuthStartResponse":{"properties":{"action":{"type":"string","title":"Action"},"url":{"type":"string","title":"Url"}},"type":"object","required":["action","url"],"title":"IntegrationOAuthStartResponse"},"IntegrationPolymorphicAppAccessResponse":{"properties":{"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"status":{"$ref":"#/components/schemas/PolymorphicAppStatus"},"role":{"$ref":"#/components/schemas/PolymorphicAppIntegrationRole"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["polymorphic_app_id","name","slug","status","role","created_at","updated_at"],"title":"IntegrationPolymorphicAppAccessResponse"},"IntegrationProvider":{"type":"string","enum":["slack","resend","supabase","postgres","custom_domain","expo","fcm","github","posthog","gmail","http_api","composio","s3"],"title":"IntegrationProvider"},"IntegrationResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"provider":{"$ref":"#/components/schemas/IntegrationProvider"},"kind":{"$ref":"#/components/schemas/IntegrationKind"},"sub_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Key"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"status":{"$ref":"#/components/schemas/IntegrationStatus"},"installed_by_member_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Installed By Member Id"},"installed_by_member":{"anyOf":[{"$ref":"#/components/schemas/MemberSummaryInfo"},{"type":"null"}]},"last_synced_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Synced At"},"mapping_proposal":{"anyOf":[{"$ref":"#/components/schemas/MappingProposalInfo"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"effective_role":{"anyOf":[{"$ref":"#/components/schemas/AccessRole"},{"type":"null"}]},"composio":{"anyOf":[{"$ref":"#/components/schemas/ComposioConnectionInfo"},{"type":"null"}]},"access_summary":{"$ref":"#/components/schemas/IntegrationAccessSummaryInfo"}},"type":"object","required":["id","provider","kind","sub_key","config","status","installed_by_member_id","last_synced_at","created_at","updated_at","access_summary"],"title":"IntegrationResponse"},"IntegrationSchemaSnapshotInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"schema_version":{"type":"integer","title":"Schema Version"},"fingerprint":{"type":"string","title":"Fingerprint"},"tables":{"items":{"$ref":"#/components/schemas/SchemaTableInfo"},"type":"array","title":"Tables"},"claude_summary":{"type":"string","title":"Claude Summary","default":""},"last_introspected_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Introspected At"},"derivations_refreshed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Derivations Refreshed At"}},"type":"object","required":["id","integration_id","schema_version","fingerprint"],"title":"IntegrationSchemaSnapshotInfo","description":"API + intra-process projection of an ``integration_schemas`` row."},"IntegrationSortField":{"type":"string","enum":["updated_at","created_at"],"title":"IntegrationSortField"},"IntegrationStatus":{"type":"string","enum":["active","error"],"title":"IntegrationStatus"},"IntegrationTagsResponse":{"properties":{"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"known_tags":{"items":{"type":"string"},"type":"array","title":"Known Tags"}},"type":"object","required":["tags","known_tags"],"title":"IntegrationTagsResponse","description":"``known_tags`` is the org's distinct ``tag:`` vocabulary (both\nentity kinds pooled) for autocomplete; ``app:`` entries are never in\nit - the frontend's apps query supplies those options."},"IntegrationToolExecutionResponse":{"properties":{"successful":{"type":"boolean","title":"Successful"},"data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{},"type":"array"},{"type":"null"}],"title":"Data"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"log_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Log Id"}},"type":"object","required":["successful","data","error","log_id"],"title":"IntegrationToolExecutionResponse"},"IntegrationToolInfo":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"input_schema":{"additionalProperties":true,"type":"object","title":"Input Schema"},"is_read_only":{"type":"boolean","title":"Is Read Only"}},"type":"object","required":["slug","name","description","input_schema","is_read_only"],"title":"IntegrationToolInfo"},"IntegrationToolListResponse":{"properties":{"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"toolkit_slug":{"type":"string","title":"Toolkit Slug"},"access_tier":{"$ref":"#/components/schemas/ComposioAccessTier"},"items":{"items":{"$ref":"#/components/schemas/IntegrationToolInfo"},"type":"array","title":"Items"}},"type":"object","required":["integration_id","toolkit_slug","access_tier","items"],"title":"IntegrationToolListResponse"},"IntentMorphSessionRequest":{"properties":{"draft_id":{"type":"string","title":"Draft Id"}},"additionalProperties":false,"type":"object","required":["draft_id"],"title":"IntentMorphSessionRequest"},"IntentMorphSessionResponse":{"properties":{"lease_id":{"type":"string","format":"uuid","title":"Lease Id"},"session_origin":{"type":"string","title":"Session Origin"},"lease_ttl_s":{"type":"integer","title":"Lease Ttl S"},"sandbox_state":{"$ref":"#/components/schemas/MorphSandboxState"}},"type":"object","required":["lease_id","session_origin","lease_ttl_s","sandbox_state"],"title":"IntentMorphSessionResponse"},"InternalOrganizationSummaryInfo":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","name"],"title":"InternalOrganizationSummaryInfo"},"IntradayDaySeriesInfo":{"properties":{"date":{"type":"string","format":"date","title":"Date"},"is_today":{"type":"boolean","title":"Is Today"},"points":{"items":{"anyOf":[{"type":"integer"},{"type":"null"}]},"type":"array","title":"Points"}},"type":"object","required":["date","is_today","points"],"title":"IntradayDaySeriesInfo","description":"One org-local day's cumulative-since-midnight curve.\n\n``points[i]`` is the metric's cumulative value from local midnight\nthrough the hour at ``OverviewIntradayOverlayResult.hours[i]``. ``None``\nmarks hours after the current one on the ``is_today`` day (the line\nstops at \"now\"); prior days fill every hour. For ``contacts_reached``\nthe value is cumulative DISTINCT contacts, so it is monotonic\nnon-decreasing but never exceeds the ``messages_sent`` curve."},"IntradayMetric":{"type":"string","enum":["messages_sent","contacts_reached"],"title":"IntradayMetric"},"IntradayMetricOverlayInfo":{"properties":{"metric":{"$ref":"#/components/schemas/IntradayMetric"},"days":{"items":{"$ref":"#/components/schemas/IntradayDaySeriesInfo"},"type":"array","title":"Days"}},"type":"object","required":["metric","days"],"title":"IntradayMetricOverlayInfo"},"InvitationDetails":{"properties":{"token":{"type":"string","title":"Token"},"email":{"type":"string","title":"Email"},"organization_name":{"type":"string","title":"Organization Name"},"invited_by_name":{"type":"string","title":"Invited By Name"},"status":{"type":"string","title":"Status"},"role":{"type":"string","title":"Role","default":"member"}},"type":"object","required":["token","email","organization_name","invited_by_name","status"],"title":"InvitationDetails"},"InvitationStatus":{"type":"string","enum":["pending","accepted","expired","declined"],"title":"InvitationStatus"},"InviteActionType":{"type":"string","enum":["accept","decline"],"title":"InviteActionType"},"InvokeAgentToolStreamRequest":{"properties":{"tool_name":{"type":"string","maxLength":64,"minLength":1,"title":"Tool Name"},"arguments":{"additionalProperties":true,"type":"object","title":"Arguments"},"attached_asset_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Attached Asset Ids"},"inspiration_asset_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Inspiration Asset Ids"},"prior_messages":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Prior Messages"},"conversation_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Conversation Id"}},"type":"object","required":["tool_name"],"title":"InvokeAgentToolStreamRequest"},"ItemListCardBlock":{"properties":{"block_type":{"type":"string","const":"item_list_card","title":"Block Type","default":"item_list_card"},"eyebrow":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrow"},"eyebrow_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrow Color"},"rows":{"items":{"$ref":"#/components/schemas/ItemListRow"},"type":"array","title":"Rows"},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color"},"border_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Border Color"},"icon_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Color"}},"additionalProperties":false,"type":"object","title":"ItemListCardBlock"},"ItemListRow":{"properties":{"icon_kind":{"type":"string","enum":["check","x","emoji","image"],"title":"Icon Kind","default":"check"},"icon_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Value"},"title":{"type":"string","title":"Title"},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"}},"additionalProperties":false,"type":"object","required":["title"],"title":"ItemListRow"},"JobRunStatus":{"type":"string","enum":["queued","in_progress","complete","failed","not_found"],"title":"JobRunStatus"},"LabelLookupConfig":{"properties":{"table":{"type":"string","title":"Table"},"id_column":{"type":"string","title":"Id Column"},"label_column":{"type":"string","title":"Label Column"}},"type":"object","required":["table","id_column","label_column"],"title":"LabelLookupConfig","description":"Resolve group values (entity ids) to display labels via one\nsame-integration catalog table.\n\nAll-or-nothing by shape: either the complete triple is present or\n``TopKSource.label_lookup`` is ``None``. ``id_column`` is\nrequired-unique by contract; duplicate ids in fetched catalog rows\nresolve keep-first at runtime (deterministic under the fetch's\norder-by-id). Entities with no catalog row or an empty label are\ndropped from the serialized value."},"LaunchRegionExperimentRequest":{"properties":{"attribution_window_seconds":{"type":"integer","exclusiveMinimum":0.0,"title":"Attribution Window Seconds","default":86400},"attribution_window_seconds_secondary":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Attribution Window Seconds Secondary"},"region_id":{"type":"string","format":"uuid","title":"Region Id"},"variant_id":{"type":"string","format":"uuid","title":"Variant Id"}},"type":"object","required":["region_id","variant_id"],"title":"LaunchRegionExperimentRequest"},"LaunchedRegionAssignmentInfo":{"properties":{"region_id":{"type":"string","format":"uuid","title":"Region Id"},"region_name":{"type":"string","title":"Region Name"},"region_experiment_id":{"type":"string","format":"uuid","title":"Region Experiment Id"},"member_definition_count":{"type":"integer","title":"Member Definition Count"},"rationale":{"type":"string","title":"Rationale"}},"type":"object","required":["region_id","region_name","region_experiment_id","member_definition_count","rationale"],"title":"LaunchedRegionAssignmentInfo"},"LeafNode":{"properties":{"kind":{"type":"string","const":"leaf","title":"Kind"},"filter":{"$ref":"#/components/schemas/AttributeFilter"}},"additionalProperties":false,"type":"object","required":["kind","filter"],"title":"LeafNode","description":"Single :class:`AttributeFilter` predicate. The frontier of every\nbranch in the boolean tree is a leaf."},"LiteralLocaleSource":{"properties":{"kind":{"type":"string","const":"literal","title":"Kind","default":"literal"},"value":{"type":"string","title":"Value"}},"type":"object","required":["value"],"title":"LiteralLocaleSource","description":"Static BCP-47 locale code authored directly into a marker tag."},"LocaleAliasNormalizerConfig":{"properties":{"kind":{"type":"string","const":"locale_alias","title":"Kind","default":"locale_alias"},"aliases":{"additionalProperties":{"type":"string"},"type":"object","title":"Aliases"},"fallback":{"type":"string","const":"drop","title":"Fallback","default":"drop"}},"type":"object","title":"LocaleAliasNormalizerConfig","description":"Map customer language labels to canonical locale codes.\n\nCustomers often store display labels (``Japanese``) while the render\npipeline needs locale tags (``ja``). Keeping this as an attribute\nmapping normalizer lets each org declare the translation from its\nsource vocabulary once, then every variant can reference the derived\nlocale attribute."},"LocalizedTextBlock":{"properties":{"block_type":{"type":"string","const":"localized_text","title":"Block Type","default":"localized_text"},"locale_source":{"oneOf":[{"$ref":"#/components/schemas/LiteralLocaleSource"},{"$ref":"#/components/schemas/AttributeLocaleSource"}],"title":"Locale Source","discriminator":{"propertyName":"kind","mapping":{"attribute":"#/components/schemas/AttributeLocaleSource","literal":"#/components/schemas/LiteralLocaleSource"}}},"body":{"type":"string","title":"Body","default":""},"size":{"type":"string","enum":["sm","md","lg"],"title":"Size","default":"md"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"alignment":{"type":"string","enum":["left","center"],"title":"Alignment","default":"left"},"eyebrow":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrow"},"eyebrow_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrow Color"},"headline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headline"},"cta_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta Label"},"cta_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta Url"}},"additionalProperties":false,"type":"object","required":["locale_source"],"title":"LocalizedTextBlock","description":"Body-text block whose body translates per the resolved locale source.\n\nSame chrome as ``BodyTextBlock`` (eyebrow / headline / body / CTA);\nthe renderer wraps the rendered ``body`` in ``[[LOCALE=<source>]]…\n[[/LOCALE]]`` so the existing translate-locale-blocks pre-pass\nhandles the translation. ``locale_source`` may be a literal BCP-47\ncode or an attribute reference — see :mod:`locale_source`."},"MailboxSignupStatus":{"type":"string","enum":["pending","subscribed","confirmation_clicked","no_form_found","blocked","failed"],"title":"MailboxSignupStatus"},"MappingCandidate":{"properties":{"table":{"type":"string","title":"Table"},"push_token_column":{"type":"string","title":"Push Token Column"},"email_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Column"},"external_id_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id Column"},"join":{"anyOf":[{"$ref":"#/components/schemas/MappingJoinConfig"},{"type":"null"}]},"token_filters":{"items":{"$ref":"#/components/schemas/SourceTableFilter"},"type":"array","title":"Token Filters"},"identity_filters":{"items":{"$ref":"#/components/schemas/SourceTableFilter"},"type":"array","title":"Identity Filters"},"dedup_order_by":{"items":{"$ref":"#/components/schemas/OrderByClauseConfig"},"type":"array","title":"Dedup Order By"},"forward_cursor_column":{"type":"string","title":"Forward Cursor Column","default":"created_at"},"row_limit":{"anyOf":[{"type":"integer","maximum":100000.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Row Limit"},"watermark_lateness_minutes":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Watermark Lateness Minutes"},"confidence":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Confidence"},"reasoning":{"type":"string","title":"Reasoning","default":""}},"type":"object","required":["table","push_token_column","confidence"],"title":"MappingCandidate","description":"One plausible mapping plus scoring metadata.\n\nInherits the full ``MappingChoiceConfig`` shape — including ``join`` and\nfilters — so a candidate the operator selects from the disambiguation\ndrawer carries everything ``ApplyPushTokenMappingUseCase`` needs to\nwrite a working config without re-running discovery."},"MappingChoiceConfig":{"properties":{"table":{"type":"string","title":"Table"},"push_token_column":{"type":"string","title":"Push Token Column"},"email_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Column"},"external_id_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id Column"},"join":{"anyOf":[{"$ref":"#/components/schemas/MappingJoinConfig"},{"type":"null"}]},"token_filters":{"items":{"$ref":"#/components/schemas/SourceTableFilter"},"type":"array","title":"Token Filters"},"identity_filters":{"items":{"$ref":"#/components/schemas/SourceTableFilter"},"type":"array","title":"Identity Filters"},"dedup_order_by":{"items":{"$ref":"#/components/schemas/OrderByClauseConfig"},"type":"array","title":"Dedup Order By"},"forward_cursor_column":{"type":"string","title":"Forward Cursor Column","default":"created_at"},"row_limit":{"anyOf":[{"type":"integer","maximum":100000.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Row Limit"},"watermark_lateness_minutes":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Watermark Lateness Minutes"}},"type":"object","required":["table","push_token_column"],"title":"MappingChoiceConfig","description":"How to read (<match_key>, push_token) tuples from the source DB.\n\nExactly one of ``email_column`` or ``external_id_column`` is required;\nthe validator rejects configs that set both or neither. The chosen\ncolumn is the match key — the runner projects it from the token\ntable (flat layout) or via embedded select on the identity table\n(joined layout). ``external_id_column`` matches against\n``Contact.external_id`` and uses the unique index\n``uq__contacts__org_external_source`` for ~10-50ms/chunk lookup —\nthe preferred path for sources whose contact-ingestion keys on a\nstable user_id (e.g. Supabase ``users.id``). ``email_column``\nmatches against ``Contact.email`` and exists for sources that don't\npropagate a stable identity column."},"MappingJoinConfig":{"properties":{"fk_column":{"type":"string","title":"Fk Column"},"identity_table":{"type":"string","title":"Identity Table"}},"type":"object","required":["fk_column","identity_table"],"title":"MappingJoinConfig","description":"Identity reached via FK from the token table.\n\nThe runner uses PostgREST resource embedding\n(``select=<token_col>,<identity_table>!inner(<email_col>)``) so no\ncustomer-side flattening view is required. ``identity_table`` must\nbe FK-reachable from ``MappingChoiceConfig.table`` via ``fk_column``;\napply-path validation cross-checks this against the cached\nintegration schema before writing the sync config."},"MappingProposalInfo":{"properties":{"proposal_version":{"type":"integer","title":"Proposal Version","default":1},"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"channel":{"type":"string","title":"Channel"},"schema_fingerprint":{"type":"string","title":"Schema Fingerprint"},"status":{"$ref":"#/components/schemas/MappingProposalStatus"},"mapping":{"anyOf":[{"$ref":"#/components/schemas/MappingChoiceConfig"},{"type":"null"}]},"candidates":{"items":{"$ref":"#/components/schemas/MappingCandidate"},"type":"array","title":"Candidates"},"claude_reasoning":{"type":"string","title":"Claude Reasoning","default":""},"conversation_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Conversation Id"}},"type":"object","required":["generated_at","channel","schema_fingerprint","status"],"title":"MappingProposalInfo","description":"Versioned record of a discovery run's outcome.\n\nAlways written wholesale; never partially mutated. Apply happens via\na separate use case that reads ``proposal_version`` for CAS."},"MappingProposalStatus":{"type":"string","enum":["applied","proposal","needs_review","needs_action","no_data"],"title":"MappingProposalStatus"},"MatchEmailsRequest":{"properties":{"emails":{"items":{"type":"string"},"type":"array","title":"Emails"}},"type":"object","required":["emails"],"title":"MatchEmailsRequest"},"MatchEmailsResponse":{"properties":{"matched_ids":{"items":{"type":"string"},"type":"array","title":"Matched Ids"}},"type":"object","required":["matched_ids"],"title":"MatchEmailsResponse"},"MdpAttributeSummaryResponse":{"properties":{"attribute_key":{"type":"string","title":"Attribute Key"},"value_type":{"type":"string","enum":["boolean","number","datetime"],"title":"Value Type"},"min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min"},"max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max"},"has_set":{"type":"boolean","title":"Has Set"},"has_unset":{"type":"boolean","title":"Has Unset"}},"type":"object","required":["attribute_key","value_type","min","max","has_set","has_unset"],"title":"MdpAttributeSummaryResponse","description":"What discretization actually consumes: ``min``/``max`` bound the\nstep-mode cuts, ``has_set``/``has_unset`` gate the range chain and\nthe unset bucket. Exact set/unset counts were dropped deliberately —\nthey cost a population-scale aggregate per request and nothing\nreads the magnitudes (the tree's unset node carries the real count\nmoments later)."},"MdpDailyFlowsResult":{"properties":{"chart":{"$ref":"#/components/schemas/ChartInfo"},"states":{"items":{"$ref":"#/components/schemas/MdpHealthStateInfo"},"type":"array","title":"States"},"excluded_dates":{"items":{"type":"string","format":"date"},"type":"array","title":"Excluded Dates"},"active_excluded_day_count":{"type":"integer","title":"Active Excluded Day Count"},"day_counts":{"items":{"$ref":"#/components/schemas/MdpFlowDayCountInfo"},"type":"array","title":"Day Counts"},"quantile_state_counts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Quantile State Counts"}},"type":"object","required":["chart","states","excluded_dates","active_excluded_day_count","day_counts","quantile_state_counts"],"title":"MdpDailyFlowsResult"},"MdpDimensionInfo":{"properties":{"attribute_key":{"type":"string","title":"Attribute Key"},"value_type":{"type":"string","enum":["boolean","number","datetime"],"title":"Value Type"},"buckets":{"items":{"oneOf":[{"$ref":"#/components/schemas/BooleanBucket"},{"$ref":"#/components/schemas/RangeBucket"},{"$ref":"#/components/schemas/DatetimeRangeBucket"},{"$ref":"#/components/schemas/UnsetBucket"}],"discriminator":{"propertyName":"kind","mapping":{"boolean":"#/components/schemas/BooleanBucket","datetime_range":"#/components/schemas/DatetimeRangeBucket","range":"#/components/schemas/RangeBucket","unset":"#/components/schemas/UnsetBucket"}}},"type":"array","title":"Buckets"}},"type":"object","required":["attribute_key","value_type","buckets"],"title":"MdpDimensionInfo"},"MdpDimensionSpec":{"properties":{"attribute_key":{"type":"string","title":"Attribute Key"},"value_type":{"type":"string","enum":["boolean","number","datetime"],"title":"Value Type"},"discretization":{"oneOf":[{"$ref":"#/components/schemas/BooleanDiscretization"},{"$ref":"#/components/schemas/GranularityDiscretization"},{"$ref":"#/components/schemas/EdgesDiscretization"},{"$ref":"#/components/schemas/DatetimeEdgesDiscretization"},{"$ref":"#/components/schemas/DatetimeGranularityDiscretization"}],"title":"Discretization","discriminator":{"propertyName":"kind","mapping":{"boolean":"#/components/schemas/BooleanDiscretization","datetime_edges":"#/components/schemas/DatetimeEdgesDiscretization","datetime_granularity":"#/components/schemas/DatetimeGranularityDiscretization","edges":"#/components/schemas/EdgesDiscretization","granularity":"#/components/schemas/GranularityDiscretization"}}}},"type":"object","required":["attribute_key","value_type","discretization"],"title":"MdpDimensionSpec"},"MdpExcludedDayResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"cohort_date":{"type":"string","format":"date","title":"Cohort Date"},"reason":{"type":"string","title":"Reason"},"status":{"$ref":"#/components/schemas/MdpExcludedDayStatus"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"created_by_member_id":{"type":"string","format":"uuid","title":"Created By Member Id"},"created_by_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Email"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"}},"type":"object","required":["id","cohort_date","reason","status","created_by_member_id","revoked_at"],"title":"MdpExcludedDayResponse"},"MdpExcludedDayStatus":{"type":"string","enum":["active","revoked"],"title":"MdpExcludedDayStatus"},"MdpFlowDayCountInfo":{"properties":{"series":{"type":"string","title":"Series"},"x":{"type":"string","title":"X"},"numerator":{"type":"integer","title":"Numerator"},"graded":{"type":"integer","title":"Graded"}},"type":"object","required":["series","x","numerator","graded"],"title":"MdpFlowDayCountInfo","description":"Mass behind one fraction series' per-day rate, so the tooltip can\nshow \"272 / 576\" beside the rate — a 0.47 pooled over 576 graded\nmembers reads very differently from one over 3M.\n\n``series`` matches ``ChartSeriesInfo.name`` and ``x`` matches\n``ChartPointInfo.x``; quantile series carry no fraction and are covered by\n``MdpDailyFlowsResult.quantile_state_counts`` instead."},"MdpFlowDayInfo":{"properties":{"cohort_date":{"type":"string","format":"date","title":"Cohort Date"},"total":{"type":"integer","title":"Total"},"graded":{"type":"integer","title":"Graded"}},"type":"object","required":["cohort_date","total","graded"],"title":"MdpFlowDayInfo","description":"One provisioning day's cohort volume across every state's arms —\nthe scrubber track. ``graded == total`` means the day is fully\nsettled; pending / sent members keep ``graded`` short of ``total``."},"MdpHealthStateInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"label":{"type":"string","title":"Label"},"windowed_graded":{"type":"integer","title":"Windowed Graded"}},"type":"object","required":["id","label","windowed_graded"],"title":"MdpHealthStateInfo","description":"One pickable state for the daily-flows series filter."},"MdpOutcomeFlowScope":{"type":"string","enum":["window","latest_settled","day"],"title":"MdpOutcomeFlowScope","description":"``window`` sums every cohort in the trailing window;\n``latest_settled`` pins each state to its most recent cohort day on\nwhich EVERY instance is graded (and at least one member ran) — a\nsingle fully-closed cycle, searched within the same window; ``day``\npins every state to one provisioning day (``cohort_date``, required\nfor this scope only)."},"MdpRegionDetailInfo":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_catch_all":{"type":"boolean","title":"Is Catch All"},"member_state_count":{"type":"integer","title":"Member State Count"},"contact_count":{"type":"integer","title":"Contact Count","default":0},"non_control_coverage":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Non Control Coverage"},"active_experiment_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Active Experiment Count"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"member_states":{"items":{"$ref":"#/components/schemas/RegionStateRef"},"type":"array","title":"Member States"},"condition":{"anyOf":[{"$ref":"#/components/schemas/RegionConditionDescriptorInfo"},{"type":"null"}]}},"type":"object","required":["id","organization_id","name","is_catch_all","member_state_count","member_states"],"title":"MdpRegionDetailInfo","description":"A region plus its current member-state vectors and (optional)\ncondition descriptor — the per-region payload of the overview read\nboth viz tabs consume."},"MdpRegionInfo":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_catch_all":{"type":"boolean","title":"Is Catch All"},"member_state_count":{"type":"integer","title":"Member State Count"},"contact_count":{"type":"integer","title":"Contact Count","default":0},"non_control_coverage":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Non Control Coverage"},"active_experiment_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Active Experiment Count"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","organization_id","name","is_catch_all","member_state_count"],"title":"MdpRegionInfo"},"MdpStateMembershipResponse":{"properties":{"state_id":{"type":"string","format":"uuid","title":"State Id"},"member_count":{"type":"integer","title":"Member Count"}},"type":"object","required":["state_id","member_count"],"title":"MdpStateMembershipResponse","description":"One leaf's live member count, computed from the leaf's buckets at\nrequest time (no stored assignments)."},"MdpStateOutcomeFlowsInfo":{"properties":{"source_state_id":{"type":"string","format":"uuid","title":"Source State Id"},"total":{"type":"integer","title":"Total"},"in_window":{"type":"integer","title":"In Window"},"unresolved":{"type":"integer","title":"Unresolved"},"outcome_states":{"items":{"$ref":"#/components/schemas/OutcomeStateCountInfo"},"type":"array","title":"Outcome States"},"settled_cohort_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Settled Cohort Date"}},"type":"object","required":["source_state_id","total","in_window","unresolved","outcome_states"],"title":"MdpStateOutcomeFlowsInfo","description":"Where one state's experiment cohorts landed, summed across the\nstate's arms over the requested scope. Every cohort member is\naccounted for: ``total == in_window + unresolved +\nsum(outcome_states[].count)`` (``in_window`` is 0 by construction\nin latest-settled scope)."},"MdpStateOutcomeFlowsResponse":{"properties":{"window_days":{"type":"integer","title":"Window Days"},"scope":{"$ref":"#/components/schemas/MdpOutcomeFlowScope"},"cohort_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Cohort Date"},"days":{"items":{"$ref":"#/components/schemas/MdpFlowDayInfo"},"type":"array","title":"Days"},"states":{"items":{"$ref":"#/components/schemas/MdpStateOutcomeFlowsInfo"},"type":"array","title":"States"}},"type":"object","required":["window_days","scope","days","states"],"title":"MdpStateOutcomeFlowsResponse","description":"``days`` always spans the trailing window regardless of scope, so\nthe day scrubber's track rides the same response as the flows it\nscrubs. ``cohort_date`` echoes the day-scope pin (``None``\notherwise)."},"MdpStateTreeNode":{"properties":{"state_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"State Id"},"depth":{"type":"integer","title":"Depth"},"attribute_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribute Key"},"value_type":{"anyOf":[{"type":"string","enum":["boolean","number","datetime"]},{"type":"null"}],"title":"Value Type"},"bucket":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/BooleanBucket"},{"$ref":"#/components/schemas/RangeBucket"},{"$ref":"#/components/schemas/DatetimeRangeBucket"},{"$ref":"#/components/schemas/UnsetBucket"}],"discriminator":{"propertyName":"kind","mapping":{"boolean":"#/components/schemas/BooleanBucket","datetime_range":"#/components/schemas/DatetimeRangeBucket","range":"#/components/schemas/RangeBucket","unset":"#/components/schemas/UnsetBucket"}}},{"type":"null"}],"title":"Bucket"},"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Count"},"share_of_parent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Share Of Parent"},"window_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Window Days"},"non_control_coverage":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Non Control Coverage"},"is_collapsed":{"type":"boolean","title":"Is Collapsed","default":false},"children":{"items":{"$ref":"#/components/schemas/MdpStateTreeNode"},"type":"array","title":"Children"}},"type":"object","required":["state_id","depth","attribute_key","value_type","bucket","count","share_of_parent","children"],"title":"MdpStateTreeNode","description":"One node of the live state-partition tree.\n\n``window_days`` is set when this node's ``attribute_key`` is a\ntrailing-window event-stream sum (``sum_over_window``): that value\ndecays as events age out, so a ``count`` of 0 means \"no qualifying\nevents in the last N days,\" NOT \"never.\" It is ``None`` for every\nnon-windowed attribute — booleans, external snapshots, and datetimes\n(whose relative window already lives in the bucket's ``OffsetSpec``\nbounds). Surfaced so a reader of the tree (the region agent, the FE\ngrid) cannot misread a decayed count as a state that was never\npopulated."},"MeasureGlobalLiftRequest":{"properties":{"outcomes":{"items":{"oneOf":[{"$ref":"#/components/schemas/EventOutcomeSpec"},{"$ref":"#/components/schemas/ConversionOutcomeSpecInfo"}],"discriminator":{"propertyName":"kind","mapping":{"conversion":"#/components/schemas/ConversionOutcomeSpecInfo","event":"#/components/schemas/EventOutcomeSpec"}}},"type":"array","maxItems":8,"minItems":1,"title":"Outcomes"},"contacted_window_days":{"anyOf":[{"type":"integer","enum":[1,7]},{"type":"null"}],"title":"Contacted Window Days"},"population_in_range":{"type":"boolean","title":"Population In Range","default":false},"population_window_days":{"anyOf":[{"type":"integer","maximum":365.0,"minimum":1.0},{"type":"null"}],"title":"Population Window Days"},"population_granularity":{"anyOf":[{"$ref":"#/components/schemas/Granularity"},{"type":"null"}]}},"type":"object","required":["outcomes"],"title":"MeasureGlobalLiftRequest","description":"POST body for ``/global-lift/measure``.\n\n``outcomes`` is bounded 1..8 — one card per spec, no implicit\nordering other than the request order. Every spec carries its own\nwindow (per-card toolbar on the dashboard). The cohort is shared so\nadding a card costs only the per-outcome reads, not another\ncontact-side scan.\n\n``contacted_window_days`` turns on the display-only \"Contacted last\n1d/7d\" overlay arm (``None`` = off, identical to pre-overlay output).\nThe ``Literal[1, 7]`` makes any other window unrepresentable rather\nthan a runtime reject.\n\n``population_in_range`` (the reference-population toggle) scopes every\narm — treated, control, and the contacted overlay — to contacts who\nsigned up in the displayed range (signup attribute else ``created_at``).\n``False`` (default) measures the whole base, identical to before.\n\n``population_window_days`` + ``population_granularity`` define that\nin-range signup window as the page-level top-right lookback (the same\nwindow the Effort band uses), independent of any per-tile Lookback.\n``None`` falls back to the widest pinned tile span."},"MediaBlock":{"properties":{"block_type":{"type":"string","const":"media","title":"Block Type","default":"media"},"image_url":{"type":"string","title":"Image Url","default":""},"alt":{"type":"string","title":"Alt","default":""},"caption":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caption"},"max_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Width"},"rounded":{"type":"boolean","title":"Rounded","default":false}},"additionalProperties":false,"type":"object","title":"MediaBlock","description":"Image block — full-bleed by default, sized smaller via ``max_width``.\n\nTwo modes:\n- **Cinematic full-bleed** (``max_width`` unset). Fills the card\n  width (no horizontal padding) and scales proportionally; the\n  card's ``overflow:hidden`` keeps it inside the rounded corners.\n  Use only when the visual IS the message — card-art reveals,\n  photo announcements, the rare \"show, don't tell\" lead-with-image\n  shape. Tall vertical images dominate the entire viewport here;\n  account for that in the layout.\n- **Inset proof-point** (``max_width`` set, e.g. 280–360 px). Image\n  is centered with horizontal padding inside the card. Use when\n  the image accompanies copy rather than carrying the message.\n  Reads as \"here's what we're talking about\" rather than \"look at\n  this\".\n\nOptional caption renders centered beneath in muted ink.\n\nReplaces the deprecated pattern of stuffing hero artwork into\n``HeroBlock.icon_url`` (which is hardcoded to 80×80 — appropriate\nfor icons, not art)."},"MediaPairBlock":{"properties":{"block_type":{"type":"string","const":"media_pair","title":"Block Type","default":"media_pair"},"left_image_url":{"type":"string","title":"Left Image Url","default":""},"left_alt":{"type":"string","title":"Left Alt","default":""},"right_image_url":{"type":"string","title":"Right Image Url","default":""},"right_alt":{"type":"string","title":"Right Alt","default":""},"rounded":{"type":"boolean","title":"Rounded","default":true},"caption_card":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caption Card"}},"additionalProperties":false,"type":"object","title":"MediaPairBlock","description":"Two images side-by-side — a portrait photo pair for storytelling.\n\nThe two-column companion to :class:`MediaSplitBlock` (which pairs one\nimage with copy). Cells stack vertically under 620px via the chrome's\n``.stk`` rule. ``caption_card`` is a small raised card pulled up over\nthe pair's lower edge (a negative margin the renderer degrades to a\ncard sitting directly below where clients ignore it). Field-name /\nalt-text conventions mirror ``media`` / ``media_split``."},"MediaSplitBlock":{"properties":{"block_type":{"type":"string","const":"media_split","title":"Block Type","default":"media_split"},"image_url":{"type":"string","title":"Image Url","default":""},"alt":{"type":"string","title":"Alt","default":""},"image_side":{"type":"string","enum":["left","right"],"title":"Image Side","default":"right"},"image_width":{"type":"integer","title":"Image Width","default":250},"headline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headline"},"headline_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Headline Size"},"font_family":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Font Family"},"italic":{"type":"boolean","title":"Italic","default":false},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"},"footnote":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Footnote"},"rounded":{"type":"boolean","title":"Rounded","default":false}},"additionalProperties":false,"type":"object","title":"MediaSplitBlock","description":"Two-column row: copy beside an inset image.\n\nThe email-design \"feature split\" — headline + supporting copy in\none column, product artwork in the other. Columns stack vertically\non narrow screens via the chrome's ``.stk`` reflow rule.\n\nCopy hierarchy, all optional: ``headline`` (heading font; allows\ninline ``<span>`` accents like hero), ``body`` (muted paragraph),\n``footnote`` (small print, extra-muted, pinned after a gap)."},"Member":{"properties":{"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Database timestamp when the record was created."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"display_name":{"type":"string","title":"Display Name"},"remote_id":{"type":"string","title":"Remote Id"},"is_mfa_enabled":{"type":"boolean","title":"Is Mfa Enabled","default":false},"mfa_verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Mfa Verified At"}},"type":"object","required":["email","first_name","last_name","display_name","remote_id"],"title":"Member"},"MemberAccessGrantResponse":{"properties":{"member":{"$ref":"#/components/schemas/MemberSummaryInfo"},"role":{"$ref":"#/components/schemas/AccessRole"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["member","role","created_at","updated_at"],"title":"MemberAccessGrantResponse"},"MemberOrganizationRole":{"type":"string","enum":["admin","member"],"title":"MemberOrganizationRole"},"MemberSendStatus":{"type":"string","enum":["pending","sent","failed","undeliverable","control","skipped","skipped_no_address","skipped_contact_deleted","cancelled","cooldown","unsubscribed","suppressed"],"title":"MemberSendStatus","description":"A cohort member's send disposition for the instance detail surface:\nthe notification's terminal state when a send was attempted, or\n``skipped`` / ``control`` for members that never get a delivery row.\n\n``cooldown`` is the dispatch-time cancel for either cooldown — the org\nmessage cooldown (``DenyIfInCooldown``) or the same-variant cooldown\n(``DenyIfSameVariantInCooldown``) — split out of the generic\n``cancelled`` — the\ncontact stayed enrolled and is graded intent-to-treat, so surfaces can\nshow how much of an arm went undelivered for cadence reasons.\n\n``undeliverable`` is the permanent dead-token failure (the send-path's\n``is_undeliverable`` flag) split out of the generic ``failed``;\n``skipped_no_address`` / ``skipped_contact_deleted`` are the\nunaddressable-push and source-deleted skips split out of the generic\n``skipped``. All three isolate static, non-actionable audience shape\nfrom the failures/skips an operator should chase."},"MemberSendStatusCountInfo":{"properties":{"status":{"$ref":"#/components/schemas/MemberSendStatus"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["status","count"],"title":"MemberSendStatusCountInfo","description":"One send-status bucket of a cohort: how many members landed in this\ndisposition. Percent is derived surface-side against the cohort total,\nmirroring ``OutcomeStateCountInfo``."},"MemberSortField":{"type":"string","enum":["display_name","email","created_at"],"title":"MemberSortField"},"MemberSummaryInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},"type":"object","required":["id","name","email"],"title":"MemberSummaryInfo"},"MemberWithRoleInfo":{"properties":{"member":{"$ref":"#/components/schemas/Member"},"role":{"$ref":"#/components/schemas/MemberOrganizationRole"}},"type":"object","required":["member","role"],"title":"MemberWithRoleInfo"},"MintEmailTemplateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"blocks":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/HeaderBlock"},{"$ref":"#/components/schemas/BrandSymbolBlock"},{"$ref":"#/components/schemas/HeroBlock"},{"$ref":"#/components/schemas/ItemListCardBlock"},{"$ref":"#/components/schemas/StateCardBlock"},{"$ref":"#/components/schemas/OfferCardBlock"},{"$ref":"#/components/schemas/ChallengeCardBlock"},{"$ref":"#/components/schemas/TestimonialBlock"},{"$ref":"#/components/schemas/InfoCalloutBlock"},{"$ref":"#/components/schemas/BodyTextBlock"},{"$ref":"#/components/schemas/LocalizedTextBlock"},{"$ref":"#/components/schemas/SurveyRowsBlock"},{"$ref":"#/components/schemas/CountdownBlock"},{"$ref":"#/components/schemas/AppStoreBlock"},{"$ref":"#/components/schemas/SignatureBlock"},{"$ref":"#/components/schemas/FooterBlock"},{"$ref":"#/components/schemas/DividerBlock"},{"$ref":"#/components/schemas/MediaBlock"},{"$ref":"#/components/schemas/MediaSplitBlock"},{"$ref":"#/components/schemas/MediaPairBlock"},{"$ref":"#/components/schemas/ProductCardBlock"},{"$ref":"#/components/schemas/PromoBarBlock"},{"$ref":"#/components/schemas/FullBleedHeroBlock"},{"$ref":"#/components/schemas/SectionCardBlock"},{"$ref":"#/components/schemas/OrgBlockRef"}],"discriminator":{"propertyName":"block_type","mapping":{"app_store":"#/components/schemas/AppStoreBlock","body_text":"#/components/schemas/BodyTextBlock","brand_symbol":"#/components/schemas/BrandSymbolBlock","challenge_card":"#/components/schemas/ChallengeCardBlock","countdown":"#/components/schemas/CountdownBlock","divider":"#/components/schemas/DividerBlock","footer":"#/components/schemas/FooterBlock","full_bleed_hero":"#/components/schemas/FullBleedHeroBlock","header":"#/components/schemas/HeaderBlock","hero":"#/components/schemas/HeroBlock","info_callout":"#/components/schemas/InfoCalloutBlock","item_list_card":"#/components/schemas/ItemListCardBlock","localized_text":"#/components/schemas/LocalizedTextBlock","media":"#/components/schemas/MediaBlock","media_pair":"#/components/schemas/MediaPairBlock","media_split":"#/components/schemas/MediaSplitBlock","offer_card":"#/components/schemas/OfferCardBlock","org_block":"#/components/schemas/OrgBlockRef","product_card":"#/components/schemas/ProductCardBlock","promo_bar":"#/components/schemas/PromoBarBlock","section_card":"#/components/schemas/SectionCardBlock","signature":"#/components/schemas/SignatureBlock","state_card":"#/components/schemas/StateCardBlock","survey_rows":"#/components/schemas/SurveyRowsBlock","testimonial":"#/components/schemas/TestimonialBlock"}}},"type":"array"},{"type":"null"}],"title":"Blocks"},"editable_field_paths":{"items":{"type":"string"},"type":"array","title":"Editable Field Paths"},"reference_asset_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Reference Asset Id"}},"type":"object","title":"MintEmailTemplateRequest","description":"Body for ``POST /email-templates``: explicit blocks XOR a reference."},"MintEmailTemplateResponse":{"properties":{"template_id":{"type":"string","format":"uuid","title":"Template Id"},"template_key":{"type":"string","title":"Template Key"},"name":{"type":"string","title":"Name"}},"type":"object","required":["template_id","template_key","name"],"title":"MintEmailTemplateResponse"},"MorphConversationInfo":{"properties":{"morph_session_id":{"type":"string","format":"uuid","title":"Morph Session Id"},"conversation_id":{"type":"string","format":"uuid","title":"Conversation Id"},"state":{"$ref":"#/components/schemas/MorphSessionState"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"last_activity_at":{"type":"string","format":"date-time","title":"Last Activity At"}},"type":"object","required":["morph_session_id","conversation_id","state","created_at","ended_at","last_activity_at"],"title":"MorphConversationInfo","description":"One row of the member's Morph conversation history on an app —\nany session state, attached rows only."},"MorphSandboxState":{"type":"string","enum":["provisioning","booting","serving","failed"],"title":"MorphSandboxState","description":"The coarse wire vocabulary for a session sandbox (design D10).\n\nThe backend derives it from the runtime plane: a wake in flight\nreads as ``booting`` (the ``starting`` row commits before the\nprovider call, so a held lease means real boot work is running),\n``serving`` once a route exists, ``failed`` when the provision\noutcome was the FAILED write. ``provisioning`` is the pre-wake\nstate the status read reports when nothing has started yet;\n``boot_phase`` telemetry refines ``booting`` later."},"MorphSessionLeaseRequest":{"properties":{"draft_id":{"type":"string","title":"Draft Id"},"lease_id":{"type":"string","title":"Lease Id"},"page_age_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Page Age Ms"}},"additionalProperties":false,"type":"object","required":["draft_id","lease_id"],"title":"MorphSessionLeaseRequest","description":"The one post-intent ladder body (design D9): warm, renew, and\nrelease all carry ``{draft_id, lease_id}``. ``lease_id`` is a\nstring like attach's: an unparseable lease answers the stale 409,\nnever a 422. ``page_age_ms`` is boot telemetry only warm reads (the\npage anchor on the boot it may initiate); renew and release ignore\nit."},"MorphSessionReattachState":{"type":"string","enum":["live","rehydrating","stale_base"],"title":"MorphSessionReattachState","description":"How a resumed session comes back (design D12): ``live`` when the\nsandbox is already serving, ``rehydrating`` when the wake-on-fork\nwas just re-fired behind the boot cover, ``stale_base`` when the\napp was re-published past the fork point — the old fork still\nrehydrates so the member can look at it, and the UI offers a fresh\nstart carrying the conversation."},"MorphSessionResumableInfo":{"properties":{"conversation_id":{"type":"string","format":"uuid","title":"Conversation Id"},"morph_session_id":{"type":"string","format":"uuid","title":"Morph Session Id"},"state":{"$ref":"#/components/schemas/MorphSessionState"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"last_activity_at":{"type":"string","format":"date-time","title":"Last Activity At"},"base_stale":{"type":"boolean","title":"Base Stale"}},"type":"object","required":["conversation_id","morph_session_id","state","expires_at","last_activity_at","base_stale"],"title":"MorphSessionResumableInfo"},"MorphSessionState":{"type":"string","enum":["active","resumable","ended","discarded","expired"],"title":"MorphSessionState"},"MorphSessionStatusResponse":{"properties":{"sandbox_state":{"$ref":"#/components/schemas/MorphSandboxState"},"boot_phase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Boot Phase"},"session_state":{"$ref":"#/components/schemas/MorphSessionState"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"base_stale":{"type":"boolean","title":"Base Stale"},"has_changes":{"type":"boolean","title":"Has Changes"},"served_version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Served Version Id"},"build_enqueued_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Build Enqueued At"},"build_queue_position":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Build Queue Position"},"build_phase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Phase"},"build_activity":{"items":{"oneOf":[{"$ref":"#/components/schemas/PolymorphicAppBuildTextActivityInfo"},{"$ref":"#/components/schemas/PolymorphicAppBuildToolStartActivityInfo"},{"$ref":"#/components/schemas/PolymorphicAppBuildToolEndActivityInfo"},{"$ref":"#/components/schemas/PolymorphicAppBuildPhaseActivityInfo"}],"discriminator":{"propertyName":"kind","mapping":{"phase":"#/components/schemas/PolymorphicAppBuildPhaseActivityInfo","text":"#/components/schemas/PolymorphicAppBuildTextActivityInfo","tool_end":"#/components/schemas/PolymorphicAppBuildToolEndActivityInfo","tool_start":"#/components/schemas/PolymorphicAppBuildToolStartActivityInfo"}}},"type":"array","title":"Build Activity"}},"type":"object","required":["sandbox_state","session_state","expires_at","base_stale","has_changes"],"title":"MorphSessionStatusResponse","description":"``served_version_id`` reads the session runtime row's\n``version_id`` — under the unified workspace that means the version\nthe workspace currently serves (stamped at provision and again\npost-promote), which is the frontend's frame-refresh trigger.\n``has_changes`` is true once the session owns a build of its own\n(``current_version_id is not None``): the Done control's gate, so a\nsession that has only talked can't apply nothing.\n``build_enqueued_at`` is non-null exactly while the platform holds\na session build in flight (stamped at enqueue, cleared at record,\nbounded server-side by the build budget): the canonical\nsession-build-state signal the dock's \"Building\" state and its\nelapsed clock derive from, in place of any client-side timer.\n``build_queue_position`` refines it: non-null (1-based, 1 = next,\nthis session's own job included) while that build still WAITS in\nthe interactive lane, null once it runs — waiting is read off the\nlane itself (queue members without the worker's in-progress start\nmarker), counted through the enqueue stamp because build jobs carry\nno known arq id. Best-effort by design: a requeue hop or a redis\nblip degrades it to null (reads as running), never an error.\n``build_phase`` is the session build's current phase token\n(preparing | writing | testing | checking_data | finishing), present only\nwhile a build is in flight; best-effort the same way, so a stamp\nthe worker never landed reads as null, never an error.\n``build_activity`` is that build's live feed (the builder's\nnarration and tool steps, oldest first, capped server-side),\npresent only while a build is in flight and best-effort the same\nway: a missing or unreadable stash reads as an empty list."},"NewVariantPayloadInfo":{"properties":{"channel":{"$ref":"#/components/schemas/VariantChannel"},"source":{"oneOf":[{"$ref":"#/components/schemas/RawVariantSource"},{"$ref":"#/components/schemas/TemplatedVariantSource"},{"$ref":"#/components/schemas/HtmlVariantSource"}],"title":"Source","discriminator":{"propertyName":"kind","mapping":{"html":"#/components/schemas/HtmlVariantSource","raw":"#/components/schemas/RawVariantSource","templated":"#/components/schemas/TemplatedVariantSource"}}},"proposed_region_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Proposed Region Ids"},"similar_variant_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Similar Variant Ids"},"archetype":{"anyOf":[{"$ref":"#/components/schemas/NotificationArchetype"},{"type":"null"}]},"lever":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lever"},"inspiration_ad_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Inspiration Ad Id"},"proposed_send_windows":{"items":{"$ref":"#/components/schemas/ProposedSendWindowInfo"},"type":"array","maxItems":8,"title":"Proposed Send Windows"},"resolved_variant_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Resolved Variant Ids"}},"type":"object","required":["channel","source"],"title":"NewVariantPayloadInfo","description":"Payload shape for ``ProposalType.NEW_VARIANT``.\n\nA from-scratch variant the agent proposes for approval. ``channel``\n+ ``source`` (a canonical ``VariantSource`` union — raw | templated)\ncarry the content; ``proposed_region_ids`` records the regions the\nagent would launch it in (consumed by the region surfaces, not by\napproval); ``similar_variant_ids`` are the nearest existing variants\nthe inbox showed the reviewer; ``archetype`` + ``lever`` name the\npsychological angle. ``inspiration_ad_id`` carries through the\nad-inspiration item the drafted copy riffed on (best-effort — NULL when\nthe agent drafted without one). ``proposed_send_windows`` are the\norg-local slots the same content should run in; approval fans out one\nbyte-identical variant per window (empty → a single default window).\n``resolved_variant_ids`` is backfilled when the proposal is approved —\none id per created variant, in window order. Approving creates +\napproves the variant(s) and creates NO experiment."},"NotNode":{"properties":{"kind":{"type":"string","const":"not","title":"Kind"},"child":{"oneOf":[{"$ref":"#/components/schemas/LeafNode"},{"$ref":"#/components/schemas/EventLeafNode"},{"$ref":"#/components/schemas/AndNode"},{"$ref":"#/components/schemas/OrNode"},{"$ref":"#/components/schemas/NotNode"}],"title":"Child","discriminator":{"propertyName":"kind","mapping":{"and":"#/components/schemas/AndNode","event":"#/components/schemas/EventLeafNode","leaf":"#/components/schemas/LeafNode","not":"#/components/schemas/NotNode","or":"#/components/schemas/OrNode"}}}},"additionalProperties":false,"type":"object","required":["kind","child"],"title":"NotNode","description":"Logical negation of ``child``. NOT is unary: wrapping any subtree\ninverts the membership it computes, and chained negations\n(``NOT NOT X``) are legal — they collapse semantically but the DTO\nstores them as-authored. The depth check on the segment config\ntreats NotNode as depth-transparent so a NOT around a depth-3\nAND/OR subtree is still legal."},"NotificationActivityEvent":{"properties":{"source":{"type":"string","const":"notification","title":"Source","default":"notification"},"id":{"type":"string","format":"uuid","title":"Id"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"channel":{"$ref":"#/components/schemas/NotificationChannel"},"status":{"$ref":"#/components/schemas/NotificationStatus"},"variant_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Variant Id"},"campaign_stage_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Campaign Stage Id"}},"type":"object","required":["id","occurred_at","channel","status","variant_id","campaign_stage_id"],"title":"NotificationActivityEvent"},"NotificationAdhocCreateRequest":{"properties":{"contact_id":{"type":"string","format":"uuid","title":"Contact Id"},"variant_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Variant Id"},"content":{"anyOf":[{"$ref":"#/components/schemas/AdhocPushDraft"},{"type":"null"}]},"vip_angle":{"anyOf":[{"$ref":"#/components/schemas/VipAngle"},{"type":"null"}]},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"},"channel":{"anyOf":[{"$ref":"#/components/schemas/NotificationChannel"},{"type":"null"}]},"is_test_send":{"type":"boolean","title":"Is Test Send","default":false}},"type":"object","required":["contact_id"],"title":"NotificationAdhocCreateRequest","description":"Manual one-off send against a contact: a saved variant XOR inline\npush content.\n\n`channel` overrides the variant's channel if provided; with `content`\nit must be a push channel and defaults to the org's configured push\nchannel. `scheduled_at` defaults to now. When `is_test_send` is true\nthe row is tagged in ``notification_metadata`` so analytics can filter\nit out and the audit log uses ``AuditAction.NOTIFICATION_TEST_SEND``\ninstead of the campaign send action. `vip_angle` is a label only —\nVIP classification is server-side by Book membership, never inferred\nfrom this field."},"NotificationArchetype":{"type":"string","enum":["streak_at_risk","social_proof","curiosity_gap","milestone","personalized_rec","scarcity_supply","popularity_fomo","win_back","progress_nudge","time_sensitive","identity_aspiration","empathy_checkin","reward_reciprocity"],"title":"NotificationArchetype"},"NotificationChannel":{"type":"string","enum":["email","fcm","expo","control"],"title":"NotificationChannel"},"NotificationResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"contact_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Contact Id"},"contact":{"anyOf":[{"$ref":"#/components/schemas/ContactSummaryInfo"},{"type":"null"}]},"campaign_stage_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Campaign Stage Id"},"campaign_stage":{"anyOf":[{"$ref":"#/components/schemas/CampaignStageSummaryInfo"},{"type":"null"}]},"campaign_stage_variant_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Campaign Stage Variant Id"},"variant_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Variant Id"},"experiment_instance_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Experiment Instance Id"},"experiment_instance":{"anyOf":[{"$ref":"#/components/schemas/ExperimentInstanceSummaryInfo"},{"type":"null"}]},"channel":{"$ref":"#/components/schemas/NotificationChannel"},"scheduled_at":{"type":"string","format":"date-time","title":"Scheduled At"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"},"status":{"$ref":"#/components/schemas/NotificationStatus"},"content_snapshot":{"additionalProperties":true,"type":"object","title":"Content Snapshot"},"user_metadata_snapshot":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"User Metadata Snapshot"},"notification_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Notification Metadata"},"provider_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Ref"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","contact_id","campaign_stage_id","campaign_stage_variant_id","variant_id","experiment_instance_id","channel","scheduled_at","sent_at","status","content_snapshot","user_metadata_snapshot","provider_ref","error_message","created_at","updated_at"],"title":"NotificationResponse"},"NotificationSortField":{"type":"string","enum":["scheduled_at","sent_at","status","channel","created_at","updated_at"],"title":"NotificationSortField"},"NotificationStatus":{"type":"string","enum":["pending","sending","sent","failed","cancelled","unsubscribed","held_back","suppressed"],"title":"NotificationStatus"},"OAuthAuthorizationDecisionInfo":{"properties":{"redirect_url":{"type":"string","title":"Redirect Url"}},"type":"object","required":["redirect_url"],"title":"OAuthAuthorizationDecisionInfo"},"OAuthAuthorizationPromptInfo":{"properties":{"client_name":{"type":"string","title":"Client Name"},"redirect_host":{"type":"string","title":"Redirect Host"},"is_loopback_redirect":{"type":"boolean","title":"Is Loopback Redirect"},"scopes":{"items":{"$ref":"#/components/schemas/OAuthScopeInfo"},"type":"array","title":"Scopes"},"organization_name":{"type":"string","title":"Organization Name"}},"type":"object","required":["client_name","redirect_host","is_loopback_redirect","scopes","organization_name"],"title":"OAuthAuthorizationPromptInfo"},"OAuthScopeInfo":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"}},"type":"object","required":["key","label"],"title":"OAuthScopeInfo"},"OfferCardBlock":{"properties":{"block_type":{"type":"string","const":"offer_card","title":"Block Type","default":"offer_card"},"eyebrow":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrow"},"eyebrow_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrow Color"},"discount_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Discount Label"},"old_price":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Price"},"new_price":{"type":"string","title":"New Price","default":""},"frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Frequency"},"footnote":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Footnote"},"discount_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Discount Code"},"cta_label":{"type":"string","title":"Cta Label","default":""},"cta_url":{"type":"string","title":"Cta Url","default":""},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color"},"border_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Border Color"},"cta_full_width":{"type":"boolean","title":"Cta Full Width","default":false}},"additionalProperties":false,"type":"object","title":"OfferCardBlock"},"OffsetSpec":{"properties":{"kind":{"type":"string","const":"offset","title":"Kind"},"amount":{"type":"integer","title":"Amount"},"unit":{"type":"string","enum":["minutes","hours","days","weeks"],"title":"Unit"}},"additionalProperties":false,"type":"object","required":["kind","amount","unit"],"title":"OffsetSpec","description":"Relative-time value: resolves to ``now + timedelta(**{unit: amount})``.\n\n``amount`` is signed: negative values reach into the past, positive\ninto the future. The frontend exposes a positive amount + direction\ntoggle (\"ago\" / \"from now\") and serializes the sign at the wire\nboundary; the DTO/storage form is canonical signed-int."},"OpenAICredentialStrategy":{"type":"string","enum":["api_key","subscription"],"title":"OpenAICredentialStrategy"},"OpenPolymorphicAppRequest":{"properties":{"channel":{"$ref":"#/components/schemas/PolymorphicAppChannel"},"morph_session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Morph Session Id"},"build_runtime_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Build Runtime Id"}},"type":"object","required":["channel"],"title":"OpenPolymorphicAppRequest"},"OpenPolymorphicAppResponse":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"OpenPolymorphicAppResponse"},"OrNode":{"properties":{"kind":{"type":"string","const":"or","title":"Kind"},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/LeafNode"},{"$ref":"#/components/schemas/EventLeafNode"},{"$ref":"#/components/schemas/AndNode"},{"$ref":"#/components/schemas/OrNode"},{"$ref":"#/components/schemas/NotNode"}],"discriminator":{"propertyName":"kind","mapping":{"and":"#/components/schemas/AndNode","event":"#/components/schemas/EventLeafNode","leaf":"#/components/schemas/LeafNode","not":"#/components/schemas/NotNode","or":"#/components/schemas/OrNode"}}},"type":"array","title":"Children"}},"additionalProperties":false,"type":"object","required":["kind","children"],"title":"OrNode","description":"Logical OR over ``children``. Children are themselves nodes —\ntypically AND subtrees at depth 1, but can be leaves directly when\nthe OR is over single predicates."},"OrderByClauseConfig":{"properties":{"column":{"type":"string","title":"Column"},"direction":{"type":"string","enum":["asc","desc"],"title":"Direction","default":"desc"},"nulls":{"type":"string","enum":["first","last"],"title":"Nulls","default":"last"}},"type":"object","required":["column"],"title":"OrderByClauseConfig","description":"One ORDER BY column on the token table.\n\nUsed to surface the most-recent row per identity at sync time —\n``last_seen DESC`` for token tables that record a recency timestamp,\n``id DESC`` as a stable tail-breaker. Maps to PostgREST's\n``order=<col>.<dir>.nulls<first|last>`` syntax via the connector's\nexisting tuple-of-columns + ``order`` literal."},"OrgBlockRef":{"properties":{"block_type":{"type":"string","const":"org_block","title":"Block Type","default":"org_block"},"block_id":{"type":"string","title":"Block Id"},"props":{"additionalProperties":true,"type":"object","title":"Props"}},"additionalProperties":false,"type":"object","required":["block_id"],"title":"OrgBlockRef","description":"Reference to a custom block stored in the ``org_blocks`` table.\n\n``block_id`` pins the variant to a specific row (= specific version)\nso existing variants stay frozen across block revisions for A/B\nintegrity."},"Organization":{"properties":{"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Database timestamp when the record was created."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"default_timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Timezone"},"timezone_attribute_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Timezone Attribute Id"},"signup_cohort_attribute_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Signup Cohort Attribute Id"},"retention_event_definition_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Retention Event Definition Id"},"remote_id":{"type":"string","title":"Remote Id"},"type":{"$ref":"#/components/schemas/OrganizationType"},"requires_notification_approval":{"type":"boolean","title":"Requires Notification Approval","default":true},"requires_templated_source":{"type":"boolean","title":"Requires Templated Source","default":false},"polymorphic_app_builder_mode":{"$ref":"#/components/schemas/PolymorphicAppBuilderMode","default":"legacy"},"logo_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo S3 Key"},"plan_limits":{"additionalProperties":true,"type":"object","title":"Plan Limits"},"is_autonomous_mode_enabled":{"type":"boolean","title":"Is Autonomous Mode Enabled","default":false},"global_control_pct":{"type":"integer","title":"Global Control Pct","default":0},"global_control_enabled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Global Control Enabled At"},"is_company_wall_enabled":{"type":"boolean","title":"Is Company Wall Enabled","default":false},"control_first_enabled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Control First Enabled At"},"control_first_pct":{"type":"integer","title":"Control First Pct","default":10},"default_allocator_strategy":{"$ref":"#/components/schemas/AllocatorStrategy","default":"balanced"},"score_source":{"$ref":"#/components/schemas/ScoreSource","default":"session_outcome"},"message_cooldown_seconds":{"type":"integer","title":"Message Cooldown Seconds","default":0},"variant_cooldown_seconds":{"type":"integer","title":"Variant Cooldown Seconds","default":0},"shared_asset_bytes_used":{"type":"integer","title":"Shared Asset Bytes Used","default":0},"brand_body_font_family":{"type":"string","title":"Brand Body Font Family","default":"Geist"},"brand_heading_font_family":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Heading Font Family"},"brand_primary_color":{"type":"string","title":"Brand Primary Color","default":"#171717"},"brand_accent_color":{"type":"string","title":"Brand Accent Color","default":"#22c55e"},"brand_logo_wordmark_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Logo Wordmark Url"},"brand_logo_wordmark_footer_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Logo Wordmark Footer Url"},"brand_logo_symbol_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Logo Symbol Url"},"brand_logo_favicon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Logo Favicon Url"},"avatar_emoji":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Emoji"},"brand_wash_background_color":{"type":"string","title":"Brand Wash Background Color","default":"#EFEFEF"},"brand_card_border_radius":{"type":"integer","title":"Brand Card Border Radius","default":16},"brand_body_text_color":{"type":"string","title":"Brand Body Text Color","default":"#666666"},"brand_mailing_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Mailing Address"},"business_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Context"},"ad_inspiration_keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ad Inspiration Keywords"},"experiment_guidance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experiment Guidance"},"brand_kit_source_asset_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brand Kit Source Asset Id"},"brand_kit_extracted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Brand Kit Extracted At"},"brand_kit_extraction_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Kit Extraction Status"},"brand_kit_tokens":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Brand Kit Tokens"},"is_brand_heading_font_overridden":{"type":"boolean","title":"Is Brand Heading Font Overridden","default":false},"is_brand_body_font_overridden":{"type":"boolean","title":"Is Brand Body Font Overridden","default":false},"overview_outcome_refs":{"additionalProperties":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"type":"object","title":"Overview Outcome Refs"},"is_demo":{"type":"boolean","title":"Is Demo","default":false},"demo_source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Demo Source Url"},"demo_provision_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Demo Provision Status"},"demo_provision_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Demo Provision Error"}},"type":"object","required":["name","slug","remote_id","type"],"title":"Organization"},"OrganizationGlobalControlStatsResult":{"properties":{"enabled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Enabled At"},"pct":{"type":"integer","title":"Pct"},"treated_count":{"type":"integer","title":"Treated Count"},"control_count":{"type":"integer","title":"Control Count"},"treated_since_enable_count":{"type":"integer","title":"Treated Since Enable Count"},"control_since_enable_count":{"type":"integer","title":"Control Since Enable Count"}},"type":"object","required":["enabled_at","pct","treated_count","control_count","treated_since_enable_count","control_since_enable_count"],"title":"OrganizationGlobalControlStatsResult","description":"Aggregate cohort counts for one org.\n\n``enabled_at`` echoes the org's write-once enable timestamp;\n``pct`` echoes the current dice-roll percentage. The four counts\nanswer:\n\n* ``treated_count`` — every contact with ``is_global_control = false``\n  across the org's lifetime (includes pre-enable grandfather-treated).\n* ``control_count`` — every contact with ``is_global_control = true``.\n  By construction this equals ``control_since_enable_count`` because\n  the dice roll only fires when ``enabled_at`` is set; the field is\n  included for symmetry with the totals row.\n* ``treated_since_enable_count`` — treated contacts created at-or-after\n  ``enabled_at``. Pair with ``control_since_enable_count`` to compute\n  the realized percentage (denominator for the \"does this match my\n  configured pct\" sanity check). Zero when ``enabled_at IS NULL``.\n* ``control_since_enable_count`` — see ``treated_since_enable_count``."},"OrganizationInvitation":{"properties":{"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Database timestamp when the record was created."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"token":{"type":"string","title":"Token"},"token_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Hash"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"invited_by_member_id":{"type":"string","format":"uuid","title":"Invited By Member Id"},"status":{"$ref":"#/components/schemas/InvitationStatus"},"role":{"$ref":"#/components/schemas/MemberOrganizationRole"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["email","organization_id","invited_by_member_id","status","role"],"title":"OrganizationInvitation"},"OrganizationLocalControlStatsResult":{"properties":{"enabled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Enabled At"},"pct":{"type":"integer","title":"Pct"},"cohort_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Cohort Date"},"treated_count":{"type":"integer","title":"Treated Count"},"control_count":{"type":"integer","title":"Control Count"}},"type":"object","required":["enabled_at","pct","cohort_date","treated_count","control_count"],"title":"OrganizationLocalControlStatsResult","description":"Latest-cohort-day split for one org.\n\n``enabled_at`` echoes the org's write-once enable timestamp;\n``pct`` echoes the current carve percentage. ``cohort_date`` is the\nnewest cohort day with any provisioned instance — ``None`` (with\nzero counts) when local control is disabled or the org has no\ncohorts yet, which is the frontend's render gate for the stats row.\n\n* ``treated_count`` — the day's provisioned members on non-control\n  arms (contacts that entered experiments).\n* ``control_count`` — the day's provisioned members on control arms\n  (the held-back carve). Realized % = control / (treated + control),\n  computed client-side like the global-control row."},"OrganizationProfileResponse":{"properties":{"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"}},"type":"object","required":["name","slug"],"title":"OrganizationProfileResponse"},"OrganizationSettingsResponse":{"properties":{"requires_notification_approval":{"type":"boolean","title":"Requires Notification Approval"},"requires_templated_source":{"type":"boolean","title":"Requires Templated Source"},"polymorphic_app_builder_mode":{"$ref":"#/components/schemas/PolymorphicAppBuilderMode"},"effective_polymorphic_app_builder_mode":{"$ref":"#/components/schemas/PolymorphicAppBuilderMode"},"is_autonomous_mode_enabled":{"type":"boolean","title":"Is Autonomous Mode Enabled"},"timezone_attribute_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Timezone Attribute Id"},"signup_cohort_attribute_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Signup Cohort Attribute Id"},"retention_event_definition_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Retention Event Definition Id"},"global_control_pct":{"type":"integer","title":"Global Control Pct","default":0},"global_control_enabled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Global Control Enabled At"},"control_first_enabled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Control First Enabled At"},"control_first_pct":{"type":"integer","title":"Control First Pct","default":10},"default_allocator_strategy":{"$ref":"#/components/schemas/AllocatorStrategy","default":"balanced"},"score_source":{"$ref":"#/components/schemas/ScoreSource","default":"session_outcome"},"message_cooldown_seconds":{"type":"integer","title":"Message Cooldown Seconds","default":0},"variant_cooldown_seconds":{"type":"integer","title":"Variant Cooldown Seconds","default":0},"experiment_guidance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experiment Guidance"},"ad_inspiration_keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ad Inspiration Keywords"},"is_demo":{"type":"boolean","title":"Is Demo","default":false},"demo_source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Demo Source Url"},"demo_provision_status":{"anyOf":[{"$ref":"#/components/schemas/DemoProvisionStatus"},{"type":"null"}]},"demo_provision_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Demo Provision Error"}},"type":"object","required":["requires_notification_approval","requires_templated_source","polymorphic_app_builder_mode","effective_polymorphic_app_builder_mode","is_autonomous_mode_enabled"],"title":"OrganizationSettingsResponse"},"OrganizationType":{"type":"string","enum":["personal","team"],"title":"OrganizationType"},"OutcomeKind":{"type":"string","enum":["event","conversion"],"title":"OutcomeKind","description":"The two outcome kinds pinned on the Overview lift strip.\n\nValues match the ``kind`` discriminator literal on\n:data:`OutcomeSpec` (Pydantic discriminated unions require a\n``Literal``); this enum is the typed form the cohort-rate route's\nquery param uses instead of a bare string."},"OutcomeLiftCardInfo":{"properties":{"outcome":{"oneOf":[{"$ref":"#/components/schemas/EventOutcomeRef"},{"$ref":"#/components/schemas/ConversionOutcomeRefInfo"}],"title":"Outcome","discriminator":{"propertyName":"kind","mapping":{"conversion":"#/components/schemas/ConversionOutcomeRefInfo","event":"#/components/schemas/EventOutcomeRef"}}},"cohorts":{"items":{"$ref":"#/components/schemas/GlobalArmCohortStatsInfo"},"type":"array","title":"Cohorts"},"lift":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lift"},"chart":{"anyOf":[{"$ref":"#/components/schemas/ChartInfo"},{"type":"null"}]},"ci_low":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ci Low"},"ci_high":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ci High"},"p_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P Value"},"confidence_tier":{"anyOf":[{"$ref":"#/components/schemas/ExperimentLiftConfidence"},{"type":"null"}]}},"type":"object","required":["outcome","cohorts","lift","chart"],"title":"OutcomeLiftCardInfo","description":"One outcome's lift card — descriptor + cohorts + directional diff.\n\n``lift`` is the raw directional ``treated − control`` (rate diff for\nboolean / rate outcomes, mean diff for value outcomes). ``None`` when\neither arm has zero contacts. No significance gating — the Overview\nis intentionally \"what direction is this moving\"; the per-campaign\ngoal-lift surface (:class:`MeasureGoalUseCase`) is where any\nstatistical-significance story belongs.\n\n``chart`` is the trend line for event outcomes (the chart series and\nthe cohort stats share one denominator per arm — the arm's WIDE\ncohort ``n`` — so the plotted per-period rate matches the headline).\nConversion outcomes have no trend line, so ``chart`` is ``None``.\n\n``ci_low`` / ``ci_high`` bound ``lift`` with a two-sided 95% CI and\n``p_value`` / ``confidence_tier`` carry the treated-vs-control\nsignificance (Welch's t for value/avg-per-member measures, a\ntwo-proportion z for conversion) so a noise-level lift renders honestly\ninstead of as a confident win. All four are ``None`` for outcomes that\ndon't compute significance yet (an empty arm)."},"OutcomeRef":{"properties":{"kind":{"$ref":"#/components/schemas/OutcomeKind"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["kind","id"],"title":"OutcomeRef"},"OutcomeStateCountInfo":{"properties":{"state_id":{"type":"string","title":"State Id"},"buckets":{"items":{"$ref":"#/components/schemas/AttributeBucket"},"type":"array","title":"Buckets"},"count":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Count"},"computed_utility":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Computed Utility"},"reward":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reward"}},"type":"object","required":["state_id","buckets","count"],"title":"OutcomeStateCountInfo","description":"One outcome state of a cohort: an MDP leaf some members resolved to,\nwith its bucket vector so surfaces can label it without a states-by-id\nround trip. Used for both the final graded distribution (resolved at the\nattribution-window close) and the interim provisional one (resolved at\n``now``, mid-window).\n\n``count`` is an integer tally under the history-rollup fold and a\ndecayed float mass under the transition-stats fold — the union (not\nplain ``float``) keeps the integer responses serializing unchanged.\n``computed_utility`` / ``reward`` mirror the leaf's Bellman columns\n(``None`` until solved), stamped by the labeler from the same bulk state\nfetch that resolves the buckets — no second query."},"OverviewCardsResponse":{"properties":{"outcome_refs":{"items":{"$ref":"#/components/schemas/OutcomeRef"},"type":"array","title":"Outcome Refs"}},"type":"object","required":["outcome_refs"],"title":"OverviewCardsResponse"},"OverviewCardsUpsertRequest":{"properties":{"outcome_refs":{"items":{"$ref":"#/components/schemas/OutcomeRef"},"type":"array","maxItems":8,"title":"Outcome Refs"}},"type":"object","required":["outcome_refs"],"title":"OverviewCardsUpsertRequest"},"OverviewImpactSummaryResult":{"properties":{"not_yet_enabled":{"type":"boolean","title":"Not Yet Enabled"},"window_days":{"type":"integer","title":"Window Days"},"messages_sent":{"$ref":"#/components/schemas/ImpactStatInfo"},"contacts_reached":{"$ref":"#/components/schemas/ImpactStatInfo"},"messages_per_person":{"$ref":"#/components/schemas/ImpactStatInfo"},"experiments_running":{"$ref":"#/components/schemas/ImpactStatInfo"},"variants_running":{"$ref":"#/components/schemas/ImpactStatInfo"},"messages_sent_series":{"items":{"type":"integer"},"type":"array","title":"Messages Sent Series"},"contacts_reached_series":{"items":{"type":"integer"},"type":"array","title":"Contacts Reached Series"},"experiments_running_series":{"items":{"type":"integer"},"type":"array","title":"Experiments Running Series"},"variants_running_series":{"items":{"type":"integer"},"type":"array","title":"Variants Running Series"},"series_provisional_last":{"type":"boolean","title":"Series Provisional Last","default":false},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["not_yet_enabled","window_days","messages_sent","contacts_reached","messages_per_person","experiments_running","variants_running","messages_sent_series","contacts_reached_series","experiments_running_series","variants_running_series","computed_at"],"title":"OverviewImpactSummaryResult"},"OverviewIntradayOverlayResult":{"properties":{"hours":{"items":{"type":"integer"},"type":"array","title":"Hours"},"metrics":{"items":{"$ref":"#/components/schemas/IntradayMetricOverlayInfo"},"type":"array","title":"Metrics"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["hours","metrics","computed_at"],"title":"OverviewIntradayOverlayResult"},"OverviewSection":{"type":"string","enum":["sessions","monetization"],"title":"OverviewSection","description":"The independent pin-set sections on the Overview dashboard.\n\nEach value keys its own ordered :class:`OutcomeRef` list in the\n``organizations.overview_outcome_refs`` JSONB dict, so the\n\"sessions\" and \"monetization\" surfaces persist separate pins; the\n``section`` query param on the cards route selects one."},"PageResult_AdInspirationItemInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdInspirationItemInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_AdminExperimentInstanceHealthInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdminExperimentInstanceHealthInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_AgentInsightResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AgentInsightResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_Annotated_Union_NotificationActivityEvent__VariantInteractionActivityEvent__EventActivityEvent___FieldInfo_annotation_NoneType__required_True__discriminator__source____":{"properties":{"items":{"items":{"oneOf":[{"$ref":"#/components/schemas/NotificationActivityEvent"},{"$ref":"#/components/schemas/VariantInteractionActivityEvent"},{"$ref":"#/components/schemas/EventActivityEvent"}],"discriminator":{"propertyName":"source","mapping":{"event":"#/components/schemas/EventActivityEvent","notification":"#/components/schemas/NotificationActivityEvent","variant_interaction":"#/components/schemas/VariantInteractionActivityEvent"}}},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_Annotated_Union_PolymorphicAppAccessRequestResponse__IntegrationAccessRequestResponse___FieldInfo_annotation_NoneType__required_True__discriminator__kind____":{"properties":{"items":{"items":{"oneOf":[{"$ref":"#/components/schemas/PolymorphicAppAccessRequestResponse"},{"$ref":"#/components/schemas/IntegrationAccessRequestResponse"}],"discriminator":{"propertyName":"kind","mapping":{"integration":"#/components/schemas/IntegrationAccessRequestResponse","polymorphic_app":"#/components/schemas/PolymorphicAppAccessRequestResponse"}}},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_ApiKeyResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ApiKeyResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_AssetGenerationResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AssetGenerationResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_AssetResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AssetResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_AttributeKeyResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AttributeKeyResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_AttributeMappingResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AttributeMappingResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_BrandReferenceInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BrandReferenceInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_CampaignResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CampaignResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_CampaignStageResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CampaignStageResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_CampaignStageVariantResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CampaignStageVariantResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_ComponentCatalogEntryInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ComponentCatalogEntryInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_ComponentGradeInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ComponentGradeInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_ContactAttributeChangeEvent_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ContactAttributeChangeEvent"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_ContactAttributeResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ContactAttributeResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_ContactInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ContactInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_ContactMdpStateResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ContactMdpStateResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_ConversionDefinitionResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConversionDefinitionResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_DataDictionaryEntryResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DataDictionaryEntryResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_DemoProvisionLogLineInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DemoProvisionLogLineInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_DesignInspirationItemInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DesignInspirationItemInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_DesignRoundBatchResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DesignRoundBatchResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_EmailRenderGradeResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EmailRenderGradeResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_EmailTemplateResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EmailTemplateResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_EventDefinitionResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EventDefinitionResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_EventRowInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EventRowInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_ExperimentDefinitionResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ExperimentDefinitionResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_ExperimentInstanceMemberResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ExperimentInstanceMemberResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_ExperimentInstanceResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ExperimentInstanceResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_FailureEventResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/FailureEventResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_IntegrationAccessRequestResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/IntegrationAccessRequestResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_IntegrationCatalogEntryResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/IntegrationCatalogEntryResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_IntegrationMemberAccessGrantResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/IntegrationMemberAccessGrantResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_IntegrationPolymorphicAppAccessResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/IntegrationPolymorphicAppAccessResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_IntegrationResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/IntegrationResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_InternalOrganizationSummaryInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/InternalOrganizationSummaryInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_InvitationDetails_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/InvitationDetails"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_MdpExcludedDayResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MdpExcludedDayResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_MdpRegionInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MdpRegionInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_MemberAccessGrantResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MemberAccessGrantResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_MemberWithRoleInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MemberWithRoleInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_MorphConversationInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MorphConversationInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_MorphSessionResumableInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MorphSessionResumableInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_NotificationResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/NotificationResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_OrganizationInvitation_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/OrganizationInvitation"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_PolymorphicAppAccessRequestResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PolymorphicAppAccessRequestResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_PolymorphicAppBuildRunInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PolymorphicAppBuildRunInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_PolymorphicAppDiscoveryResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PolymorphicAppDiscoveryResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_PolymorphicAppExpectationInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PolymorphicAppExpectationInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_PolymorphicAppIntegrationAccessResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PolymorphicAppIntegrationAccessResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_PolymorphicAppMaintainerAppInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PolymorphicAppMaintainerAppInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_PolymorphicAppMaintainerRunInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PolymorphicAppMaintainerRunInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_PolymorphicAppResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PolymorphicAppResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_PolymorphicAppRootSpanInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PolymorphicAppRootSpanInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_PolymorphicAppRuntimeBootInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PolymorphicAppRuntimeBootInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_PolymorphicAppSourceAccessRequestResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PolymorphicAppSourceAccessRequestResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_PolymorphicAppVersionResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PolymorphicAppVersionResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_ProspectiveAssignmentRow_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ProspectiveAssignmentRow"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_RegionExperimentInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RegionExperimentInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_RegionExperimentMemberStateInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RegionExperimentMemberStateInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_SegmentMemberResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SegmentMemberResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_SegmentResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SegmentResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_SidebarSectionResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SidebarSectionResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_SignalEventReceiptAdminInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SignalEventReceiptAdminInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_SlackAgentThreadInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SlackAgentThreadInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_SlackChannelInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SlackChannelInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_SyncRunResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SyncRunResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_TrackedTargetInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TrackedTargetInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_VariantFamilyResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VariantFamilyResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_VariantGenerationRunInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VariantGenerationRunInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_VariantGradingScheduleSummaryInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VariantGradingScheduleSummaryInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_VariantResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VariantResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_VipCandidateResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VipCandidateResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_VipResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VipResponse"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_WorkflowInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WorkflowInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_WorkflowRunAdminInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WorkflowRunAdminInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_WorkflowRunInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WorkflowRunInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PageResult_WorkflowScheduleAdminInfo_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WorkflowScheduleAdminInfo"},"type":"array","title":"Items"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"previous_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Page"}},"type":"object","required":["items","next_page","previous_page"],"title":"PageResult"},"PerformanceCombinedReadResponse":{"properties":{"headline_metrics":{"$ref":"#/components/schemas/PerformanceHeadlineMetricsResult"},"headline_series":{"$ref":"#/components/schemas/PerformanceHeadlineSeriesResult"},"primary_projection":{"$ref":"#/components/schemas/PerformanceProjectionInfo"},"projections":{"items":{"$ref":"#/components/schemas/PerformanceProjectionInfo"},"type":"array","title":"Projections"}},"type":"object","required":["headline_metrics","headline_series","primary_projection","projections"],"title":"PerformanceCombinedReadResponse","description":"One-request read for the PerformancePage headline\nband: the headline metrics, their sparklines, and every per-scope\nprojection, so a region-scoped load fires ONE request (region membership\nmaterialized once, shared across scans) instead of the old ~8-statement,\n(K+1)-projection burst that dies at the 120s ``statement_timeout``.\n\n``headline_metrics`` / ``headline_series`` are the verbatim results the\ntwo headline endpoints returned (the ``not_yet_enabled`` gate mirrored\nfrom them). ``primary_projection`` is the page-scope projection behind the\nstats cell (the request's own ``metric_event_key``/``audience``/\n``region_id``); ``projections`` carries one entry per tracked target\n(empty when the org has none), each self-identified by its scope triple."},"PerformanceHeadlineMetricsResult":{"properties":{"not_yet_enabled":{"type":"boolean","title":"Not Yet Enabled"},"window_days":{"type":"integer","title":"Window Days"},"active_users":{"$ref":"#/components/schemas/ImpactStatInfo"},"avg_session_length":{"$ref":"#/components/schemas/ImpactStatInfo"}},"type":"object","required":["not_yet_enabled","window_days","active_users","avg_session_length"],"title":"PerformanceHeadlineMetricsResult"},"PerformanceHeadlineSeriesResult":{"properties":{"not_yet_enabled":{"type":"boolean","title":"Not Yet Enabled"},"window_days":{"type":"integer","title":"Window Days"},"active_users_series":{"items":{"type":"number"},"type":"array","title":"Active Users Series"},"avg_session_length_series":{"items":{"type":"number"},"type":"array","title":"Avg Session Length Series"},"series_provisional_last":{"type":"boolean","title":"Series Provisional Last"}},"type":"object","required":["not_yet_enabled","window_days","active_users_series","avg_session_length_series","series_provisional_last"],"title":"PerformanceHeadlineSeriesResult","description":"Per-day series behind the two headline number cells (the sparklines).\n\n``active_users_series`` is ``converted_contacts`` per day bucket,\n``avg_session_length_series`` the ``average`` measure — both zero-filled\nover one shared day axis (oldest to newest), so the lists share one\nlength. ``series_provisional_last`` flags the trailing still-accumulating\nbucket. When ``not_yet_enabled`` every list is empty (no randomized base\nto chart)."},"PerformanceProjectionInfo":{"properties":{"metric_event_key":{"type":"string","title":"Metric Event Key"},"audience":{"type":"string","title":"Audience"},"region_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Region Id"},"control_n":{"type":"integer","title":"Control N"},"treated_n":{"type":"integer","title":"Treated N"},"control_converters":{"type":"integer","title":"Control Converters"},"treated_converters":{"type":"integer","title":"Treated Converters"},"control_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Control Rate"},"treated_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Treated Rate"},"lift":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lift"},"projected_additional_converters":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Projected Additional Converters"}},"type":"object","required":["metric_event_key","audience","region_id","control_n","treated_n","control_converters","treated_converters","control_rate","treated_rate","lift","projected_additional_converters"],"title":"PerformanceProjectionInfo","description":"One (metric, audience, region) arm extrapolation in the combined read.\n\nThe per-scope projection every PerformancePage projection\nsurface consumes: the stats cell reads ``primary_projection``;\neach tracked-target chip reads the ``projections`` entry matching its\nstored ``(metric_event_key, audience, region_id)`` triple. Per arm the\npopulation ``*_n`` and the distinct in-window converters ``*_converters``\nyield a rate (``None`` at ``n == 0``, distinct from a measured ``0.0``);\n``lift`` = ``(treated_rate - control_rate) / control_rate`` (``None``\nunless both rates and ``control_rate > 0``);\n``projected_additional_converters`` = ``(treated_rate - control_rate) *\ncontrol_n`` (``None`` unless both rates; unclamped) — the combined read\nfolds every chip's projection here instead of the page firing the\nprojection route once per chip. ``not_yet_enabled`` lives on\n``headline_metrics``, not here: a not-yet-enabled org's entries are the\nzero/``None`` cells the stats cell (unmounted) never consumes."},"PersonalizationTokenCatalogResult":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PersonalizationTokenInfo"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"PersonalizationTokenCatalogResult","description":"Bounded, non-paginated envelope — one row per available token.\nSame small-typed-envelope convention as ``EmailSendersResult``, not\n``PageResult[T]``."},"PersonalizationTokenInfo":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"value_type":{"anyOf":[{"$ref":"#/components/schemas/ContactAttributeValueType"},{"type":"null"}]},"sample_values":{"items":{"type":"string"},"type":"array","title":"Sample Values"},"is_attribute_backed":{"type":"boolean","title":"Is Attribute Backed","default":false}},"type":"object","required":["name"],"title":"PersonalizationTokenInfo","description":"One token an author can drop into a variant body — an identity\nfield (``first_name``), a computed field (``trial_end_date``), or a\ncontact attribute. The API projection of ``TokenDescriptor``\n(``resolve_personalization_token_catalog``), so the authoring menu\nlists exactly what the renderer resolves at send.\n\n``value_type`` is the attribute's derived type, ``None`` for static\nidentity / computed / override tokens; a ``locale``-typed token\nadditionally serves as a ``[[LOCALE=<name>]]`` source.\n``is_attribute_backed`` distinguishes synced contact attributes from\nstatic fields. ``sample_values`` are up to three real values from the\nattribute's top distribution buckets (empty for static tokens)."},"PolymorphActionRequest":{"properties":{"parameters":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"type":"object","title":"Parameters"}},"additionalProperties":false,"type":"object","title":"PolymorphActionRequest"},"PolymorphDatasetRequest":{"properties":{"parameters":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"type":"object","title":"Parameters"},"cursor":{"anyOf":[{"type":"string","maxLength":8192},{"type":"null"}],"title":"Cursor"},"pageSize":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Pagesize"}},"additionalProperties":false,"type":"object","title":"PolymorphDatasetRequest"},"PolymorphDatasetResponse":{"properties":{"status":{"type":"string","enum":["ready","empty","unavailable","incomplete","forbidden"],"title":"Status"},"rows":{"items":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"type":"object"},"type":"array","maxItems":1000,"title":"Rows"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"},"complete":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Complete"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"additionalProperties":false,"type":"object","required":["status","rows"],"title":"PolymorphDatasetResponse"},"PolymorphMutationResponse":{"properties":{"status":{"type":"string","enum":["succeeded","rejected"],"title":"Status"},"record":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"type":"object"},{"type":"null"}],"title":"Record"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"fieldErrors":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Fielderrors"}},"additionalProperties":false,"type":"object","required":["status"],"title":"PolymorphMutationResponse"},"PolymorphResourceRequest":{"properties":{"parameters":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"type":"object","title":"Parameters"},"values":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"type":"object","title":"Values"}},"additionalProperties":false,"type":"object","title":"PolymorphResourceRequest"},"PolymorphicAppAccessRequestResponse":{"properties":{"kind":{"type":"string","const":"polymorphic_app","title":"Kind","default":"polymorphic_app"},"id":{"type":"string","format":"uuid","title":"Id"},"status":{"$ref":"#/components/schemas/AccessRequestStatus"},"requester":{"$ref":"#/components/schemas/MemberSummaryInfo"},"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"polymorphic_app_name":{"type":"string","title":"Polymorphic App Name"},"polymorphic_app_slug":{"type":"string","title":"Polymorphic App Slug"},"current_role":{"anyOf":[{"$ref":"#/components/schemas/AccessRole"},{"type":"null"}]},"requested_role":{"$ref":"#/components/schemas/AccessRole"},"previous_role":{"anyOf":[{"$ref":"#/components/schemas/AccessRole"},{"type":"null"}]},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"resolved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"$ref":"#/components/schemas/MemberSummaryInfo"},{"type":"null"}]},"resolution_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolution Note"}},"type":"object","required":["id","status","requester","polymorphic_app_id","polymorphic_app_name","polymorphic_app_slug","current_role","requested_role","previous_role","note","created_at","resolved_at","resolved_by","resolution_note"],"title":"PolymorphicAppAccessRequestResponse"},"PolymorphicAppAccessSummaryInfo":{"properties":{"people_count":{"type":"integer","title":"People Count"},"admin_count":{"type":"integer","title":"Admin Count"},"write_count":{"type":"integer","title":"Write Count"},"read_count":{"type":"integer","title":"Read Count"},"people_preview":{"items":{"$ref":"#/components/schemas/PolymorphicAppPeoplePreviewInfo"},"type":"array","title":"People Preview"},"pending_request_count":{"type":"integer","title":"Pending Request Count","default":0}},"type":"object","required":["people_count","admin_count","write_count","read_count","people_preview"],"title":"PolymorphicAppAccessSummaryInfo","description":"Direct member grants on one app; org admins hold no rows and are\nnever counted (the member-access list precedent)."},"PolymorphicAppAssetScope":{"type":"string","enum":["app","shared"],"title":"PolymorphicAppAssetScope"},"PolymorphicAppAssetUsageResponse":{"properties":{"asset_count":{"type":"integer","title":"Asset Count"},"bytes_used":{"type":"integer","title":"Bytes Used"},"quota_bytes":{"type":"integer","title":"Quota Bytes"}},"type":"object","required":["asset_count","bytes_used","quota_bytes"],"title":"PolymorphicAppAssetUsageResponse","description":"The drawer readout's app-scoped usage. ``bytes_used`` is the\nguarded quota counter, not a row sum — drift included, so the\nsurface shows what the quota actually charges."},"PolymorphicAppBootPath":{"type":"string","enum":["baked","bake_await","cold_seed","resident"],"title":"PolymorphicAppBootPath"},"PolymorphicAppBootStatus":{"type":"string","enum":["ready","failed"],"title":"PolymorphicAppBootStatus"},"PolymorphicAppBuildCheckpoint":{"type":"string","enum":["gated","polished","checked"],"title":"PolymorphicAppBuildCheckpoint","description":"The gate the served tree last passed: the health gate, the\nadvisory polish re-gate, or the functional check."},"PolymorphicAppBuildFailureClass":{"type":"string","enum":["infra_retryable","build_rejected","config_blocked"],"title":"PolymorphicAppBuildFailureClass","description":"No-verdict failures are infra: only a builder verdict rejects a\nchange (the FCM token-mint classification invariant). The one\ncarve-out is a deploy-config fault, which carries no verdict either\nyet no retry can clear it."},"PolymorphicAppBuildPhaseActivityInfo":{"properties":{"kind":{"type":"string","const":"phase","title":"Kind","default":"phase"},"seq":{"type":"integer","title":"Seq","default":0},"at":{"type":"string","format":"date-time","title":"At"},"phase":{"type":"string","title":"Phase"}},"type":"object","required":["at","phase"],"title":"PolymorphicAppBuildPhaseActivityInfo","description":"The worker's phase stamp mirrored into the feed; ``phase`` is a\n``POLYMORPHIC_APP_BUILD_PHASES`` token."},"PolymorphicAppBuildPreviewResponse":{"properties":{"runtime_id":{"type":"string","format":"uuid","title":"Runtime Id"},"state":{"$ref":"#/components/schemas/PolymorphicAppBuildPreviewStatus"},"checkpoint":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppBuildCheckpoint"},{"type":"null"}]},"revision":{"type":"integer","title":"Revision"},"hold_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Hold Until"},"origin":{"type":"string","title":"Origin"}},"type":"object","required":["runtime_id","state","checkpoint","revision","hold_until","origin"],"title":"PolymorphicAppBuildPreviewResponse","description":"The member's read of a build's live build, served on its own\nroute like ``MorphSessionStatusResponse``: ``state`` derives\n``ended`` at read time and ``origin`` is the build host composed\nserver-side."},"PolymorphicAppBuildPreviewStatus":{"type":"string","enum":["live","paused","held","ended"],"title":"PolymorphicAppBuildPreviewStatus","description":"The member-facing projection of a build preview: the stored\nstate, or ``ended`` once the row is retired, its lease lapsed, or\nits hold passed (derived at read time, never stored)."},"PolymorphicAppBuildRunInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"organization_name":{"type":"string","title":"Organization Name"},"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"polymorphic_app_name":{"type":"string","title":"Polymorphic App Name"},"morph_session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Morph Session Id"},"version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Version Id"},"builder_mode":{"$ref":"#/components/schemas/PolymorphicAppBuilderMode"},"build_harness":{"anyOf":[{"$ref":"#/components/schemas/BuildHarness"},{"type":"null"}]},"status":{"$ref":"#/components/schemas/PolymorphicAppBuildRunStatus"},"failure_class":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppBuildFailureClass"},{"type":"null"}]},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"terminal_stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Terminal Stage"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"infra_attempt":{"type":"integer","title":"Infra Attempt"},"enqueued_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Enqueued At"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"ready_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ready At"},"completed_at":{"type":"string","format":"date-time","title":"Completed At"},"duration_ms":{"type":"integer","title":"Duration Ms"},"queue_wait_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Queue Wait Ms"},"ready_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ready Ms"},"stage_timings":{"additionalProperties":{"type":"integer"},"type":"object","title":"Stage Timings"},"has_build_transcript":{"type":"boolean","title":"Has Build Transcript"}},"type":"object","required":["id","organization_id","organization_name","polymorphic_app_id","polymorphic_app_name","morph_session_id","version_id","builder_mode","build_harness","status","failure_class","error_message","terminal_stage","job_id","infra_attempt","enqueued_at","started_at","ready_at","completed_at","duration_ms","queue_wait_ms","ready_ms","stage_timings","has_build_transcript"],"title":"PolymorphicAppBuildRunInfo","description":"Admin list projection of one ``polymorphic_app_build_runs`` row, with\nthe app and organization names hydrated. ``queue_wait_ms`` is this hop's\narq wait (enqueue to pickup; None without an enqueue stamp) and\n``ready_ms`` the wait until everything the member waits on committed\n(from the enqueue stamp, else pickup; None unless the record committed).\n``stage_timings`` is the row's map verbatim; ``has_build_transcript`` is\nderived from the row's transcript pointer, and the key itself never\nrides the wire."},"PolymorphicAppBuildRunStatus":{"type":"string","enum":["ready","failed","requeued"],"title":"PolymorphicAppBuildRunStatus","description":"One worker attempt's terminal: served, failed, or handed to a later hop."},"PolymorphicAppBuildRunTranscriptInfo":{"properties":{"build_run_id":{"type":"string","format":"uuid","title":"Build Run Id"},"bytes":{"type":"integer","title":"Bytes"},"is_truncated":{"type":"boolean","title":"Is Truncated"},"run_started_at":{"type":"string","format":"date-time","title":"Run Started At"},"run_completed_at":{"type":"string","format":"date-time","title":"Run Completed At"},"transcript":{"$ref":"#/components/schemas/TranscriptInfo"}},"type":"object","required":["build_run_id","bytes","is_truncated","run_started_at","run_completed_at","transcript"],"title":"PolymorphicAppBuildRunTranscriptInfo","description":"One build run's stored transcript, parsed for the staff viewer.\n``bytes`` is the stored object's full size and ``is_truncated`` says\nonly its head was parsed; the run window lets a viewer mark which\nevents belong to a resumed session's earlier or later attempts."},"PolymorphicAppBuildTextActivityInfo":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"seq":{"type":"integer","title":"Seq","default":0},"at":{"type":"string","format":"date-time","title":"At"},"text":{"type":"string","title":"Text"}},"type":"object","required":["at","text"],"title":"PolymorphicAppBuildTextActivityInfo","description":"One narration block from the builder, or a platform-authored\nline such as a retry notice. ``seq`` is stamped by the publisher\nthat stores the entry; the emitter leaves it 0."},"PolymorphicAppBuildToolEndActivityInfo":{"properties":{"kind":{"type":"string","const":"tool_end","title":"Kind","default":"tool_end"},"seq":{"type":"integer","title":"Seq","default":0},"at":{"type":"string","format":"date-time","title":"At"},"tool_use_id":{"type":"string","title":"Tool Use Id"},"status":{"type":"string","enum":["success","error"],"title":"Status"}},"type":"object","required":["at","tool_use_id","status"],"title":"PolymorphicAppBuildToolEndActivityInfo"},"PolymorphicAppBuildToolStartActivityInfo":{"properties":{"kind":{"type":"string","const":"tool_start","title":"Kind","default":"tool_start"},"seq":{"type":"integer","title":"Seq","default":0},"at":{"type":"string","format":"date-time","title":"At"},"tool_use_id":{"type":"string","title":"Tool Use Id"},"tool":{"type":"string","title":"Tool"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"}},"type":"object","required":["at","tool_use_id","tool"],"title":"PolymorphicAppBuildToolStartActivityInfo","description":"The builder began a tool step. ``subject`` is the member-safe\nsummary of its input (a path, a command's first line), never the\ntool's output."},"PolymorphicAppBuildTranscriptResponse":{"properties":{"build_run_id":{"type":"string","format":"uuid","title":"Build Run Id"},"signed_url":{"type":"string","title":"Signed Url"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["build_run_id","signed_url","expires_at"],"title":"PolymorphicAppBuildTranscriptResponse","description":"Short-lived signed URL for downloading a build run's stored builder\ntranscript (staff)."},"PolymorphicAppBuilderConversationResponse":{"properties":{"conversation_id":{"type":"string","format":"uuid","title":"Conversation Id"}},"type":"object","required":["conversation_id"],"title":"PolymorphicAppBuilderConversationResponse"},"PolymorphicAppBuilderMode":{"type":"string","enum":["legacy","polymorpher"],"title":"PolymorphicAppBuilderMode"},"PolymorphicAppCapability":{"type":"string","enum":["asset_storage"],"title":"PolymorphicAppCapability","description":"Which bit ``SetPolymorphicAppCapabilityUseCase`` flips: asset storage\nis the one capability a bit still authorizes."},"PolymorphicAppChannel":{"type":"string","enum":["published","morph_session","build"],"title":"PolymorphicAppChannel"},"PolymorphicAppDataAggregateRequest":{"properties":{"integration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Integration Id"},"table":{"type":"string","title":"Table"},"op":{"type":"string","enum":["count","count_distinct","sum","min","max"],"title":"Op"},"group_by":{"type":"string","title":"Group By"},"value_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value Column"},"bucket":{"anyOf":[{"type":"string","enum":["hourly","daily","weekly","monthly"]},{"type":"null"}],"title":"Bucket"},"filters":{"items":{"$ref":"#/components/schemas/PolymorphicAppDataFilterConfig"},"type":"array","title":"Filters"},"range_lo_exclusive":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range Lo Exclusive"},"range_hi_inclusive":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range Hi Inclusive"},"after_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"After Key"},"limit":{"type":"integer","exclusiveMinimum":0.0,"title":"Limit","default":200}},"type":"object","required":["table","op","group_by"],"title":"PolymorphicAppDataAggregateRequest"},"PolymorphicAppDataAggregateResponse":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/PolymorphicAppDataAggregateRowInfo"},"type":"array","title":"Rows"},"last_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Key"},"complete":{"type":"boolean","title":"Complete"}},"type":"object","required":["rows","complete"],"title":"PolymorphicAppDataAggregateResponse","description":"Display-grade floats at this plane; the gateway wire beneath\nstays Decimal-as-string for reconcile exactness."},"PolymorphicAppDataAggregateRowInfo":{"properties":{"group":{"type":"string","title":"Group"},"value":{"type":"number","title":"Value"}},"type":"object","required":["group","value"],"title":"PolymorphicAppDataAggregateRowInfo"},"PolymorphicAppDataApiReadRequest":{"properties":{"integration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Integration Id"},"path":{"type":"string","maxLength":200,"minLength":1,"title":"Path"},"params":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"object"},{"type":"null"}],"title":"Params"}},"type":"object","required":["path"],"title":"PolymorphicAppDataApiReadRequest","description":"``max_length`` and the segment rule mirror the gateway's path\nvalidation (which stays authoritative) so a junk path 422s here\ninstead of surfacing as an opaque upstream 400, and the trust\nboundary never rests on the remote service alone."},"PolymorphicAppDataApiReadResponse":{"properties":{"body":{"title":"Body"},"truncated":{"type":"boolean","title":"Truncated","default":false}},"type":"object","title":"PolymorphicAppDataApiReadResponse","description":"Mirrors the gateway's ``SourceApiReadResult``: ``body`` is the\nupstream API's parsed JSON; ``truncated`` flags the byte cap\naborting the read, ``body`` then carrying the bounded prefix."},"PolymorphicAppDataAssetListResponse":{"properties":{"assets":{"items":{"$ref":"#/components/schemas/PolymorphicAppDataAssetResponse"},"type":"array","title":"Assets"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"}},"type":"object","required":["assets"],"title":"PolymorphicAppDataAssetListResponse"},"PolymorphicAppDataAssetResponse":{"properties":{"asset_id":{"type":"string","format":"uuid","title":"Asset Id"},"filename":{"type":"string","title":"Filename"},"content_type":{"type":"string","title":"Content Type"},"size_bytes":{"type":"integer","title":"Size Bytes"},"scope":{"$ref":"#/components/schemas/PolymorphicAppAssetScope"},"is_public":{"type":"boolean","title":"Is Public"},"public_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Url"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"content_base64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Base64"}},"type":"object","required":["asset_id","filename","content_type","size_bytes","scope","is_public","created_at"],"title":"PolymorphicAppDataAssetResponse","description":"One asset on the ``/app-data/assets/*`` wire. ``url`` is a\nshort-lived presigned read URL; ``public_url`` is the permanent\n``/public/app-assets/{id}`` proxy URL, present only while\n``is_public``. ``content_base64`` rides only a get with\n``include_content=True`` — sandbox egress cannot reach S3, so app\nbackends that need the bytes get them through the verb."},"PolymorphicAppDataBriefInfo":{"properties":{"business_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Context"},"derivations":{"items":{"$ref":"#/components/schemas/PolymorphicAppDataDerivationInfo"},"type":"array","title":"Derivations","default":[]},"legacy_derivations":{"items":{"$ref":"#/components/schemas/PolymorphicAppDataDerivationInfo"},"type":"array","title":"Legacy Derivations","default":[]},"dictionary_entries":{"items":{"$ref":"#/components/schemas/DataDictionaryEntryInfo"},"type":"array","title":"Dictionary Entries","default":[]}},"type":"object","title":"PolymorphicAppDataBriefInfo","description":"Per-org semantic grounding for the build and review prompts.\n\nFresh vs legacy is structural (two tuples), not a runtime flag:\n``legacy_derivations`` (stale sync) render as do-not-copy\nwarnings, and a \"fresh but stale\" state cannot exist."},"PolymorphicAppDataDeleteAssetRequest":{"properties":{"asset_id":{"type":"string","format":"uuid","title":"Asset Id"}},"type":"object","required":["asset_id"],"title":"PolymorphicAppDataDeleteAssetRequest"},"PolymorphicAppDataDerivationFilterInfo":{"properties":{"column":{"type":"string","title":"Column"},"op":{"type":"string","title":"Op"},"value":{"title":"Value"}},"type":"object","required":["column","op"],"title":"PolymorphicAppDataDerivationFilterInfo","description":"One verbatim filter tuple from the org's platform config — data\nthe builder copies, never prose it paraphrases."},"PolymorphicAppDataDerivationInfo":{"properties":{"concept":{"type":"string","title":"Concept"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"table":{"type":"string","title":"Table"},"filters":{"items":{"$ref":"#/components/schemas/PolymorphicAppDataDerivationFilterInfo"},"type":"array","title":"Filters","default":[]},"value_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value Column"},"value_multiplier":{"type":"number","title":"Value Multiplier","default":1.0},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit"},"external_id_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id Column"},"time_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time Column"},"source_kind":{"type":"string","enum":["event_definition","attribute_mapping"],"title":"Source Kind"},"last_verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Verified At"},"source_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Source Id"},"source_config_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Config Hash"},"operation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Operation"}},"type":"object","required":["concept","integration_id","table","source_kind"],"title":"PolymorphicAppDataDerivationInfo","description":"How the org canonically derives one business concept from a\npermitted source, projected from an event definition or an\nattribute mapping (``source_kind`` names which).\n\n``last_verified_at`` is the config row's ``last_synced_at`` —\ndefinitions and mappings alike; the freshness cut runs on it, so a\nfresh derivation always carries one. Stored copies\n(``integration_schemas.data_derivations``) persist it as ``None``:\nthe reader restamps from the LIVE row, so classification can never\ntrust a stale stored stamp.\n\n``source_id`` + ``source_config_hash`` are provenance for stored\nentries: the reader validates each against the live config row\n(dropped when the row is gone, disabled, or its hash moved) without\nre-projecting. ``operation`` preserves the dedupe verb across the\nstore round-trip."},"PolymorphicAppDataExecuteToolRequest":{"properties":{"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"tool":{"type":"string","title":"Tool"},"arguments":{"additionalProperties":true,"type":"object","title":"Arguments"}},"type":"object","required":["integration_id","tool"],"title":"PolymorphicAppDataExecuteToolRequest"},"PolymorphicAppDataFilterConfig":{"properties":{"column":{"type":"string","title":"Column"},"op":{"type":"string","enum":["eq","neq","gt","gte","lt","lte","in","is","contains"],"title":"Op"},"value":{"title":"Value"}},"type":"object","required":["column","op"],"title":"PolymorphicAppDataFilterConfig"},"PolymorphicAppDataGetAssetRequest":{"properties":{"asset_id":{"type":"string","format":"uuid","title":"Asset Id"},"include_content":{"type":"boolean","title":"Include Content","default":false}},"type":"object","required":["asset_id"],"title":"PolymorphicAppDataGetAssetRequest"},"PolymorphicAppDataHttpRequestRequest":{"properties":{"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"method":{"$ref":"#/components/schemas/PolymorphicAppHttpMethod"},"path":{"type":"string","maxLength":512,"minLength":1,"title":"Path"},"params":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Params"},"body":{"title":"Body"}},"type":"object","required":["integration_id","method","path"],"title":"PolymorphicAppDataHttpRequestRequest","description":"One credential-injected HTTP call against a connected ``http_api``\ndatasource. ``integration_id`` is required (an app always names the\ndatasource); ``method`` is case-insensitive; the path rules and the\nbody cap mirror the gateway's request validation (which stays\nauthoritative) so malformed input 422s here rather than surfacing as an\nopaque upstream 400."},"PolymorphicAppDataHttpRequestResponse":{"properties":{"status_code":{"type":"integer","title":"Status Code"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"body_json":{"anyOf":[{},{"type":"null"}],"title":"Body Json"},"body_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Text"},"truncated":{"type":"boolean","title":"Truncated","default":false}},"type":"object","required":["status_code"],"title":"PolymorphicAppDataHttpRequestResponse","description":"Mirrors the gateway's ``SourceHttpRequestResult``: ``body_json`` is\nset iff the upstream returned a JSON content-type parsed within the byte\ncap and untruncated, else ``body_text`` (never both); ``truncated``\nflags the 2MB response cap aborting the read."},"PolymorphicAppDataListAssetsRequest":{"properties":{"shared":{"type":"boolean","title":"Shared","default":false},"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},"type":"object","title":"PolymorphicAppDataListAssetsRequest"},"PolymorphicAppDataListToolsRequest":{"properties":{"integration_id":{"type":"string","format":"uuid","title":"Integration Id"}},"type":"object","required":["integration_id"],"title":"PolymorphicAppDataListToolsRequest"},"PolymorphicAppDataQueryRequest":{"properties":{"integration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Integration Id"},"table":{"type":"string","title":"Table"},"select":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Select"},"filters":{"items":{"$ref":"#/components/schemas/PolymorphicAppDataFilterConfig"},"type":"array","title":"Filters"},"order_by":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Order By"},"after":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"After"},"row_limit":{"type":"integer","exclusiveMinimum":0.0,"title":"Row Limit","default":1000},"order":{"type":"string","enum":["asc","desc"],"title":"Order","default":"asc"}},"type":"object","required":["table"],"title":"PolymorphicAppDataQueryRequest"},"PolymorphicAppDataQueryRowsResponse":{"properties":{"rows":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Rows"},"complete":{"type":"boolean","title":"Complete"},"next_after":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Next After"}},"type":"object","required":["rows","complete"],"title":"PolymorphicAppDataQueryRowsResponse","description":"Query-verb-only completion contract, additive over the frozen-SDK\nbare ``{rows}`` shape (sample keeps the parent). ``complete``\nfollows the aggregate-pushdown convention: a full page never claims\nexhaustion."},"PolymorphicAppDataRowsResponse":{"properties":{"rows":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Rows"}},"type":"object","required":["rows"],"title":"PolymorphicAppDataRowsResponse"},"PolymorphicAppDataSampleRequest":{"properties":{"integration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Integration Id"},"table":{"type":"string","title":"Table"},"columns":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Columns"},"row_limit":{"type":"integer","exclusiveMinimum":0.0,"title":"Row Limit","default":20}},"type":"object","required":["table"],"title":"PolymorphicAppDataSampleRequest"},"PolymorphicAppDataSchemaRequest":{"properties":{"integration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Integration Id"}},"type":"object","title":"PolymorphicAppDataSchemaRequest"},"PolymorphicAppDataSchemaResponse":{"properties":{"tables":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Tables"}},"type":"object","required":["tables"],"title":"PolymorphicAppDataSchemaResponse"},"PolymorphicAppDataSetAssetPublicRequest":{"properties":{"asset_id":{"type":"string","format":"uuid","title":"Asset Id"},"public":{"type":"boolean","title":"Public"}},"type":"object","required":["asset_id","public"],"title":"PolymorphicAppDataSetAssetPublicRequest"},"PolymorphicAppDataSourceInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"provider":{"type":"string","title":"Provider"},"sub_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Key"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","provider"],"title":"PolymorphicAppDataSourceInfo"},"PolymorphicAppDataWorkflowGetRunRequest":{"properties":{"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"PolymorphicAppDataWorkflowGetRunRequest"},"PolymorphicAppDataWorkflowGetRunResponse":{"properties":{"run":{"$ref":"#/components/schemas/PolymorphicAppWorkflowRunInfo"}},"type":"object","required":["run"],"title":"PolymorphicAppDataWorkflowGetRunResponse"},"PolymorphicAppDataWorkflowRunRequest":{"properties":{"name":{"type":"string","title":"Name"},"params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Params"},"idempotency_key":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Idempotency Key"}},"type":"object","required":["name"],"title":"PolymorphicAppDataWorkflowRunRequest"},"PolymorphicAppDataWorkflowRunResponse":{"properties":{"run":{"$ref":"#/components/schemas/PolymorphicAppWorkflowRunInfo"},"created":{"type":"boolean","title":"Created"}},"type":"object","required":["run","created"],"title":"PolymorphicAppDataWorkflowRunResponse"},"PolymorphicAppDebugOverviewInfo":{"properties":{"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"latest_build_run":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppBuildRunInfo"},{"type":"null"}]},"latest_boots":{"items":{"$ref":"#/components/schemas/PolymorphicAppRuntimeBootInfo"},"type":"array","title":"Latest Boots"}},"type":"object","required":["polymorphic_app_id","latest_build_run","latest_boots"],"title":"PolymorphicAppDebugOverviewInfo","description":"The app page's flagged debug overlay read: one app's latest build\nrun and the newest boot per channel, newest first. Both nested Infos\nare the admin telemetry projections reused verbatim (one DTO per\nconcept), so ``organization_name`` is the member's own org."},"PolymorphicAppDiscoveryResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"my_pending_request":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppPendingAccessRequestInfo"},{"type":"null"}]}},"type":"object","required":["id","name","slug"],"title":"PolymorphicAppDiscoveryResponse","description":"A global app the caller holds no grant on: name-only, so the\nrow can be requested without exposing the full response."},"PolymorphicAppExpectationInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"member_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Member Id"},"endpoint":{"type":"string","title":"Endpoint"},"extractor":{"type":"string","title":"Extractor"},"expected":{"anyOf":[{"type":"boolean"},{"type":"integer"},{"type":"number"},{"type":"string"}],"title":"Expected"},"tolerance":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tolerance"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"retired_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Retired At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","polymorphic_app_id","member_id","endpoint","extractor","expected","tolerance","note","retired_at","created_at"],"title":"PolymorphicAppExpectationInfo"},"PolymorphicAppExpectationSpec":{"properties":{"endpoint":{"type":"string","maxLength":512,"minLength":1,"title":"Endpoint"},"extractor":{"type":"string","maxLength":512,"minLength":1,"title":"Extractor"},"expected":{"anyOf":[{"type":"boolean"},{"type":"integer"},{"type":"number"},{"type":"string"}],"title":"Expected"},"tolerance":{"anyOf":[{"type":"number","maximum":1000000000000.0,"minimum":0.0},{"type":"null"}],"title":"Tolerance"},"note":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Note"}},"type":"object","required":["endpoint","extractor","expected"],"title":"PolymorphicAppExpectationSpec","description":"A capture request: the app path to fetch, the JSON path to pull\nout of its response body, and the scalar that path should equal.\n\n``strict`` keeps the JSON kind of ``expected`` intact — ``true`` must\nnot arrive as ``1``, nor ``1`` as ``\"1\"`` — because the comparison\nbranches on that kind, and only numbers honour ``tolerance``."},"PolymorphicAppHttpMethod":{"type":"string","enum":["get","head","post","put","patch","delete"],"title":"PolymorphicAppHttpMethod"},"PolymorphicAppIntegrationAccessResponse":{"properties":{"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"provider":{"$ref":"#/components/schemas/IntegrationProvider"},"kind":{"$ref":"#/components/schemas/IntegrationKind"},"sub_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Key"},"status":{"$ref":"#/components/schemas/IntegrationStatus"},"role":{"$ref":"#/components/schemas/PolymorphicAppIntegrationRole"},"effective_role":{"anyOf":[{"$ref":"#/components/schemas/AccessRole"},{"type":"null"}]},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["integration_id","provider","kind","sub_key","status","role","effective_role","created_at","updated_at"],"title":"PolymorphicAppIntegrationAccessResponse"},"PolymorphicAppIntegrationAccessSelectionInfo":{"properties":{"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"role":{"$ref":"#/components/schemas/PolymorphicAppIntegrationRole"}},"type":"object","required":["integration_id","role"],"title":"PolymorphicAppIntegrationAccessSelectionInfo"},"PolymorphicAppIntegrationRole":{"type":"string","enum":["read","write"],"title":"PolymorphicAppIntegrationRole"},"PolymorphicAppMaintainerAppInfo":{"properties":{"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"organization_name":{"type":"string","title":"Organization Name"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"status":{"$ref":"#/components/schemas/PolymorphicAppStatus"},"is_maintainer_enabled":{"type":"boolean","title":"Is Maintainer Enabled"},"last_run":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppMaintainerLastRunInfo"},{"type":"null"}]}},"type":"object","required":["polymorphic_app_id","organization_id","organization_name","name","slug","status","is_maintainer_enabled","last_run"],"title":"PolymorphicAppMaintainerAppInfo","description":"``status`` rides along because the toggle and Run now both refuse\nan archived app, so the table disables their controls instead of\nspending a click on a 400."},"PolymorphicAppMaintainerLastRunInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"$ref":"#/components/schemas/PolymorphicAppMaintainerRunStatus"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"is_reclaimable":{"type":"boolean","title":"Is Reclaimable","default":false}},"type":"object","required":["id","status","started_at","summary"],"title":"PolymorphicAppMaintainerLastRunInfo","description":"The apps list's embedded latest run: enough for a status pill, a\nrelative timestamp and one line of summary, never the turns.\n``is_reclaimable`` is the action state Run now reads: a RUNNING row\npast the reclaim window is stale, and the enqueue reclaims it."},"PolymorphicAppMaintainerRunDetailInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"organization_name":{"type":"string","title":"Organization Name"},"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"polymorphic_app_name":{"type":"string","title":"Polymorphic App Name"},"status":{"$ref":"#/components/schemas/PolymorphicAppMaintainerRunStatus"},"window_started_at":{"type":"string","format":"date-time","title":"Window Started At"},"window_ended_at":{"type":"string","format":"date-time","title":"Window Ended At"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"turns_executed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Turns Executed"},"cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost Usd"},"edits_enqueued":{"type":"integer","title":"Edits Enqueued"},"stop_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Reason"},"skip_reason":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppMaintainerSkipReason"},{"type":"null"}]},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"turns":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Turns"}},"type":"object","required":["id","organization_id","organization_name","polymorphic_app_id","polymorphic_app_name","status","window_started_at","window_ended_at","started_at","completed_at","duration_ms","model","turns_executed","cost_usd","edits_enqueued","stop_reason","skip_reason","summary","error_message","turns"],"title":"PolymorphicAppMaintainerRunDetailInfo","description":"The drawer's read. ``turns`` is the only durable copy of the\nagent turns, since the maintainer thread resets at every run start;\nit is empty for a skipped run and for a pass still in flight."},"PolymorphicAppMaintainerRunInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"organization_name":{"type":"string","title":"Organization Name"},"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"polymorphic_app_name":{"type":"string","title":"Polymorphic App Name"},"status":{"$ref":"#/components/schemas/PolymorphicAppMaintainerRunStatus"},"window_started_at":{"type":"string","format":"date-time","title":"Window Started At"},"window_ended_at":{"type":"string","format":"date-time","title":"Window Ended At"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"turns_executed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Turns Executed"},"cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost Usd"},"edits_enqueued":{"type":"integer","title":"Edits Enqueued"},"stop_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Reason"},"skip_reason":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppMaintainerSkipReason"},{"type":"null"}]},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["id","organization_id","organization_name","polymorphic_app_id","polymorphic_app_name","status","window_started_at","window_ended_at","started_at","completed_at","duration_ms","model","turns_executed","cost_usd","edits_enqueued","stop_reason","skip_reason","summary","error_message"],"title":"PolymorphicAppMaintainerRunInfo"},"PolymorphicAppMaintainerRunStatus":{"type":"string","enum":["running","completed","failed","skipped"],"title":"PolymorphicAppMaintainerRunStatus"},"PolymorphicAppMaintainerSkipReason":{"type":"string","enum":["build_in_flight","no_version","no_traffic","healthy","dry_run"],"title":"PolymorphicAppMaintainerSkipReason","description":"Why a pass wrote a ``skipped`` terminal before any model spend.\nThe column stays ``String(40)``; this is the one vocabulary every\nwriter (the prepare gates, the dev script) draws from."},"PolymorphicAppOpenTokenRedeemRequest":{"properties":{"token":{"type":"string","title":"Token"},"host":{"type":"string","title":"Host"}},"type":"object","required":["token","host"],"title":"PolymorphicAppOpenTokenRedeemRequest"},"PolymorphicAppOpenTokenRedeemResponse":{"properties":{"member_id":{"type":"string","format":"uuid","title":"Member Id"},"app_id":{"type":"string","format":"uuid","title":"App Id"},"channel":{"$ref":"#/components/schemas/PolymorphicAppChannel"},"morph_session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Morph Session Id"},"build_runtime_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Build Runtime Id"}},"type":"object","required":["member_id","app_id","channel"],"title":"PolymorphicAppOpenTokenRedeemResponse"},"PolymorphicAppPendingAccessRequestInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"requested_role":{"$ref":"#/components/schemas/AccessRole"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","requested_role","created_at"],"title":"PolymorphicAppPendingAccessRequestInfo","description":"The caller's own pending access request on one app."},"PolymorphicAppPeoplePreviewInfo":{"properties":{"member":{"$ref":"#/components/schemas/MemberSummaryInfo"},"role":{"$ref":"#/components/schemas/AccessRole"}},"type":"object","required":["member","role"],"title":"PolymorphicAppPeoplePreviewInfo"},"PolymorphicAppPermittedIntegrationsResponse":{"properties":{"integrations":{"items":{"$ref":"#/components/schemas/PolymorphicAppDataSourceInfo"},"type":"array","title":"Integrations"}},"type":"object","required":["integrations"],"title":"PolymorphicAppPermittedIntegrationsResponse"},"PolymorphicAppRequestOutcome":{"type":"string","enum":["ok","client_disconnect","wall_cap","dead_upstream_retried","dead_upstream_failed","upstream_error","backend_unavailable","request_too_large","forbidden_cross_site","no_version","unpublished","preview_paused","preview_ended"],"title":"PolymorphicAppRequestOutcome","description":"How a proxied app request ended.\n\n``dead_upstream_*`` may include client aborts mid-upload: a client\ndropping the connection while streaming its body surfaces as a\n``TransportError`` at the proxy, indistinguishable from a dead\nupstream. ``preview_*`` are the build channel's terminal pages: a\npaused preview's self-refreshing 503 and an ended one's 410."},"PolymorphicAppResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"public_url":{"type":"string","title":"Public Url"},"status":{"$ref":"#/components/schemas/PolymorphicAppStatus"},"visibility":{"$ref":"#/components/schemas/PolymorphicAppVisibility"},"current_version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Current Version Id"},"current_version_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Current Version At"},"conversation_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Conversation Id"},"build_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Status"},"build_phase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Phase"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"latest_version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Latest Version Id"},"latest_version_created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Latest Version Created At"},"preview_screenshot_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Screenshot Path"},"is_asset_storage_enabled":{"type":"boolean","title":"Is Asset Storage Enabled","default":false},"effective_role":{"anyOf":[{"$ref":"#/components/schemas/AccessRole"},{"type":"null"}]},"access_summary":{"$ref":"#/components/schemas/PolymorphicAppAccessSummaryInfo"},"is_starred":{"type":"boolean","title":"Is Starred","default":false},"my_pending_request":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppPendingAccessRequestInfo"},{"type":"null"}]},"created_by_member":{"anyOf":[{"$ref":"#/components/schemas/MemberSummaryInfo"},{"type":"null"}]}},"type":"object","required":["id","name","slug","public_url","status","visibility","current_version_id","conversation_id","access_summary"],"title":"PolymorphicAppResponse"},"PolymorphicAppRootSpanInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"member_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Member Id"},"morph_session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Morph Session Id"},"channel":{"$ref":"#/components/schemas/PolymorphicAppChannel"},"trace_id":{"type":"string","format":"uuid","title":"Trace Id"},"span_id":{"type":"string","title":"Span Id"},"method":{"type":"string","title":"Method"},"path":{"type":"string","title":"Path"},"status":{"type":"integer","title":"Status"},"outcome":{"$ref":"#/components/schemas/PolymorphicAppRequestOutcome"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"duration_ms":{"type":"number","title":"Duration Ms"},"route_wait_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Route Wait Ms"}},"type":"object","required":["id","organization_id","polymorphic_app_id","member_id","morph_session_id","channel","trace_id","span_id","method","path","status","outcome","started_at","duration_ms","route_wait_ms"],"title":"PolymorphicAppRootSpanInfo"},"PolymorphicAppRootSpanReportInfo":{"properties":{"trace_id":{"type":"string","format":"uuid","title":"Trace Id"},"span_id":{"type":"string","title":"Span Id"},"app_id":{"type":"string","format":"uuid","title":"App Id"},"channel":{"$ref":"#/components/schemas/PolymorphicAppChannel"},"member_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Member Id"},"morph_session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Morph Session Id"},"method":{"type":"string","title":"Method"},"path":{"type":"string","title":"Path"},"status":{"type":"integer","title":"Status"},"outcome":{"$ref":"#/components/schemas/PolymorphicAppRequestOutcome"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"duration_ms":{"type":"number","title":"Duration Ms"},"route_wait_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Route Wait Ms"}},"type":"object","required":["trace_id","span_id","app_id","channel","member_id","method","path","status","outcome","started_at","duration_ms"],"title":"PolymorphicAppRootSpanReportInfo"},"PolymorphicAppRootSpanReportRequest":{"properties":{"spans":{"items":{"$ref":"#/components/schemas/PolymorphicAppRootSpanReportInfo"},"type":"array","maxItems":100,"title":"Spans"}},"type":"object","required":["spans"],"title":"PolymorphicAppRootSpanReportRequest"},"PolymorphicAppRouteResolveRequest":{"properties":{"host":{"type":"string","title":"Host"},"supports_redirect":{"type":"boolean","title":"Supports Redirect","default":false}},"type":"object","required":["host"],"title":"PolymorphicAppRouteResolveRequest"},"PolymorphicAppRouteResolveResponse":{"properties":{"app_id":{"type":"string","format":"uuid","title":"App Id"},"channel":{"$ref":"#/components/schemas/PolymorphicAppChannel"},"runtime":{"anyOf":[{"$ref":"#/components/schemas/RuntimeRouteInfo"},{"type":"null"}]},"published":{"type":"boolean","title":"Published"},"has_version":{"type":"boolean","title":"Has Version"},"morph_session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Morph Session Id"},"redirect_to_host":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect To Host"},"build_runtime_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Build Runtime Id"},"build_preview_state":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppBuildPreviewStatus"},{"type":"null"}]}},"type":"object","required":["app_id","channel","runtime","published","has_version"],"title":"PolymorphicAppRouteResolveResponse"},"PolymorphicAppRouteResolveV2Request":{"properties":{"host":{"type":"string","title":"Host"},"supports_redirect":{"type":"boolean","title":"Supports Redirect","default":false},"member_id":{"type":"string","format":"uuid","title":"Member Id"}},"type":"object","required":["host","member_id"],"title":"PolymorphicAppRouteResolveV2Request"},"PolymorphicAppRouteTrafficInfo":{"properties":{"method":{"type":"string","title":"Method"},"path":{"type":"string","title":"Path"},"total":{"type":"integer","title":"Total"},"error_count":{"type":"integer","title":"Error Count"},"polymorphic_app_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Polymorphic App Id"},"channel":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppChannel"},{"type":"null"}]},"total_duration_ms":{"type":"number","title":"Total Duration Ms","default":0.0},"p95_duration_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P95 Duration Ms"}},"type":"object","required":["method","path","total","error_count"],"title":"PolymorphicAppRouteTrafficInfo","description":"``path`` is a route SHAPE (id segments folded to ``{id}`` by the\naggregate's own GROUP BY), so its row cap counts routes rather than\nper-record request paths."},"PolymorphicAppRouteTrafficResponse":{"properties":{"routes":{"items":{"$ref":"#/components/schemas/PolymorphicAppRouteTrafficInfo"},"type":"array","title":"Routes"},"truncated":{"type":"boolean","title":"Truncated"}},"type":"object","required":["routes","truncated"],"title":"PolymorphicAppRouteTrafficResponse"},"PolymorphicAppRuntimeBackend":{"type":"string","enum":["modal","resident_polymorph"],"title":"PolymorphicAppRuntimeBackend"},"PolymorphicAppRuntimeBootInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"organization_name":{"type":"string","title":"Organization Name"},"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"polymorphic_app_name":{"type":"string","title":"Polymorphic App Name"},"channel":{"$ref":"#/components/schemas/PolymorphicAppChannel"},"morph_session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Morph Session Id"},"runtime_backend":{"$ref":"#/components/schemas/PolymorphicAppRuntimeBackend"},"boot_path":{"$ref":"#/components/schemas/PolymorphicAppBootPath"},"image_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Ref"},"status":{"$ref":"#/components/schemas/PolymorphicAppBootStatus"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"wake_started_at":{"type":"string","format":"date-time","title":"Wake Started At"},"completed_at":{"type":"string","format":"date-time","title":"Completed At"},"duration_ms":{"type":"integer","title":"Duration Ms"},"page_loaded_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Page Loaded At"},"page_to_ready_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page To Ready Ms"},"phase_timings":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Phase Timings"}},"type":"object","required":["id","organization_id","organization_name","polymorphic_app_id","polymorphic_app_name","channel","morph_session_id","runtime_backend","boot_path","image_ref","status","error_message","wake_started_at","completed_at","duration_ms","page_loaded_at","page_to_ready_ms","phase_timings"],"title":"PolymorphicAppRuntimeBootInfo","description":"Admin list projection of one ``polymorphic_app_runtime_boots`` row, with the\napp and organization names hydrated. ``page_to_ready_ms`` is the\nmember-experienced wait (page mount to READY); None for failed or\nbackground-initiated boots. ``phase_timings`` breaks ``duration_ms``\ninto per-phase ms (READY Modal boots only; cross-clock phases are\napproximate and ``adopt_ms`` is the residual)."},"PolymorphicAppRuntimeReportDeadRequest":{"properties":{"runtime_id":{"type":"string","format":"uuid","title":"Runtime Id"}},"type":"object","required":["runtime_id"],"title":"PolymorphicAppRuntimeReportDeadRequest"},"PolymorphicAppRuntimeState":{"type":"string","enum":["starting","ready","stopped","failed"],"title":"PolymorphicAppRuntimeState"},"PolymorphicAppRuntimeWakeRequest":{"properties":{"app_id":{"type":"string","format":"uuid","title":"App Id"},"channel":{"$ref":"#/components/schemas/PolymorphicAppChannel"},"morph_session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Morph Session Id"}},"type":"object","required":["app_id","channel"],"title":"PolymorphicAppRuntimeWakeRequest"},"PolymorphicAppRuntimeWakeV2Request":{"properties":{"app_id":{"type":"string","format":"uuid","title":"App Id"},"channel":{"$ref":"#/components/schemas/PolymorphicAppChannel"},"morph_session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Morph Session Id"},"member_id":{"type":"string","format":"uuid","title":"Member Id"}},"type":"object","required":["app_id","channel","member_id"],"title":"PolymorphicAppRuntimeWakeV2Request"},"PolymorphicAppSlugAvailabilityResponse":{"properties":{"available":{"type":"boolean","title":"Available"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"}},"type":"object","required":["available"],"title":"PolymorphicAppSlugAvailabilityResponse","description":"``detail`` carries only validator messages (grammar/reserved);\na merely taken slug answers ``available=False, detail=None``."},"PolymorphicAppSourceAccessRequestResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"status":{"$ref":"#/components/schemas/PolymorphicAppSourceAccessRequestStatus"},"requested_by_member_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Requested By Member Id"},"resolved_by_member_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Resolved By Member Id"},"resolved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"integration_name":{"type":"string","title":"Integration Name"},"integration_provider":{"$ref":"#/components/schemas/IntegrationProvider"},"polymorphic_app_name":{"type":"string","title":"Polymorphic App Name"},"polymorphic_app_slug":{"type":"string","title":"Polymorphic App Slug"}},"type":"object","required":["id","polymorphic_app_id","integration_id","status","requested_by_member_id","resolved_by_member_id","resolved_at","integration_name","integration_provider","polymorphic_app_name","polymorphic_app_slug"],"title":"PolymorphicAppSourceAccessRequestResponse"},"PolymorphicAppSourceAccessRequestStatus":{"type":"string","enum":["pending","approved","rejected"],"title":"PolymorphicAppSourceAccessRequestStatus"},"PolymorphicAppSpanInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"channel":{"$ref":"#/components/schemas/PolymorphicAppChannel"},"trace_id":{"type":"string","format":"uuid","title":"Trace Id"},"span_id":{"type":"string","title":"Span Id"},"parent_span_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Span Id"},"name":{"type":"string","title":"Name"},"kind":{"$ref":"#/components/schemas/PolymorphicAppSpanKind"},"status":{"$ref":"#/components/schemas/PolymorphicAppSpanStatus"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message"},"attributes":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Attributes"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"duration_ms":{"type":"number","title":"Duration Ms"}},"type":"object","required":["id","organization_id","polymorphic_app_id","channel","trace_id","span_id","parent_span_id","name","kind","status","status_message","attributes","started_at","duration_ms"],"title":"PolymorphicAppSpanInfo"},"PolymorphicAppSpanKind":{"type":"string","enum":["server","client","internal","producer","consumer"],"title":"PolymorphicAppSpanKind"},"PolymorphicAppSpanStatus":{"type":"string","enum":["unset","ok","error"],"title":"PolymorphicAppSpanStatus"},"PolymorphicAppStarResponse":{"properties":{"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"is_starred":{"type":"boolean","title":"Is Starred"}},"type":"object","required":["polymorphic_app_id","is_starred"],"title":"PolymorphicAppStarResponse"},"PolymorphicAppStatus":{"type":"string","enum":["active","archived"],"title":"PolymorphicAppStatus"},"PolymorphicAppStatusCountsResponse":{"properties":{"active":{"type":"integer","title":"Active"},"archived":{"type":"integer","title":"Archived"},"building":{"type":"integer","title":"Building"}},"type":"object","required":["active","archived","building"],"title":"PolymorphicAppStatusCountsResponse","description":"Library facet counts. ``active`` is the working set the list\nshows by default; ``archived`` is additive and deliberately outside\nit, matching the list's default exclusion. ``building`` is derived\nfrom ``build_status == building`` over the working set and is\northogonal to ``status``, so the buckets do not sum."},"PolymorphicAppTagsResponse":{"properties":{"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"known_tags":{"items":{"type":"string"},"type":"array","title":"Known Tags"}},"type":"object","required":["tags","known_tags"],"title":"PolymorphicAppTagsResponse"},"PolymorphicAppTraceResponse":{"properties":{"root":{"$ref":"#/components/schemas/PolymorphicAppRootSpanInfo"},"spans":{"items":{"$ref":"#/components/schemas/PolymorphicAppSpanInfo"},"type":"array","title":"Spans"},"truncated":{"type":"boolean","title":"Truncated"}},"type":"object","required":["root","spans","truncated"],"title":"PolymorphicAppTraceResponse"},"PolymorphicAppVersionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"version_number":{"type":"integer","title":"Version Number"},"builder_mode":{"$ref":"#/components/schemas/PolymorphicAppBuilderMode"},"manifest":{"additionalProperties":true,"type":"object","title":"Manifest"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"created_by_member":{"anyOf":[{"$ref":"#/components/schemas/MemberSummaryInfo"},{"type":"null"}]}},"type":"object","required":["id","version_number","builder_mode","manifest"],"title":"PolymorphicAppVersionResponse"},"PolymorphicAppViewerResolveRequest":{"properties":{"assertion":{"type":"string","maxLength":4096,"minLength":1,"title":"Assertion"}},"type":"object","required":["assertion"],"title":"PolymorphicAppViewerResolveRequest"},"PolymorphicAppViewerResolveResponse":{"properties":{"member_id":{"type":"string","format":"uuid","title":"Member Id"},"email":{"type":"string","title":"Email"}},"type":"object","required":["member_id","email"],"title":"PolymorphicAppViewerResolveResponse"},"PolymorphicAppVisibility":{"type":"string","enum":["global","hidden"],"title":"PolymorphicAppVisibility"},"PolymorphicAppWorkflowRunInfo":{"properties":{"run_id":{"type":"string","format":"uuid","title":"Run Id"},"name":{"type":"string","title":"Name"},"status":{"$ref":"#/components/schemas/WorkflowRunStatus"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"}},"type":"object","required":["run_id","name","status","created_at","finished_at"],"title":"PolymorphicAppWorkflowRunInfo"},"PostHogHogQLEventConfig":{"properties":{"kind":{"type":"string","const":"posthog_hogql","title":"Kind","default":"posthog_hogql"},"bucket":{"$ref":"#/components/schemas/StorageGranularity","default":"hourly"},"event_names":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Event Names"},"url_match":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url Match"},"url_match_mode":{"type":"string","enum":["contains","exact"],"title":"Url Match Mode","default":"contains"}},"type":"object","title":"PostHogHogQLEventConfig"},"PredicateSource":{"properties":{"kind":{"type":"string","const":"predicate","title":"Kind","default":"predicate"},"column":{"type":"string","title":"Column"},"op":{"type":"string","enum":["eq","neq","gt","gte","lt","lte","in","like","not_like","is_null","is_not_null"],"title":"Op"},"value":{"title":"Value"}},"type":"object","required":["column","op"],"title":"PredicateSource"},"PreviewContactMdpStatesRequest":{"properties":{"dimensions":{"items":{"$ref":"#/components/schemas/MdpDimensionSpec"},"type":"array","title":"Dimensions"}},"type":"object","required":["dimensions"],"title":"PreviewContactMdpStatesRequest"},"PreviewDraftVariantRequest":{"properties":{"draft_content":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/EmailContent"},{"$ref":"#/components/schemas/PushContent"},{"$ref":"#/components/schemas/ControlContent"}],"discriminator":{"propertyName":"channel","mapping":{"control":"#/components/schemas/ControlContent","email":"#/components/schemas/EmailContent","expo":"#/components/schemas/PushContent","fcm":"#/components/schemas/PushContent"}}},{"type":"null"}],"title":"Draft Content"},"draft_source":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/RawVariantSource"},{"$ref":"#/components/schemas/TemplatedVariantSource"},{"$ref":"#/components/schemas/HtmlVariantSource"}],"discriminator":{"propertyName":"kind","mapping":{"html":"#/components/schemas/HtmlVariantSource","raw":"#/components/schemas/RawVariantSource","templated":"#/components/schemas/TemplatedVariantSource"}}},{"type":"null"}],"title":"Draft Source"},"contact_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Contact Id"},"locale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"}},"additionalProperties":false,"type":"object","title":"PreviewDraftVariantRequest","description":"Preview an UNSAVED composer draft — the draft target of the preview\ncapability (union with the ``/{variant_id}/preview`` path route; a path\nparameter cannot express \"no id yet\"). ``draft_content`` carries a bare\nchannel payload; ``draft_source`` carries a full source envelope (the\nhtml-design editor previews its overrides through it)."},"PreviewVariantRequest":{"properties":{"contact_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Contact Id"},"locale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"}},"additionalProperties":false,"type":"object","title":"PreviewVariantRequest"},"ProductCardBlock":{"properties":{"block_type":{"type":"string","const":"product_card","title":"Block Type","default":"product_card"},"image_url":{"type":"string","title":"Image Url","default":""},"alt":{"type":"string","title":"Alt","default":""},"title":{"type":"string","title":"Title","default":""},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"attribution_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribution Name"},"attribution_avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribution Avatar Url"},"cta_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta Label"},"cta_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta Url"}},"additionalProperties":false,"type":"object","title":"ProductCardBlock","description":"Product / dish showcase card — photo, name, and chef/maker\nattribution in one raised card.\n\nThe single composite for what ``media`` (photo), a bold title, and\n``signature`` (circular avatar + name) previously expressed only as\nseparate stacked blocks. Composes inside a full-bleed ``section_card``\nfor the tinted-band showcase shape."},"PromoBarBlock":{"properties":{"block_type":{"type":"string","const":"promo_bar","title":"Block Type","default":"promo_bar"},"text":{"type":"string","maxLength":120,"minLength":1,"title":"Text"},"code":{"anyOf":[{"type":"string","maxLength":24},{"type":"null"}],"title":"Code"},"background_color":{"anyOf":[{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},{"type":"null"}],"title":"Background Color","default":"#000000"},"text_color":{"anyOf":[{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},{"type":"null"}],"title":"Text Color","default":"#FFFFFF"}},"additionalProperties":false,"type":"object","required":["text"],"title":"PromoBarBlock","description":"Full-width offer bar — a colored strip carrying a short promo\nline and an optional inline offer code. Spans the card edge-to-edge\nin both card styles (no side inset, never a radius) — the sharp\nblack-bar-with-code shape that leads a shop-side send.\n\n``code`` is optional: unset renders the promo line alone; set, it\nrenders on its own line, uppercased and letterspaced so it reads as\na copyable code."},"PromptRenderMode":{"type":"string","enum":["server","client"],"title":"PromptRenderMode"},"PromptSpec":{"properties":{"body":{"type":"string","maxLength":32000,"minLength":1,"title":"Body"},"model":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Model"},"render_mode":{"$ref":"#/components/schemas/PromptRenderMode","default":"client"},"max_output_tokens":{"anyOf":[{"type":"integer","maximum":8192.0,"minimum":1.0},{"type":"null"}],"title":"Max Output Tokens"}},"additionalProperties":false,"type":"object","required":["body"],"title":"PromptSpec","description":"A variant's prompt payload: a template body plus optional pinned model.\n\n``SERVER`` mode renders the ``{{field}}`` body against contact/subject data\non our send path, so the body clears the Jinja sandbox gate at construction\n(a sandbox-escaping template never validates). ``CLIENT`` mode serves the\nbody verbatim for a customer runtime to substitute, so no template grammar\nis imposed. The org-specific field-name allowlist needs DB context and is\nresolved at variant save, not here. The pinned ``model`` is validated\nagainst the approved set only in SERVER mode (the platform invokes it); a\nCLIENT-mode model is the customer runtime's own opaque id."},"PropertyMappingConfig":{"properties":{"source_column":{"type":"string","title":"Source Column"},"property_key":{"type":"string","title":"Property Key"}},"type":"object","required":["source_column","property_key"],"title":"PropertyMappingConfig","description":"Maps one Supabase source column into ``Contact.properties``.\n\nOn every contact upsert sync writes ``properties[property_key] =\nrow[source_column]``. Existing keys outside the configured set are\npreserved so manual edits via ``UpdateContactUseCase`` are not\nclobbered. ``None`` source values are skipped — they neither\noverwrite an existing key with JSON null nor create one."},"ProposalEntityType":{"type":"string","enum":["mdp_state","region"],"title":"ProposalEntityType","description":"The kind of entity the proposal targets.\n\nIndependent of ``ProposalType`` because two proposal types can act\non the same entity.\n\n``REGION`` targets a group of MDP-state leaves: approval fans the\nproposal out to one per-state experiment definition (the experiment\ntables stay single-state — there is no region-level source there)."},"ProposalStatus":{"type":"string","enum":["pending","approved","rejected"],"title":"ProposalStatus"},"ProposalType":{"type":"string","enum":["new_variant"],"title":"ProposalType","description":"Discriminator for the JSONB ``payload`` shape.\n\nAdding a new value requires registering an executor in the\n``ai_proposed_actions_uc`` registry — the dispatcher rejects unknown\ntypes so a value can never land here without a code path.\n\n``NEW_VARIANT`` proposes a from-scratch variant for human approval;\napproving it creates + approves the variant and creates no\nexperiment."},"ProposedSendWindowInfo":{"properties":{"start_local":{"type":"string","format":"time","title":"Start Local"},"end_local":{"type":"string","format":"time","title":"End Local"}},"type":"object","required":["start_local","end_local"],"title":"ProposedSendWindowInfo","description":"One proposed org-local send window for a proposed variant.\n\nBoth bounds are required — the pair mirrors the ``variants`` model's\n``send_window_both_set_or_null`` CHECK (both set or both null) at the\nonly shape a proposal ever carries: a concrete window. ``start_local``\nmust be before ``end_local``; that bound is enforced where the window\nbecomes a variant (``CreateVariantUseCase._validate_send_window``), so\nthe same rule variants already apply governs proposed windows too."},"ProspectiveAssignmentRow":{"properties":{"contact":{"$ref":"#/components/schemas/ContactSummaryInfo"},"campaign_stage_variant_id":{"type":"string","format":"uuid","title":"Campaign Stage Variant Id"},"variant_id":{"type":"string","format":"uuid","title":"Variant Id"}},"type":"object","required":["contact","campaign_stage_variant_id","variant_id"],"title":"ProspectiveAssignmentRow","description":"One row in the launch-time preview of contact→variant assignment.\n\nReports the same deterministic SHA256(stage_id|contact_id) bucket\n``EnqueueStageUseCase`` would write on the next tick — no DB writes.\nReturned by ``ListProspectiveStageAssignmentsUseCase``."},"ProspectiveStageViewInfo":{"properties":{"per_variant":{"additionalProperties":{"$ref":"#/components/schemas/VariantProspectiveInfo"},"propertyNames":{"format":"uuid"},"type":"object","title":"Per Variant"}},"type":"object","required":["per_variant"],"title":"ProspectiveStageViewInfo"},"ProvisionExperimentInstancesRequest":{"properties":{"experiment_definition_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Experiment Definition Ids"},"cohort_date":{"type":"string","format":"date","title":"Cohort Date"},"send_anchor_at":{"type":"string","format":"date-time","title":"Send Anchor At"},"attribution_window_seconds":{"type":"integer","exclusiveMinimum":0.0,"title":"Attribution Window Seconds"},"attribution_window_seconds_secondary":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Attribution Window Seconds Secondary"}},"type":"object","required":["experiment_definition_ids","cohort_date","send_anchor_at","attribution_window_seconds"],"title":"ProvisionExperimentInstancesRequest"},"ProvisionExperimentInstancesResponse":{"properties":{"instances":{"items":{"$ref":"#/components/schemas/ExperimentInstanceResponse"},"type":"array","title":"Instances"}},"type":"object","required":["instances"],"title":"ProvisionExperimentInstancesResponse"},"PushActionButtonConfig":{"properties":{"label":{"type":"string","title":"Label"},"url":{"type":"string","title":"Url"}},"additionalProperties":false,"type":"object","required":["label","url"],"title":"PushActionButtonConfig"},"PushContent":{"properties":{"channel":{"type":"string","enum":["fcm","expo"],"title":"Channel"},"title":{"type":"string","title":"Title","default":""},"body":{"type":"string","title":"Body","default":""},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"action_buttons":{"anyOf":[{"items":{"$ref":"#/components/schemas/PushActionButtonConfig"},"type":"array","maxItems":3},{"type":"null"}],"title":"Action Buttons"},"data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Data"},"generation":{"anyOf":[{"$ref":"#/components/schemas/PromptSpec"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["channel"],"title":"PushContent"},"PushPreview":{"properties":{"channel":{"type":"string","enum":["fcm","expo"],"title":"Channel"},"title":{"type":"string","title":"Title"},"body":{"type":"string","title":"Body"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"action_buttons":{"anyOf":[{"items":{"$ref":"#/components/schemas/PushActionButtonConfig"},"type":"array"},{"type":"null"}],"title":"Action Buttons"},"to":{"type":"string","title":"To"},"personalized_render":{"type":"boolean","title":"Personalized Render","default":false}},"additionalProperties":false,"type":"object","required":["channel","title","body","to"],"title":"PushPreview"},"QueryStepSpec":{"properties":{"id":{"anyOf":[{"type":"string","pattern":"^s[1-9][0-9]{0,5}$"},{"type":"null"}],"title":"Id"},"title":{"type":"string","maxLength":120,"minLength":1,"title":"Title"},"kind":{"type":"string","const":"query","title":"Kind"},"table":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,62}$","title":"Table"},"select":{"items":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,62}$"},"type":"array","minItems":1,"title":"Select"},"filters":{"items":{"$ref":"#/components/schemas/PolymorphicAppDataFilterConfig"},"type":"array","title":"Filters"},"order_by":{"items":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,62}$"},"type":"array","minItems":1,"title":"Order By"},"order":{"type":"string","enum":["asc","desc"],"title":"Order","default":"asc"},"row_limit":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Row Limit","default":50}},"additionalProperties":false,"type":"object","required":["title","kind","table","select","order_by"],"title":"QueryStepSpec","description":"One read of the org's source integration.\n\nBounds mirror ``QuerySourceRowsUseCase.execute`` so a member sees a\nsave-time 422 instead of a run-time park."},"RangeBucket":{"properties":{"kind":{"type":"string","const":"range","title":"Kind"},"lo":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lo"},"hi":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hi"}},"type":"object","required":["kind","lo","hi"],"title":"RangeBucket","description":"Half-open ``[lo, hi)``; ``lo=None`` is ``-inf`` (min-outlier),\n``hi=None`` is ``+inf`` (max-outlier)."},"RawVariantSource":{"properties":{"kind":{"type":"string","const":"raw","title":"Kind","default":"raw"},"content":{"oneOf":[{"$ref":"#/components/schemas/EmailContent"},{"$ref":"#/components/schemas/PushContent"},{"$ref":"#/components/schemas/ControlContent"}],"title":"Content","discriminator":{"propertyName":"channel","mapping":{"control":"#/components/schemas/ControlContent","email":"#/components/schemas/EmailContent","expo":"#/components/schemas/PushContent","fcm":"#/components/schemas/PushContent"}}}},"additionalProperties":false,"type":"object","required":["content"],"title":"RawVariantSource"},"ReattachMorphSessionResponse":{"properties":{"morph_session_id":{"type":"string","format":"uuid","title":"Morph Session Id"},"conversation_id":{"type":"string","format":"uuid","title":"Conversation Id"},"session_origin":{"type":"string","title":"Session Origin"},"sandbox_state":{"$ref":"#/components/schemas/MorphSandboxState"},"base_stale":{"type":"boolean","title":"Base Stale"},"reattach_state":{"$ref":"#/components/schemas/MorphSessionReattachState"}},"type":"object","required":["morph_session_id","conversation_id","session_origin","sandbox_state","base_stale","reattach_state"],"title":"ReattachMorphSessionResponse","description":"The attach body plus the resume-choreography fields."},"RegenerateAdInspirationBriefResult":{"properties":{"ad":{"$ref":"#/components/schemas/AdInspirationItemInfo"},"outcome":{"$ref":"#/components/schemas/BriefRegenerationOutcome"}},"type":"object","required":["ad","outcome"],"title":"RegenerateAdInspirationBriefResult","description":"One brief-regeneration pass over a single stored ad.\n\n``NOT_TRANSFERABLE`` means the relevance judge dropped the ad (nothing\nto borrow) — the stored brief is left untouched, so ``ad`` echoes the\nunchanged row rather than a wiped one."},"RegenerateDesignInspirationBriefResult":{"properties":{"item":{"$ref":"#/components/schemas/DesignInspirationItemInfo"},"outcome":{"$ref":"#/components/schemas/DesignBriefRegenerationOutcome"}},"type":"object","required":["item","outcome"],"title":"RegenerateDesignInspirationBriefResult","description":"One brief-regeneration pass over a single stored design.\n\n``DROPPED`` means the craft judge no longer keeps the design — its stored\nbrief is left untouched (curator intent wins), so ``item`` echoes the\nunchanged row rather than a wiped one."},"RegionConditionDescriptorInfo":{"properties":{"describable":{"type":"boolean","title":"Describable"},"predicate":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/BooleanBucket"},{"$ref":"#/components/schemas/RangeBucket"},{"$ref":"#/components/schemas/DatetimeRangeBucket"},{"$ref":"#/components/schemas/UnsetBucket"}],"discriminator":{"propertyName":"kind","mapping":{"boolean":"#/components/schemas/BooleanBucket","datetime_range":"#/components/schemas/DatetimeRangeBucket","range":"#/components/schemas/RangeBucket","unset":"#/components/schemas/UnsetBucket"}}},{"oneOf":[{"$ref":"#/components/schemas/LeafNode"},{"$ref":"#/components/schemas/EventLeafNode"},{"$ref":"#/components/schemas/AndNode"},{"$ref":"#/components/schemas/OrNode"},{"$ref":"#/components/schemas/NotNode"}],"discriminator":{"propertyName":"kind","mapping":{"and":"#/components/schemas/AndNode","event":"#/components/schemas/EventLeafNode","leaf":"#/components/schemas/LeafNode","not":"#/components/schemas/NotNode","or":"#/components/schemas/OrNode"}}},{"type":"null"}],"title":"Predicate"},"exact":{"type":"boolean","title":"Exact","default":false}},"type":"object","required":["describable"],"title":"RegionConditionDescriptorInfo","description":"Whether a region's current states happen to be describable by a\nsingle-dimension attribute predicate.\n\nA read-only descriptor check, never the region's definition (regions\nare explicitly assigned). ``predicate`` is a bare ``BucketSpec`` when\nevery member state shares one bucket on the chosen dimension, or an\n``OrNode`` of leaf predicates when they span several buckets of that\none dimension; ``None`` when no single dimension describes the\nregion. ``exact`` is True only when no out-of-region current state\nalso matches ``predicate`` — i.e. the predicate selects exactly the\nregion's states."},"RegionExperimentInfo":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"region_id":{"type":"string","title":"Region Id"},"variant_id":{"type":"string","title":"Variant Id"},"attribution_window_seconds":{"type":"integer","title":"Attribution Window Seconds"},"attribution_window_seconds_secondary":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Attribution Window Seconds Secondary"},"status":{"$ref":"#/components/schemas/RegionExperimentStatus"},"created_by_kind":{"$ref":"#/components/schemas/VariantCreatorKind"},"member_definition_count":{"type":"integer","title":"Member Definition Count"},"last_cohort_sends":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Cohort Sends"},"last_cohort_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last Cohort Date"},"region_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Name"},"variant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Name"},"variant_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Channel"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","organization_id","region_id","variant_id","attribution_window_seconds","status","created_by_kind","member_definition_count"],"title":"RegionExperimentInfo","description":"``last_cohort_sends`` / ``last_cohort_date`` read the most recent\nexperiment-instance cohort across the experiment's LIVE member arms —\nprovisioned members (sent + still-scheduled) summed over the arms whose\nlatest instance sits on that date. ``None`` when no live arm has an\ninstance — including every ended experiment, whose arms are\nsoft-deleted (matching ``member_definition_count=0`` there). A cohort\nwhose send window expired (#7308) keeps its terminally-skipped members\nin ``provisioned_member_count``, so on that rare path the figure reads\nprovisioned, not sent."},"RegionExperimentMemberStateInfo":{"properties":{"experiment_definition_id":{"type":"string","title":"Experiment Definition Id"},"source_state_id":{"type":"string","title":"Source State Id"},"state_buckets":{"items":{"$ref":"#/components/schemas/AttributeBucket"},"type":"array","title":"State Buckets"},"member_count":{"type":"integer","title":"Member Count"}},"type":"object","required":["experiment_definition_id","source_state_id","state_buckets","member_count"],"title":"RegionExperimentMemberStateInfo","description":"One member arm of a region experiment, projected by its state: the\nstate's bucket vector and the state's live contact population."},"RegionExperimentStatus":{"type":"string","enum":["active","paused","ended"],"title":"RegionExperimentStatus"},"RegionStateRef":{"properties":{"state_id":{"type":"string","title":"State Id"},"buckets":{"items":{"$ref":"#/components/schemas/AttributeBucket"},"type":"array","title":"Buckets"},"contact_count":{"type":"integer","title":"Contact Count","default":0},"non_control_coverage":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Non Control Coverage"}},"type":"object","required":["state_id","buckets"],"title":"RegionStateRef","description":"One current member leaf of a region, with its bucket vector.\n\nThe member-state\npayload of ``MdpRegionDetailInfo`` — mirrors ``GoalStateRef`` minus the\ngoal-target fields. ``buckets`` is the leaf's rehydrated\n``AttributeBucket`` vector so a surface labels the state without a\nstates-by-id round trip."},"RegionsOverviewResult":{"properties":{"regions":{"items":{"$ref":"#/components/schemas/MdpRegionDetailInfo"},"type":"array","title":"Regions"}},"type":"object","required":["regions"],"title":"RegionsOverviewResult","description":"Every region of the org with stats + member vectors in one read.\n\nNot paged: the treemap / grouped-nodes tabs lay out the whole\npartition at once and an org has a handful of regions, mirroring the\nwhole-tree ``GetContactMdpStateTreeUseCase`` read."},"RejectAIProposedActionRequest":{"properties":{"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","title":"RejectAIProposedActionRequest"},"RenameConversationRequest":{"properties":{"title":{"type":"string","maxLength":255,"minLength":1,"title":"Title"}},"type":"object","required":["title"],"title":"RenameConversationRequest"},"RenameMdpRegionRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"RenameMdpRegionRequest"},"RenderGradeStatus":{"type":"string","enum":["pending","running","succeeded","failed"],"title":"RenderGradeStatus"},"RenderGradeVerdict":{"type":"string","enum":["pass","fail"],"title":"RenderGradeVerdict"},"RenderedPush":{"properties":{"title":{"type":"string","title":"Title"},"body":{"type":"string","title":"Body"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"},"accent_color":{"type":"string","title":"Accent Color"}},"additionalProperties":false,"type":"object","required":["title","body","accent_color"],"title":"RenderedPush"},"RenderedSms":{"properties":{"sender":{"type":"string","title":"Sender"},"body":{"type":"string","title":"Body"},"footer":{"type":"string","title":"Footer"}},"additionalProperties":false,"type":"object","required":["sender","body","footer"],"title":"RenderedSms"},"RenewMorphSessionLeaseResponse":{"properties":{"lease_ttl_s":{"type":"integer","title":"Lease Ttl S"}},"type":"object","required":["lease_ttl_s"],"title":"RenewMorphSessionLeaseResponse"},"RequestIntegrationAccessRequest":{"properties":{"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"requested_capability_group_id":{"type":"string","format":"uuid","title":"Requested Capability Group Id"},"note":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Note"}},"type":"object","required":["integration_id","requested_capability_group_id"],"title":"RequestIntegrationAccessRequest"},"RequestPolymorphicAppAccessRequest":{"properties":{"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"requested_role":{"$ref":"#/components/schemas/AccessRole"},"note":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Note"}},"type":"object","required":["polymorphic_app_id","requested_role"],"title":"RequestPolymorphicAppAccessRequest"},"RequestPolymorphicAppSourceAccessRequest":{"properties":{"polymorphic_app_id":{"type":"string","format":"uuid","title":"Polymorphic App Id"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"}},"type":"object","required":["polymorphic_app_id","integration_id"],"title":"RequestPolymorphicAppSourceAccessRequest"},"ResolveAccessRequestRequest":{"properties":{"decision":{"type":"string","enum":["approved","rejected"],"title":"Decision"},"note":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Note"}},"type":"object","required":["decision"],"title":"ResolveAccessRequestRequest"},"ResolvePolymorphicAppSourceAccessRequest":{"properties":{"decision":{"type":"string","enum":["approved","rejected"],"title":"Decision"}},"type":"object","required":["decision"],"title":"ResolvePolymorphicAppSourceAccessRequest"},"RetryDemoProvisioningRequest":{"properties":{"from_stage":{"anyOf":[{"$ref":"#/components/schemas/DemoProvisionStageKey"},{"type":"null"}]}},"type":"object","title":"RetryDemoProvisioningRequest"},"RewardCellInfo":{"properties":{"coords":{"items":{"oneOf":[{"$ref":"#/components/schemas/BooleanBucket"},{"$ref":"#/components/schemas/RangeBucket"},{"$ref":"#/components/schemas/DatetimeRangeBucket"},{"$ref":"#/components/schemas/UnsetBucket"}],"discriminator":{"propertyName":"kind","mapping":{"boolean":"#/components/schemas/BooleanBucket","datetime_range":"#/components/schemas/DatetimeRangeBucket","range":"#/components/schemas/RangeBucket","unset":"#/components/schemas/UnsetBucket"}}},"type":"array","title":"Coords"},"value":{"type":"number","title":"Value"}},"type":"object","required":["coords","value"],"title":"RewardCellInfo","description":"One valued grid cell. ``coords`` holds one bare bucket per reward\ndimension, in the spec's dimension order; absent coords are unpriced\n(resolve to ``None``), so the grid stays sparse. Non-finite values\nare rejected like ``SetValuationRequest`` — NaN poisons the Bellman\nsolve; negative/zero are valid."},"RewardOverrideInfo":{"properties":{"state_vector":{"items":{"$ref":"#/components/schemas/AttributeBucket"},"type":"array","title":"State Vector"},"value":{"type":"number","title":"Value"}},"type":"object","required":["state_vector","value"],"title":"RewardOverrideInfo","description":"A pin on one exact state bucket-vector, resolved ahead of the\ngrid. Keyed by the FULL wrapped vector — not a ``state_id`` — so it\nmay target a vector with no current row. Each save replaces the\nspec's whole override set; the Rewards editor sends only the values\ntyped that session (its replace confirm counts the drops)."},"RewardOverrideSuggestionResponse":{"properties":{"suggested_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Suggested Value"},"member_count":{"type":"integer","title":"Member Count"},"coverage":{"type":"number","title":"Coverage"}},"type":"object","required":["suggested_value","member_count","coverage"],"title":"RewardOverrideSuggestionResponse","description":"Membership-weighted override suggestion for one state:\n``suggested_value = Σ_c (|B ∩ cell_c| / |B|) · value_c`` over the\nspec's valued cells, ``coverage = Σ_c |B ∩ cell_c| / |B|``.\n``suggested_value`` is ``None`` when the state has no members or the\nspec has no valued cells (both leave ``coverage`` at 0)."},"RewardSource":{"type":"string","enum":["grid","override","spanning_unset","derived"],"title":"RewardSource","description":"How a state's reward was resolved: an exact-vector override, a\nfully pinned grid lookup (a valued or absent cell), a state that\nspans (or lacks) a reward dimension, or — only while no spec exists\n— the column value the tick's default deriver wrote."},"RewardSpecInfo":{"properties":{"reward_dimensions":{"items":{"$ref":"#/components/schemas/MdpDimensionInfo"},"type":"array","title":"Reward Dimensions"},"cells":{"items":{"$ref":"#/components/schemas/RewardCellInfo"},"type":"array","title":"Cells"},"overrides":{"items":{"$ref":"#/components/schemas/RewardOverrideInfo"},"type":"array","title":"Overrides"},"version":{"type":"integer","title":"Version"}},"type":"object","required":["reward_dimensions","cells","overrides","version"],"title":"RewardSpecInfo"},"RewardStatePreviewInfo":{"properties":{"state_id":{"type":"string","format":"uuid","title":"State Id"},"buckets":{"items":{"$ref":"#/components/schemas/AttributeBucket"},"type":"array","title":"Buckets"},"collapsed":{"type":"boolean","title":"Collapsed"},"resolved_reward":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Resolved Reward"},"source":{"$ref":"#/components/schemas/RewardSource"},"member_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Member Count"},"computed_utility":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Computed Utility"},"utility_computed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Utility Computed At"}},"type":"object","required":["state_id","buckets","collapsed","resolved_reward","source","member_count","computed_utility","utility_computed_at"],"title":"RewardStatePreviewInfo","description":"One current state's resolved reward + the source that produced\nit. With no spec saved, every state reads ``source=\"derived\"`` with\nthe raw ``contact_mdp_states.reward`` value.\n\n``member_count`` is the live count off the shared cached counts\ngrid (``None`` only when no grid is derivable — no saved\npartition). ``computed_utility`` / ``utility_computed_at`` echo the\nlast Bellman solve's stamp, so the resolved reward always reads\nnext to the utility it fed."},"RunComponentGradeRequest":{"properties":{"kind":{"$ref":"#/components/schemas/ComponentKind"},"key":{"type":"string","maxLength":64,"minLength":1,"title":"Key"},"component_version":{"type":"string","maxLength":64,"minLength":1,"title":"Component Version"}},"type":"object","required":["kind","key","component_version"],"title":"RunComponentGradeRequest"},"RunPolymorphicAppMaintainerNowResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"enqueued":{"type":"boolean","title":"Enqueued"}},"type":"object","required":["job_id","enqueued"],"title":"RunPolymorphicAppMaintainerNowResponse","description":"The staff Run now enqueue. ``enqueued`` is false when the queue\ndeduped against the same window's job, which a second click and a\nclick during the daily pass both hit."},"RuntimeRouteInfo":{"properties":{"tunnel_url":{"type":"string","title":"Tunnel Url"},"runtime_id":{"type":"string","format":"uuid","title":"Runtime Id"},"version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Version Id"}},"type":"object","required":["tunnel_url","runtime_id"],"title":"RuntimeRouteInfo","description":"The wake/resolve result the apps-proxy routes on — the spec\nnamed it ``RuntimeRoute``; suffixed per the DTO lint."},"SampleSupabaseTableResponse":{"properties":{"table":{"type":"string","title":"Table"},"columns":{"items":{"$ref":"#/components/schemas/SampledColumnInfo"},"type":"array","title":"Columns"},"rows_returned":{"type":"integer","title":"Rows Returned"}},"type":"object","required":["table","columns","rows_returned"],"title":"SampleSupabaseTableResponse"},"SampledColumnInfo":{"properties":{"name":{"type":"string","title":"Name"},"inferred_type":{"type":"string","enum":["number","boolean","datetime","text","json","unknown"],"title":"Inferred Type"},"sample_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sample Value"}},"type":"object","required":["name","inferred_type","sample_value"],"title":"SampledColumnInfo"},"SaveContactMdpRewardSpecRequest":{"properties":{"reward_dimensions":{"items":{"$ref":"#/components/schemas/MdpDimensionInfo"},"type":"array","title":"Reward Dimensions"},"cells":{"items":{"$ref":"#/components/schemas/RewardCellInfo"},"type":"array","title":"Cells"},"overrides":{"items":{"$ref":"#/components/schemas/RewardOverrideInfo"},"type":"array","title":"Overrides"}},"type":"object","required":["reward_dimensions","cells","overrides"],"title":"SaveContactMdpRewardSpecRequest","description":"No ``version`` field — the server bumps it on every save."},"SaveContactMdpStatesRequest":{"properties":{"dimensions":{"items":{"$ref":"#/components/schemas/MdpDimensionSpec"},"type":"array","title":"Dimensions"}},"type":"object","required":["dimensions"],"title":"SaveContactMdpStatesRequest"},"SaveVariantGenerationDraftResult":{"properties":{"variant_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Variant Ids"},"created_variant_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Created Variant Ids"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"}},"type":"object","required":["variant_ids","created_variant_ids","organization_id"],"title":"SaveVariantGenerationDraftResult"},"SchemaColumnInfo":{"properties":{"name":{"type":"string","title":"Name"},"data_type":{"type":"string","title":"Data Type"},"nullable":{"type":"boolean","title":"Nullable"},"allowed_values":{"items":{"type":"string"},"type":"array","title":"Allowed Values"},"fk_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fk To"}},"type":"object","required":["name","data_type","nullable","allowed_values"],"title":"SchemaColumnInfo","description":"One column in a cached table.\n\n``nullable`` and ``allowed_values`` are required exact facts: legacy rows\nmissing either are cache misses. ``fk_to`` is the\n``\"<table>.<column>\"`` reference encoded by PostgREST in the OpenAPI\n``description`` markers — matches the shape returned by\n``SchemaInspectableDataSourceProvider.list_tables_with_columns``."},"SchemaTableInfo":{"properties":{"schema":{"type":"string","title":"Schema"},"table":{"type":"string","title":"Table"},"columns":{"items":{"$ref":"#/components/schemas/SchemaColumnInfo"},"type":"array","title":"Columns"},"primary_key":{"items":{"type":"string"},"type":"array","title":"Primary Key"},"approx_row_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Approx Row Count"}},"type":"object","required":["schema","table","columns","primary_key"],"title":"SchemaTableInfo","description":"One table in the cached snapshot.\n\n``approx_row_count`` is the activity probe's planner estimate\n(``pg_class.reltuples`` / PostgREST ``count=estimated``), stamped on\nfull refresh passes so scale-aware consumers can pick strategies\nwithout a live probe. Additive and optional: absent on legacy rows\nand when the probe had no signal, and deliberately excluded from the\nschema fingerprint so count drift never invalidates the cache."},"ScoreSource":{"type":"string","enum":["session_outcome","computed_utility"],"title":"ScoreSource"},"SectionCardBlock":{"properties":{"block_type":{"type":"string","const":"section_card","title":"Block Type","default":"section_card"},"blocks":{"items":{"oneOf":[{"$ref":"#/components/schemas/HeaderBlock"},{"$ref":"#/components/schemas/BrandSymbolBlock"},{"$ref":"#/components/schemas/HeroBlock"},{"$ref":"#/components/schemas/ItemListCardBlock"},{"$ref":"#/components/schemas/StateCardBlock"},{"$ref":"#/components/schemas/OfferCardBlock"},{"$ref":"#/components/schemas/ChallengeCardBlock"},{"$ref":"#/components/schemas/TestimonialBlock"},{"$ref":"#/components/schemas/InfoCalloutBlock"},{"$ref":"#/components/schemas/BodyTextBlock"},{"$ref":"#/components/schemas/LocalizedTextBlock"},{"$ref":"#/components/schemas/SurveyRowsBlock"},{"$ref":"#/components/schemas/CountdownBlock"},{"$ref":"#/components/schemas/AppStoreBlock"},{"$ref":"#/components/schemas/SignatureBlock"},{"$ref":"#/components/schemas/FooterBlock"},{"$ref":"#/components/schemas/DividerBlock"},{"$ref":"#/components/schemas/MediaBlock"},{"$ref":"#/components/schemas/MediaSplitBlock"},{"$ref":"#/components/schemas/MediaPairBlock"},{"$ref":"#/components/schemas/ProductCardBlock"},{"$ref":"#/components/schemas/PromoBarBlock"},{"$ref":"#/components/schemas/FullBleedHeroBlock"},{"$ref":"#/components/schemas/SectionCardBlock"},{"$ref":"#/components/schemas/OrgBlockRef"}],"discriminator":{"propertyName":"block_type","mapping":{"app_store":"#/components/schemas/AppStoreBlock","body_text":"#/components/schemas/BodyTextBlock","brand_symbol":"#/components/schemas/BrandSymbolBlock","challenge_card":"#/components/schemas/ChallengeCardBlock","countdown":"#/components/schemas/CountdownBlock","divider":"#/components/schemas/DividerBlock","footer":"#/components/schemas/FooterBlock","full_bleed_hero":"#/components/schemas/FullBleedHeroBlock","header":"#/components/schemas/HeaderBlock","hero":"#/components/schemas/HeroBlock","info_callout":"#/components/schemas/InfoCalloutBlock","item_list_card":"#/components/schemas/ItemListCardBlock","localized_text":"#/components/schemas/LocalizedTextBlock","media":"#/components/schemas/MediaBlock","media_pair":"#/components/schemas/MediaPairBlock","media_split":"#/components/schemas/MediaSplitBlock","offer_card":"#/components/schemas/OfferCardBlock","org_block":"#/components/schemas/OrgBlockRef","product_card":"#/components/schemas/ProductCardBlock","promo_bar":"#/components/schemas/PromoBarBlock","section_card":"#/components/schemas/SectionCardBlock","signature":"#/components/schemas/SignatureBlock","state_card":"#/components/schemas/StateCardBlock","survey_rows":"#/components/schemas/SurveyRowsBlock","testimonial":"#/components/schemas/TestimonialBlock"}}},"type":"array","title":"Blocks"},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color"},"bleed":{"type":"string","enum":["inset","full"],"title":"Bleed","default":"inset"},"child_inset_px":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Child Inset Px"}},"additionalProperties":false,"type":"object","title":"SectionCardBlock","description":"Rounded surface card grouping child blocks into one section.\n\nOn ``layout=\"canvas\"`` emails these are the floating cards on the\nwash background (header / hero artwork / footer stay bare on the\nwash). On the default ``layout=\"card\"`` chrome a section_card\nrenders as an inset card. Keep header and footer blocks outside\nsections; don't nest sections inside sections."},"SeedDataDictionaryResponse":{"properties":{"enqueued_count":{"type":"integer","title":"Enqueued Count"}},"type":"object","required":["enqueued_count"],"title":"SeedDataDictionaryResponse"},"SeededArmValueInfo":{"properties":{"definition_id":{"type":"string","format":"uuid","title":"Definition Id"},"q_hat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Q Hat"},"se":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Se"},"n":{"type":"number","title":"N","default":0},"n_measured":{"type":"number","title":"N Measured","default":0},"in_flight_count":{"type":"integer","title":"In Flight Count","default":0},"confidence":{"anyOf":[{"$ref":"#/components/schemas/ExperimentLiftConfidence"},{"type":"null"}]},"conversions":{"items":{"$ref":"#/components/schemas/ArmConversionRateInfo"},"type":"array","title":"Conversions"}},"type":"object","required":["definition_id"],"title":"SeededArmValueInfo"},"SegmentBreakdown":{"properties":{"mode":{"type":"string","const":"segments","title":"Mode","default":"segments"},"event_definition_id":{"type":"string","format":"uuid","title":"Event Definition Id"},"segment_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":20,"minItems":1,"title":"Segment Ids"}},"type":"object","required":["event_definition_id","segment_ids"],"title":"SegmentBreakdown"},"SegmentMemberResponse":{"properties":{"contact":{"$ref":"#/components/schemas/ContactInfo"},"entered_at":{"type":"string","format":"date-time","title":"Entered At"},"exited_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Exited At"}},"type":"object","required":["contact","entered_at","exited_at"],"title":"SegmentMemberResponse","description":"Public response row returned by ``GET /segments/{id}/members``."},"SegmentResponse":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"segment_type":{"type":"string","title":"Segment Type"},"collector_config":{"additionalProperties":true,"type":"object","title":"Collector Config"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"disabled_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disabled Reason"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"last_synced_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Synced At"},"last_sync_duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Sync Duration Ms"},"last_member_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Member Count"},"consecutive_failures":{"type":"integer","title":"Consecutive Failures"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","organization_id","name","segment_type","collector_config","is_enabled","consecutive_failures"],"title":"SegmentResponse"},"SendActivityCurveResult":{"properties":{"treatment_total":{"type":"integer","title":"Treatment Total"},"control_total":{"type":"integer","title":"Control Total"},"points":{"items":{"$ref":"#/components/schemas/SendActivityPointInfo"},"type":"array","title":"Points"}},"type":"object","required":["treatment_total","control_total","points"],"title":"SendActivityCurveResult"},"SendActivityPointInfo":{"properties":{"delta_hours":{"type":"integer","title":"Delta Hours"},"treatment_rate":{"type":"number","title":"Treatment Rate"},"control_rate":{"type":"number","title":"Control Rate"}},"type":"object","required":["delta_hours","treatment_rate","control_rate"],"title":"SendActivityPointInfo"},"SendEmailStepSpec":{"properties":{"id":{"anyOf":[{"type":"string","pattern":"^s[1-9][0-9]{0,5}$"},{"type":"null"}],"title":"Id"},"title":{"type":"string","maxLength":120,"minLength":1,"title":"Title"},"inputs":{"items":{"$ref":"#/components/schemas/StepInputSpec"},"type":"array","maxItems":16,"title":"Inputs"},"kind":{"type":"string","const":"send_email","title":"Kind"},"to":{"type":"string","maxLength":8000,"title":"To","default":""},"subject":{"type":"string","maxLength":300,"title":"Subject","default":""},"html":{"type":"string","maxLength":200000,"title":"Html","default":""}},"additionalProperties":false,"type":"object","required":["title","kind"],"title":"SendEmailStepSpec","description":"One outbound email; ``to``, ``subject``, and ``html`` all interpolate\nand rest empty-permissive because the builder persists a seed on add and\nthe run-time screens park empties."},"SendMessageRequest":{"properties":{"content":{"type":"string","maxLength":10000,"title":"Content","default":""},"mode":{"type":"string","enum":["build","ask"],"title":"Mode","default":"build"},"attached_asset_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Attached Asset Ids"},"inspiration_asset_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Inspiration Asset Ids"}},"type":"object","title":"SendMessageRequest"},"SendPushStepSpec":{"properties":{"id":{"anyOf":[{"type":"string","pattern":"^s[1-9][0-9]{0,5}$"},{"type":"null"}],"title":"Id"},"title":{"type":"string","maxLength":120,"minLength":1,"title":"Title"},"inputs":{"items":{"$ref":"#/components/schemas/StepInputSpec"},"type":"array","maxItems":16,"title":"Inputs"},"kind":{"type":"string","const":"send_push","title":"Kind"},"to":{"type":"string","maxLength":8000,"title":"To","default":""},"subject":{"type":"string","maxLength":200,"title":"Subject","default":""},"body":{"type":"string","maxLength":4000,"title":"Body","default":""}},"additionalProperties":false,"type":"object","required":["title","kind"],"title":"SendPushStepSpec","description":"One push notification; ``to`` (the Expo push token), ``subject``, and\n``body`` interpolate and rest empty-permissive. ``subject`` is the\nnotification title on the wire, named to the outbound provider\nconvention so the base step label ``title`` stays untouched."},"SendSlackStepSpec":{"properties":{"id":{"anyOf":[{"type":"string","pattern":"^s[1-9][0-9]{0,5}$"},{"type":"null"}],"title":"Id"},"title":{"type":"string","maxLength":120,"minLength":1,"title":"Title"},"inputs":{"items":{"$ref":"#/components/schemas/StepInputSpec"},"type":"array","maxItems":16,"title":"Inputs"},"kind":{"type":"string","const":"send_slack","title":"Kind"},"text":{"type":"string","maxLength":3000,"title":"Text","default":""},"channel":{"type":"string","maxLength":80,"title":"Channel","default":""}},"additionalProperties":false,"type":"object","required":["title","kind"],"title":"SendSlackStepSpec","description":"One Slack message; ``text`` and ``channel`` interpolate and rest\nempty-permissive (an empty ``channel`` means the integration's default\nchannel, so only an empty ``text`` parks at run time)."},"SenderValidationResult":{"properties":{"ok":{"type":"boolean","title":"Ok"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"validator":{"type":"string","title":"Validator"}},"additionalProperties":false,"type":"object","required":["ok","validator"],"title":"SenderValidationResult","description":"Outcome of one ``validate_for`` call.\n\n``validator`` names which rule fired on failure — useful for\nfrontend copy and for tests asserting short-circuit order."},"SeriesMeasure":{"type":"string","enum":["value_sum","converted_contacts","average","average_per_member"],"title":"SeriesMeasure"},"SetAllocatorStrategyRequest":{"properties":{"allocator_strategy":{"$ref":"#/components/schemas/AllocatorStrategy"}},"type":"object","required":["allocator_strategy"],"title":"SetAllocatorStrategyRequest"},"SetBuilderRuntimeSettingsRequest":{"properties":{"build_harness":{"$ref":"#/components/schemas/BuildHarness"},"is_polymorpher_enabled":{"type":"boolean","title":"Is Polymorpher Enabled"},"expected_revision":{"type":"integer","minimum":0.0,"title":"Expected Revision"}},"additionalProperties":false,"type":"object","required":["build_harness","is_polymorpher_enabled","expected_revision"],"title":"SetBuilderRuntimeSettingsRequest"},"SetCampaignStageVariantWeightsRequest":{"properties":{"campaign_stage_id":{"type":"string","format":"uuid","title":"Campaign Stage Id"},"weights":{"items":{"$ref":"#/components/schemas/VariantWeightInfo"},"type":"array","title":"Weights"}},"type":"object","required":["campaign_stage_id","weights"],"title":"SetCampaignStageVariantWeightsRequest"},"SetContactMdpStateCollapsedRequest":{"properties":{"buckets":{"items":{"$ref":"#/components/schemas/AttributeBucket"},"type":"array","title":"Buckets"},"collapsed":{"type":"boolean","title":"Collapsed"}},"type":"object","required":["buckets","collapsed"],"title":"SetContactMdpStateCollapsedRequest","description":"Target a state by its ordered bucket vector, not a ``state_id`` —\ncollapsing a node that was never persisted as a leaf (an internal\ntree node) has no id until the operation creates it."},"SetConversionDefinitionOrderRequest":{"properties":{"definition_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Definition Ids"}},"type":"object","required":["definition_ids"],"title":"SetConversionDefinitionOrderRequest"},"SetDataDictionaryCurationRequest":{"properties":{"curation_state":{"$ref":"#/components/schemas/DataDictionaryCurationState"}},"type":"object","required":["curation_state"],"title":"SetDataDictionaryCurationRequest"},"SetIntegrationMemberAccessRequest":{"properties":{"role":{"anyOf":[{"$ref":"#/components/schemas/AccessRole"},{"type":"null"}]},"capability_group_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Capability Group Id"}},"type":"object","title":"SetIntegrationMemberAccessRequest","description":"Exactly one target: a capability group, or a role standing in for\nthat role's preset group (the pre-group callers' shape)."},"SetMemberAccessRequest":{"properties":{"role":{"$ref":"#/components/schemas/AccessRole"}},"type":"object","required":["role"],"title":"SetMemberAccessRequest"},"SetOpenAIApiKeyRequest":{"properties":{"kind":{"type":"string","const":"openai_api_key","title":"Kind"},"api_key":{"type":"string","minLength":8,"title":"Api Key"}},"type":"object","required":["kind","api_key"],"title":"SetOpenAIApiKeyRequest"},"SetOpenAISubscriptionRequest":{"properties":{"kind":{"type":"string","const":"openai_subscription","title":"Kind"},"refresh_token":{"type":"string","minLength":8,"title":"Refresh Token"},"account_id":{"type":"string","minLength":1,"title":"Account Id"}},"type":"object","required":["kind","refresh_token","account_id"],"title":"SetOpenAISubscriptionRequest"},"SetPolymorphicAppCapabilityRequest":{"properties":{"capability":{"$ref":"#/components/schemas/PolymorphicAppCapability"},"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["capability","enabled"],"title":"SetPolymorphicAppCapabilityRequest"},"SetPolymorphicAppIntegrationAccessRequest":{"properties":{"role":{"$ref":"#/components/schemas/PolymorphicAppIntegrationRole"}},"type":"object","required":["role"],"title":"SetPolymorphicAppIntegrationAccessRequest"},"SetPolymorphicAppMaintainerEnabledRequest":{"properties":{"is_maintainer_enabled":{"type":"boolean","title":"Is Maintainer Enabled"}},"type":"object","required":["is_maintainer_enabled"],"title":"SetPolymorphicAppMaintainerEnabledRequest"},"SetPolymorphicAppStarRequest":{"properties":{"is_starred":{"type":"boolean","title":"Is Starred"}},"type":"object","required":["is_starred"],"title":"SetPolymorphicAppStarRequest"},"SetPolymorphicAppVisibilityRequest":{"properties":{"visibility":{"$ref":"#/components/schemas/PolymorphicAppVisibility"}},"type":"object","required":["visibility"],"title":"SetPolymorphicAppVisibilityRequest"},"SetSlackChannelRequest":{"properties":{"channel_id":{"type":"string","minLength":1,"title":"Channel Id"}},"type":"object","required":["channel_id"],"title":"SetSlackChannelRequest"},"SidebarAppMoveRequest":{"properties":{"section_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Section Id"},"position":{"type":"integer","title":"Position"}},"type":"object","required":["section_id","position"],"title":"SidebarAppMoveRequest"},"SidebarSectionCreateRequest":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"SidebarSectionCreateRequest"},"SidebarSectionRenameRequest":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"SidebarSectionRenameRequest"},"SidebarSectionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"position":{"type":"integer","title":"Position"},"item_app_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Item App Ids"}},"type":"object","required":["id","name","position","item_app_ids"],"title":"SidebarSectionResponse"},"SidebarSectionsReorderRequest":{"properties":{"ordered_section_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Ordered Section Ids"}},"type":"object","required":["ordered_section_ids"],"title":"SidebarSectionsReorderRequest"},"SignalActorInfo":{"properties":{"external_id":{"type":"string","title":"External Id"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","required":["external_id"],"title":"SignalActorInfo"},"SignalEvent":{"properties":{"provider":{"$ref":"#/components/schemas/IntegrationProvider"},"kind":{"$ref":"#/components/schemas/SignalKind"},"dedupe_key":{"type":"string","minLength":1,"title":"Dedupe Key"},"subject_key":{"type":"string","minLength":1,"title":"Subject Key"},"external_account_id":{"type":"string","minLength":1,"title":"External Account Id"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"actor":{"anyOf":[{"$ref":"#/components/schemas/SignalActorInfo"},{"type":"null"}]},"content":{"oneOf":[{"$ref":"#/components/schemas/GithubSignalContent"},{"$ref":"#/components/schemas/SlackSignalContent"}],"title":"Content","discriminator":{"propertyName":"provider","mapping":{"github":"#/components/schemas/GithubSignalContent","slack":"#/components/schemas/SlackSignalContent"}}}},"type":"object","required":["provider","kind","dedupe_key","subject_key","external_account_id","occurred_at","content"],"title":"SignalEvent"},"SignalEventReceiptAdminDetailInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"provider":{"$ref":"#/components/schemas/IntegrationProvider"},"kind":{"$ref":"#/components/schemas/SignalKind"},"dedupe_key":{"type":"string","title":"Dedupe Key"},"subject_key":{"type":"string","title":"Subject Key"},"external_account_id":{"type":"string","title":"External Account Id"},"integration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Integration Id"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"evaluated_count":{"type":"integer","title":"Evaluated Count"},"enqueued_count":{"type":"integer","title":"Enqueued Count"},"delivered_count":{"type":"integer","title":"Delivered Count"},"routing_decisions":{"items":{"$ref":"#/components/schemas/SignalRoutingDecisionInfo"},"type":"array","title":"Routing Decisions"},"organization_name":{"type":"string","title":"Organization Name"},"content":{"$ref":"#/components/schemas/SignalEvent"}},"type":"object","required":["id","organization_id","provider","kind","dedupe_key","subject_key","external_account_id","integration_id","occurred_at","created_at","evaluated_count","enqueued_count","delivered_count","routing_decisions","organization_name","content"],"title":"SignalEventReceiptAdminDetailInfo"},"SignalEventReceiptAdminInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"provider":{"$ref":"#/components/schemas/IntegrationProvider"},"kind":{"$ref":"#/components/schemas/SignalKind"},"dedupe_key":{"type":"string","title":"Dedupe Key"},"subject_key":{"type":"string","title":"Subject Key"},"external_account_id":{"type":"string","title":"External Account Id"},"integration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Integration Id"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"evaluated_count":{"type":"integer","title":"Evaluated Count"},"enqueued_count":{"type":"integer","title":"Enqueued Count"},"delivered_count":{"type":"integer","title":"Delivered Count"},"routing_decisions":{"items":{"$ref":"#/components/schemas/SignalRoutingDecisionInfo"},"type":"array","title":"Routing Decisions"},"organization_name":{"type":"string","title":"Organization Name"}},"type":"object","required":["id","organization_id","provider","kind","dedupe_key","subject_key","external_account_id","integration_id","occurred_at","created_at","evaluated_count","enqueued_count","delivered_count","routing_decisions","organization_name"],"title":"SignalEventReceiptAdminInfo"},"SignalKind":{"type":"string","enum":["github.pull_request.opened","github.issue_comment.created","slack.app_mention","slack.thread_reply"],"title":"SignalKind"},"SignalReceiptOutcomeFilter":{"type":"string","enum":["enqueued","delivered","unmatched"],"title":"SignalReceiptOutcomeFilter"},"SignalRoutingDecisionInfo":{"properties":{"workflow_id":{"type":"string","format":"uuid","title":"Workflow Id"},"decision":{"$ref":"#/components/schemas/SignalRoutingDecisionKind"},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["workflow_id","decision","run_id"],"title":"SignalRoutingDecisionInfo"},"SignalRoutingDecisionKind":{"type":"string","enum":["enqueued","delivered"],"title":"SignalRoutingDecisionKind"},"SignatureBlock":{"properties":{"block_type":{"type":"string","const":"signature","title":"Block Type","default":"signature"},"name":{"type":"string","title":"Name","default":""},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"initials":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initials"}},"additionalProperties":false,"type":"object","title":"SignatureBlock"},"SimilarVariantsResult":{"properties":{"variants":{"items":{"$ref":"#/components/schemas/VariantRef"},"type":"array","title":"Variants"}},"type":"object","required":["variants"],"title":"SimilarVariantsResult","description":"Capped, similarity-ranked variant refs for one target variant."},"SinceDateSpec":{"properties":{"kind":{"type":"string","const":"since_date","title":"Kind"},"at":{"type":"string","format":"date-time","title":"At"}},"additionalProperties":false,"type":"object","required":["kind","at"],"title":"SinceDateSpec","description":"Event window anchored on an absolute instant (``[at, now]``).\n``at`` normalizes to naive UTC — the ``events.occurred_at`` storage\nconvention — at validation time, so the frozen spec never carries a\ntimezone."},"SkippedRegionAssignmentInfo":{"properties":{"region_id":{"type":"string","format":"uuid","title":"Region Id"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["region_id","reason"],"title":"SkippedRegionAssignmentInfo"},"SlackAgentThreadInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"app":{"$ref":"#/components/schemas/SlackApp"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"channel_id":{"type":"string","title":"Channel Id"},"thread_ts":{"type":"string","title":"Thread Ts"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"last_activity_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity At"},"mention_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mention Preview"}},"type":"object","required":["id","app","team_id","channel_id","thread_ts","created_at","last_activity_at","mention_preview"],"title":"SlackAgentThreadInfo"},"SlackApp":{"type":"string","enum":["platform"],"title":"SlackApp"},"SlackAppMentionTriggerConfig":{"properties":{"kind":{"type":"string","const":"slack_app_mention","title":"Kind","default":"slack_app_mention"},"channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Id"}},"type":"object","title":"SlackAppMentionTriggerConfig"},"SlackChannelInfo":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"is_private":{"type":"boolean","title":"Is Private"}},"type":"object","required":["id","name","is_private"],"title":"SlackChannelInfo"},"SlackSignalContent":{"properties":{"provider":{"type":"string","const":"slack","title":"Provider","default":"slack"},"team_id":{"type":"string","title":"Team Id"},"api_app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api App Id"},"channel_id":{"type":"string","title":"Channel Id"},"ts":{"type":"string","title":"Ts"},"thread_ts":{"type":"string","title":"Thread Ts"},"text":{"type":"string","title":"Text"}},"type":"object","required":["team_id","channel_id","ts","thread_ts","text"],"title":"SlackSignalContent"},"SlugAvailabilityResponse":{"properties":{"available":{"type":"boolean","title":"Available"}},"type":"object","required":["available"],"title":"SlugAvailabilityResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceTableFilter":{"properties":{"column":{"type":"string","title":"Column"},"op":{"type":"string","enum":["eq","neq","gt","gte","lt","lte","in","like","not_like","is_null","is_not_null"],"title":"Op"},"value":{"title":"Value"}},"type":"object","required":["column","op"],"title":"SourceTableFilter"},"StartComposioConnectRequest":{"properties":{"toolkit_slug":{"type":"string","title":"Toolkit Slug"},"access_tier":{"$ref":"#/components/schemas/ComposioAccessTier"}},"type":"object","required":["toolkit_slug","access_tier"],"title":"StartComposioConnectRequest"},"StateAllocationArmInfo":{"properties":{"definition_id":{"type":"string","format":"uuid","title":"Definition Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"variant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Name"},"channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"},"is_control":{"type":"boolean","title":"Is Control"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"is_draft":{"type":"boolean","title":"Is Draft"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"}},"type":"object","required":["definition_id","name","variant_name","channel","is_control","created_at","is_draft","deleted_at"],"title":"StateAllocationArmInfo","description":"One definition ever attached to the state — drafts and soft-deleted\narms with in-window instances included, so every charted series has an\nidentity and ``created_at`` distinguishes \"0 allocated\" from \"didn't\nexist yet\"."},"StateAllocationDayArmInfo":{"properties":{"definition_id":{"type":"string","format":"uuid","title":"Definition Id"},"allocated_count":{"type":"integer","title":"Allocated Count"},"share":{"type":"number","title":"Share"},"q_hat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Q Hat"},"se":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Se"},"n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"N"}},"type":"object","required":["definition_id","allocated_count","share"],"title":"StateAllocationDayArmInfo","description":"``allocated_count`` / ``share`` are realized (instances); the\ntrailing snapshot fields are ``None`` when no decision snapshot row\nexists for the (arm, day)."},"StateAllocationDayInfo":{"properties":{"cohort_date":{"type":"string","format":"date","title":"Cohort Date"},"entries":{"items":{"$ref":"#/components/schemas/StateAllocationDayArmInfo"},"type":"array","title":"Entries"}},"type":"object","required":["cohort_date","entries"],"title":"StateAllocationDayInfo"},"StateAllocationHistoryResult":{"properties":{"arms":{"items":{"$ref":"#/components/schemas/StateAllocationArmInfo"},"type":"array","title":"Arms"},"days":{"items":{"$ref":"#/components/schemas/StateAllocationDayInfo"},"type":"array","title":"Days"}},"type":"object","required":["arms","days"],"title":"StateAllocationHistoryResult","description":"A missing (arm, day) pair is omitted — it renders as share 0."},"StateAllocationMovementInfo":{"properties":{"state":{"$ref":"#/components/schemas/ContactMdpStateResponse"},"member_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Member Count"}},"type":"object","required":["state","member_count"],"title":"StateAllocationMovementInfo","description":"``member_count`` is the live count off the cached partition grid,\n``None`` when no partition is saved.\n\nStrategy, collapse, and supersession all ride on the embedded\n``state`` — never re-declared here; the per-state experiment count is\nserved by ``GET /experiment-definitions/state-counts`` (the same\n``list_state_experiment_counts`` aggregate). The row carries no\nallocator activity at all: the retune lever is retired, and a\nstate's change history stays in ``audit_logs``."},"StateAllocationMovementResult":{"properties":{"states":{"items":{"$ref":"#/components/schemas/StateAllocationMovementInfo"},"type":"array","title":"States"},"population_total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Population Total"}},"type":"object","required":["states","population_total"],"title":"StateAllocationMovementResult","description":"``population_total`` is the grid's root active-contact count —\nthe ``member_count / population_total`` share denominator — ``None``\nwhen no partition is saved."},"StateAllocationPreviewResponse":{"properties":{"state_id":{"type":"string","format":"uuid","title":"State Id"},"headcount":{"type":"integer","title":"Headcount"},"current_strategy":{"$ref":"#/components/schemas/AllocatorStrategy"},"projections":{"items":{"$ref":"#/components/schemas/StrategyAllocationPreviewInfo"},"type":"array","title":"Projections"},"control_definition_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Control Definition Id"},"control_fraction":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Control Fraction"},"arm_values":{"items":{"$ref":"#/components/schemas/SeededArmValueInfo"},"type":"array","title":"Arm Values","default":[]},"ucb_kappa":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ucb Kappa"}},"type":"object","required":["state_id","headcount","current_strategy","projections"],"title":"StateAllocationPreviewResponse","description":"``control_definition_id`` / ``control_fraction`` are both non-None\niff the org is control-first-enrolled AND the state has ≥1 live\ncontrol-channel arm; every projection then carries the carved count\nfor that definition."},"StateCardBlock":{"properties":{"block_type":{"type":"string","const":"state_card","title":"Block Type","default":"state_card"},"eyebrow":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrow"},"eyebrow_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrow Color"},"rows":{"items":{"$ref":"#/components/schemas/StateRowInfo"},"type":"array","title":"Rows"},"status_chip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Chip"},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color"},"border_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Border Color"},"label_width_px":{"anyOf":[{"type":"integer","maximum":400.0,"minimum":40.0},{"type":"null"}],"title":"Label Width Px"},"panel":{"type":"string","enum":["card","bare"],"title":"Panel","default":"card"},"hairline_color":{"anyOf":[{"type":"string","pattern":"^#(?:[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$"},{"type":"null"}],"title":"Hairline Color"}},"additionalProperties":false,"type":"object","title":"StateCardBlock","description":"The recipient's own account state, as a label/value ledger.\n\nDistinct from ``item_list_card``, whose rows lead with a check or X\nicon: a ledger states what IS rather than scoring what is done, so it\ncarries no icon column. ``status_chip`` is the single positive framing\nof whatever the recipient still needs to do, and there is only one\nbecause a ledger with several flagged rows reads as a chore list.\n\n``panel=\"bare\"`` drops the inset panel so the rows sit directly on the\ncard ground on their hairlines, and takes the wider row type scale a\nfull-lane ledger can carry; the default ``\"card\"`` keeps the compact\npanel treatment."},"StateExperimentDefinitionRollupInfo":{"properties":{"definition_id":{"type":"string","format":"uuid","title":"Definition Id"},"source_state_id":{"type":"string","format":"uuid","title":"Source State Id"},"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"variant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Name"},"variant_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Channel"},"is_draft":{"type":"boolean","title":"Is Draft"},"instance_count":{"type":"integer","title":"Instance Count"},"total_cohort_size":{"type":"integer","title":"Total Cohort Size"},"cooldown_suppressed_count":{"type":"integer","title":"Cooldown Suppressed Count"},"sendable_cohort_size":{"type":"integer","title":"Sendable Cohort Size"},"outcome_states":{"anyOf":[{"items":{"$ref":"#/components/schemas/OutcomeStateCountInfo"},"type":"array"},{"type":"null"}],"title":"Outcome States"},"graded_attribution_window_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Graded Attribution Window Seconds"},"q_hat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Q Hat"},"se":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Se"},"n":{"type":"integer","title":"N","default":0}},"type":"object","required":["definition_id","source_state_id","variant_id","variant_name","variant_channel","is_draft","instance_count","total_cohort_size","cooldown_suppressed_count","sendable_cohort_size","outcome_states"],"title":"StateExperimentDefinitionRollupInfo","description":"One definition's aggregate over its in-window instances.\n\n``outcome_states`` sums the graded instances' ``outcome_counts``\ninto one labeled distribution; ``None`` when no in-window instance\nis graded yet (mirrors the per-instance contract). ``variant_name``\n/ ``variant_channel`` are ``None`` only when the variant row is\nunreadable in the caller's org.\n\n``cooldown_suppressed_count`` / ``sendable_cohort_size`` measure how\nmuch of the arm went undelivered to a cooldown (org message cooldown\nor same-variant cooldown):\n``sendable_cohort_size`` counts members the arm attempted to deliver to\n(``send_outcome == enqueued``), ``cooldown_suppressed_count`` the subset\nwhose send was cancelled for cooldown. ``sendable_cohort_size`` is ``0``\nfor control / draft / not-yet-sent arms (they never enqueue a send), so\nsurfaces show \"—\" rather than a misleading 0%.\n\n``graded_attribution_window_seconds`` is the attribution horizon the\nGRADED instances folded into ``outcome_states`` were measured against —\nthe single window value when every graded instance shares it, else\n``None`` (no graded instance, or the definition's window was edited\nmid-flight so its graded instances disagree). It is the alignment key\nfor cross-arm lift: two arms are only comparable when their settled\noutcomes were windowed identically.\n\n``q_hat`` / ``se`` / ``n`` are the measured arm-value triple (paper\nEq. 1) over the definition's graded transitions — ``q_hat`` the mean\nsession-outcome score, ``se`` its value-variance standard error, ``n``\nthe folded transition count (unresolved mass scored 0). ``q_hat`` /\n``se`` are ``None`` until at least one instance is graded (``n == 0``)."},"StateExperimentHistoryResult":{"properties":{"state_id":{"type":"string","format":"uuid","title":"State Id"},"window_days":{"type":"integer","title":"Window Days"},"self_rollups":{"items":{"$ref":"#/components/schemas/StateExperimentDefinitionRollupInfo"},"type":"array","title":"Self Rollups"},"ancestor_rollups":{"items":{"$ref":"#/components/schemas/StateExperimentDefinitionRollupInfo"},"type":"array","title":"Ancestor Rollups"}},"type":"object","required":["state_id","window_days","self_rollups","ancestor_rollups"],"title":"StateExperimentHistoryResult","description":"A state's experiment history: per-definition rollups grouped\ninto the state's own arms vs its lineage ancestors'."},"StateRowInfo":{"properties":{"label":{"type":"string","title":"Label"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":false,"type":"object","required":["label","value"],"title":"StateRowInfo","description":"One account fact: a noun label, an optional detail, and the state\nit is in.\n\n``description`` is optional-typed rather than a plain ``str`` so a\nrow without a detail keeps ``None`` through\n``_BlockBase._coerce_null_strings`` and renders no middle cell at\nall, leaving the two-column ledger as the default shape."},"StateTransitionArmStatsInfo":{"properties":{"definition_id":{"type":"string","format":"uuid","title":"Definition Id"},"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"instance_count":{"type":"integer","title":"Instance Count"},"member_count":{"type":"integer","title":"Member Count"},"resolved_count":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Resolved Count"},"unresolved_count":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Unresolved Count"},"outcome_states":{"items":{"$ref":"#/components/schemas/OutcomeStateCountInfo"},"type":"array","title":"Outcome States"},"q_hat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Q Hat"},"se":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Se"},"n":{"type":"integer","title":"N","default":0},"evidence_mass":{"type":"number","title":"Evidence Mass","default":0.0},"expected_landing_utility":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expected Landing Utility"}},"type":"object","required":["definition_id","variant_id","instance_count","member_count","resolved_count","unresolved_count","outcome_states"],"title":"StateTransitionArmStatsInfo","description":"One arm's measured (s, a) → P̂(s′) transitions for a source state,\nfolded over its graded, version-matched instances in the window.\n\n``outcome_states`` is the next-state histogram over real leaves only\n(count desc); ``unresolved_count`` is the absorbing ``__unresolved__``\nmass (graded members that resolved to no current leaf); ``resolved_count\n== sum(outcome_states[].count)`` is the mass landing on a real leaf.\n``member_count`` is the total cohort of the folded instances, so\n``member_count - resolved_count - unresolved_count`` is the\ntainted/excluded remainder the grader dropped from ``outcome_counts`` —\nthe integrity signal. ``instance_count`` is how many version-matched\ngraded instances were folded.\n\n``q_hat`` / ``se`` / ``n`` are the measured arm-value triple (paper\nEq. 1): ``q_hat`` the mean session-outcome score over the\n``n == resolved_count + unresolved_count`` graded transitions (the\nunresolved mass scored 0), ``se`` its value-variance standard error.\n``q_hat`` / ``se`` are ``None`` for an unobserved arm (``n == 0``).\n\nThe histogram (``outcome_states[].count``, ``resolved_count``,\n``unresolved_count``) is decayed float mass, not integer tallies — the\nallocation path's D-UCB age weighting; the ``q_hat``/``se``/``n`` triple\nstays the flat measured fold. ``evidence_mass`` is the fold's total\nmass; ``expected_landing_utility`` is Σ mass·U(s′) / evidence_mass over\nthe same fold (unresolved mass and vanished leaves score 0.0, matching\n``fold_arm_value``), ``None`` when the mass is 0."},"StateTransitionStatsResult":{"properties":{"source_state_id":{"type":"string","format":"uuid","title":"Source State Id"},"partition_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Partition Version"},"window_days":{"type":"integer","title":"Window Days"},"arms":{"items":{"$ref":"#/components/schemas/StateTransitionArmStatsInfo"},"type":"array","title":"Arms"},"unversioned_member_count":{"type":"integer","title":"Unversioned Member Count"},"excluded_day_count":{"type":"integer","title":"Excluded Day Count"}},"type":"object","required":["source_state_id","partition_version","window_days","arms","unversioned_member_count","excluded_day_count"],"title":"StateTransitionStatsResult","description":"A source state's per-arm transition statistics for the optimizer.\n\nEvery folded instance has ``source_partition_version ==\noutcome_partition_version == partition_version`` — only transitions\nmeasured under one partition revision are compared. ``partition_version``\nis the version filtered on (the org's current version when the caller\npasses none); ``None`` only when the org has no saved partition, in which\ncase nothing is version-matched and the legacy/route mass lives in\n``unversioned_member_count``. ``unversioned_member_count`` is the graded\ncohort on NULL-version instances (route / seed / pre-versioning),\nreported so the caller sees legacy mass exists but it never pollutes the\nversioned arms.\n\n``excluded_day_count`` is the count of distinct actively excluded\ncohort days the fetch window contained — their instances are dropped\nbefore the version gate and every fold, reported so the caller sees\nthe mass exists; it never enters the arms or the unversioned bucket.\nThe rows stay stored, so revoking the exclusion restores them."},"StateUtilityRecomputeResult":{"properties":{"skipped":{"type":"boolean","title":"Skipped"},"states_solved":{"type":"integer","title":"States Solved"},"rows_written":{"type":"integer","title":"Rows Written"}},"type":"object","required":["skipped","states_solved","rows_written"],"title":"StateUtilityRecomputeResult","description":"One org's Bellman solve pass. ``skipped`` is the blank-reward (or\nnever-saved-partition) resting state — returned without solving or\nwriting."},"StepInputSpec":{"properties":{"name":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,62}$","title":"Name"},"step_id":{"type":"string","pattern":"^(?:s[1-9][0-9]{0,5}|trigger)$","title":"Step Id"},"path":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*|\\[\\d+\\])*$","title":"Path"}},"additionalProperties":false,"type":"object","required":["name","step_id","path"],"title":"StepInputSpec","description":"One argument a step is handed.\n\n``name`` is the only handle the step's own text has on the value, so a\nstep can address exactly what it declared and nothing else. ``step_id``\nnames an earlier producing step or the reserved ``trigger`` source, a\nspelling the digit-led ``s{seq}`` minter can never produce."},"StopVariantPreviewInfo":{"properties":{"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"experiment_definitions":{"type":"integer","title":"Experiment Definitions"},"region_experiments":{"type":"integer","title":"Region Experiments"},"campaigns":{"type":"integer","title":"Campaigns"},"pending_notifications":{"type":"integer","title":"Pending Notifications"},"can_stop":{"type":"boolean","title":"Can Stop"}},"type":"object","required":["variant_id","experiment_definitions","region_experiments","campaigns","pending_notifications","can_stop"],"title":"StopVariantPreviewInfo","description":"What stopping a variant would affect — drives the variant profile's\nStop affordance (disabled when ``can_stop`` is False) and the confirm\ndialog's counts. The figures mirror exactly what ``StopVariantUseCase``\nretires: live experiment-definition arms binding the variant (drafts\nincluded), the region experiments those arms belong to, the distinct\ncampaigns it is attached to, and its not-yet-sent (pending) notifications.\n``can_stop`` is True when any of those is non-zero."},"StopVariantRequest":{"properties":{"reason":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Reason"}},"type":"object","title":"StopVariantRequest","description":"Optional stop-route body carrying the human's reason for stopping.\nAbsent body or blank string resolves to no reason; shared by the single\nand bulk stop routes."},"StopVariantResult":{"properties":{"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"experiment_definitions_stopped":{"type":"integer","title":"Experiment Definitions Stopped"},"region_experiments_ended":{"type":"integer","title":"Region Experiments Ended"},"campaigns_detached":{"type":"integer","title":"Campaigns Detached"},"pending_notifications_cancelled":{"type":"integer","title":"Pending Notifications Cancelled"}},"type":"object","required":["variant_id","experiment_definitions_stopped","region_experiments_ended","campaigns_detached","pending_notifications_cancelled"],"title":"StopVariantResult","description":"Counts retired by ``StopVariantUseCase``, surfaced in the success\ntoast. ``experiment_definitions_stopped`` is every live arm soft-deleted\n(region-fanned + manual + draft); ``region_experiments_ended`` is the\nowner rows stamped ended so the membership sync can't re-provision them;\n``campaigns_detached`` is the distinct campaigns the variant was pulled\nfrom; ``pending_notifications_cancelled`` is the scheduled sends stopped\nbefore delivery (already-sent ones are untouched)."},"StorageGranularity":{"type":"string","enum":["minutely","hourly","daily"],"title":"StorageGranularity","description":"Ingest/storage grain — the subset of :class:`Granularity` an event\nsource can physically bucket into ``events`` rows. Week / month are\nread-side aggregations only and are absent here, so ``config.bucket``\ncan never carry a grain the sync worker can't bucket."},"StrategyAllocationPreviewInfo":{"properties":{"strategy":{"$ref":"#/components/schemas/AllocatorStrategy"},"arm_counts":{"items":{"$ref":"#/components/schemas/ArmCountInfo"},"type":"array","title":"Arm Counts"}},"type":"object","required":["strategy","arm_counts"],"title":"StrategyAllocationPreviewInfo"},"SubscriptionLoginStartResult":{"properties":{"authorize_url":{"type":"string","title":"Authorize Url"}},"type":"object","required":["authorize_url"],"title":"SubscriptionLoginStartResult","description":"The hosted sign-in's opening move: the OpenAI authorize URL whose\nPKCE verifier is held server-side against the embedded state."},"SuggestRewardOverrideRequest":{"properties":{"state_id":{"type":"string","format":"uuid","title":"State Id"}},"type":"object","required":["state_id"],"title":"SuggestRewardOverrideRequest"},"SupabaseTableBranchConfig":{"properties":{"table":{"type":"string","title":"Table"},"external_id_column":{"type":"string","title":"External Id Column"},"occurred_at_column":{"type":"string","title":"Occurred At Column"},"value_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value Column"},"value_multiplier":{"type":"number","title":"Value Multiplier","default":1.0},"keyset_tiebreaker_column":{"type":"string","title":"Keyset Tiebreaker Column","default":"id"},"filters":{"items":{"$ref":"#/components/schemas/SourceTableFilter"},"type":"array","title":"Filters"}},"type":"object","required":["table","external_id_column","occurred_at_column"],"title":"SupabaseTableBranchConfig","description":"One source table merged into a ``supabase_table`` event stream.\n\nRows are keyset-paginated per branch and aggregated into the shared\nper-contact buckets, so branches with the same ``(external_id,\nbucket)`` sum together — the union semantics."},"SupabaseTableEventConfig":{"properties":{"kind":{"type":"string","const":"supabase_table","title":"Kind","default":"supabase_table"},"bucket":{"$ref":"#/components/schemas/StorageGranularity","default":"hourly"},"tables":{"items":{"$ref":"#/components/schemas/SupabaseTableBranchConfig"},"type":"array","minItems":1,"title":"Tables"},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit"}},"type":"object","required":["tables"],"title":"SupabaseTableEventConfig"},"SurveyOptionConfig":{"properties":{"option_key":{"type":"string","title":"Option Key","default":""},"emoji":{"type":"string","title":"Emoji","default":""},"label":{"type":"string","title":"Label","default":""}},"additionalProperties":false,"type":"object","title":"SurveyOptionConfig"},"SurveyRowsBlock":{"properties":{"block_type":{"type":"string","const":"survey_rows","title":"Block Type","default":"survey_rows"},"survey_key":{"type":"string","title":"Survey Key","default":""},"eyebrow":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrow"},"eyebrow_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eyebrow Color"},"question":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question"},"subhead":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subhead"},"options":{"items":{"$ref":"#/components/schemas/SurveyOptionConfig"},"type":"array","title":"Options"},"randomize_options":{"type":"boolean","title":"Randomize Options","default":false},"option_urls":{"additionalProperties":{"type":"string"},"type":"object","title":"Option Urls"},"displayed_order":{"items":{"type":"string"},"type":"array","title":"Displayed Order"}},"additionalProperties":false,"type":"object","title":"SurveyRowsBlock"},"SyncNowResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"}},"type":"object","required":["job_id"],"title":"SyncNowResponse"},"SyncOverviewResponse":{"properties":{"contact_syncs":{"items":{"$ref":"#/components/schemas/AdminContactSyncInfo"},"type":"array","title":"Contact Syncs"},"attribute_syncs":{"items":{"$ref":"#/components/schemas/AdminAttributeSyncInfo"},"type":"array","title":"Attribute Syncs"},"segment_syncs":{"items":{"$ref":"#/components/schemas/AdminSegmentSyncInfo"},"type":"array","title":"Segment Syncs"},"event_syncs":{"items":{"$ref":"#/components/schemas/AdminEventSyncInfo"},"type":"array","title":"Event Syncs"},"experiment_syncs":{"items":{"$ref":"#/components/schemas/AdminExperimentSyncInfo"},"type":"array","title":"Experiment Syncs"},"push_token_syncs":{"items":{"$ref":"#/components/schemas/AdminPushTokenSyncInfo"},"type":"array","title":"Push Token Syncs"},"notification_deliveries":{"items":{"$ref":"#/components/schemas/AdminNotificationDeliveryInfo"},"type":"array","title":"Notification Deliveries"},"worker_liveness":{"$ref":"#/components/schemas/AdminWorkerLivenessInfo"}},"type":"object","required":["contact_syncs","attribute_syncs","segment_syncs","event_syncs","experiment_syncs","push_token_syncs","notification_deliveries","worker_liveness"],"title":"SyncOverviewResponse"},"SyncResourceType":{"type":"string","enum":["contact","push_token","attribute","segment","event","experiment"],"title":"SyncResourceType"},"SyncRunResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"task_name":{"type":"string","title":"Task Name"},"resource_type":{"$ref":"#/components/schemas/SyncResourceType"},"status":{"$ref":"#/components/schemas/SyncRunStatus"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"duration_ms":{"type":"integer","title":"Duration Ms"},"rows_processed":{"type":"integer","title":"Rows Processed","default":0},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"attribute_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribute Name"}},"type":"object","required":["id","task_name","resource_type","status","started_at","duration_ms"],"title":"SyncRunResponse"},"SyncRunStatus":{"type":"string","enum":["succeeded","failed"],"title":"SyncRunStatus"},"TagsRequest":{"properties":{"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","required":["tags"],"title":"TagsRequest"},"TemplatedVariantSource":{"properties":{"kind":{"type":"string","const":"templated","title":"Kind","default":"templated"},"template_name":{"type":"string","enum":["plaintext_note","catchback_image_led_drop","catchback_copy_led_drop","catchback_banner_promo_drop","pingo_offer","pingo_offer_countdown","pingo_countdown_offer"],"title":"Template Name"},"editable_values":{"additionalProperties":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"type":"object","title":"Editable Values"}},"additionalProperties":false,"type":"object","required":["template_name","editable_values"],"title":"TemplatedVariantSource"},"TestIntegrationRequest":{"properties":{"channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Id"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","title":"TestIntegrationRequest","description":"Optional send mode; all validation lives in the use case so caller\nmistakes read as its 400 copy, never a Pydantic 422."},"TestIntegrationResponse":{"properties":{"ok":{"type":"boolean","title":"Ok"},"message":{"type":"string","title":"Message"}},"type":"object","required":["ok","message"],"title":"TestIntegrationResponse"},"TestimonialBlock":{"properties":{"block_type":{"type":"string","const":"testimonial","title":"Block Type","default":"testimonial"},"quote":{"type":"string","title":"Quote","default":""},"attribution":{"type":"string","title":"Attribution","default":""},"accent_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent Color"},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color"}},"additionalProperties":false,"type":"object","title":"TestimonialBlock"},"TextSlotInfo":{"properties":{"id":{"type":"string","title":"Id"},"text":{"type":"string","title":"Text"},"tag":{"type":"string","title":"Tag"}},"additionalProperties":false,"type":"object","required":["id","text","tag"],"title":"TextSlotInfo","description":"Wire projection of ``HtmlTextSlot``: one editable text run of an HTML\ndesign. ``text`` is the RAW source run — pre-override, pre-render — so\nthe editor can reset a slot without baking a preview contact's values\ninto a persisted override."},"TopKRankBy":{"type":"string","enum":["count","sum"],"title":"TopKRankBy"},"TopKSource":{"properties":{"kind":{"type":"string","const":"top_k","title":"Kind","default":"top_k"},"group_column":{"type":"string","title":"Group Column"},"rank_by":{"$ref":"#/components/schemas/TopKRankBy","default":"count"},"rank_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rank Column"},"k":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"K","default":3},"element_field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Element Field"},"label_lookup":{"anyOf":[{"$ref":"#/components/schemas/LabelLookupConfig"},{"type":"null"}]}},"type":"object","required":["group_column"],"title":"TopKSource","description":"Group a contact's source rows (or array elements) by\n``group_column``, rank groups by ``count`` or by a summed numeric\n``rank_column``, and write the top ``k`` labels as one\ncomma-separated string (``value_type`` pinned to string).\n\nDecode semantics are closed (the row builder implements exactly\nthese): labels are trimmed, dropped when empty after trim. A cell\nunder ``count``: ``None`` → nothing; JSON array → one entry per\nelement; scalar → one entry; dict → dropped. An array element:\nstr / int / float → ``str(element)`` trimmed; bool / ``None`` /\nnested list → dropped; dict with ``element_field`` → pluck that\nkey, then the scalar rules; dict without ``element_field`` →\ndropped. Under ``sum`` a list cell contributes nothing (skip\ncounted) and ``element_field`` is rejected at parse — per-element\nrank credit is unrepresentable in v1. Equal labels dedupe\nexact-match keep-first. The serialized value is prose for\nrendering: commas inside labels are display-only and the string\nis never parsed back.\n\nA JSON-path ``group_column`` rides the PostgREST select alias\n(``__group:<path>``): proven for supabase integrations; the\ndirect-Postgres client rejects the aliased entry as an invalid\nidentifier. The ``__group`` row key is reserved for that alias —\na selected source column bearing the name is rejected by the\ndry-run probe. Either way the create/update probe surfaces the\nfailure — best-effort when the sampled source table is empty."},"TrackedTargetInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"metric_event_key":{"type":"string","title":"Metric Event Key"},"audience":{"$ref":"#/components/schemas/CohortAudience"},"region_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Region Id"},"conversion_definition_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Conversion Definition Id"},"position":{"type":"integer","title":"Position"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","name","metric_event_key","audience","region_id","conversion_definition_id","position"],"title":"TrackedTargetInfo"},"TrailingWindowSpec":{"properties":{"kind":{"type":"string","const":"trailing","title":"Kind"},"amount":{"type":"integer","minimum":1.0,"title":"Amount"},"unit":{"type":"string","enum":["minutes","hours","days"],"title":"Unit"}},"additionalProperties":false,"type":"object","required":["kind","amount","unit"],"title":"TrailingWindowSpec","description":"Event window: the trailing ``amount`` × ``unit`` before the\nevaluation instant (``[now − amount·unit, now]``, UTC arithmetic),\ncapped at 365 days total. ``events.occurred_at`` stores bucket\nSTARTS at the definition's storage grain (hourly by default), so a\nwindow finer than the grain resolves at bucket granularity — the\nevaluator floors the anchor to the hour, over-matching by up to one\nbucket rather than missing events bucketed earlier in the anchor's\nown hour."},"TranscriptEventInfo":{"properties":{"uuid":{"type":"string","title":"Uuid"},"role":{"$ref":"#/components/schemas/TranscriptRole"},"timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Timestamp"},"is_sidechain":{"type":"boolean","title":"Is Sidechain"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"blocks":{"items":{"oneOf":[{"$ref":"#/components/schemas/TranscriptTextInfo"},{"$ref":"#/components/schemas/TranscriptThinkingInfo"},{"$ref":"#/components/schemas/TranscriptToolCallInfo"}],"discriminator":{"propertyName":"kind","mapping":{"text":"#/components/schemas/TranscriptTextInfo","thinking":"#/components/schemas/TranscriptThinkingInfo","tool_call":"#/components/schemas/TranscriptToolCallInfo"}}},"type":"array","title":"Blocks"}},"type":"object","required":["uuid","role","timestamp","is_sidechain","model","blocks"],"title":"TranscriptEventInfo"},"TranscriptInfo":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"harness_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Harness Version"},"events":{"items":{"$ref":"#/components/schemas/TranscriptEventInfo"},"type":"array","title":"Events"},"event_count":{"type":"integer","title":"Event Count"},"skipped_lines":{"type":"integer","title":"Skipped Lines"}},"type":"object","required":["session_id","harness_version","events","event_count","skipped_lines"],"title":"TranscriptInfo","description":"``skipped_lines`` counts stored lines the parser could not use (a\nmalformed record, a line cut by the read ceiling), so zero events\nwith skipped lines reads as a damaged object, not an empty one."},"TranscriptRole":{"type":"string","enum":["user","assistant"],"title":"TranscriptRole"},"TranscriptTextInfo":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"text":{"type":"string","title":"Text"},"is_truncated":{"type":"boolean","title":"Is Truncated","default":false}},"type":"object","required":["text"],"title":"TranscriptTextInfo"},"TranscriptThinkingInfo":{"properties":{"kind":{"type":"string","const":"thinking","title":"Kind","default":"thinking"},"thinking":{"type":"string","title":"Thinking"},"is_truncated":{"type":"boolean","title":"Is Truncated","default":false}},"type":"object","required":["thinking"],"title":"TranscriptThinkingInfo"},"TranscriptToolCallInfo":{"properties":{"kind":{"type":"string","const":"tool_call","title":"Kind","default":"tool_call"},"tool_use_id":{"type":"string","title":"Tool Use Id"},"name":{"type":"string","title":"Name"},"input":{"additionalProperties":true,"type":"object","title":"Input"},"result":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Result"},"is_error":{"type":"boolean","title":"Is Error"},"is_input_truncated":{"type":"boolean","title":"Is Input Truncated","default":false},"is_result_truncated":{"type":"boolean","title":"Is Result Truncated"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"}},"type":"object","required":["tool_use_id","name","input","result","is_error","is_result_truncated","duration_ms"],"title":"TranscriptToolCallInfo","description":"``is_result_truncated`` covers both result cuts a viewer cannot\ntell apart: the reader's block cap, and the harness spilling the\nresult to a sidecar file and leaving a preview stub in the\ntranscript. ``is_input_truncated`` is separate because a cut input\nand a cut result render under different sections."},"TrialRetentionCurveResult":{"properties":{"treatment_total":{"type":"integer","title":"Treatment Total"},"control_total":{"type":"integer","title":"Control Total"},"points":{"items":{"$ref":"#/components/schemas/TrialRetentionPointInfo"},"type":"array","title":"Points"},"event_definition_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Event Definition Id"},"event_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Label"}},"type":"object","required":["treatment_total","control_total","points"],"title":"TrialRetentionCurveResult"},"TrialRetentionPointInfo":{"properties":{"day_offset":{"type":"integer","title":"Day Offset"},"treatment_rate":{"type":"number","title":"Treatment Rate"},"control_rate":{"type":"number","title":"Control Rate"}},"type":"object","required":["day_offset","treatment_rate","control_rate"],"title":"TrialRetentionPointInfo"},"TriggerWorkflowRunRequest":{"properties":{"workflow_name":{"type":"string","title":"Workflow Name"},"params":{"additionalProperties":true,"type":"object","title":"Params"},"run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Run At"},"idempotency_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency Key"}},"type":"object","required":["workflow_name","params"],"title":"TriggerWorkflowRunRequest"},"UnavailableOutcomeInfo":{"properties":{"kind":{"$ref":"#/components/schemas/OutcomeKind"},"id":{"type":"string","format":"uuid","title":"Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["kind","id","reason"],"title":"UnavailableOutcomeInfo","description":"A pinned outcome that couldn't be measured this run.\n\nReturned alongside the measured ``cards`` so one un-measurable pin —\na deleted event or conversion definition — degrades to a dismissible\nplaceholder instead of failing the whole request. ``kind`` + ``id``\nmatch the request's :data:`OutcomeSpec` so the surface can unpin it;\n``label`` is the entity's display name when known, ``reason`` a\nshort human string."},"UnsetBucket":{"properties":{"kind":{"type":"string","const":"unset","title":"Kind"}},"type":"object","required":["kind"],"title":"UnsetBucket","description":"The contact has no ``contact_attributes`` row for the key."},"UpdateAIProposedActionRequest":{"properties":{"source":{"oneOf":[{"$ref":"#/components/schemas/RawVariantSource"},{"$ref":"#/components/schemas/TemplatedVariantSource"},{"$ref":"#/components/schemas/HtmlVariantSource"}],"title":"Source","discriminator":{"propertyName":"kind","mapping":{"html":"#/components/schemas/HtmlVariantSource","raw":"#/components/schemas/RawVariantSource","templated":"#/components/schemas/TemplatedVariantSource"}}}},"type":"object","required":["source"],"title":"UpdateAIProposedActionRequest","description":"Adjust a pending proposal's variant content. Only ``source`` is\neditable — the channel is fixed (the new source's content channel must\nmatch the proposal's), so an edit can't desync the row from what\napproval will materialize."},"UpdateAttributeMappingRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"config":{"anyOf":[{"$ref":"#/components/schemas/AttributeMappingConfig"},{"$ref":"#/components/schemas/EventStreamAttributeConfig"},{"type":"null"}],"title":"Config"}},"type":"object","title":"UpdateAttributeMappingRequest"},"UpdateBrandReferenceAnnotationRequest":{"properties":{"annotation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Annotation"}},"type":"object","required":["annotation"],"title":"UpdateBrandReferenceAnnotationRequest"},"UpdateBrandThemeRequest":{"properties":{"body_font_family":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Font Family"},"heading_font_family":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Heading Font Family"},"heading_font_asset_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Heading Font Asset Id"},"body_font_asset_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Body Font Asset Id"},"primary_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Color"},"accent_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent Color"},"wash_background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wash Background Color"},"body_text_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Text Color"},"card_border_radius":{"anyOf":[{"type":"integer","maximum":64.0,"minimum":0.0},{"type":"null"}],"title":"Card Border Radius"},"mailing_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mailing Address"},"revert_heading_font":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Revert Heading Font"},"revert_body_font":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Revert Body Font"}},"type":"object","title":"UpdateBrandThemeRequest"},"UpdateDataDictionaryEntryRequest":{"properties":{"meaning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meaning"},"units":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Units"},"traps":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Traps"},"canonical_expression":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical Expression"}},"type":"object","title":"UpdateDataDictionaryEntryRequest","description":"The editable half of an entry. Fields left out of the request body\nare untouched, so an explicit ``null`` clears one rather than reading\nas \"no change\" (the ``ContactUpdate`` ``exclude_unset`` shape)."},"UpdateEmailTemplateRequest":{"properties":{"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"source_variant_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Source Variant Id"}},"type":"object","title":"UpdateEmailTemplateRequest"},"UpdateOrganizationProfileRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"}},"type":"object","title":"UpdateOrganizationProfileRequest"},"UpdateOrganizationSettingsRequest":{"properties":{"requires_notification_approval":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Requires Notification Approval"},"requires_templated_source":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Requires Templated Source"},"polymorphic_app_builder_mode":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppBuilderMode"},{"type":"null"}]},"is_autonomous_mode_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Autonomous Mode Enabled"},"timezone_attribute_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Timezone Attribute Id"},"clear_timezone_attribute_id":{"type":"boolean","title":"Clear Timezone Attribute Id","default":false},"signup_cohort_attribute_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Signup Cohort Attribute Id"},"clear_signup_cohort_attribute_id":{"type":"boolean","title":"Clear Signup Cohort Attribute Id","default":false},"retention_event_definition_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Retention Event Definition Id"},"clear_retention_event_definition_id":{"type":"boolean","title":"Clear Retention Event Definition Id","default":false},"global_control_pct":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Global Control Pct"},"global_control_enabled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Global Control Enabled At"},"control_first_enabled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Control First Enabled At"},"control_first_pct":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Control First Pct"},"default_allocator_strategy":{"anyOf":[{"$ref":"#/components/schemas/AllocatorStrategy"},{"type":"null"}]},"score_source":{"anyOf":[{"$ref":"#/components/schemas/ScoreSource"},{"type":"null"}]},"message_cooldown_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Message Cooldown Seconds"},"variant_cooldown_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Variant Cooldown Seconds"},"experiment_guidance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experiment Guidance"},"ad_inspiration_keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ad Inspiration Keywords"},"is_demo":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Demo"}},"type":"object","title":"UpdateOrganizationSettingsRequest"},"UpdatePolymorphicAppRequest":{"properties":{"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"}},"type":"object","title":"UpdatePolymorphicAppRequest"},"UpdateRoleRequest":{"properties":{"role":{"$ref":"#/components/schemas/MemberOrganizationRole"}},"type":"object","required":["role"],"title":"UpdateRoleRequest"},"UpdateSegmentRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"collector_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Collector Config"}},"type":"object","title":"UpdateSegmentRequest"},"UpdateWorkflowRequest":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"spec":{"anyOf":[{"$ref":"#/components/schemas/WorkflowSpec"},{"type":"null"}]}},"type":"object","title":"UpdateWorkflowRequest","description":"The editable half of a workflow. An omitted key is untouched, so an\nexplicit ``null`` clears ``description`` (the ``ConversionDefinition``\nPATCH shape); ``name`` and ``spec`` are NOT NULL and reject it."},"UpdateWorkflowScheduleRequest":{"properties":{"workflow_name":{"type":"string","title":"Workflow Name"},"params":{"additionalProperties":true,"type":"object","title":"Params"},"cron":{"type":"string","title":"Cron"},"timezone":{"type":"string","title":"Timezone"},"is_enabled":{"type":"boolean","title":"Is Enabled"}},"type":"object","required":["workflow_name","params","cron","timezone","is_enabled"],"title":"UpdateWorkflowScheduleRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VariantApprovalStatus":{"type":"string","enum":["pending","approved","rejected"],"title":"VariantApprovalStatus"},"VariantChannel":{"type":"string","enum":["email","fcm","expo","control"],"title":"VariantChannel"},"VariantConversionDayInfo":{"properties":{"cohort_date":{"type":"string","format":"date","title":"Cohort Date"},"sent":{"type":"integer","title":"Sent"},"converted":{"type":"integer","title":"Converted"},"provisional":{"type":"boolean","title":"Provisional"}},"type":"object","required":["cohort_date","sent","converted","provisional"],"title":"VariantConversionDayInfo"},"VariantConversionMemberInfo":{"properties":{"variant_id":{"type":"string","title":"Variant Id"},"points":{"items":{"$ref":"#/components/schemas/VariantConversionDayInfo"},"type":"array","title":"Points"}},"type":"object","required":["variant_id","points"],"title":"VariantConversionMemberInfo"},"VariantConversionSeriesInfo":{"properties":{"members":{"items":{"$ref":"#/components/schemas/VariantConversionMemberInfo"},"type":"array","title":"Members"},"control":{"items":{"$ref":"#/components/schemas/VariantConversionDayInfo"},"type":"array","title":"Control"}},"type":"object","required":["members","control"],"title":"VariantConversionSeriesInfo"},"VariantCreateRequest":{"properties":{"channel":{"$ref":"#/components/schemas/VariantChannel"},"content":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/EmailContent"},{"$ref":"#/components/schemas/PushContent"},{"$ref":"#/components/schemas/ControlContent"}],"discriminator":{"propertyName":"channel","mapping":{"control":"#/components/schemas/ControlContent","email":"#/components/schemas/EmailContent","expo":"#/components/schemas/PushContent","fcm":"#/components/schemas/PushContent"}}},{"type":"null"}],"title":"Content"},"source":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/RawVariantSource"},{"$ref":"#/components/schemas/TemplatedVariantSource"},{"$ref":"#/components/schemas/HtmlVariantSource"}],"discriminator":{"propertyName":"kind","mapping":{"html":"#/components/schemas/HtmlVariantSource","raw":"#/components/schemas/RawVariantSource","templated":"#/components/schemas/TemplatedVariantSource"}}},{"type":"null"}],"title":"Source"},"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"send_window_start_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Send Window Start Local"},"send_window_end_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Send Window End Local"},"send_condition":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/LeafNode"},{"$ref":"#/components/schemas/EventLeafNode"},{"$ref":"#/components/schemas/AndNode"},{"$ref":"#/components/schemas/OrNode"},{"$ref":"#/components/schemas/NotNode"}],"discriminator":{"propertyName":"kind","mapping":{"and":"#/components/schemas/AndNode","event":"#/components/schemas/EventLeafNode","leaf":"#/components/schemas/LeafNode","not":"#/components/schemas/NotNode","or":"#/components/schemas/OrNode"}}},{"type":"null"}],"title":"Send Condition"},"is_working_copy":{"type":"boolean","title":"Is Working Copy","default":false},"created_by_kind":{"$ref":"#/components/schemas/VariantCreatorKind","default":"human"},"inspiration_ad_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Inspiration Ad Id"},"forked_from_variant_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Forked From Variant Id"},"fork_axis":{"anyOf":[{"$ref":"#/components/schemas/VariantForkAxis"},{"type":"null"}]},"fork_axis_note":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Fork Axis Note"}},"type":"object","required":["channel"],"title":"VariantCreateRequest"},"VariantCreatorKind":{"type":"string","enum":["agent","human"],"title":"VariantCreatorKind"},"VariantEngagementRatesResult":{"properties":{"sent_count":{"type":"integer","title":"Sent Count"},"delivered_count":{"type":"integer","title":"Delivered Count"},"opened_count":{"type":"integer","title":"Opened Count"},"clicked_count":{"type":"integer","title":"Clicked Count"},"bounced_count":{"type":"integer","title":"Bounced Count"},"complained_count":{"type":"integer","title":"Complained Count"},"delivered_rate":{"type":"number","title":"Delivered Rate"},"open_rate":{"type":"number","title":"Open Rate"},"click_rate":{"type":"number","title":"Click Rate"},"bounce_rate":{"type":"number","title":"Bounce Rate"},"variant_id":{"type":"string","format":"uuid","title":"Variant Id"}},"type":"object","required":["sent_count","delivered_count","opened_count","clicked_count","bounced_count","complained_count","delivered_rate","open_rate","click_rate","bounce_rate","variant_id"],"title":"VariantEngagementRatesResult"},"VariantFamilyResponse":{"properties":{"family_root_variant_id":{"type":"string","format":"uuid","title":"Family Root Variant Id"},"channel":{"$ref":"#/components/schemas/VariantChannel"},"representative":{"$ref":"#/components/schemas/VariantResponse"},"variant_count":{"type":"integer","title":"Variant Count"},"reach_total":{"type":"integer","title":"Reach Total"},"members":{"items":{"$ref":"#/components/schemas/VariantMemberSlotInfo"},"type":"array","title":"Members"}},"type":"object","required":["family_root_variant_id","channel","representative","variant_count","reach_total","members"],"title":"VariantFamilyResponse","description":"A variant family — a root variant plus every fork and same-content\nsibling descended from it — collapsed into one variants-list row that\nexpands to its member slots. ``family_root_variant_id`` is the group key\n(every member shares one root; a root points to itself, no chains).\n``representative`` is the newest member (the row shows its copy);\n``members`` are ALL the family's variants as ordered slots.\n\n``reach_total`` is the UNION reach — distinct contacts across the members'\n``status='sent'`` sends — never the sum of per-member reaches (a contact\nreached by two members counts once, so the members may sum higher than the\nunion; both are honest and both stay visible downstream). The family\ncarries no session-lift figure — the list renders conversion lift only;\neach member's ``VariantResponse`` keeps its own denormalized session lift\nfor the drawer's Testing legend."},"VariantFieldCoverageResult":{"properties":{"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"segment_id":{"type":"string","format":"uuid","title":"Segment Id"},"total_contacts":{"type":"integer","title":"Total Contacts"},"fields":{"items":{"$ref":"#/components/schemas/FieldCoverageInfo"},"type":"array","title":"Fields"}},"type":"object","required":["variant_id","campaign_id","segment_id","total_contacts","fields"],"title":"VariantFieldCoverageResult"},"VariantForkAxis":{"type":"string","enum":["send_window","locale","style","copy"],"title":"VariantForkAxis"},"VariantGenerationKind":{"type":"string","enum":["lifecycle_copy","push_content","ad_inspired","revise","brief_draft"],"title":"VariantGenerationKind"},"VariantGenerationRunDetailInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"kind":{"$ref":"#/components/schemas/VariantGenerationKind"},"status":{"$ref":"#/components/schemas/VariantGenerationRunStatus"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"step_count":{"type":"integer","title":"Step Count"},"variant_count":{"type":"integer","title":"Variant Count"},"organization_name":{"type":"string","title":"Organization Name"},"is_fork":{"type":"boolean","title":"Is Fork"},"forked_from_run_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Forked From Run Id"},"forked_from_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Step Index"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"steps":{"items":{"$ref":"#/components/schemas/VariantGenerationStepInfo"},"type":"array","title":"Steps"},"context":{"additionalProperties":true,"type":"object","title":"Context"},"result":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Result"},"prompt_override":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Prompt Override"},"child_run_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Child Run Ids"}},"type":"object","required":["id","organization_id","kind","status","started_at","step_count","variant_count","organization_name","is_fork","steps","context","child_run_ids"],"title":"VariantGenerationRunDetailInfo"},"VariantGenerationRunInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"kind":{"$ref":"#/components/schemas/VariantGenerationKind"},"status":{"$ref":"#/components/schemas/VariantGenerationRunStatus"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"step_count":{"type":"integer","title":"Step Count"},"variant_count":{"type":"integer","title":"Variant Count"},"organization_name":{"type":"string","title":"Organization Name"},"is_fork":{"type":"boolean","title":"Is Fork"},"forked_from_run_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Forked From Run Id"},"forked_from_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Step Index"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["id","organization_id","kind","status","started_at","step_count","variant_count","organization_name","is_fork"],"title":"VariantGenerationRunInfo"},"VariantGenerationRunStatus":{"type":"string","enum":["running","succeeded","failed"],"title":"VariantGenerationRunStatus"},"VariantGenerationStepInfo":{"properties":{"step_index":{"type":"integer","title":"Step Index","default":0},"step_name":{"type":"string","title":"Step Name","default":""},"phase":{"type":"string","title":"Phase","default":""},"call_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Call Id"},"kind":{"type":"string","title":"Kind","default":"llm_call"},"model":{"type":"string","title":"Model","default":""},"status":{"type":"string","title":"Status","default":""},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"request":{"$ref":"#/components/schemas/VariantGenerationStepRequestInfo"},"response":{"anyOf":[{"$ref":"#/components/schemas/VariantGenerationStepResponseInfo"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"error_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Kind"}},"type":"object","title":"VariantGenerationStepInfo"},"VariantGenerationStepMessageInfo":{"properties":{"role":{"type":"string","title":"Role","default":"user"},"content":{"type":"string","title":"Content","default":""}},"type":"object","title":"VariantGenerationStepMessageInfo"},"VariantGenerationStepParamsInfo":{"properties":{"max_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Tokens"},"effort":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Effort"},"max_turns":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Turns"}},"type":"object","title":"VariantGenerationStepParamsInfo"},"VariantGenerationStepRequestInfo":{"properties":{"system":{"type":"string","title":"System","default":""},"messages":{"items":{"$ref":"#/components/schemas/VariantGenerationStepMessageInfo"},"type":"array","title":"Messages"},"output_schema_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Schema Name"},"params":{"$ref":"#/components/schemas/VariantGenerationStepParamsInfo"}},"type":"object","title":"VariantGenerationStepRequestInfo"},"VariantGenerationStepResponseInfo":{"properties":{"raw_emitted":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Raw Emitted"},"usage":{"anyOf":[{"$ref":"#/components/schemas/VariantGenerationStepUsageInfo"},{"type":"null"}]}},"type":"object","title":"VariantGenerationStepResponseInfo"},"VariantGenerationStepUsageInfo":{"properties":{"input_tokens":{"type":"integer","title":"Input Tokens","default":0},"output_tokens":{"type":"integer","title":"Output Tokens","default":0}},"type":"object","title":"VariantGenerationStepUsageInfo"},"VariantGradingScheduleCreateRequest":{"properties":{"split_attribute_key":{"type":"string","title":"Split Attribute Key"},"split_bucket":{"oneOf":[{"$ref":"#/components/schemas/BooleanBucket"},{"$ref":"#/components/schemas/RangeBucket"},{"$ref":"#/components/schemas/DatetimeRangeBucket"},{"$ref":"#/components/schemas/UnsetBucket"}],"title":"Split Bucket","discriminator":{"propertyName":"kind","mapping":{"boolean":"#/components/schemas/BooleanBucket","datetime_range":"#/components/schemas/DatetimeRangeBucket","range":"#/components/schemas/RangeBucket","unset":"#/components/schemas/UnsetBucket"}}}},"type":"object","required":["split_attribute_key","split_bucket"],"title":"VariantGradingScheduleCreateRequest"},"VariantGradingScheduleSummaryInfo":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"organization_name":{"type":"string","title":"Organization Name"},"split_attribute_key":{"type":"string","title":"Split Attribute Key"},"split_bucket_key":{"type":"string","title":"Split Bucket Key"},"split_bucket":{"additionalProperties":true,"type":"object","title":"Split Bucket"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run At"},"last_run_children_started":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Run Children Started"},"last_run_children_succeeded":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Run Children Succeeded"}},"type":"object","required":["id","organization_id","organization_name","split_attribute_key","split_bucket_key","split_bucket","created_at"],"title":"VariantGradingScheduleSummaryInfo","description":"One recurring grading schedule joined to its latest run — the admin\nschedules-table row. ``last_run_*`` are NULL until the cron has fired the\nschedule at least once (``children_started`` set by the parent fan-out,\n``children_succeeded`` incremented by each child)."},"VariantGroupSortField":{"type":"string","enum":["created_at","reach","name","conversion"],"title":"VariantGroupSortField"},"VariantGroupStatusCountInfo":{"properties":{"lifecycle_status":{"$ref":"#/components/schemas/VariantLifecycleStatus"},"family_count":{"type":"integer","title":"Family Count"}},"type":"object","required":["lifecycle_status","family_count"],"title":"VariantGroupStatusCountInfo","description":"One lifecycle bucket's family total for the status-grouped variants\nlist — the family is counted under its min-rank fold (the section it\nrenders in), never once per member state. Buckets with no families are\nomitted from the response."},"VariantGroupStatusCountsResponse":{"properties":{"counts":{"items":{"$ref":"#/components/schemas/VariantGroupStatusCountInfo"},"type":"array","title":"Counts"}},"type":"object","required":["counts"],"title":"VariantGroupStatusCountsResponse"},"VariantInteractionActivityEvent":{"properties":{"source":{"type":"string","const":"variant_interaction","title":"Source","default":"variant_interaction"},"id":{"type":"string","format":"uuid","title":"Id"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"interaction_type":{"$ref":"#/components/schemas/VariantInteractionType"},"interaction_source":{"$ref":"#/components/schemas/VariantInteractionSource"},"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"notification_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Notification Id"}},"type":"object","required":["id","occurred_at","interaction_type","interaction_source","variant_id","notification_id"],"title":"VariantInteractionActivityEvent"},"VariantInteractionSource":{"type":"string","enum":["resend","expo","fcm"],"title":"VariantInteractionSource","description":"Origin of the interaction row — which external system emitted it."},"VariantInteractionType":{"type":"string","enum":["delivered","opened","clicked","bounced","complained","failed","delivery_delayed"],"title":"VariantInteractionType","description":"Canonical funnel states observed against a variant.\n\nValues are provider-agnostic: Resend's ``email.delivered``, Expo's push\nreceipt ``ok``, and FCM's delivery report all map to ``delivered``.\nPer-provider nuance lives in ``meta``."},"VariantLifecycleStatus":{"type":"string","enum":["draft","approved","rejected","live","idle","stopped"],"title":"VariantLifecycleStatus","description":"The variant's displayed lifecycle state — the six-state Status pill.\n\nFolds approval (pre-send: Draft/Approved/Rejected) and delivery\n(post-send: Live/Idle/Stopped) into one axis. The list's Status filter\nselects on it and the repo derives the SQL predicate; keep in lockstep\nwith the frontend ``variantStatus.ts`` — both encode the same rule, one\nin SQL for filtering, one in TS for display."},"VariantLiftPointInfo":{"properties":{"lift_pp":{"type":"number","title":"Lift Pp"},"treated_n":{"type":"integer","title":"Treated N"},"treated_converted":{"type":"integer","title":"Treated Converted"},"control_n":{"type":"integer","title":"Control N"},"control_converted":{"type":"integer","title":"Control Converted"},"confidence":{"$ref":"#/components/schemas/ExperimentLiftConfidence"}},"type":"object","required":["lift_pp","treated_n","treated_converted","control_n","control_converted","confidence"],"title":"VariantLiftPointInfo"},"VariantLiftSeriesDayInfo":{"properties":{"cohort_date":{"type":"string","format":"date","title":"Cohort Date"},"weighted":{"$ref":"#/components/schemas/VariantLiftPointInfo"},"best":{"$ref":"#/components/schemas/VariantLiftStatePointInfo"},"worst":{"$ref":"#/components/schemas/VariantLiftStatePointInfo"},"provisional":{"type":"boolean","title":"Provisional"}},"type":"object","required":["cohort_date","weighted","best","worst","provisional"],"title":"VariantLiftSeriesDayInfo"},"VariantLiftSeriesInfo":{"properties":{"points":{"items":{"$ref":"#/components/schemas/VariantLiftSeriesDayInfo"},"type":"array","title":"Points"},"states":{"items":{"$ref":"#/components/schemas/VariantLiftSeriesStateInfo"},"type":"array","title":"States"}},"type":"object","required":["points","states"],"title":"VariantLiftSeriesInfo"},"VariantLiftSeriesStateInfo":{"properties":{"state_id":{"type":"string","title":"State Id"},"buckets":{"items":{"$ref":"#/components/schemas/AttributeBucket"},"type":"array","title":"Buckets"}},"type":"object","required":["state_id","buckets"],"title":"VariantLiftSeriesStateInfo"},"VariantLiftStatePointInfo":{"properties":{"lift_pp":{"type":"number","title":"Lift Pp"},"treated_n":{"type":"integer","title":"Treated N"},"treated_converted":{"type":"integer","title":"Treated Converted"},"control_n":{"type":"integer","title":"Control N"},"control_converted":{"type":"integer","title":"Control Converted"},"confidence":{"$ref":"#/components/schemas/ExperimentLiftConfidence"},"state_id":{"type":"string","title":"State Id"}},"type":"object","required":["lift_pp","treated_n","treated_converted","control_n","control_converted","confidence","state_id"],"title":"VariantLiftStatePointInfo"},"VariantMemberSlotInfo":{"properties":{"variant":{"$ref":"#/components/schemas/VariantResponse"},"send_window_start_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Send Window Start Local"},"send_window_end_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Send Window End Local"},"fork_axis":{"anyOf":[{"$ref":"#/components/schemas/VariantForkAxis"},{"type":"null"}]},"fork_axis_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fork Axis Note"}},"type":"object","required":["variant","send_window_start_local","send_window_end_local","fork_axis","fork_axis_note"],"title":"VariantMemberSlotInfo","description":"One member of a variant family — its full ``VariantResponse`` plus the\nfork axis it diverged on and the send window that positions it among its\nsiblings. ``fork_axis`` / ``fork_axis_note`` are copied from the member's\nmodel row (``None`` on the root and hash-adopted members); the family\nbreakdown labels a member by its note/axis, falling back to the send window\n(a ``send_window`` fork IS distinguished by its window). Slots order by\n``send_window_start_local`` (nulls last, rendered \"anytime\" downstream)."},"VariantProspectiveInfo":{"properties":{"count":{"type":"integer","title":"Count"},"sample_contact_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Sample Contact Ids"}},"type":"object","required":["count","sample_contact_ids"],"title":"VariantProspectiveInfo"},"VariantRankBucketInfo":{"properties":{"bucket_start":{"type":"string","format":"date","title":"Bucket Start"},"provisional":{"type":"boolean","title":"Provisional"},"entries":{"items":{"$ref":"#/components/schemas/VariantRankEntryInfo"},"type":"array","title":"Entries"}},"type":"object","required":["bucket_start","provisional","entries"],"title":"VariantRankBucketInfo"},"VariantRankEntryInfo":{"properties":{"family_root_variant_id":{"type":"string","title":"Family Root Variant Id"},"rank":{"type":"integer","title":"Rank"},"lift_pp":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lift Pp"},"sent":{"type":"integer","title":"Sent"},"converted":{"type":"integer","title":"Converted"}},"type":"object","required":["family_root_variant_id","rank","lift_pp","sent","converted"],"title":"VariantRankEntryInfo"},"VariantRankHistoryInfo":{"properties":{"buckets":{"items":{"$ref":"#/components/schemas/VariantRankBucketInfo"},"type":"array","title":"Buckets"},"groups":{"items":{"$ref":"#/components/schemas/VariantFamilyResponse"},"type":"array","title":"Groups"}},"type":"object","required":["buckets","groups"],"title":"VariantRankHistoryInfo"},"VariantRef":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"channel":{"$ref":"#/components/schemas/VariantChannel"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"display_copy":{"type":"string","title":"Display Copy"}},"type":"object","required":["id","channel","name","display_copy"],"title":"VariantRef","description":"Lightweight variant reference — id + channel + name + a short copy\nlabel. Used where a surface lists variants without their full content\n(the inbox's similar-variants panel)."},"VariantRegionInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","name"],"title":"VariantRegionInfo"},"VariantRegionSendProjectionInfo":{"properties":{"region_id":{"type":"string","title":"Region Id"},"projected_sends":{"type":"integer","title":"Projected Sends"}},"type":"object","required":["region_id","projected_sends"],"title":"VariantRegionSendProjectionInfo","description":"One region's slice of a variant's projection: the summed per-arm\ncounts over the variant's live arms on that region's current member\nstates. A region appears whenever the variant has an in-scope arm\nthere — a projected 0 is information, mirroring the global figure."},"VariantResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"inspiration_ad_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Inspiration Ad Id"},"forked_from_variant_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Forked From Variant Id"},"fork_axis":{"anyOf":[{"$ref":"#/components/schemas/VariantForkAxis"},{"type":"null"}]},"fork_axis_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fork Axis Note"},"family_root_variant_id":{"type":"string","format":"uuid","title":"Family Root Variant Id"},"channel":{"$ref":"#/components/schemas/VariantChannel"},"created_by_kind":{"$ref":"#/components/schemas/VariantCreatorKind"},"approval_status":{"$ref":"#/components/schemas/VariantApprovalStatus"},"source":{"oneOf":[{"$ref":"#/components/schemas/RawVariantSource"},{"$ref":"#/components/schemas/TemplatedVariantSource"},{"$ref":"#/components/schemas/HtmlVariantSource"}],"title":"Source","discriminator":{"propertyName":"kind","mapping":{"html":"#/components/schemas/HtmlVariantSource","raw":"#/components/schemas/RawVariantSource","templated":"#/components/schemas/TemplatedVariantSource"}}},"rendered_content":{"oneOf":[{"$ref":"#/components/schemas/EmailContent"},{"$ref":"#/components/schemas/PushContent"},{"$ref":"#/components/schemas/ControlContent"}],"title":"Rendered Content","discriminator":{"propertyName":"channel","mapping":{"control":"#/components/schemas/ControlContent","email":"#/components/schemas/EmailContent","expo":"#/components/schemas/PushContent","fcm":"#/components/schemas/PushContent"}}},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"send_window_start_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Send Window Start Local"},"send_window_end_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Send Window End Local"},"send_condition":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/LeafNode"},{"$ref":"#/components/schemas/EventLeafNode"},{"$ref":"#/components/schemas/AndNode"},{"$ref":"#/components/schemas/OrNode"},{"$ref":"#/components/schemas/NotNode"}],"discriminator":{"propertyName":"kind","mapping":{"and":"#/components/schemas/AndNode","event":"#/components/schemas/EventLeafNode","leaf":"#/components/schemas/LeafNode","not":"#/components/schemas/NotNode","or":"#/components/schemas/OrNode"}}},{"type":"null"}],"title":"Send Condition"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"available_locales":{"items":{"oneOf":[{"$ref":"#/components/schemas/LiteralLocaleSource"},{"$ref":"#/components/schemas/AttributeLocaleSource"}],"discriminator":{"propertyName":"kind","mapping":{"attribute":"#/components/schemas/AttributeLocaleSource","literal":"#/components/schemas/LiteralLocaleSource"}}},"type":"array","title":"Available Locales"},"campaign_count":{"type":"integer","title":"Campaign Count","default":0},"top_campaigns":{"items":{"$ref":"#/components/schemas/CampaignRef"},"type":"array","maxItems":3,"title":"Top Campaigns"},"has_been_sent":{"type":"boolean","title":"Has Been Sent","default":false},"has_pending_sends":{"type":"boolean","title":"Has Pending Sends","default":false},"has_live_bindings":{"type":"boolean","title":"Has Live Bindings","default":false},"sent_last_7d":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sent Last 7D"},"sent_lifetime":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sent Lifetime"},"sends_series":{"anyOf":[{"$ref":"#/components/schemas/ChartInfo"},{"type":"null"}]},"regions":{"items":{"$ref":"#/components/schemas/VariantRegionInfo"},"type":"array","title":"Regions"},"upcoming_sends_24h":{"type":"integer","title":"Upcoming Sends 24H","default":0},"session_lift_pp":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Session Lift Pp"},"session_lift_confidence":{"anyOf":[{"$ref":"#/components/schemas/ExperimentLiftConfidence"},{"type":"null"}]},"is_working_copy":{"type":"boolean","title":"Is Working Copy","default":false},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","required":["id","organization_id","family_root_variant_id","channel","created_by_kind","approval_status","source","rendered_content","name","send_window_start_local","send_window_end_local","created_at","updated_at","available_locales"],"title":"VariantResponse"},"VariantSendProjectionInfo":{"properties":{"projected_sends":{"type":"integer","title":"Projected Sends"},"regions":{"anyOf":[{"items":{"$ref":"#/components/schemas/VariantRegionSendProjectionInfo"},"type":"array"},{"type":"null"}],"title":"Regions"}},"type":"object","required":["projected_sends"],"title":"VariantSendProjectionInfo","description":"``projected_sends`` is the contact count the daily creation tick\nwould allocate to the variant's live arms if it provisioned right now\n— the sum of the variant's per-arm ``ArmCountInfo``s across its states.\nThe projection splits raw live headcount; the real tick additionally\nexcludes contacts with an outstanding pending enrolment (#7306), so\nunder send backlog the figure reads slightly optimistic.\n\n``regions`` is populated only under ``include_regions``: one entry per\nregion holding an in-scope arm. An arm on a superseded state (no\ncurrent region membership) counts in ``projected_sends`` but appears\nin no region entry, so the entries can sum below the global figure."},"VariantSendProjectionsRequest":{"properties":{"variant_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":500,"minItems":1,"title":"Variant Ids"},"region_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Region Ids"},"include_regions":{"type":"boolean","title":"Include Regions","default":false}},"type":"object","required":["variant_ids"],"title":"VariantSendProjectionsRequest","description":"``region_ids`` narrows each projection to the variant's arms on the\nselected regions' member states (and bypasses the per-variant global\ncache). ``include_regions`` adds a per-region breakdown to each\nprojection (and bypasses cached reads — the cached row is one global\nfigure that can't serve a breakdown)."},"VariantSenderValidation":{"properties":{"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"sender_validation":{"$ref":"#/components/schemas/SenderValidationResult"}},"additionalProperties":false,"type":"object","required":["variant_id","sender_validation"],"title":"VariantSenderValidation","description":"One row per variant attached to the campaign."},"VariantUpdateRequest":{"properties":{"content":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/EmailContent"},{"$ref":"#/components/schemas/PushContent"},{"$ref":"#/components/schemas/ControlContent"}],"discriminator":{"propertyName":"channel","mapping":{"control":"#/components/schemas/ControlContent","email":"#/components/schemas/EmailContent","expo":"#/components/schemas/PushContent","fcm":"#/components/schemas/PushContent"}}},{"type":"null"}],"title":"Content"},"source":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/RawVariantSource"},{"$ref":"#/components/schemas/TemplatedVariantSource"},{"$ref":"#/components/schemas/HtmlVariantSource"}],"discriminator":{"propertyName":"kind","mapping":{"html":"#/components/schemas/HtmlVariantSource","raw":"#/components/schemas/RawVariantSource","templated":"#/components/schemas/TemplatedVariantSource"}}},{"type":"null"}],"title":"Source"},"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"send_window_start_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Send Window Start Local"},"send_window_end_local":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Send Window End Local"},"send_condition":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/LeafNode"},{"$ref":"#/components/schemas/EventLeafNode"},{"$ref":"#/components/schemas/AndNode"},{"$ref":"#/components/schemas/OrNode"},{"$ref":"#/components/schemas/NotNode"}],"discriminator":{"propertyName":"kind","mapping":{"and":"#/components/schemas/AndNode","event":"#/components/schemas/EventLeafNode","leaf":"#/components/schemas/LeafNode","not":"#/components/schemas/NotNode","or":"#/components/schemas/OrNode"}}},{"type":"null"}],"title":"Send Condition"},"tags":{"anyOf":[{"items":{"type":"string","maxLength":64,"minLength":1},"type":"array","maxItems":50},{"type":"null"}],"title":"Tags"}},"type":"object","title":"VariantUpdateRequest"},"VariantWeightInfo":{"properties":{"variant_id":{"type":"string","format":"uuid","title":"Variant Id"},"weight":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Weight"}},"type":"object","required":["variant_id","weight"],"title":"VariantWeightInfo"},"VipAddRequest":{"properties":{"contact_id":{"type":"string","format":"uuid","title":"Contact Id"}},"type":"object","required":["contact_id"],"title":"VipAddRequest"},"VipAngle":{"type":"string","enum":["win_back","favorite_line_drop","deposit_rhythm","grail_congrats"],"title":"VipAngle","description":"Operator-chosen play label on a manual VIP send, stamped into\n``notification_metadata[\"vip\"][\"angle\"]``. Deliberately separate from\n``NotificationArchetype`` (a copy-craft lever): angles are org-facing\nplay labels the P04 playbook groups on."},"VipCandidateResponse":{"properties":{"contact":{"$ref":"#/components/schemas/ContactSummaryInfo"},"deposits_90d":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Deposits 90D"}},"type":"object","required":["contact","deposits_90d"],"title":"VipCandidateResponse"},"VipDraftCandidateInfo":{"properties":{"title":{"type":"string","title":"Title"},"body":{"type":"string","title":"Body"},"cta_label":{"type":"string","title":"Cta Label"},"archetype":{"$ref":"#/components/schemas/NotificationArchetype"},"vip_angle":{"anyOf":[{"$ref":"#/components/schemas/VipAngle"},{"type":"null"}]},"lever":{"type":"string","title":"Lever"},"deep_link_target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deep Link Target"}},"type":"object","required":["title","body","cta_label","archetype","vip_angle","lever","deep_link_target"],"title":"VipDraftCandidateInfo","description":"One drafted push. ``vip_angle`` is the backend's suggestion for the\ncomposer's Tag menu, mapped from ``archetype``; it is ``None`` for the\narchetypes with no honest angle twin, and the operator picks in that\ncase rather than the playbook inheriting a mislabelled row."},"VipDraftsResponse":{"properties":{"candidates":{"items":{"$ref":"#/components/schemas/VipDraftCandidateInfo"},"type":"array","title":"Candidates"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"}},"type":"object","required":["candidates","generated_at"],"title":"VipDraftsResponse"},"VipDraftsStatusResponse":{"properties":{"status":{"$ref":"#/components/schemas/JobRunStatus"},"result":{"anyOf":[{"$ref":"#/components/schemas/VipDraftsResponse"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["status"],"title":"VipDraftsStatusResponse","description":"One drafting run's poll shape.\n\nMirrors ``AdVariantGenerationStatusResponse`` and adds ``error``:\narq stores a raising task complete with ``success=False`` and keeps\nthe exception out of the result channel, so a ``failed`` poll with\nno ``error`` is exactly the generic dead-end the async drafting flip\nexists to replace. Populated only when ``status`` is ``failed``."},"VipPeakInfo":{"properties":{"start_hour":{"type":"integer","title":"Start Hour"},"end_hour":{"type":"integer","title":"End Hour"},"is_weekend_skewed":{"type":"boolean","title":"Is Weekend Skewed"}},"type":"object","required":["start_hour","end_hour","is_weekend_skewed"],"title":"VipPeakInfo"},"VipPlaybookConfidence":{"type":"string","enum":["directional","too_few_sends"],"title":"VipPlaybookConfidence","description":"``directional`` (≥20 sends matured for the 24h return window —\na rate's confidence follows its denominator, not the raw send\ncount) or ``too_few_sends`` — never a verified tier: no holdout\nexists for 1:1 manual sends, so the playbook's strongest claim is a\ndirectional read."},"VipPlaybookRowInfo":{"properties":{"angle":{"$ref":"#/components/schemas/VipAngle"},"sends":{"type":"integer","title":"Sends"},"returned_24h":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Returned 24H"},"deposited_72h":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Deposited 72H"},"vs_untouched_pp":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vs Untouched Pp"},"confidence":{"$ref":"#/components/schemas/VipPlaybookConfidence"}},"type":"object","required":["angle","sends","returned_24h","deposited_72h","vs_untouched_pp","confidence"],"title":"VipPlaybookRowInfo","description":"One angle's 30d send-windowed outcomes. The treated cohort is\noperator-selected (a send often follows a signal firing, so\nregression to the mean is baked in) — ``vs_untouched_pp`` is a\nselection-confounded background-activity comparison against the\nsame-window untouched pool, NOT control-verified lift, and renders\nonly behind the ``confidence`` pill. ``sends`` is the angle's FULL\n30d send count (the operator's volume view); the rates are\nmaturity-bounded — ``returned_24h`` averages only sends ≥24h old,\n``deposited_72h`` only sends ≥72h old, and ``vs_untouched_pp``\npools untouched members over the same 24h-matured send windows —\nbecause a send younger than its outcome window cannot have\ncompleted it yet, and counting it as a failure would right-censor\nthe rate down. ``returned_24h`` / ``deposited_72h`` are NULL when\nthe backing event resolution (engagement / monetization) is\nunconfigured or no send has matured for that window;\n``vs_untouched_pp`` is NULL when every member was touched in the\nwindow (no comparison pool) or engagement is unconfigured."},"VipProfileResponse":{"properties":{"contact":{"$ref":"#/components/schemas/ContactSummaryInfo"},"deposits_90d":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Deposits 90D"},"sessions_per_week":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sessions Per Week"},"active_hours_90d":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Active Hours 90D"},"trend":{"items":{"type":"integer"},"type":"array","title":"Trend"},"signal_key":{"anyOf":[{"$ref":"#/components/schemas/VipSignalKey"},{"type":"null"}]},"last_action_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Action At"},"last_action_event_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Action Event Key"},"last_sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Sent At"},"last_sent_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Sent Channel"},"added_at":{"type":"string","format":"date-time","title":"Added At"},"rollups_computed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Rollups Computed At"},"sends_used_month":{"type":"integer","title":"Sends Used Month"},"sends_month_label":{"type":"string","title":"Sends Month Label"},"heatmap":{"$ref":"#/components/schemas/ActivityHeatmapResult"},"peak":{"anyOf":[{"$ref":"#/components/schemas/VipPeakInfo"},{"type":"null"}]},"suggested_send_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Suggested Send At"},"monetization_event_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Monetization Event Key"},"engagement_event_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engagement Event Key"},"brief":{"anyOf":[{"$ref":"#/components/schemas/ContactBriefInfo"},{"type":"null"}]}},"type":"object","required":["contact","deposits_90d","sessions_per_week","active_hours_90d","trend","signal_key","last_action_at","last_action_event_key","last_sent_at","last_sent_channel","added_at","rollups_computed_at","sends_used_month","sends_month_label","heatmap","peak","suggested_send_at","monetization_event_key","engagement_event_key"],"title":"VipProfileResponse"},"VipResponse":{"properties":{"contact":{"$ref":"#/components/schemas/ContactSummaryInfo"},"deposits_90d":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Deposits 90D"},"sessions_per_week":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sessions Per Week"},"active_hours_90d":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Active Hours 90D"},"trend":{"items":{"type":"integer"},"type":"array","title":"Trend"},"signal_key":{"anyOf":[{"$ref":"#/components/schemas/VipSignalKey"},{"type":"null"}]},"last_action_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Action At"},"last_action_event_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Action Event Key"},"last_sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Sent At"},"last_sent_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Sent Channel"},"added_at":{"type":"string","format":"date-time","title":"Added At"},"rollups_computed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Rollups Computed At"}},"type":"object","required":["contact","deposits_90d","sessions_per_week","active_hours_90d","trend","signal_key","last_action_at","last_action_event_key","last_sent_at","last_sent_channel","added_at","rollups_computed_at"],"title":"VipResponse"},"VipSignalKey":{"type":"string","enum":["in_app_now","deposit_spike","going_quiet","dormant","steady"],"title":"VipSignalKey","description":"Declared most-urgent first — position in this class IS the priority.\n\n``_derive_signal`` walks these rungs in order and returns the first\nmatch, so each predicate is written assuming every rung above it\nalready failed (``DORMANT`` is bare \"silent 4d+\" because reaching it\nalready means ``GOING_QUIET`` did not match)."},"VipSortField":{"type":"string","enum":["deposits","signal","active_hours","last_action","last_sent","added"],"title":"VipSortField"},"VipsOverviewResponse":{"properties":{"book_value_90d":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Book Value 90D"},"sends_this_week":{"type":"integer","title":"Sends This Week"},"returned_24h_rate_30d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Returned 24H Rate 30D"},"untouched_30d":{"type":"integer","title":"Untouched 30D"},"playbook":{"items":{"$ref":"#/components/schemas/VipPlaybookRowInfo"},"type":"array","title":"Playbook"}},"type":"object","required":["book_value_90d","sends_this_week","returned_24h_rate_30d","untouched_30d","playbook"],"title":"VipsOverviewResponse","description":"Hero stats + per-angle playbook, all windowed to actual sends\n(Lift/Attribution rule 1). Deliberately NO hero delta stat: without\na confidence pill to qualify it, a headline lift over an\noperator-selected cohort would overclaim, so the hero carries the\nplain treated rate instead. ``book_value_90d`` /\n``returned_24h_rate_30d`` are NULL when monetization / engagement is\nunconfigured (``returned_24h_rate_30d`` also when the window has no\nvip sends matured ≥24h — immature sends are excluded from every\nrate, see :class:`VipPlaybookRowInfo`); untagged vip sends pool into\nthe hero counts but appear in no playbook row."},"WaitStepSpec":{"properties":{"id":{"anyOf":[{"type":"string","pattern":"^s[1-9][0-9]{0,5}$"},{"type":"null"}],"title":"Id"},"title":{"type":"string","maxLength":120,"minLength":1,"title":"Title"},"kind":{"type":"string","const":"wait","title":"Kind"},"duration_minutes":{"type":"integer","maximum":43200.0,"minimum":1.0,"title":"Duration Minutes"}},"additionalProperties":false,"type":"object","required":["title","kind","duration_minutes"],"title":"WaitStepSpec"},"WarmMorphSessionResponse":{"properties":{"sandbox_state":{"$ref":"#/components/schemas/MorphSandboxState"}},"type":"object","required":["sandbox_state"],"title":"WarmMorphSessionResponse"},"WarmPolymorphicAppRuntimeResponse":{"properties":{"runtime_state":{"anyOf":[{"$ref":"#/components/schemas/PolymorphicAppRuntimeState"},{"type":"null"}]}},"type":"object","title":"WarmPolymorphicAppRuntimeResponse","description":"Accelerator ack only — the caller is fire-and-forget; ``None``\nmeans no live published runtime."},"WebhookSignalIngestResult":{"properties":{"received":{"type":"integer","title":"Received","default":0},"deduplicated":{"type":"integer","title":"Deduplicated","default":0},"unresolved":{"type":"integer","title":"Unresolved","default":0},"enqueued":{"type":"integer","title":"Enqueued","default":0},"delivered":{"type":"integer","title":"Delivered","default":0},"ack_body":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Ack Body"}},"type":"object","title":"WebhookSignalIngestResult"},"WorkflowDefinitionInfo":{"properties":{"name":{"type":"string","title":"Name"},"max_attempts":{"type":"integer","title":"Max Attempts"},"params_schema":{"additionalProperties":true,"type":"object","title":"Params Schema"},"app_runnable":{"type":"boolean","title":"App Runnable","default":false}},"type":"object","required":["name","max_attempts","params_schema"],"title":"WorkflowDefinitionInfo"},"WorkflowInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"step_count":{"type":"integer","title":"Step Count"},"step_kinds":{"items":{"$ref":"#/components/schemas/WorkflowSpecStepKind"},"type":"array","title":"Step Kinds"},"trigger":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/GithubPullRequestOpenedTriggerConfig"},{"$ref":"#/components/schemas/SlackAppMentionTriggerConfig"}],"discriminator":{"propertyName":"kind","mapping":{"github_pull_request_opened":"#/components/schemas/GithubPullRequestOpenedTriggerConfig","slack_app_mention":"#/components/schemas/SlackAppMentionTriggerConfig"}}},{"type":"null"}],"title":"Trigger"},"last_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run At"},"last_run_status":{"anyOf":[{"$ref":"#/components/schemas/WorkflowRunStatus"},{"type":"null"}]},"run_count":{"type":"integer","title":"Run Count"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","description","step_count","step_kinds","last_run_at","last_run_status","run_count"],"title":"WorkflowInfo","description":"``step_count``, ``step_kinds``, and ``trigger`` are derived from\nthe row's own spec, so the shape travels without the body; the run\nprojections arrive from one grouped aggregate per page. ``step_kinds``\nis the step sequence in order, duplicates kept, and ``last_run_status``\nis the run list's own :class:`WorkflowRunStatus`, so each borrows the\nvocabulary its own surface already uses."},"WorkflowLogLineInfo":{"properties":{"ts":{"type":"string","format":"date-time","title":"Ts"},"level":{"type":"string","title":"Level"},"logger":{"type":"string","title":"Logger"},"message":{"type":"string","title":"Message"},"exc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exc"}},"type":"object","required":["ts","level","logger","message"],"title":"WorkflowLogLineInfo"},"WorkflowResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"spec":{"$ref":"#/components/schemas/WorkflowSpec"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","description","spec"],"title":"WorkflowResponse"},"WorkflowRunAdminDetailInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"workflow_name":{"type":"string","title":"Workflow Name"},"workflow_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workflow Id"},"workflow_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Display Name"},"status":{"$ref":"#/components/schemas/WorkflowRunStatus"},"run_at":{"type":"string","format":"date-time","title":"Run At"},"failed_attempts":{"type":"integer","title":"Failed Attempts"},"max_attempts":{"type":"integer","title":"Max Attempts"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"cancel_requested_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancel Requested At"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"output_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Output Bytes"},"failure_log_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Failure Log Bytes"},"waiting_signal_step_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Waiting Signal Step Key"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"organization_name":{"type":"string","title":"Organization Name"},"lease_expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Lease Expires At"},"steps":{"items":{"$ref":"#/components/schemas/WorkflowStepInfo"},"type":"array","title":"Steps"},"has_input":{"type":"boolean","title":"Has Input","default":false},"has_output":{"type":"boolean","title":"Has Output","default":false},"has_failure_log":{"type":"boolean","title":"Has Failure Log","default":false}},"type":"object","required":["id","workflow_name","status","run_at","failed_attempts","max_attempts","created_at","started_at","finished_at","cancel_requested_at","error_message","output_bytes","organization_id","organization_name","lease_expires_at","steps"],"title":"WorkflowRunAdminDetailInfo"},"WorkflowRunAdminInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"workflow_name":{"type":"string","title":"Workflow Name"},"workflow_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workflow Id"},"workflow_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Display Name"},"status":{"$ref":"#/components/schemas/WorkflowRunStatus"},"run_at":{"type":"string","format":"date-time","title":"Run At"},"failed_attempts":{"type":"integer","title":"Failed Attempts"},"max_attempts":{"type":"integer","title":"Max Attempts"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"cancel_requested_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancel Requested At"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"output_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Output Bytes"},"failure_log_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Failure Log Bytes"},"waiting_signal_step_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Waiting Signal Step Key"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"organization_name":{"type":"string","title":"Organization Name"},"lease_expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Lease Expires At"}},"type":"object","required":["id","workflow_name","status","run_at","failed_attempts","max_attempts","created_at","started_at","finished_at","cancel_requested_at","error_message","output_bytes","organization_id","organization_name","lease_expires_at"],"title":"WorkflowRunAdminInfo"},"WorkflowRunInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"workflow_name":{"type":"string","title":"Workflow Name"},"workflow_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workflow Id"},"workflow_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Display Name"},"status":{"$ref":"#/components/schemas/WorkflowRunStatus"},"run_at":{"type":"string","format":"date-time","title":"Run At"},"failed_attempts":{"type":"integer","title":"Failed Attempts"},"max_attempts":{"type":"integer","title":"Max Attempts"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"cancel_requested_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancel Requested At"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"output_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Output Bytes"},"failure_log_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Failure Log Bytes"},"waiting_signal_step_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Waiting Signal Step Key"}},"type":"object","required":["id","workflow_name","status","run_at","failed_attempts","max_attempts","created_at","started_at","finished_at","cancel_requested_at","error_message","output_bytes"],"title":"WorkflowRunInfo"},"WorkflowRunMemberDetailInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"workflow_name":{"type":"string","title":"Workflow Name"},"workflow_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workflow Id"},"workflow_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Display Name"},"status":{"$ref":"#/components/schemas/WorkflowRunStatus"},"run_at":{"type":"string","format":"date-time","title":"Run At"},"failed_attempts":{"type":"integer","title":"Failed Attempts"},"max_attempts":{"type":"integer","title":"Max Attempts"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"cancel_requested_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancel Requested At"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"output_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Output Bytes"},"failure_log_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Failure Log Bytes"},"waiting_signal_step_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Waiting Signal Step Key"},"steps":{"items":{"$ref":"#/components/schemas/WorkflowStepInfo"},"type":"array","title":"Steps"}},"type":"object","required":["id","workflow_name","status","run_at","failed_attempts","max_attempts","created_at","started_at","finished_at","cancel_requested_at","error_message","output_bytes","steps"],"title":"WorkflowRunMemberDetailInfo"},"WorkflowRunPayloadInfo":{"properties":{"kind":{"$ref":"#/components/schemas/WorkflowRunPayloadKind"},"step_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Key"},"bytes":{"type":"integer","title":"Bytes"},"is_truncated":{"type":"boolean","title":"Is Truncated"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"lines":{"anyOf":[{"items":{"$ref":"#/components/schemas/WorkflowLogLineInfo"},"type":"array"},{"type":"null"}],"title":"Lines"}},"type":"object","required":["kind","step_key","bytes","is_truncated"],"title":"WorkflowRunPayloadInfo"},"WorkflowRunPayloadKind":{"type":"string","enum":["run_input","run_output","step_output","step_log","failure_log"],"title":"WorkflowRunPayloadKind"},"WorkflowRunStatus":{"type":"string","enum":["queued","running","waiting","succeeded","failed","cancelled"],"title":"WorkflowRunStatus"},"WorkflowScheduleAdminInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"organization_name":{"type":"string","title":"Organization Name"},"workflow_name":{"type":"string","title":"Workflow Name"},"params":{"additionalProperties":true,"type":"object","title":"Params"},"cron":{"type":"string","title":"Cron"},"timezone":{"type":"string","title":"Timezone"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"next_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Run At"},"last_enqueued_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Enqueued At"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"created_by_member_id":{"type":"string","format":"uuid","title":"Created By Member Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","organization_name","workflow_name","params","cron","timezone","is_enabled","next_run_at","last_enqueued_at","last_error","created_by_member_id","created_at","updated_at"],"title":"WorkflowScheduleAdminInfo"},"WorkflowSignalOutcome":{"type":"string","enum":["accepted","buffered","ignored"],"title":"WorkflowSignalOutcome"},"WorkflowSignalRequest":{"properties":{"payload":{"additionalProperties":true,"type":"object","title":"Payload"}},"type":"object","required":["payload"],"title":"WorkflowSignalRequest"},"WorkflowSignalResult":{"properties":{"outcome":{"$ref":"#/components/schemas/WorkflowSignalOutcome"}},"type":"object","required":["outcome"],"title":"WorkflowSignalResult"},"WorkflowSpec":{"properties":{"version":{"type":"integer","const":1,"title":"Version","default":1},"steps":{"items":{"oneOf":[{"$ref":"#/components/schemas/QueryStepSpec"},{"$ref":"#/components/schemas/AgentStepSpec"},{"$ref":"#/components/schemas/ApprovalStepSpec"},{"$ref":"#/components/schemas/WaitStepSpec"},{"$ref":"#/components/schemas/SendEmailStepSpec"},{"$ref":"#/components/schemas/SendSlackStepSpec"},{"$ref":"#/components/schemas/SendPushStepSpec"},{"$ref":"#/components/schemas/GithubCommentStepSpec"}],"discriminator":{"propertyName":"kind","mapping":{"agent":"#/components/schemas/AgentStepSpec","approval":"#/components/schemas/ApprovalStepSpec","github_comment":"#/components/schemas/GithubCommentStepSpec","query":"#/components/schemas/QueryStepSpec","send_email":"#/components/schemas/SendEmailStepSpec","send_push":"#/components/schemas/SendPushStepSpec","send_slack":"#/components/schemas/SendSlackStepSpec","wait":"#/components/schemas/WaitStepSpec"}}},"type":"array","maxItems":20,"title":"Steps"},"trigger":{"anyOf":[{"$ref":"#/components/schemas/WorkflowTriggerSpec"},{"type":"null"}]}},"additionalProperties":false,"type":"object","title":"WorkflowSpec","description":"A workflow's ordered steps and, optionally, the trigger that\nstarts it. Empty is valid at rest — a workflow is saved before it is\nauthored; running one requires at least one step."},"WorkflowSpecStepKind":{"type":"string","enum":["query","agent","approval","wait","send_email","send_slack","send_push","github_comment"],"title":"WorkflowSpecStepKind"},"WorkflowStepInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"step_key":{"type":"string","title":"Step Key"},"kind":{"$ref":"#/components/schemas/WorkflowStepKind"},"status":{"$ref":"#/components/schemas/WorkflowStepStatus"},"output_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Ref"},"output_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Output Bytes"},"wake_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Wake At"},"attempt":{"type":"integer","title":"Attempt"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"log_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Log Ref"},"log_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Log Bytes"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"}},"type":"object","required":["id","step_key","kind","status","output_ref","output_bytes","wake_at","attempt","completed_at","created_at"],"title":"WorkflowStepInfo"},"WorkflowStepKind":{"type":"string","enum":["compute","sleep","signal"],"title":"WorkflowStepKind"},"WorkflowStepStatus":{"type":"string","enum":["waiting","completed","timed_out"],"title":"WorkflowStepStatus"},"WorkflowTriggerSpec":{"properties":{"config":{"oneOf":[{"$ref":"#/components/schemas/GithubPullRequestOpenedTriggerConfig"},{"$ref":"#/components/schemas/SlackAppMentionTriggerConfig"}],"title":"Config","discriminator":{"propertyName":"kind","mapping":{"github_pull_request_opened":"#/components/schemas/GithubPullRequestOpenedTriggerConfig","slack_app_mention":"#/components/schemas/SlackAppMentionTriggerConfig"}}},"enabled":{"type":"boolean","title":"Enabled","default":true}},"additionalProperties":false,"type":"object","required":["config"],"title":"WorkflowTriggerSpec","description":"The signal trigger a workflow stores, with its on/off switch.\n\n``enabled`` lives beside ``config`` inside one optional wrapper so an\nenabled trigger with nothing to match is unrepresentable: pausing\nkeeps the authored config, removing the wrapper removes both."}}}}