{"openapi":"3.1.0","info":{"title":"Atrix Analytics — control plane API","description":"Accounts, organisations, projects, keys, tokens and region tokens. `/app/*` is the console (session cookie); `/v1/*` is programmatic (Bearer token).","license":{"name":"AGPL-3.0-only","identifier":"AGPL-3.0-only"},"version":"0.1.0"},"paths":{"/.well-known/oauth-authorization-server":{"get":{"tags":["oauth"],"summary":"RFC 8414 authorization server metadata.","operationId":"server_metadata","responses":{"200":{"description":"RFC 8414 metadata"}}}},"/.well-known/oauth-protected-resource/v1":{"get":{"tags":["oauth"],"summary":"RFC 9728 protected-resource metadata for the `/v1` API.","operationId":"resource_metadata","responses":{"200":{"description":"RFC 9728 metadata"}}}},"/app/auth/change-password":{"post":{"tags":["auth"],"summary":"Change your password. Requires the current one; signs out every other session.","operationId":"change_password","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordRequest"}}},"required":true},"responses":{"204":{"description":"Changed; other sessions revoked"},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/auth/login":{"post":{"tags":["auth"],"operationId":"login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Logged in; `atx_session` cookie set","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeResponse"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/app/auth/logout":{"post":{"tags":["auth"],"operationId":"logout","responses":{"204":{"description":"Session revoked, cookie cleared"}},"security":[{"session":[]}]}},"/app/auth/password-reset":{"post":{"tags":["auth"],"summary":"Email a password-reset link. Always 202: the response never says whether the address has an\naccount.","operationId":"request_password_reset","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetRequest"}}},"required":true},"responses":{"202":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptedResponse"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/app/auth/password-reset/confirm":{"post":{"tags":["auth"],"summary":"Set a new password with the emailed token. Signs out every session.","operationId":"confirm_password_reset","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetConfirm"}}},"required":true},"responses":{"204":{"description":"Password set; all sessions revoked"},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/app/auth/sessions":{"get":{"tags":["auth"],"summary":"Your signed-in sessions (never with an IP address).","operationId":"list_sessions","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionList"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/auth/sessions/revoke-others":{"post":{"tags":["auth"],"summary":"Sign out every session except this one.","operationId":"revoke_other_sessions","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeOthersResponse"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/auth/sessions/{session_id}":{"delete":{"tags":["auth"],"summary":"Sign out one of your sessions.","operationId":"revoke_session","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/auth/signup":{"post":{"tags":["auth"],"summary":"Create an account, its personal organisation, and a session.","operationId":"signup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupRequest"}}},"required":true},"responses":{"201":{"description":"Signed up; `atx_session` cookie set","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeResponse"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/app/auth/verify-email":{"post":{"tags":["auth"],"operationId":"verify_email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenRequest"}}},"required":true},"responses":{"204":{"description":"Email verified"},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/app/auth/verify-email/send":{"post":{"tags":["auth"],"summary":"Send a fresh verification link (no-op when the email is already verified).","operationId":"resend_verification","responses":{"204":{"description":""},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/invitations/accept":{"post":{"tags":["members"],"summary":"Accept an invitation addressed to the signed-in user's email.","operationId":"accept_invitation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/me":{"get":{"tags":["auth"],"operationId":"me","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeResponse"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/oauth/connections":{"get":{"tags":["oauth"],"summary":"Your OAuth connections (MCP clients and other apps you approved).","operationId":"list_connections","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionList"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/oauth/connections/{grant_id}":{"delete":{"tags":["oauth"],"summary":"Disconnect: revokes the grant and every token cut from it.","operationId":"revoke_connection","parameters":[{"name":"grant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/orgs":{"get":{"tags":["orgs"],"operationId":"list_orgs","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgList"}}}}},"security":[{"session":[]}]},"post":{"tags":["orgs"],"operationId":"create_org","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgNameRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgDto"}}}}},"security":[{"session":[]}]}},"/app/orgs/{org_id}":{"patch":{"tags":["orgs"],"operationId":"rename_org","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgNameRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/orgs/{org_id}/billing":{"get":{"tags":["billing"],"summary":"Billing overview: plan, usage this period, current and projected invoice, spend cap, ingest stage.","operationId":"overview","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Billing overview","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/orgs/{org_id}/billing/cap":{"patch":{"tags":["billing"],"summary":"Change the spend cap. Audited; the new ingest policy reaches capture within a minute.","operationId":"set_cap","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CapRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CapResponse"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/orgs/{org_id}/billing/checkout":{"post":{"tags":["billing"],"summary":"Upgrade: a Stripe Checkout URL, or — with a live subscription — an in-place plan change prorated\nby Stripe.","operationId":"checkout","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}},"required":true},"responses":{"200":{"description":"`{kind: redirect, url}` or `{kind: plan_changed, plan, proration}`","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/orgs/{org_id}/billing/portal":{"post":{"tags":["billing"],"summary":"A Stripe Customer Portal session (payment methods, invoices, cancellation).","operationId":"portal","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalResponse"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/orgs/{org_id}/invitations":{"post":{"tags":["members"],"operationId":"invite","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitationDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/orgs/{org_id}/invitations/{invitation_id}":{"delete":{"tags":["members"],"operationId":"revoke_invitation","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"invitation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/orgs/{org_id}/members":{"get":{"tags":["members"],"operationId":"list_members","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MembersResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/orgs/{org_id}/members/{member_id}":{"delete":{"tags":["members"],"operationId":"remove_member","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"member_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"patch":{"tags":["members"],"operationId":"change_role","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"member_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/orgs/{org_id}/projects":{"get":{"tags":["projects"],"operationId":"list_org_projects","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectList"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"post":{"tags":["projects"],"summary":"Create a project in a live region: data id, three environments and a public key per\nenvironment (mirrored into the region's key registry).","operationId":"create_project","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectResponse"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}":{"get":{"tags":["projects"],"operationId":"get_project","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"delete":{"tags":["projects"],"summary":"Soft-delete a project and revoke all of its keys.","operationId":"delete_project","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"patch":{"tags":["projects"],"operationId":"rename_project","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenameRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/annotations":{"get":{"tags":["annotations"],"operationId":"list_annotations","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"path","description":"RFC 3339; default 90 days ago.","required":true,"schema":{"type":["string","null"],"format":"date-time"}},{"name":"to","in":"path","description":"RFC 3339; default now + 1 day.","required":true,"schema":{"type":["string","null"],"format":"date-time"}},{"name":"kind","in":"path","required":true,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnnotationListResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"post":{"tags":["annotations"],"operationId":"create_annotation","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnnotationCreateRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnnotationDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/annotations/{annotation_id}":{"delete":{"tags":["annotations"],"operationId":"delete_annotation","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"annotation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"patch":{"tags":["annotations"],"operationId":"update_annotation","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"annotation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnnotationUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnnotationDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/catalog/codegen":{"get":{"tags":["catalog"],"operationId":"catalog_codegen","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogCodegenExport"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/catalog/events":{"get":{"tags":["catalog"],"operationId":"list_catalog","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"status","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"search","in":"path","required":true,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogEventListResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"post":{"tags":["catalog"],"operationId":"create_catalog_event","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogEventCreateRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogEventDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/catalog/events/{event_id}":{"get":{"tags":["catalog"],"operationId":"get_catalog_event","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogEventDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"delete":{"tags":["catalog"],"operationId":"delete_catalog_event","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"patch":{"tags":["catalog"],"operationId":"update_catalog_event","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogEventUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogEventDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/catalog/sync":{"post":{"tags":["catalog"],"summary":"Merge what the region has seen into the plan (planned → implemented, unknown → unplanned).","operationId":"sync_catalog","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"Optional","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogSyncRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogSyncResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/cohorts":{"get":{"tags":["cohorts"],"operationId":"list_cohorts","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortListResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"post":{"tags":["cohorts"],"operationId":"create_cohort","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortCreateRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/cohorts/{cohort_id}":{"get":{"tags":["cohorts"],"operationId":"get_cohort","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"cohort_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"delete":{"tags":["cohorts"],"operationId":"delete_cohort","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"cohort_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"patch":{"tags":["cohorts"],"operationId":"update_cohort","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"cohort_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/cohorts/{cohort_id}/calculate":{"post":{"tags":["cohorts"],"summary":"Ask the region to recompute the cohort; records the size it reports.","operationId":"calculate_cohort","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"cohort_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"Optional","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortCalculateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/dashboards":{"get":{"tags":["dashboards"],"operationId":"list_dashboards","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardListResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"post":{"tags":["dashboards"],"operationId":"create_dashboard","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardCreateRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/dashboards/{dashboard_id}":{"get":{"tags":["dashboards"],"operationId":"get_dashboard","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dashboard_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"delete":{"tags":["dashboards"],"operationId":"delete_dashboard","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dashboard_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"patch":{"tags":["dashboards"],"operationId":"update_dashboard","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dashboard_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/dashboards/{dashboard_id}/layout":{"post":{"tags":["dashboards"],"operationId":"save_layout","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dashboard_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LayoutRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/dashboards/{dashboard_id}/tiles":{"post":{"tags":["dashboards"],"operationId":"add_tile","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dashboard_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TileCreateRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardTileDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/dashboards/{dashboard_id}/tiles/{tile_id}":{"delete":{"tags":["dashboards"],"operationId":"delete_tile","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dashboard_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"tile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"patch":{"tags":["dashboards"],"operationId":"update_tile","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dashboard_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"tile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TileUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardTileDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/erasure-requests":{"get":{"tags":["compliance"],"operationId":"app_list","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"`{requests: [ErasureJob]}`, newest first (erasure-job.schema.json)","content":{"application/json":{}}},"403":{"description":"missing persons.erase","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"post":{"tags":["compliance"],"operationId":"app_create","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErasureCreate"}}},"required":true},"responses":{"202":{"description":"ErasureJob, `pending` (erasure-job.schema.json); raw ids go only to the region","content":{"application/json":{}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"missing persons.erase","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/erasure-requests/{request_id}":{"get":{"tags":["compliance"],"operationId":"app_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"ErasureJob with live per-store progress (erasure-job.schema.json)","content":{"application/json":{}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/erasure-requests/{request_id}/certificate":{"get":{"tags":["compliance"],"operationId":"app_certificate","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"`{certificate, signature, verify}`: the Ed25519-signed erasure certificate","content":{"application/json":{}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"not completed yet, or unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/experiments":{"get":{"tags":["experiments"],"operationId":"list_experiments","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentListResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"post":{"tags":["experiments"],"operationId":"create_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentCreateRequest"}}},"required":true},"responses":{"200":{"description":"dry_run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DryRun"}}}},"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/experiments/plan":{"post":{"tags":["experiments"],"operationId":"plan_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentPlanRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentPlanResponse"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/experiments/{experiment_id}":{"get":{"tags":["experiments"],"operationId":"get_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"delete":{"tags":["experiments"],"operationId":"archive_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"archived","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"patch":{"tags":["experiments"],"operationId":"update_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/experiments/{experiment_id}/launch":{"post":{"tags":["experiments"],"operationId":"launch_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentTransitionRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"flags.production needed in production","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/experiments/{experiment_id}/results":{"get":{"tags":["experiments"],"operationId":"experiment_results","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"refresh","in":"path","description":"Recompute now instead of returning a result younger than 5 minutes.","required":true,"schema":{"type":["boolean","null"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentResultsDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/experiments/{experiment_id}/ship":{"post":{"tags":["experiments"],"operationId":"ship_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentTransitionRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"experiments.ship (and flags.production in production)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"experiment_blocked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/experiments/{experiment_id}/stop":{"post":{"tags":["experiments"],"operationId":"stop_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentTransitionRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/findings/destinations":{"get":{"tags":["findings"],"operationId":"list_destinations","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DestinationListResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"post":{"tags":["findings"],"operationId":"create_destination","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DestinationCreateRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DestinationDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/findings/destinations/{destination_id}":{"delete":{"tags":["findings"],"operationId":"delete_destination","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"destination_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"patch":{"tags":["findings"],"operationId":"update_destination","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"destination_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DestinationUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DestinationDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/findings/rules":{"get":{"tags":["findings"],"operationId":"list_rules","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleListResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"post":{"tags":["findings"],"operationId":"create_rule","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleCreateRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/findings/rules/{rule_id}":{"delete":{"tags":["findings"],"operationId":"delete_rule","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"patch":{"tags":["findings"],"operationId":"update_rule","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/flags":{"get":{"tags":["flags"],"operationId":"list_flags","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"archived","in":"path","description":"Include archived flags.","required":true,"schema":{"type":["boolean","null"]}},{"name":"search","in":"path","description":"Case-insensitive match on key or name.","required":true,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagListResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"post":{"tags":["flags"],"operationId":"create_flag","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagCreateRequest"}}},"required":true},"responses":{"200":{"description":"dry_run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DryRun"}}}},"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/flags/publications":{"get":{"tags":["flags"],"operationId":"list_publications","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"environment","in":"path","required":true,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagPublicationListResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/flags/secret-keys":{"get":{"tags":["flags"],"operationId":"list_secret_keys","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagSecretKeyListResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"post":{"tags":["flags"],"operationId":"create_secret_key","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagSecretKeyCreateRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagSecretKeyCreated"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/flags/secret-keys/{key_id}":{"delete":{"tags":["flags"],"operationId":"revoke_secret_key","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/flags/{flag_id}":{"get":{"tags":["flags"],"operationId":"get_flag","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"flag_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"delete":{"tags":["flags"],"operationId":"archive_flag","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"flag_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"archived","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"patch":{"tags":["flags"],"operationId":"update_flag","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"flag_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/flags/{flag_id}/environments/{environment}":{"patch":{"tags":["flags"],"operationId":"update_flag_environment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"flag_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"environment","in":"path","required":true,"schema":{"type":"string"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagEnvironmentUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"missing flags:write, or flags.production for a live production config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/insights":{"get":{"tags":["insights"],"operationId":"list_insights","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"search","in":"path","description":"Case-insensitive substring of the name.","required":true,"schema":{"type":["string","null"]}},{"name":"tag","in":"path","required":true,"schema":{"type":["string","null"]}},{"name":"favorited","in":"path","description":"Only the caller's favourites (`true`) or only the others (`false`).","required":true,"schema":{"type":["boolean","null"]}},{"name":"kind","in":"path","description":"trends | funnel | retention | paths | lifecycle | stickiness","required":true,"schema":{"type":["string","null"]}},{"name":"limit","in":"path","description":"Default 50, max 200.","required":true,"schema":{"type":["integer","null"],"format":"int64"}},{"name":"offset","in":"path","required":true,"schema":{"type":["integer","null"],"format":"int64"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightListResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"post":{"tags":["insights"],"operationId":"create_insight","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightCreateRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/insights/{insight_id}":{"get":{"tags":["insights"],"operationId":"get_insight","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"insight_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"delete":{"tags":["insights"],"operationId":"delete_insight","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"insight_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"patch":{"tags":["insights"],"operationId":"update_insight","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"insight_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/insights/{insight_id}/favorite":{"put":{"tags":["insights"],"summary":"Star or un-star an insight for yourself (favourites are per user).","operationId":"favorite_insight","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"insight_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightFavoriteRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/integrations":{"get":{"tags":["integrations"],"operationId":"list","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationList"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"post":{"tags":["integrations"],"operationId":"create","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIntegrationRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"INTEGRATIONS_KEK not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/integrations/{integration_id}":{"get":{"tags":["integrations"],"operationId":"get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"delete":{"tags":["integrations"],"operationId":"delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"patch":{"tags":["integrations"],"operationId":"update","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateIntegrationRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/integrations/{integration_id}/rotate-token":{"post":{"tags":["integrations"],"operationId":"rotate_token","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/keys":{"get":{"tags":["keys"],"operationId":"list_keys","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyList"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/keys/{key_id}/revoke":{"post":{"tags":["keys"],"operationId":"revoke_key","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/keys/{key_id}/rotate":{"post":{"tags":["keys"],"operationId":"rotate_key","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"Optional","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateKeyRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateKeyResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/metrics":{"get":{"tags":["metrics"],"operationId":"list_metrics","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"archived","in":"path","required":true,"schema":{"type":["boolean","null"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricListResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"post":{"tags":["metrics"],"operationId":"create_metric","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricCreateRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/metrics/{key}":{"get":{"tags":["metrics"],"operationId":"get_metric","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]},"patch":{"tags":["metrics"],"summary":"Append a new version (uncertified).","operationId":"update_metric","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/metrics/{key}/archive":{"post":{"tags":["metrics"],"operationId":"archive_metric","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/metrics/{key}/certify":{"post":{"tags":["metrics"],"operationId":"certify_metric","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/metrics/{key}/versions":{"get":{"tags":["metrics"],"operationId":"metric_versions","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricListResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/projects/{project_id}/region-token":{"post":{"tags":["region"],"summary":"Short-lived (≤ 15 min) EdDSA JWT for querying the project's region directly.","operationId":"region_token","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"Optional","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionTokenRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionTokenResponse"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/regions":{"get":{"tags":["region"],"summary":"The region registry: where a project's data can live. Reference data; no session needed.","operationId":"list_regions","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionList"}}}}}}},"/app/tokens":{"get":{"tags":["tokens"],"operationId":"list_tokens","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenList"}}}}},"security":[{"session":[]}]},"post":{"tags":["tokens"],"summary":"Create a personal access token. The secret is in the response once and never again.","operationId":"create_token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTokenRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatedTokenResponse"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/app/tokens/{token_id}":{"delete":{"tags":["tokens"],"operationId":"revoke_token","parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"session":[]}]}},"/healthz":{"get":{"tags":["ops"],"summary":"Liveness + dependency probe: global Postgres and every configured regional Postgres.","operationId":"healthz","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}},"503":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/oauth/register":{"post":{"tags":["oauth"],"summary":"RFC 7591 dynamic client registration. Public clients (PKCE, no secret) only.","operationId":"register","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterResponse"}}}},"400":{"description":"RFC 7591 error"}}}},"/oauth/revoke":{"post":{"tags":["oauth"],"summary":"RFC 7009 revocation. Always 200 for a well-formed request.","operationId":"revoke","responses":{"200":{"description":"Revoked (or never existed)"}}}},"/oauth/token":{"post":{"tags":["oauth"],"operationId":"token","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/TokenForm"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"400":{"description":"RFC 6749 §5.2 error"}}}},"/v1/erasure-certificates/keys":{"get":{"tags":["v1"],"operationId":"v1_keys","responses":{"200":{"description":"`{keys: [{alg: Ed25519, kid, public_key}]}`: the certificate verification keys","content":{"application/json":{}}}}}},"/v1/erasure-certificates/verify":{"post":{"tags":["v1"],"operationId":"v1_verify","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyRequest"}}},"required":true},"responses":{"200":{"description":"`{valid, key_id, …}`: whether the signature is ours over exactly this certificate","content":{"application/json":{}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/me":{"get":{"tags":["v1"],"summary":"The calling token, its user, and its effective scopes.","operationId":"me","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1MeResponse"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":[]}]}},"/v1/orgs":{"get":{"tags":["v1"],"summary":"The org this token belongs to (`org:read`).","operationId":"list_orgs","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgList"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["org:read"]}]}},"/v1/orgs/{org_id}":{"get":{"tags":["v1"],"operationId":"get_org","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["org:read"]}]}},"/v1/orgs/{org_id}/projects":{"get":{"tags":["v1"],"operationId":"list_org_projects","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectList"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:read"]}]},"post":{"tags":["v1"],"summary":"Create a project (`projects:write`). `?dry_run=true` validates and returns the plan.","operationId":"create_project","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":["string","null"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectRequest"}}},"required":true},"responses":{"200":{"description":"dry_run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DryRun"}}}},"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectResponse"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"422":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:write"]}]}},"/v1/projects":{"get":{"tags":["v1"],"summary":"Projects this token can read (`projects:read`).","operationId":"list_projects","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectList"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:read"]}]}},"/v1/projects/{project_id}":{"get":{"tags":["v1"],"operationId":"get_project","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:read"]}]},"delete":{"tags":["v1"],"summary":"Soft-delete and revoke every key (`projects:write`).","operationId":"delete_project","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"dry_run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DryRun"}}}},"204":{"description":""},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:write"]}]},"patch":{"tags":["v1"],"summary":"Rename (`projects:write`).","operationId":"rename_project","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":["string","null"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenameRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:write"]}]}},"/v1/projects/{project_id}/catalog/codegen":{"get":{"tags":["v1"],"summary":"The tracking plan for `atrix codegen` (Bearer token with `catalog:read`).","operationId":"v1_catalog_codegen","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogCodegenExport"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":[]}]}},"/v1/projects/{project_id}/environments":{"get":{"tags":["v1"],"operationId":"list_environments","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentList"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:read"]}]}},"/v1/projects/{project_id}/erasure-requests":{"get":{"tags":["v1"],"operationId":"v1_list","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"`{requests: [ErasureJob]}`, newest first (erasure-job.schema.json)","content":{"application/json":{}}},"403":{"description":"missing persons.erase","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["persons.erase"]}]},"post":{"tags":["v1"],"operationId":"v1_create","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErasureCreate"}}},"required":true},"responses":{"202":{"description":"ErasureJob, `pending` (erasure-job.schema.json); raw ids go only to the region","content":{"application/json":{}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"missing persons.erase","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["persons.erase"]}]}},"/v1/projects/{project_id}/erasure-requests/{request_id}":{"get":{"tags":["v1"],"operationId":"v1_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"ErasureJob with live per-store progress (erasure-job.schema.json)","content":{"application/json":{}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["persons.erase"]}]}},"/v1/projects/{project_id}/erasure-requests/{request_id}/certificate":{"get":{"tags":["v1"],"operationId":"v1_certificate","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"`{certificate, signature, verify}`: the Ed25519-signed erasure certificate","content":{"application/json":{}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"not completed yet, or unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["persons.erase"]}]}},"/v1/projects/{project_id}/experiments":{"get":{"tags":["v1"],"operationId":"v1_list_experiments","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentListResponse"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["experiments:read"]}]},"post":{"tags":["v1"],"operationId":"v1_create_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":["string","null"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentCreateRequest"}}},"required":true},"responses":{"200":{"description":"dry_run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DryRun"}}}},"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["experiments:write"]}]}},"/v1/projects/{project_id}/experiments/plan":{"post":{"tags":["v1"],"operationId":"v1_plan_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentPlanRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentPlanResponse"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["experiments:read"]}]}},"/v1/projects/{project_id}/experiments/{experiment_id}":{"get":{"tags":["v1"],"operationId":"v1_get_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["experiments:read"]}]},"delete":{"tags":["v1"],"operationId":"v1_archive_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"archived","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["experiments:write"]}]},"patch":{"tags":["v1"],"operationId":"v1_update_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["experiments:write"]}]}},"/v1/projects/{project_id}/experiments/{experiment_id}/launch":{"post":{"tags":["v1"],"operationId":"v1_launch_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentTransitionRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"flags.production needed in production","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["experiments:write"]}]}},"/v1/projects/{project_id}/experiments/{experiment_id}/results":{"get":{"tags":["v1"],"operationId":"v1_experiment_results","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"refresh","in":"path","description":"Recompute now instead of returning a result younger than 5 minutes.","required":true,"schema":{"type":["boolean","null"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentResultsDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["experiments:read"]}]}},"/v1/projects/{project_id}/experiments/{experiment_id}/ship":{"post":{"tags":["v1"],"operationId":"v1_ship_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentTransitionRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"experiments.ship (and flags.production in production)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"experiment_blocked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["experiments:write"]}]}},"/v1/projects/{project_id}/experiments/{experiment_id}/stop":{"post":{"tags":["v1"],"operationId":"v1_stop_experiment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentTransitionRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["experiments:write"]}]}},"/v1/projects/{project_id}/flags":{"get":{"tags":["v1"],"operationId":"v1_list_flags","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"archived","in":"path","description":"Include archived flags.","required":true,"schema":{"type":["boolean","null"]}},{"name":"search","in":"path","description":"Case-insensitive match on key or name.","required":true,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagListResponse"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["flags:read"]}]},"post":{"tags":["v1"],"operationId":"v1_create_flag","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":["string","null"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagCreateRequest"}}},"required":true},"responses":{"200":{"description":"dry_run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DryRun"}}}},"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["flags:write"]}]}},"/v1/projects/{project_id}/flags/publications":{"get":{"tags":["v1"],"operationId":"v1_list_publications","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"environment","in":"path","required":true,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagPublicationListResponse"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["flags:read"]}]}},"/v1/projects/{project_id}/flags/{flag_id}":{"get":{"tags":["v1"],"operationId":"v1_get_flag","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"flag_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["flags:read"]}]},"delete":{"tags":["v1"],"operationId":"v1_archive_flag","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"flag_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"archived","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["flags:write"]}]},"patch":{"tags":["v1"],"operationId":"v1_update_flag","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"flag_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["flags:write"]}]}},"/v1/projects/{project_id}/flags/{flag_id}/environments/{environment}":{"patch":{"tags":["v1"],"operationId":"v1_update_flag_environment","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"flag_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"environment","in":"path","required":true,"schema":{"type":"string"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagEnvironmentUpdateRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"missing flags:write, or flags.production for a live production config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["flags:write"]}]}},"/v1/projects/{project_id}/integrations":{"get":{"tags":["v1"],"operationId":"v1_list","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationList"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:read"]}]},"post":{"tags":["v1"],"operationId":"v1_create","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":["string","null"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIntegrationRequest"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:write"]}]}},"/v1/projects/{project_id}/integrations/{integration_id}":{"get":{"tags":["v1"],"operationId":"v1_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:read"]}]},"delete":{"tags":["v1"],"operationId":"v1_delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":""},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:write"]}]},"patch":{"tags":["v1"],"operationId":"v1_update","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":["string","null"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateIntegrationRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:write"]}]}},"/v1/projects/{project_id}/integrations/{integration_id}/rotate-token":{"post":{"tags":["v1"],"operationId":"v1_rotate_token","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:write"]}]}},"/v1/projects/{project_id}/keys":{"get":{"tags":["v1"],"operationId":"list_keys","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyList"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:read"]}]}},"/v1/projects/{project_id}/keys/{key_id}/revoke":{"post":{"tags":["v1"],"operationId":"revoke_key","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:write"]}]}},"/v1/projects/{project_id}/keys/{key_id}/rotate":{"post":{"tags":["v1"],"operationId":"rotate_key","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":["string","null"]}}],"requestBody":{"description":"Optional","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateKeyRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateKeyResponse"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["projects:write"]}]}},"/v1/projects/{project_id}/query":{"post":{"tags":["v1"],"summary":"Validate a Query IR and get the region request to run it (`query:read`). The control plane\nreturns a `query:read` region token and the region endpoint; results never pass through it.","operationId":"query","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1QueryRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1QueryResponse"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":["query:read"]}]}},"/v1/projects/{project_id}/region-token":{"post":{"tags":["v1"],"summary":"Region token carrying the token's regional scopes (∩ the owner's role), optionally narrowed.","operationId":"region_token","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"Optional","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionTokenRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionTokenResponse"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[{"bearer":[]}]}},"/webhooks/stripe":{"post":{"tags":["billing"],"summary":"Stripe webhook endpoint. Verified by `Stripe-Signature`; each event id is applied exactly once.\nAnswers 200 for anything verified (including events billing ignores), 400 for a bad signature, and\n5xx only for transient failures Stripe should retry.","operationId":"stripe_webhook","responses":{"200":{"description":"`{outcome: processed|duplicate|ignored}`","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}}},"components":{"schemas":{"AcceptedResponse":{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"Always `accepted`: the response never reveals whether the address has an account."}}},"AnnotationCreateRequest":{"type":"object","required":["kind","content","occurred_at"],"properties":{"content":{"type":"string"},"kind":{"type":"string"},"occurred_at":{"type":"string","format":"date-time"},"ref":{"type":["object","null"]}},"additionalProperties":false},"AnnotationDto":{"type":"object","description":"`Annotation` (defs-annotation.schema.json).","required":["id","project_id","kind","source","content","occurred_at","created_at"],"properties":{"content":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"created_by":{"type":["string","null"],"format":"uuid"},"id":{"type":"string","format":"uuid"},"kind":{"type":"string"},"occurred_at":{"type":"string","format":"date-time"},"project_id":{"type":"string","format":"uuid"},"ref":{"type":["object","null"]},"source":{"type":"string"}}},"AnnotationListResponse":{"type":"object","required":["annotations"],"properties":{"annotations":{"type":"array","items":{"$ref":"#/components/schemas/AnnotationDto"}}}},"AnnotationUpdateRequest":{"type":"object","properties":{"content":{"type":["string","null"]},"kind":{"type":["string","null"]},"occurred_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false},"CapRequest":{"type":"object","required":["spend_cap_minor"],"properties":{"spend_cap_minor":{"type":"integer","format":"int64","description":"The new spend cap in minor units of the account currency. Mandatory, never below the plan price\nplus overage already billed this period."}},"additionalProperties":false},"CapResponse":{"type":"object","required":["spend_cap_minor","previous_spend_cap_minor"],"properties":{"previous_spend_cap_minor":{"type":"integer","format":"int64"},"spend_cap_minor":{"type":"integer","format":"int64"}}},"CatalogCodegenExport":{"type":"object","description":"`CatalogCodegenExport` — what `atrix codegen` consumes.","required":["project_id","catalog_version","events"],"properties":{"catalog_version":{"type":"integer","format":"int64"},"events":{"type":"array","items":{"$ref":"#/components/schemas/CodegenEventDto"}},"project_id":{"type":"string","format":"uuid"}}},"CatalogEventCreateRequest":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"]},"display_name":{"type":["string","null"]},"name":{"type":"string"},"owner_id":{"type":["string","null"],"format":"uuid"},"pii_level":{"type":["string","null"]},"platforms":{"type":["array","null"],"items":{"type":"string"}},"properties":{"type":["array","null"],"items":{"$ref":"#/components/schemas/CatalogPropertyInput"}},"question":{"type":["string","null"]},"status":{"type":["string","null"]},"tags":{"type":["array","null"],"items":{"type":"string"}}},"additionalProperties":false},"CatalogEventDto":{"type":"object","description":"`CatalogEvent` (defs-catalog.schema.json).","required":["id","project_id","name","kind","status","platforms","tags","pii_level","properties","version","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]},"display_name":{"type":["string","null"]},"first_seen_at":{"type":["string","null"],"format":"date-time"},"id":{"type":"string","format":"uuid"},"kind":{"type":"string"},"last_seen_at":{"type":["string","null"],"format":"date-time"},"name":{"type":"string"},"owner_id":{"type":["string","null"],"format":"uuid"},"pii_level":{"type":"string"},"platforms":{"type":"array","items":{"type":"string"}},"project_id":{"type":"string","format":"uuid"},"properties":{"type":"array","items":{"$ref":"#/components/schemas/CatalogPropertyDto"}},"question":{"type":["string","null"]},"status":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"updated_at":{"type":"string","format":"date-time"},"version":{"type":"integer","format":"int32"},"volume_30d":{"type":["integer","null"],"format":"int64"}}},"CatalogEventListResponse":{"type":"object","required":["events","counts"],"properties":{"counts":{"$ref":"#/components/schemas/CatalogStatusCounts"},"events":{"type":"array","items":{"$ref":"#/components/schemas/CatalogEventDto"}}}},"CatalogEventUpdateRequest":{"type":"object","properties":{"description":{"type":["string","null"]},"display_name":{"type":["string","null"]},"owner_id":{"type":["string","null"],"format":"uuid"},"pii_level":{"type":["string","null"]},"platforms":{"type":["array","null"],"items":{"type":"string"}},"properties":{"type":["array","null"],"items":{"$ref":"#/components/schemas/CatalogPropertyInput"}},"question":{"type":["string","null"]},"status":{"type":["string","null"]},"tags":{"type":["array","null"],"items":{"type":"string"}}},"additionalProperties":false},"CatalogPropertyDto":{"type":"object","description":"`CatalogProperty`.","required":["id","scope","name","type","required","pii"],"properties":{"description":{"type":["string","null"]},"enum_values":{"type":["array","null"],"items":{"type":"string"}},"event_id":{"type":["string","null"],"format":"uuid"},"example":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"pii":{"type":"string"},"required":{"type":"boolean"},"scope":{"type":"string"},"type":{"type":"string"}}},"CatalogPropertyInput":{"type":"object","required":["name","type"],"properties":{"description":{"type":["string","null"]},"enum_values":{"type":["array","null"],"items":{"type":"string"}},"example":{"type":["string","null"]},"name":{"type":"string"},"pii":{"type":["string","null"]},"required":{"type":["boolean","null"]},"type":{"type":"string"}},"additionalProperties":false},"CatalogStatusCounts":{"type":"object","required":["planned","implemented","verified","deprecated","unplanned"],"properties":{"deprecated":{"type":"integer","format":"int64"},"implemented":{"type":"integer","format":"int64"},"planned":{"type":"integer","format":"int64"},"unplanned":{"type":"integer","format":"int64"},"verified":{"type":"integer","format":"int64"}}},"CatalogSyncRequest":{"type":"object","properties":{"days":{"type":["integer","null"],"format":"int32","minimum":0},"environment":{"type":["string","null"]}},"additionalProperties":false},"CatalogSyncResponse":{"type":"object","required":["environment","discovered","implemented","unplanned","updated","synced_at"],"properties":{"discovered":{"type":"integer","format":"int64"},"environment":{"type":"string"},"implemented":{"type":"array","items":{"type":"string"}},"synced_at":{"type":"string","format":"date-time"},"unplanned":{"type":"array","items":{"type":"string"}},"updated":{"type":"integer","format":"int64"}}},"ChangePasswordRequest":{"type":"object","required":["current_password","new_password"],"properties":{"current_password":{"type":"string"},"new_password":{"type":"string","description":"Same policy as signup: at least 10 characters, not common, not breached."}},"additionalProperties":false},"CheckoutRequest":{"type":"object","required":["plan"],"properties":{"plan":{"type":"string","description":"`starter`, `growth` or `scale`."}},"additionalProperties":false},"CodegenEventDto":{"type":"object","required":["name","status","properties"],"properties":{"description":{"type":["string","null"]},"name":{"type":"string"},"properties":{"type":"array","items":{"$ref":"#/components/schemas/CodegenPropertyDto"}},"status":{"type":"string"}}},"CodegenPropertyDto":{"type":"object","required":["name","type","required"],"properties":{"description":{"type":["string","null"]},"enum_values":{"type":["array","null"],"items":{"type":"string"}},"name":{"type":"string"},"required":{"type":"boolean"},"type":{"type":"string"}}},"CohortCalculateRequest":{"type":"object","properties":{"environment":{"type":["string","null"]}},"additionalProperties":false},"CohortCalculationDto":{"type":"object","description":"`CohortCalculation`.","required":["status","environment","calculated_at"],"properties":{"calculated_at":{"type":"string","format":"date-time"},"cohort_version":{"type":["integer","null"],"format":"int64"},"environment":{"type":"string"},"error":{"type":["string","null"]},"size":{"type":["integer","null"],"format":"int64"},"status":{"type":"string","description":"ok | error"}}},"CohortCreateRequest":{"type":"object","required":["name","kind"],"properties":{"definition":{"type":["object","null"]},"description":{"type":["string","null"]},"kind":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false},"CohortDto":{"type":"object","description":"`Cohort` (defs-cohort.schema.json).","required":["id","project_id","name","kind","version","created_at","updated_at"],"properties":{"calculation":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/CohortCalculationDto"}]},"created_at":{"type":"string","format":"date-time"},"created_by":{"type":["string","null"],"format":"uuid"},"definition":{"type":["object","null"]},"description":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"kind":{"type":"string","description":"dynamic | static"},"name":{"type":"string"},"project_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string","format":"date-time"},"version":{"type":"integer","format":"int32"}}},"CohortListResponse":{"type":"object","required":["cohorts"],"properties":{"cohorts":{"type":"array","items":{"$ref":"#/components/schemas/CohortDto"}}}},"CohortUpdateRequest":{"type":"object","properties":{"definition":{"type":["object","null"]},"description":{"type":["string","null"]},"name":{"type":["string","null"]}},"additionalProperties":false},"ConnectionDto":{"type":"object","required":["id","client_name","client_id","org_id","scopes","created_at"],"properties":{"client_id":{"type":"string"},"client_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid","description":"The grant id."},"last_used_at":{"type":["string","null"],"format":"date-time"},"org_id":{"type":"string","format":"uuid"},"scopes":{"type":"array","items":{"type":"string"}}}},"ConnectionList":{"type":"object","required":["connections"],"properties":{"connections":{"type":"array","items":{"$ref":"#/components/schemas/ConnectionDto"}}}},"CreateIntegrationRequest":{"type":"object","required":["provider"],"properties":{"config":{"type":["object","null"]},"name":{"type":["string","null"]},"provider":{"type":"string","description":"`stripe` | `revenuecat` | `app_store` | `google_play`"},"secret":{"type":["string","null"],"description":"Stripe: the endpoint's signing secret (`whsec_…`). RevenueCat: the Authorization header value\nconfigured in its dashboard. App Store and Google Play take none. Optional at creation: without it\nthe integration is `pending_secret` (deliveries refused) until an update sets it."}},"additionalProperties":false},"CreateProjectRequest":{"type":"object","required":["name","region"],"properties":{"currency":{"type":["string","null"],"description":"ISO 4217, default `USD`."},"name":{"type":"string"},"region":{"type":"string","description":"Region code. Fixed for the life of the project. Only `live` regions are accepted."},"timezone":{"type":["string","null"],"description":"IANA zone, default `UTC`."}},"additionalProperties":false},"CreateProjectResponse":{"type":"object","required":["project","public_keys"],"properties":{"project":{"$ref":"#/components/schemas/ProjectDto"},"public_keys":{"type":"array","items":{"$ref":"#/components/schemas/KeyDto"},"description":"One write-only public key per environment."}}},"CreateTokenRequest":{"type":"object","required":["org_id","name","scopes"],"properties":{"expires_in_days":{"type":["integer","null"],"format":"int32","description":"1–365. Omit for a token that never expires.","minimum":0},"name":{"type":"string"},"org_id":{"type":"string","format":"uuid"},"project_ids":{"type":["array","null"],"items":{"type":"string","format":"uuid"},"description":"Restrict to these projects. Omit for every project in the org."},"scopes":{"type":"array","items":{"type":"string"},"description":"e.g. `[\"projects:read\", \"query:read\"]`. Must be held by your role; no wildcard exists."}},"additionalProperties":false},"CreatedTokenResponse":{"type":"object","required":["token","secret"],"properties":{"secret":{"type":"string","description":"The secret. Shown exactly once; only its hash is stored."},"token":{"$ref":"#/components/schemas/TokenDto"}}},"DashboardCreateRequest":{"type":"object","required":["name"],"properties":{"date_range":{"type":["object","null"]},"description":{"type":["string","null"]},"filters":{"type":["object","null"]},"is_home":{"type":["boolean","null"]},"name":{"type":"string"},"tags":{"type":["array","null"],"items":{"type":"string"}}},"additionalProperties":false},"DashboardDto":{"type":"object","description":"`Dashboard` (defs-dashboard.schema.json).","required":["id","project_id","name","is_home","tags","tiles","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"created_by":{"type":["string","null"],"format":"uuid"},"date_range":{"type":["object","null"]},"description":{"type":["string","null"]},"filters":{"type":["object","null"]},"id":{"type":"string","format":"uuid"},"is_home":{"type":"boolean"},"name":{"type":"string"},"project_id":{"type":"string","format":"uuid"},"tags":{"type":"array","items":{"type":"string"}},"tiles":{"type":"array","items":{"$ref":"#/components/schemas/DashboardTileDto"}},"updated_at":{"type":"string","format":"date-time"}}},"DashboardListResponse":{"type":"object","required":["dashboards"],"properties":{"dashboards":{"type":"array","items":{"$ref":"#/components/schemas/DashboardSummaryDto"}}}},"DashboardSummaryDto":{"type":"object","required":["id","name","is_home","tags","tile_count","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"is_home":{"type":"boolean"},"name":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"tile_count":{"type":"integer","format":"int64"},"updated_at":{"type":"string","format":"date-time"}}},"DashboardTileDto":{"type":"object","required":["id","kind","layout","created_at"],"properties":{"body":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"insight":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/InsightDto"}]},"insight_id":{"type":["string","null"],"format":"uuid"},"kind":{"type":"string","description":"insight | text"},"layout":{"$ref":"#/components/schemas/TileLayout"}}},"DashboardUpdateRequest":{"type":"object","properties":{"date_range":{"type":["object","null"]},"description":{"type":["string","null"]},"filters":{"type":["object","null"]},"is_home":{"type":["boolean","null"]},"name":{"type":["string","null"]},"tags":{"type":["array","null"],"items":{"type":"string"}}},"additionalProperties":false},"DestinationConfig":{"type":"object","properties":{"channel":{"type":["string","null"]},"to":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"DestinationCreateRequest":{"type":"object","required":["name","kind"],"properties":{"config":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/DestinationConfig"}]},"enabled":{"type":["boolean","null"]},"kind":{"type":"string"},"min_severity":{"type":["string","null"]},"name":{"type":"string"},"secret":{"type":["string","null"],"description":"slack: the incoming-webhook URL; webhook: the endpoint URL."},"signing_secret":{"type":["string","null"],"description":"webhook: the HMAC signing secret."}},"additionalProperties":false},"DestinationDto":{"type":"object","description":"`FindingsDestination` (findings-destination.schema.json). The secret is never returned.","required":["id","project_id","name","kind","config","has_secret","min_severity","enabled","created_at","updated_at"],"properties":{"config":{"$ref":"#/components/schemas/DestinationConfig"},"created_at":{"type":"string","format":"date-time"},"created_by":{"type":["string","null"],"format":"uuid"},"enabled":{"type":"boolean"},"has_secret":{"type":"boolean"},"id":{"type":"string","format":"uuid"},"kind":{"type":"string"},"min_severity":{"type":"string"},"name":{"type":"string"},"project_id":{"type":"string","format":"uuid"},"secret_hint":{"type":["string","null"]},"updated_at":{"type":"string","format":"date-time"}}},"DestinationListResponse":{"type":"object","required":["destinations"],"properties":{"destinations":{"type":"array","items":{"$ref":"#/components/schemas/DestinationDto"}}}},"DestinationUpdateRequest":{"type":"object","properties":{"config":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/DestinationConfig"}]},"enabled":{"type":["boolean","null"]},"min_severity":{"type":["string","null"]},"name":{"type":["string","null"]},"secret":{"type":["string","null"]},"signing_secret":{"type":["string","null"]}},"additionalProperties":false},"DryRun":{"type":"object","description":"What a write would do, without doing it (`?dry_run=true` on `/v1` writes).","required":["dry_run","action"],"properties":{"action":{"type":"string","description":"The audit action the write would record, e.g. `project.rename`."},"after":{},"before":{},"dry_run":{"type":"boolean","description":"Always `true`."}}},"EnvironmentDto":{"type":"object","required":["id","name","is_default"],"properties":{"id":{"type":"string","format":"uuid"},"is_default":{"type":"boolean"},"name":{"type":"string"}}},"EnvironmentList":{"type":"object","required":["environments"],"properties":{"environments":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentDto"}}}},"ErasureCreate":{"type":"object","properties":{"distinct_ids":{"type":"array","items":{"type":"string"}},"person_id":{"type":["string","null"],"format":"uuid"},"reason":{"type":["string","null"]}},"additionalProperties":false},"ErrorBody":{"type":"object","required":["error"],"properties":{"error":{"$ref":"#/components/schemas/ErrorDetail"}}},"ErrorDetail":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable code, e.g. `not_found`, `missing_scope`, `validation`."},"message":{"type":"string"}}},"ExperimentCreateRequest":{"type":"object","required":["key","name","flag_id"],"properties":{"alpha":{"type":["number","null"],"format":"double"},"attribution_window_hours":{"type":["integer","null"],"format":"int32"},"control_variant":{"type":["string","null"]},"cuped":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExperimentCuped"}]},"environment":{"type":["string","null"]},"flag_id":{"type":"string","format":"uuid"},"guardrails":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ExperimentGuardrail"}},"hypothesis":{"type":["string","null"]},"key":{"type":"string"},"mde":{"type":["number","null"],"format":"double"},"method":{"type":["string","null"]},"name":{"type":"string"},"power":{"type":["number","null"],"format":"double"},"primary_metric_id":{"type":["string","null"],"format":"uuid"},"secondary_metric_ids":{"type":["array","null"],"items":{"type":"string","format":"uuid"}},"winsor_pct":{"type":["number","null"],"format":"double"}},"additionalProperties":false},"ExperimentCuped":{"type":"object","description":"`ExperimentCuped`.","required":["enabled","pre_period_days"],"properties":{"enabled":{"type":"boolean"},"pre_period_days":{"type":"integer","format":"int32","minimum":0}},"additionalProperties":false},"ExperimentDto":{"type":"object","description":"`Experiment`.","required":["id","project_id","key","name","status","flag_id","flag_key","environment","control_variant","variants","exposure_event","attribution_window_hours","secondary_metrics","guardrails","method","alpha","power","created_at","updated_at"],"properties":{"alpha":{"type":"number","format":"double"},"attribution_window_hours":{"type":"integer","format":"int32"},"control_variant":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"created_by":{"type":["string","null"],"format":"uuid"},"cuped":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExperimentCuped"}]},"decision":{"type":["object","null"]},"end_at":{"type":["string","null"],"format":"date-time"},"environment":{"type":"string"},"exposure_event":{"type":"string"},"flag_id":{"type":"string","format":"uuid"},"flag_key":{"type":"string"},"guardrails":{"type":"array","items":{"$ref":"#/components/schemas/ExperimentGuardrail"}},"hypothesis":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"key":{"type":"string"},"mde":{"type":["number","null"],"format":"double"},"method":{"type":"string"},"name":{"type":"string"},"power":{"type":"number","format":"double"},"primary_metric":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExperimentMetricRef"}]},"project_id":{"type":"string","format":"uuid"},"secondary_metrics":{"type":"array","items":{"$ref":"#/components/schemas/ExperimentMetricRef"}},"shipped_variant":{"type":["string","null"]},"start_at":{"type":["string","null"],"format":"date-time"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"variants":{"type":"array","items":{"type":"object"}},"winsor_pct":{"type":["number","null"],"format":"double"}}},"ExperimentGuardrail":{"type":"object","description":"`ExperimentGuardrail` (request and response).","required":["metric_id","margin"],"properties":{"key":{"type":["string","null"]},"kind":{"type":["string","null"]},"margin":{"type":"number","format":"double"},"margin_kind":{"type":"string","description":"relative (default) | absolute"},"metric_id":{"type":"string","format":"uuid"},"name":{"type":["string","null"]}},"additionalProperties":false},"ExperimentListResponse":{"type":"object","required":["experiments"],"properties":{"experiments":{"type":"array","items":{"$ref":"#/components/schemas/ExperimentDto"}}}},"ExperimentMetricRef":{"type":"object","description":"`ExperimentMetricRef`.","required":["metric_id","key","name","kind","higher_is_better"],"properties":{"higher_is_better":{"type":"boolean"},"key":{"type":"string"},"kind":{"type":"string","description":"proportion | mean | sum | ratio"},"metric_id":{"type":"string","format":"uuid"},"name":{"type":"string"}}},"ExperimentPlanRequest":{"type":"object","description":"`ExperimentPlanRequest`: atrix-stats planning input.","required":["metric","mde"],"properties":{"alpha":{"type":["number","null"],"format":"double"},"control_units":{"type":["number","null"],"format":"double"},"daily_units":{"type":["number","null"],"format":"double"},"mde":{"type":"number","format":"double"},"mde_kind":{"type":["string","null"]},"method":{"type":["string","null"]},"metric":{"type":"object"},"power":{"type":["number","null"],"format":"double"},"variants":{"type":["integer","null"],"format":"int32","minimum":0}},"additionalProperties":false},"ExperimentPlanResponse":{"type":"object","required":["plan"],"properties":{"mde_at_control_units":{"type":["object","null"]},"plan":{"type":"object"}}},"ExperimentResultsDto":{"type":"object","description":"`ExperimentResults`.","required":["experiment_id","computed_at","data_through","stats_version","stats","analysis","metrics"],"properties":{"analysis":{"type":"object"},"computed_at":{"type":"string","format":"date-time"},"data_through":{"type":"string","format":"date-time"},"experiment_id":{"type":"string","format":"uuid"},"metrics":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ExperimentMetricRef"},"propertyNames":{"type":"string"}},"stats":{"type":"object"},"stats_version":{"type":"string"}}},"ExperimentTransitionRequest":{"type":"object","properties":{"override_block":{"type":["boolean","null"]},"reason":{"type":["string","null"]},"variant":{"type":["string","null"]}},"additionalProperties":false},"ExperimentUpdateRequest":{"type":"object","properties":{"alpha":{"type":["number","null"],"format":"double"},"attribution_window_hours":{"type":["integer","null"],"format":"int32"},"control_variant":{"type":["string","null"]},"cuped":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExperimentCuped"}]},"guardrails":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ExperimentGuardrail"}},"hypothesis":{"type":["string","null"]},"mde":{"type":["number","null"],"format":"double"},"method":{"type":["string","null"]},"name":{"type":["string","null"]},"power":{"type":["number","null"],"format":"double"},"primary_metric_id":{"type":["string","null"],"format":"uuid"},"secondary_metric_ids":{"type":["array","null"],"items":{"type":"string","format":"uuid"}},"winsor_pct":{"type":["number","null"],"format":"double"}},"additionalProperties":false},"FlagCreateRequest":{"type":"object","required":["key","name"],"properties":{"description":{"type":["string","null"]},"key":{"type":"string"},"kind":{"type":["string","null"],"description":"boolean | multivariate | remote_config (default boolean)"},"name":{"type":"string"},"payload":{"type":["object","null"]},"rules":{"type":["array","null"],"items":{"type":"object"}},"stickiness":{"type":["string","null"]},"tags":{"type":["array","null"],"items":{"type":"string"}},"variants":{"type":["array","null"],"items":{"type":"object"}}},"additionalProperties":false},"FlagDto":{"type":"object","description":"`Flag`.","required":["id","project_id","key","name","kind","tags","created_at","updated_at","environments"],"properties":{"archived_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"created_by":{"type":["string","null"],"format":"uuid"},"description":{"type":["string","null"]},"environments":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/FlagEnvironmentConfigDto"},"propertyNames":{"type":"string"}},"experiment_id":{"type":["string","null"],"format":"uuid"},"id":{"type":"string","format":"uuid"},"key":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"owner_id":{"type":["string","null"],"format":"uuid"},"project_id":{"type":"string","format":"uuid"},"tags":{"type":"array","items":{"type":"string"}},"updated_at":{"type":"string","format":"date-time"}}},"FlagEnvironmentConfigDto":{"type":"object","description":"`FlagEnvironmentConfig`.","required":["environment","enabled","rules","variants","payload","salt","stickiness","version","updated_at"],"properties":{"enabled":{"type":"boolean"},"environment":{"type":"string"},"payload":{"type":"object"},"rules":{"type":"array","items":{"type":"object"}},"salt":{"type":"string"},"stickiness":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"updated_by":{"type":["string","null"],"format":"uuid"},"variants":{"type":"array","items":{"type":"object"}},"version":{"type":"integer","format":"int32"}}},"FlagEnvironmentUpdateRequest":{"type":"object","properties":{"enabled":{"type":["boolean","null"]},"payload":{"type":["object","null"],"description":"`null` clears the payload."},"rules":{"type":["array","null"],"items":{"type":"object"}},"salt":{"type":["string","null"]},"stickiness":{"type":["string","null"]},"variants":{"type":["array","null"],"items":{"type":"object"}}},"additionalProperties":false},"FlagListResponse":{"type":"object","required":["flags"],"properties":{"flags":{"type":"array","items":{"$ref":"#/components/schemas/FlagDto"}}}},"FlagPublicationDto":{"type":"object","description":"`FlagPublication`.","required":["id","environment","version","checksum","status","created_at"],"properties":{"checksum":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"environment":{"type":"string"},"error":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"published_at":{"type":["string","null"],"format":"date-time"},"status":{"type":"string"},"version":{"type":"integer","format":"int64"}}},"FlagPublicationListResponse":{"type":"object","required":["publications"],"properties":{"publications":{"type":"array","items":{"$ref":"#/components/schemas/FlagPublicationDto"}}}},"FlagSecretKeyCreateRequest":{"type":"object","required":["name","environment"],"properties":{"environment":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false},"FlagSecretKeyCreated":{"type":"object","required":["key","secret"],"properties":{"key":{"$ref":"#/components/schemas/FlagSecretKeyDto"},"secret":{"type":"string","description":"Shown once."}}},"FlagSecretKeyDto":{"type":"object","description":"`FlagSecretKey`.","required":["id","project_id","environment","name","prefix","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"created_by":{"type":["string","null"],"format":"uuid"},"environment":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"prefix":{"type":"string"},"project_id":{"type":"string","format":"uuid"},"revoked_at":{"type":["string","null"],"format":"date-time"}}},"FlagSecretKeyListResponse":{"type":"object","required":["keys"],"properties":{"keys":{"type":"array","items":{"$ref":"#/components/schemas/FlagSecretKeyDto"}}}},"FlagUpdateRequest":{"type":"object","properties":{"description":{"type":["string","null"]},"name":{"type":["string","null"]},"owner_id":{"type":["string","null"],"format":"uuid"},"tags":{"type":["array","null"],"items":{"type":"string"}}},"additionalProperties":false},"HealthResponse":{"type":"object","required":["status","checks"],"properties":{"checks":{"type":"object","description":"`global`, `region:eu`, … → ok | error message.","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"status":{"type":"string","description":"ok | degraded"}}},"InsightCreateRequest":{"type":"object","required":["name","query"],"properties":{"created_via":{"type":["string","null"],"description":"ui | api | mcp | ai"},"description":{"type":["string","null"]},"favorited":{"type":["boolean","null"]},"name":{"type":"string"},"query":{"type":"object"},"tags":{"type":["array","null"],"items":{"type":"string"}},"viz":{"type":["object","null"]}},"additionalProperties":false},"InsightDto":{"type":"object","description":"`Insight` (defs-insight.schema.json).","required":["id","project_id","name","query","viz","tags","favorited","created_via","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"created_by":{"type":["string","null"],"format":"uuid"},"created_via":{"type":"string"},"description":{"type":["string","null"]},"favorited":{"type":"boolean","description":"Whether the caller starred it (favourites are per user)."},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"project_id":{"type":"string","format":"uuid"},"query":{"type":"object","description":"Query IR v1 (query-ir.schema.json)."},"tags":{"type":"array","items":{"type":"string"}},"updated_at":{"type":"string","format":"date-time"},"viz":{"type":"object","description":"InsightViz."}}},"InsightFavoriteRequest":{"type":"object","description":"`PUT …/insights/{insight_id}/favorite`.","required":["favorite"],"properties":{"favorite":{"type":"boolean"}},"additionalProperties":false},"InsightListResponse":{"type":"object","required":["insights"],"properties":{"insights":{"type":"array","items":{"$ref":"#/components/schemas/InsightDto"}},"next_offset":{"type":["integer","null"],"format":"int64"}}},"InsightUpdateRequest":{"type":"object","properties":{"description":{"type":["string","null"]},"favorited":{"type":["boolean","null"]},"name":{"type":["string","null"]},"query":{"type":["object","null"]},"tags":{"type":["array","null"],"items":{"type":"string"}},"viz":{"type":["object","null"]}},"additionalProperties":false},"IntegrationDto":{"type":"object","required":["id","project_id","provider","status","config","has_secret","webhook_url","region_synced","created_at","updated_at"],"properties":{"config":{"type":"object","description":"Non-secret settings (bundle id, package name, Play price catalog, …)."},"created_at":{"type":"string","format":"date-time"},"deliveries_24h":{"type":["integer","null"],"format":"int64","description":"Verified deliveries in the last 24 hours."},"has_secret":{"type":"boolean","description":"Whether a secret is stored. The secret itself is never returned."},"id":{"type":"string","format":"uuid"},"last_delivery_at":{"type":["string","null"],"format":"date-time","description":"Delivery health, recorded in-region by capture and the revenue worker (counters and categorical\nmessages only). Absent when the region could not be read."},"last_error":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntegrationError"}]},"name":{"type":["string","null"]},"project_id":{"type":"string","format":"uuid"},"provider":{"type":"string","description":"`stripe` | `revenuecat` | `app_store` | `google_play`"},"region_synced":{"type":"boolean","description":"The region has the current configuration (capture verifies with it)."},"secret_last4":{"type":["string","null"]},"status":{"type":"string","description":"`active` | `paused` | `pending_secret` (Stripe/RevenueCat created before the secret was set: the\nregion refuses deliveries until it is) | `error` | `disconnected`"},"updated_at":{"type":"string","format":"date-time"},"webhook_url":{"type":"string","description":"Paste this into the provider's webhook settings."}}},"IntegrationError":{"type":"object","description":"The most recent refused or failed delivery.","required":["at","message"],"properties":{"at":{"type":"string","format":"date-time"},"message":{"type":"string"}}},"IntegrationList":{"type":"object","required":["integrations"],"properties":{"integrations":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationDto"}}}},"InvitationDto":{"type":"object","required":["id","org_id","email","role","status","expires_at","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"email":{"type":"string"},"expires_at":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"org_id":{"type":"string","format":"uuid"},"role":{"type":"string"},"status":{"type":"string"}}},"InviteRequest":{"type":"object","required":["email","role"],"properties":{"email":{"type":"string"},"role":{"type":"string","description":"owner | admin | member | viewer. Only an owner may invite an owner."}},"additionalProperties":false},"KeyDto":{"type":"object","required":["id","project_id","environment","key","allowed_origins","allowed_bundle_ids","created_at","registry_synced"],"properties":{"allowed_bundle_ids":{"type":"array","items":{"type":"string"}},"allowed_origins":{"type":"array","items":{"type":"string"}},"created_at":{"type":"string","format":"date-time"},"environment":{"type":"string"},"id":{"type":"string","format":"uuid"},"key":{"type":"string","description":"`atx_pk_<region>_<env>_<22>` — safe to embed in apps; it can only send events."},"project_id":{"type":"string","format":"uuid"},"registry_synced":{"type":"boolean","description":"Whether the region's capture service has this key's latest state."},"revoked_at":{"type":["string","null"],"format":"date-time"}}},"KeyList":{"type":"object","required":["keys"],"properties":{"keys":{"type":"array","items":{"$ref":"#/components/schemas/KeyDto"}}}},"LayoutRequest":{"type":"object","required":["tiles"],"properties":{"tiles":{"type":"array","items":{"$ref":"#/components/schemas/TilePosition"}}},"additionalProperties":false},"LoginRequest":{"type":"object","required":["email","password"],"properties":{"email":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false},"MeResponse":{"type":"object","required":["user","orgs"],"properties":{"orgs":{"type":"array","items":{"$ref":"#/components/schemas/OrgDto"}},"user":{"$ref":"#/components/schemas/UserDto"}}},"MemberDto":{"type":"object","required":["id","user_id","email","name","role","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"email":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"role":{"type":"string"},"user_id":{"type":"string","format":"uuid"}}},"MembersResponse":{"type":"object","required":["members","invitations"],"properties":{"invitations":{"type":"array","items":{"$ref":"#/components/schemas/InvitationDto"},"description":"Pending invitations; only listed for callers who may manage members."},"members":{"type":"array","items":{"$ref":"#/components/schemas/MemberDto"}}}},"MetricCreateRequest":{"type":"object","required":["key","name","query"],"properties":{"description":{"type":["string","null"]},"direction":{"type":["string","null"]},"key":{"type":"string"},"monitor":{"type":["boolean","null"]},"name":{"type":"string"},"owner_id":{"type":["string","null"],"format":"uuid"},"query":{"type":"object"},"unit":{"type":["string","null"]}},"additionalProperties":false},"MetricDto":{"type":"object","description":"`Metric` (defs-metric.schema.json).","required":["id","project_id","key","version","name","kind","query","direction","certified","monitor","created_at"],"properties":{"archived_at":{"type":["string","null"],"format":"date-time"},"certified":{"type":"boolean"},"certified_at":{"type":["string","null"],"format":"date-time"},"certified_by":{"type":["string","null"],"format":"uuid"},"created_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]},"direction":{"type":"string"},"id":{"type":"string","format":"uuid"},"key":{"type":"string"},"kind":{"type":"string"},"monitor":{"type":"boolean"},"name":{"type":"string"},"owner_id":{"type":["string","null"],"format":"uuid"},"project_id":{"type":"string","format":"uuid"},"query":{"type":"object"},"unit":{"type":["string","null"]},"version":{"type":"integer","format":"int32"}}},"MetricListResponse":{"type":"object","required":["metrics"],"properties":{"metrics":{"type":"array","items":{"$ref":"#/components/schemas/MetricDto"}}}},"MetricUpdateRequest":{"type":"object","properties":{"description":{"type":["string","null"]},"direction":{"type":["string","null"]},"monitor":{"type":["boolean","null"]},"name":{"type":["string","null"]},"owner_id":{"type":["string","null"],"format":"uuid"},"query":{"type":["object","null"]},"unit":{"type":["string","null"]}},"additionalProperties":false},"OrgDto":{"type":"object","required":["id","name","slug","role","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"role":{"type":"string","description":"Your role: owner | admin | member | viewer."},"slug":{"type":"string"}}},"OrgList":{"type":"object","required":["orgs"],"properties":{"orgs":{"type":"array","items":{"$ref":"#/components/schemas/OrgDto"}}}},"OrgNameRequest":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}},"additionalProperties":false},"PasswordResetConfirm":{"type":"object","required":["token","new_password"],"properties":{"new_password":{"type":"string"},"token":{"type":"string","description":"The single-use token from the emailed link."}},"additionalProperties":false},"PasswordResetRequest":{"type":"object","required":["email"],"properties":{"email":{"type":"string"}},"additionalProperties":false},"PortalResponse":{"type":"object","required":["url"],"properties":{"url":{"type":"string"}}},"ProjectDto":{"type":"object","required":["id","data_id","org_id","name","slug","region","timezone","currency","retention_days","created_at","role","environments"],"properties":{"created_at":{"type":"string","format":"date-time"},"currency":{"type":"string"},"data_id":{"type":"integer","format":"int32","description":"Numeric id used by the data plane (ClickHouse `project_id`)."},"environments":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentDto"}},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"org_id":{"type":"string","format":"uuid"},"region":{"type":"string"},"retention_days":{"type":"integer","format":"int32"},"role":{"type":"string","description":"Your effective role in this project."},"slug":{"type":"string"},"timezone":{"type":"string"}}},"ProjectList":{"type":"object","required":["projects"],"properties":{"projects":{"type":"array","items":{"$ref":"#/components/schemas/ProjectDto"}}}},"RegionDto":{"type":"object","required":["code","name","status"],"properties":{"api_host":{"type":["string","null"]},"code":{"type":"string","description":"`eu`, `me`, `us`, `pk`."},"ingest_host":{"type":["string","null"]},"name":{"type":"string"},"status":{"type":"string","description":"live | coming_soon. Projects can only be created in `live` regions."}}},"RegionList":{"type":"object","required":["regions"],"properties":{"regions":{"type":"array","items":{"$ref":"#/components/schemas/RegionDto"}}}},"RegionRequestDto":{"type":"object","required":["method","url","body"],"properties":{"body":{"type":"object","description":"Send with `Authorization: Bearer <token>`."},"method":{"type":"string"},"url":{"type":"string","description":"The region API endpoint. Results come straight from the region, never through the control\nplane."}}},"RegionTokenRequest":{"type":"object","properties":{"environment":{"type":["string","null"],"description":"production | preview | development. Default `production`."},"scopes":{"type":["array","null"],"items":{"type":"string"},"description":"Narrow further. Omit for every regional scope you hold."}},"additionalProperties":false},"RegionTokenResponse":{"type":"object","required":["token","region_api_url","expires_at","region","environment","scopes"],"properties":{"environment":{"type":"string"},"expires_at":{"type":"string","format":"date-time"},"region":{"type":"string"},"region_api_url":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"token":{"type":"string","description":"EdDSA JWT (`RegionTokenClaims`). Send as `Authorization: Bearer` to `region_api_url`."}}},"RegisterRequest":{"type":"object","required":["redirect_uris"],"properties":{"client_name":{"type":["string","null"]},"client_uri":{"type":["string","null"]},"grant_types":{"type":["array","null"],"items":{"type":"string"}},"logo_uri":{"type":["string","null"]},"policy_uri":{"type":["string","null"]},"redirect_uris":{"type":"array","items":{"type":"string"}},"response_types":{"type":["array","null"],"items":{"type":"string"}},"scope":{"type":["string","null"]},"software_id":{"type":["string","null"]},"software_version":{"type":["string","null"]},"token_endpoint_auth_method":{"type":["string","null"]},"tos_uri":{"type":["string","null"]}}},"RegisterResponse":{"type":"object","required":["client_id","client_id_issued_at","client_name","redirect_uris","grant_types","response_types","token_endpoint_auth_method","scope"],"properties":{"client_id":{"type":"string"},"client_id_issued_at":{"type":"integer","format":"int64"},"client_name":{"type":"string"},"grant_types":{"type":"array","items":{"type":"string"}},"redirect_uris":{"type":"array","items":{"type":"string"}},"response_types":{"type":"array","items":{"type":"string"}},"scope":{"type":"string"},"token_endpoint_auth_method":{"type":"string"}}},"RenameRequest":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}},"additionalProperties":false},"RevokeOthersResponse":{"type":"object","required":["revoked"],"properties":{"revoked":{"type":"integer","format":"int64","description":"How many other sessions were signed out.","minimum":0}}},"RoleRequest":{"type":"object","required":["role"],"properties":{"role":{"type":"string"}},"additionalProperties":false},"RotateKeyRequest":{"type":"object","properties":{"keep_old":{"type":"boolean","description":"Keep the old key working (revoke it later). Default: revoke it now."}},"additionalProperties":false},"RotateKeyResponse":{"type":"object","required":["revoked","created"],"properties":{"created":{"$ref":"#/components/schemas/KeyDto","description":"The replacement key."},"revoked":{"$ref":"#/components/schemas/KeyDto","description":"The key being replaced. `revoked_at` is still `null` when `keep_old` was set."}}},"RuleCreateRequest":{"type":"object","required":["name","target"],"properties":{"cadence":{"type":["string","null"]},"daily_cap":{"type":["integer","null"],"format":"int32"},"destination_ids":{"type":["array","null"],"items":{"type":"string","format":"uuid"}},"enabled":{"type":["boolean","null"]},"min_severity":{"type":["string","null"]},"name":{"type":"string"},"target":{"$ref":"#/components/schemas/RuleTarget"},"thresholds":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Thresholds"}]}},"additionalProperties":false},"RuleDto":{"type":"object","description":"`FindingsRule` (findings-rule.schema.json).","required":["id","project_id","name","enabled","target","cadence","thresholds","min_severity","destination_ids","created_at","updated_at"],"properties":{"cadence":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"created_by":{"type":["string","null"],"format":"uuid"},"daily_cap":{"type":["integer","null"],"format":"int32"},"destination_ids":{"type":"array","items":{"type":"string","format":"uuid"}},"enabled":{"type":"boolean"},"id":{"type":"string","format":"uuid"},"min_severity":{"type":"string"},"name":{"type":"string"},"project_id":{"type":"string","format":"uuid"},"target":{"$ref":"#/components/schemas/RuleTarget"},"thresholds":{"$ref":"#/components/schemas/Thresholds"},"updated_at":{"type":"string","format":"date-time"}}},"RuleListResponse":{"type":"object","required":["rules"],"properties":{"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleDto"}}}},"RuleTarget":{"type":"object","required":["kind"],"properties":{"event":{"type":["string","null"]},"from_event":{"type":["string","null"]},"key":{"type":["string","null"]},"kind":{"type":"string"},"to_event":{"type":["string","null"]}},"additionalProperties":false},"RuleUpdateRequest":{"type":"object","properties":{"cadence":{"type":["string","null"]},"daily_cap":{"type":["integer","null"],"format":"int32","description":"`null` clears the cap (deployment default)."},"destination_ids":{"type":["array","null"],"items":{"type":"string","format":"uuid"}},"enabled":{"type":["boolean","null"]},"min_severity":{"type":["string","null"]},"name":{"type":["string","null"]},"target":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/RuleTarget"}]},"thresholds":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Thresholds"}]}},"additionalProperties":false},"SessionDto":{"type":"object","description":"One signed-in session of the current user. Never carries an IP address: `location` is a coarse\nplace (city, country) when one is known, else null.","required":["id","current","created_at","last_seen_at","expires_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"current":{"type":"boolean","description":"The session making this request."},"expires_at":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"last_seen_at":{"type":"string","format":"date-time"},"location":{"type":["string","null"]},"user_agent":{"type":["string","null"]}}},"SessionList":{"type":"object","required":["sessions"],"properties":{"sessions":{"type":"array","items":{"$ref":"#/components/schemas/SessionDto"}}}},"SignupRequest":{"type":"object","required":["email","password","name"],"properties":{"email":{"type":"string"},"name":{"type":"string"},"password":{"type":"string","description":"At least 10 characters; common and breached passwords are refused."}},"additionalProperties":false},"Thresholds":{"type":"object","properties":{"min_abs_delta":{"type":["number","null"],"format":"double"},"min_rel_delta":{"type":["number","null"],"format":"double"},"min_sample":{"type":["integer","null"],"format":"int64","minimum":0},"z":{"type":["number","null"],"format":"double"}},"additionalProperties":false},"TileCreateRequest":{"type":"object","required":["kind"],"properties":{"body":{"type":["string","null"]},"insight_id":{"type":["string","null"],"format":"uuid"},"kind":{"type":"string","description":"insight | text"},"layout":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TileLayout"}]}},"additionalProperties":false},"TileLayout":{"type":"object","required":["x","y","w","h"],"properties":{"h":{"type":"integer","format":"int32"},"w":{"type":"integer","format":"int32"},"x":{"type":"integer","format":"int32"},"y":{"type":"integer","format":"int32"}},"additionalProperties":false},"TilePosition":{"type":"object","required":["id","layout"],"properties":{"id":{"type":"string","format":"uuid"},"layout":{"$ref":"#/components/schemas/TileLayout"}},"additionalProperties":false},"TileUpdateRequest":{"type":"object","properties":{"body":{"type":["string","null"]},"layout":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TileLayout"}]}},"additionalProperties":false},"TokenDto":{"type":"object","required":["id","kind","org_id","name","prefix","scopes","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"id":{"type":"string","format":"uuid"},"kind":{"type":"string"},"last_used_at":{"type":["string","null"],"format":"date-time"},"name":{"type":"string"},"org_id":{"type":"string","format":"uuid"},"prefix":{"type":"string","description":"Public identifier (`atx_pat_<lookup>…`), safe to display."},"project_ids":{"type":["array","null"],"items":{"type":"string","format":"uuid"}},"revoked_at":{"type":["string","null"],"format":"date-time"},"scopes":{"type":"array","items":{"type":"string"}}}},"TokenForm":{"type":"object","description":"Documentation shape of the token request (form-encoded).","required":["grant_type"],"properties":{"client_id":{"type":["string","null"]},"code":{"type":["string","null"]},"code_verifier":{"type":["string","null"]},"grant_type":{"type":"string","description":"`authorization_code` or `refresh_token`."},"redirect_uri":{"type":["string","null"]},"refresh_token":{"type":["string","null"]},"resource":{"type":["string","null"]},"scope":{"type":["string","null"]}}},"TokenList":{"type":"object","required":["tokens"],"properties":{"tokens":{"type":"array","items":{"$ref":"#/components/schemas/TokenDto"}}}},"TokenRequest":{"type":"object","required":["token"],"properties":{"token":{"type":"string","description":"The single-use token from the emailed link."}},"additionalProperties":false},"TokenResponse":{"type":"object","required":["access_token","token_type","expires_in","refresh_token","scope"],"properties":{"access_token":{"type":"string"},"expires_in":{"type":"integer","format":"int64"},"refresh_token":{"type":"string"},"scope":{"type":"string","description":"Always echoed: frequently narrower than what was asked for."},"token_type":{"type":"string"}}},"UpdateIntegrationRequest":{"type":"object","properties":{"config":{"type":["object","null"]},"name":{"type":["string","null"]},"secret":{"type":["string","null"],"description":"Replace the stored secret (rotation)."},"status":{"type":["string","null"],"description":"`active` | `paused`"}},"additionalProperties":false},"UserDto":{"type":"object","required":["id","email","name","email_verified","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"email":{"type":"string"},"email_verified":{"type":"boolean"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}},"V1MeResponse":{"type":"object","required":["token","effective_scopes"],"properties":{"effective_scopes":{"type":"array","items":{"type":"string"},"description":"Effective org-level scopes: the token's scopes ∩ the owner's role."},"token":{"$ref":"#/components/schemas/TokenDto"},"user":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UserDto","description":"The user the token acts for (`null` for service tokens)."}]}}},"V1QueryRequest":{"type":"object","required":["query"],"properties":{"environment":{"type":["string","null"],"description":"production | preview | development. Default `production`."},"include_sql":{"type":"boolean","description":"Ask the region to include the compiled SQL in its answer."},"query":{"type":"object","description":"A Query IR v1 document (`packages/contracts/schemas/query-ir.schema.json`)."},"refresh":{"type":"boolean","description":"Bypass the region's result cache."}},"additionalProperties":false},"V1QueryResponse":{"type":"object","required":["kind","region","environment","token","expires_at","request"],"properties":{"environment":{"type":"string"},"expires_at":{"type":"string","format":"date-time"},"kind":{"type":"string","description":"The validated insight kind (`trends`, `funnel`, `retention`, …)."},"region":{"type":"string"},"request":{"$ref":"#/components/schemas/RegionRequestDto"},"token":{"type":"string","description":"Region token narrowed to `query:read`."}}},"VerifyRequest":{"type":"object","required":["certificate","signature"],"properties":{"certificate":{"type":"object"},"signature":{"type":"string"},"verify":{"type":["object","null"],"description":"The `verify` hint the certificate endpoint returns alongside; accepted (and ignored) so that endpoint's\nresponse can be posted here unchanged."}},"additionalProperties":false}},"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"atx_pat_… | atx_svc_… | atx_oat_…"},"session":{"type":"apiKey","in":"cookie","name":"atx_session"}}},"tags":[{"name":"auth"},{"name":"orgs"},{"name":"members"},{"name":"projects"},{"name":"keys"},{"name":"tokens"},{"name":"region"},{"name":"v1"},{"name":"oauth"},{"name":"ops"},{"name":"billing"},{"name":"integrations"},{"name":"flags"},{"name":"experiments"},{"name":"compliance"}]}