{"openapi":"3.0.0","info":{"version":"1.0.0","title":"Authdog API","description":"The Authdog REST API provides programmatic access to the core identity and access management surface.\n\nUse this API to manage tenants, organizations, environments, users, groups, RBAC policies, audit logs, notification channels, service accounts, personal access tokens, the MCP trust store, and SCIM/HRIS provisioning.\n\nAll endpoints require a **Bearer token** obtained via the Authdog authentication flow."},"servers":[{"url":"/","description":"Current deployment origin"}],"externalDocs":{"description":"Authdog documentation","url":"https://docs.authdog.com"},"tags":[{"name":"Health","description":"Service health checks"},{"name":"User info","description":"Current user profile information"},{"name":"Organizations","description":"Organization management and membership"},{"name":"Tenants","description":"Tenant lifecycle, projects, and domain verification"},{"name":"Service accounts","description":"Machine-to-machine service account credentials"},{"name":"Personal access tokens","description":"User-scoped personal access tokens"},{"name":"Environments","description":"Environment lifecycle, connections, and redirect URIs"},{"name":"Directory","description":"User directory, groups, and session management"},{"name":"API secrets","description":"Environment-scoped API secrets: creation (one-time full value), listing, and revocation"},{"name":"Impersonation","description":"Time-boxed user impersonation grants: issuance, listing, and revocation"},{"name":"OIDC clients","description":"OIDC client registration and configuration (secrets never returned)"},{"name":"Environment settings","description":"JWT claim mappings, session configuration, password / breached / brute-force / bot-detection / rate-limit policies, and signup/signin restrictions"},{"name":"Email providers","description":"Per-environment transactional email delivery providers (resend, sendgrid, ses, postmark, smtp)"},{"name":"Add-ons","description":"Third-party add-on configuration (Google Analytics, Segment, Stripe, reCAPTCHA)"},{"name":"Vanity domains","description":"Custom auth domains: registration, DNS/TLS status checks, and removal"},{"name":"Organization keys","description":"Organization-scoped API keys: creation (one-time full value), rotation, revocation, and tenant scoping"},{"name":"Projects","description":"Project (application) lifecycle: details, upsert, deletion, and default environment"},{"name":"Threats","description":"Security threat records (Lidar): listing, creation, triage, resolution"},{"name":"Provisioning tokens","description":"SCIM and HRIS provisioning token lifecycle: creation (one-time full value), rotation, and revocation"},{"name":"Billing","description":"Billing plans and features catalog, with Stripe sync"},{"name":"Audit","description":"Audit log queries and event metadata"},{"name":"Events","description":"Cursor-paginated immutable event stream and type catalog"},{"name":"Elevate","description":"Just-in-time elevated access: policies, access requests, grants, and activation"},{"name":"Webhooks","description":"Webhook endpoints, signing secrets (one-time on create/rotate), and delivery inspection/redelivery"},{"name":"Notification channels","description":"Generic webhook, Slack, and Datadog notification channel configuration and testing"},{"name":"Widgets","description":"Scoped tokens for embeddable Authdog widgets"},{"name":"Admin Portal","description":"Time-limited self-serve setup links for organization admins"},{"name":"RBAC","description":"Role-based access control: roles, permissions, resources, and group-role assignments"},{"name":"MCP Trust Store","description":"Per-environment registry of trusted non-human identities (agents, MCP servers, workloads): registration, verification, key rotation, and revocation"},{"name":"SCIM","description":"RFC 7643/7644 SCIM 2.0 provisioning of Users and Groups. Bearer-token resolved to a tenant environment; mounted at /v1/scim/v2."},{"name":"HRIS","description":"Inbound HRIS provisioning of Employees and Departments, mirroring SCIM. Bearer-token resolved to a tenant environment; mounted at /v1/hris/v1."},{"name":"AuthZEN","description":"OpenID Foundation AuthZEN Authorization API 1.0, externalized authorization decisions (evaluation, batch evaluation, and subject/resource/action search) backed by the environment's RBAC, ABAC, or FGA model. Authenticated with an environment API secret, which also selects the environment; mounted at the spec's /access/v1, outside the /v1 base path."}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer token used to authenticate the current user."}},"schemas":{"Probe":{"type":"object","properties":{"ok":{"type":"boolean","example":true}}},"ErrorResponse":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized"}},"required":["error"],"description":"Standard error response."},"UserInfo":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/UserInfoMeta"},"session":{"$ref":"#/components/schemas/UserInfoSession"},"user":{"$ref":"#/components/schemas/UserInfoUser"}},"required":["meta","session","user"],"description":"Complete user information from identity GraphQL service"},"UserInfoMeta":{"type":"object","properties":{"code":{"type":"number","example":200},"message":{"type":"string","example":"Success"}},"required":["code","message"],"description":"Response metadata"},"UserInfoSession":{"type":"object","properties":{"remainingSeconds":{"type":"number","nullable":true,"example":56229}},"required":["remainingSeconds"],"description":"Session metadata"},"UserInfoUser":{"type":"object","properties":{"id":{"type":"string","example":"6e2c5a03-2849-4a1a-ab23-8c4c50855d77"},"externalId":{"type":"string","example":"google-oauth20:105993726010800286195"},"userName":{"type":"string","example":"105993726010800286195"},"displayName":{"type":"string","nullable":true,"example":"David B."},"nickName":{"type":"string","nullable":true},"profileUrl":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"userType":{"type":"string","nullable":true},"preferredLanguage":{"type":"string","nullable":true},"locale":{"type":"string","nullable":true,"example":"en-GB"},"timezone":{"type":"string","nullable":true},"active":{"type":"boolean","example":true},"names":{"$ref":"#/components/schemas/UserName"},"photos":{"type":"array","items":{"$ref":"#/components/schemas/UserPhoto"}},"phoneNumbers":{"type":"array","items":{"$ref":"#/components/schemas/UserPhoneNumber"}},"addresses":{"type":"array","items":{"$ref":"#/components/schemas/UserAddress"}},"emails":{"type":"array","items":{"$ref":"#/components/schemas/UserEmail"}},"verifications":{"type":"array","items":{"$ref":"#/components/schemas/UserVerification"}},"provider":{"type":"string","example":"google-oauth20"},"createdAt":{"type":"string","example":"2023-04-01T20:27:30.924Z"},"updatedAt":{"type":"string","example":"2025-10-05 10:12:33"},"environmentId":{"type":"string","example":"ed89ef1e-2e76-4674-8272-5634064ae293"}},"required":["id","externalId","userName","displayName","nickName","profileUrl","title","userType","preferredLanguage","locale","timezone","active","names","photos","phoneNumbers","addresses","emails","verifications","provider","createdAt","updatedAt","environmentId"],"description":"Authenticated user profile"},"UserName":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"1383d0b3-849e-4c06-8a66-c28a310cc088"},"formatted":{"type":"string","nullable":true},"familyName":{"type":"string","nullable":true,"example":"Barrat"},"givenName":{"type":"string","nullable":true,"example":"David"},"middleName":{"type":"string","nullable":true},"honorificPrefix":{"type":"string","nullable":true},"honorificSuffix":{"type":"string","nullable":true}},"required":["id","formatted","familyName","givenName","middleName","honorificPrefix","honorificSuffix"],"description":"SCIM name object"},"UserPhoto":{"type":"object","properties":{"id":{"type":"string","example":"e8206e41-8b10-45b1-8e42-5ec1e1985fa7"},"value":{"type":"string","example":"https://lh3.googleusercontent.com/a/photo.jpg"},"type":{"type":"string","nullable":true,"example":"photo"}},"required":["id","value","type"],"description":"User photo object"},"UserPhoneNumber":{"type":"object","properties":{"id":{"type":"string"},"value":{"type":"string"},"type":{"type":"string","nullable":true}},"required":["id","value","type"]},"UserAddress":{"type":"object","properties":{"id":{"type":"string"},"formatted":{"type":"string","nullable":true},"streetAddress":{"type":"string","nullable":true},"locality":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["id","formatted","streetAddress","locality","region","postalCode","country","type"]},"UserEmail":{"type":"object","properties":{"id":{"type":"string","example":"6e023095-a9d4-4112-b8bd-6bdea60665be"},"value":{"type":"string","example":"david@example.com"},"type":{"type":"string","nullable":true,"example":"work"}},"required":["id","value","type"]},"UserVerification":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"verified":{"type":"boolean","example":true},"createdAt":{"type":"string","example":"2025-08-31T18:54:48.000Z"},"updatedAt":{"type":"string","example":"2025-09-02 17:10:44"}},"required":["id","email","verified","createdAt","updatedAt"]},"OrganizationsList":{"type":"object","properties":{"organizations":{"type":"array","items":{"$ref":"#/components/schemas/Organization"}},"total":{"type":"number","example":1}},"required":["organizations","total"],"description":"List of organizations with count"},"Organization":{"type":"object","properties":{"id":{"type":"string","example":"org_123456"},"name":{"type":"string","example":"Acme Corp"},"description":{"type":"string","nullable":true,"example":"Main Organization"},"billingEmail":{"type":"string","nullable":true,"example":"billing@acme.com"},"logoUri":{"type":"string","nullable":true,"example":"https://example.com/logo.png"},"active":{"type":"boolean","example":true},"createdAt":{"type":"string","example":"2023-01-01T00:00:00Z"},"updatedAt":{"type":"string","example":"2023-01-01T00:00:00Z"}},"required":["id","name","description","billingEmail","logoUri","active","createdAt","updatedAt"],"description":"Organization information"},"OrganizationResponse":{"type":"object","properties":{"organization":{"$ref":"#/components/schemas/Organization"}},"required":["organization"],"description":"Organization response"},"CreateOrganizationRequest":{"type":"object","properties":{"name":{"type":"string","example":"New Org"},"description":{"type":"string","example":"Description"},"billingEmail":{"type":"string","example":"billing@neworg.com"},"tenantIds":{"type":"array","items":{"type":"string"},"minItems":1,"example":["tenant_123"]}},"required":["name","tenantIds"]},"UpdateOrganizationRequest":{"type":"object","properties":{"name":{"type":"string","example":"Updated Org"},"description":{"type":"string","example":"Updated Description"},"billingEmail":{"type":"string","example":"billing@updated.com"}}},"SuccessIdResponse":{"type":"object","properties":{"success":{"type":"boolean","example":true},"id":{"type":"string","example":"id_123456"}},"required":["success","id"],"description":"Standard success response with an ID."},"OrganizationMembersResponse":{"type":"object","properties":{"organization":{"$ref":"#/components/schemas/Organization"},"members":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationMember"}},"total":{"type":"number","example":1}},"required":["organization","members","total"],"description":"Organization members response"},"OrganizationMember":{"type":"object","properties":{"id":{"type":"string","example":"orgm_123"},"organizationId":{"type":"string","example":"org_123456"},"userId":{"type":"string","example":"usr_123"},"role":{"type":"string","example":"member"},"invitedAt":{"type":"string","nullable":true,"example":"2025-01-01T00:00:00Z"},"joinedAt":{"type":"string","nullable":true,"example":"2025-01-02T00:00:00Z"},"active":{"type":"boolean","nullable":true,"example":true},"user":{"$ref":"#/components/schemas/OrganizationUser"},"createdAt":{"type":"string","nullable":true,"example":"2025-01-01T00:00:00Z"},"updatedAt":{"type":"string","nullable":true,"example":"2025-01-01T00:00:00Z"}},"required":["id","organizationId","userId","role","invitedAt","joinedAt","active","user","createdAt","updatedAt"],"description":"Organization member"},"OrganizationUser":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"usr_123"},"displayName":{"type":"string","nullable":true,"example":"Jane Doe"},"emails":{"type":"array","nullable":true,"items":{"type":"string"},"example":["jane@example.com"]}},"required":["id","displayName","emails"],"description":"Basic user details for org membership operations"},"OrganizationInvitationsResponse":{"type":"object","properties":{"organization":{"$ref":"#/components/schemas/Organization"},"invitations":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationInvitation"}},"total":{"type":"number","example":1}},"required":["organization","invitations","total"],"description":"Organization invitations response"},"OrganizationInvitation":{"type":"object","properties":{"id":{"type":"string","example":"orgi_123"},"organizationId":{"type":"string","example":"org_123456"},"email":{"type":"string","example":"invitee@example.com"},"role":{"type":"string","nullable":true,"example":"member"},"invitedBy":{"type":"string","nullable":true,"example":"usr_123"},"token":{"type":"string","nullable":true,"example":"inv_abcdef"},"expiresAt":{"type":"string","nullable":true,"example":"2025-02-01T00:00:00Z"},"acceptedAt":{"type":"string","nullable":true,"example":null},"status":{"type":"string","nullable":true,"example":"pending"},"tenantAccess":{"type":"array","nullable":true,"items":{"type":"string"},"example":["ten_123456"]},"message":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true,"example":"2025-01-01T00:00:00Z"},"updatedAt":{"type":"string","nullable":true,"example":"2025-01-01T00:00:00Z"},"inviter":{"$ref":"#/components/schemas/OrganizationUser"}},"required":["id","organizationId","email","role","invitedBy","token","expiresAt","acceptedAt","status","tenantAccess","message","createdAt","updatedAt","inviter"],"description":"Organization invitation"},"SendOrganizationInviteResponse":{"type":"object","properties":{"organization":{"$ref":"#/components/schemas/Organization"},"user":{"$ref":"#/components/schemas/OrganizationUser"}},"required":["organization","user"],"description":"Send organization invite response"},"SendOrganizationInviteRequest":{"type":"object","properties":{"email":{"type":"string","example":"invitee@example.com"},"scopes":{"type":"array","items":{"type":"string"},"example":["tenant:read"]},"validFrom":{"type":"string","example":"2025-01-01T00:00:00Z"},"validUntil":{"type":"string","example":"2025-02-01T00:00:00Z"}},"required":["email"],"description":"Send an organization invite"},"JoinOrganizationWithCodeResponse":{"type":"object","properties":{"organization":{"$ref":"#/components/schemas/Organization"},"user":{"$ref":"#/components/schemas/OrganizationUser"}},"required":["organization","user"],"description":"Join organization response"},"JoinOrganizationWithCodeRequest":{"type":"object","properties":{"invitationCode":{"type":"string","example":"inv_abcdef"}},"required":["invitationCode"],"description":"Join organization with invitation code"},"AcceptOrganizationInvitationResponse":{"type":"object","properties":{"organization":{"allOf":[{"$ref":"#/components/schemas/Organization"},{"nullable":true}]},"member":{"allOf":[{"$ref":"#/components/schemas/OrganizationMember"},{"nullable":true}]}},"required":["organization","member"]},"AcceptOrganizationInvitationRequest":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"OrganizationInvitationMutationResponse":{"type":"object","properties":{"organization":{"allOf":[{"$ref":"#/components/schemas/Organization"},{"nullable":true}]},"invitation":{"allOf":[{"$ref":"#/components/schemas/OrganizationInvitation"},{"nullable":true}]}},"required":["organization","invitation"]},"CreateOrganizationInvitationRequest":{"type":"object","properties":{"email":{"type":"string"},"role":{"type":"string"},"expiresAt":{"type":"string"},"tenantAccess":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}},"required":["email"]},"OrganizationOnlyResponse":{"type":"object","properties":{"organization":{"allOf":[{"$ref":"#/components/schemas/Organization"},{"nullable":true}]}},"required":["organization"]},"SetOrganizationMemberActiveRequest":{"type":"object","properties":{"active":{"type":"boolean"}},"required":["active"]},"LinkOrganizationTenantRequest":{"type":"object","properties":{"tenantId":{"type":"string"}},"required":["tenantId"]},"OrganizationKeysResponse":{"type":"object","properties":{"keys":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OrganizationKey"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["keys"]},"OrganizationKey":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"prefix":{"type":"string"},"allTenants":{"type":"boolean"},"tenants":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OrganizationKeyTenant"}},"expiresAt":{"type":"string","nullable":true},"lastUsedAt":{"type":"string","nullable":true},"revokedAt":{"type":"string","nullable":true},"active":{"type":"boolean"},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","organizationId","name","description","prefix","allTenants","tenants","expiresAt","lastUsedAt","revokedAt","active","createdAt","updatedAt"]},"OrganizationKeyTenant":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"tenantName":{"type":"string","nullable":true}},"required":["id","tenantId","tenantName"]},"ManagementMeta":{"type":"object","properties":{"ok":{"$ref":"#/components/schemas/MetaStatus"},"error":{"$ref":"#/components/schemas/MetaStatus"}},"description":"Management operation status envelope."},"MetaStatus":{"type":"object","nullable":true,"properties":{"message":{"type":"string","nullable":true,"example":"ok"},"code":{"type":"number","nullable":true,"example":200}},"required":["message","code"]},"OrganizationKeyWithTokenResponse":{"type":"object","properties":{"key":{"allOf":[{"$ref":"#/components/schemas/OrganizationKey"},{"nullable":true}]},"fullToken":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["key","fullToken"]},"CreateOrganizationKeyBody":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"allTenants":{"type":"boolean"},"tenantIds":{"type":"array","items":{"type":"string"}},"expiresAt":{"type":"string"}},"required":["name"]},"OrganizationKeyResponse":{"type":"object","properties":{"key":{"allOf":[{"$ref":"#/components/schemas/OrganizationKey"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["key"]},"UpdateOrganizationKeyTenantsBody":{"type":"object","properties":{"allTenants":{"type":"boolean"},"tenantIds":{"type":"array","items":{"type":"string"}}}},"TenantsList":{"type":"object","properties":{"tenants":{"type":"array","items":{"$ref":"#/components/schemas/Tenant"}},"total":{"type":"number","example":10}},"required":["tenants","total"],"description":"List of tenants with count"},"Tenant":{"type":"object","properties":{"id":{"type":"string","example":"ten_123456"},"name":{"type":"string","example":"Acme Corporation"},"description":{"type":"string","nullable":true,"example":"Main Tenant"},"company":{"type":"string","nullable":true,"example":"Acme Corp"},"active":{"type":"boolean","example":true},"createdAt":{"type":"string","example":"2023-01-01T00:00:00Z"},"updatedAt":{"type":"string","example":"2023-01-01T00:00:00Z"},"organizationIds":{"type":"array","items":{"type":"string"},"example":["00000000-0000-4000-b000-000000000099"],"description":"Organizations that include this tenant in the aggregated `/v1/tenants` list (from Management `userOrganizations`). Empty when the tenant is only merged in via `tenantsWithAccess`."}},"required":["id","name","description","company","active","createdAt","updatedAt","organizationIds"],"description":"Tenant information"},"TenantMembershipResponse":{"type":"object","properties":{"tenant":{"allOf":[{"$ref":"#/components/schemas/Tenant"},{"nullable":true}]},"user":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}}},"required":["tenant","user"]},"JoinTenantWithCodeRequest":{"type":"object","properties":{"invitationCode":{"type":"string"}},"required":["invitationCode"]},"TenantResponse":{"type":"object","properties":{"tenant":{"$ref":"#/components/schemas/Tenant"}},"required":["tenant"],"description":"Tenant response"},"CreateTenantRequest":{"type":"object","properties":{"name":{"type":"string","example":"New Tenant"},"description":{"type":"string","example":"Description"},"company":{"type":"string","example":"Company Name"}},"required":["name"]},"UpdateTenantRequest":{"type":"object","properties":{"name":{"type":"string","example":"Updated Tenant"},"description":{"type":"string","example":"Updated Description"},"company":{"type":"string","example":"Updated Company"}}},"TenantProjectsResponse":{"type":"object","properties":{"tenant":{"allOf":[{"$ref":"#/components/schemas/Tenant"},{"nullable":true}]},"projects":{"type":"array","items":{"$ref":"#/components/schemas/TenantProject"}},"total":{"type":"number","example":1}},"required":["tenant","projects","total"],"description":"Tenant projects response"},"TenantProject":{"type":"object","properties":{"id":{"type":"string","example":"proj_123"},"name":{"type":"string","nullable":true,"example":"Console"},"type":{"type":"string","nullable":true,"example":"web"},"link":{"type":"string","nullable":true,"example":"https://example.com"},"description":{"type":"string","nullable":true},"logoUri":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true,"example":"2025-01-01T00:00:00Z"},"updatedAt":{"type":"string","nullable":true,"example":"2025-01-01T00:00:00Z"},"defaultEnvironmentId":{"type":"string","nullable":true}},"required":["id","name","type","link","description","logoUri","createdAt","updatedAt","defaultEnvironmentId"],"description":"Tenant project"},"TenantDomainsResponse":{"type":"object","properties":{"domains":{"type":"array","items":{"$ref":"#/components/schemas/TenantDomain"}},"total":{"type":"number","example":1}},"required":["domains","total"],"description":"Tenant domains response"},"TenantDomain":{"type":"object","properties":{"id":{"type":"string","example":"tdom_123"},"tenantId":{"type":"string","example":"ten_123456"},"domain":{"type":"string","example":"example.com"},"verified":{"type":"boolean","example":false},"validationMethod":{"type":"string","example":"dns"},"validationSubDomain":{"type":"string","nullable":true,"example":"_auth"},"validationToken":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true,"example":"2025-01-01T00:00:00Z"},"validatedAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true,"example":"2025-01-01T00:00:00Z"}},"required":["id","tenantId","domain","verified","validationMethod","validationSubDomain","validationToken","createdAt","validatedAt","updatedAt"],"description":"Tenant domain"},"CreateTenantDomainResponse":{"type":"object","properties":{"domain":{"$ref":"#/components/schemas/TenantDomain"}},"required":["domain"],"description":"Create tenant domain response"},"CreateTenantDomainRequest":{"type":"object","properties":{"domain":{"type":"string","example":"example.com"},"validationMethod":{"type":"string","example":"dns"}},"required":["domain","validationMethod"],"description":"Create tenant domain request"},"RetryTenantDomainVerificationResponse":{"type":"object","properties":{"success":{"type":"boolean","example":true},"message":{"type":"string","nullable":true},"domain":{"allOf":[{"$ref":"#/components/schemas/TenantDomain"},{"nullable":true}]}},"required":["success","message","domain"],"description":"Retry tenant domain verification response"},"TenantSeatsResponse":{"type":"object","properties":{"tenant":{"allOf":[{"$ref":"#/components/schemas/Tenant"},{"nullable":true}]},"seats":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/TenantSeat"}}},"required":["tenant","seats"]},"TenantSeat":{"type":"object","properties":{"id":{"type":"string"},"accountId":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"active":{"type":"boolean","nullable":true},"scopes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/TenantSeatScope"}},"validFrom":{"type":"string","nullable":true},"validUntil":{"type":"string","nullable":true},"activeFrom":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","accountId","email","status","active","scopes","validFrom","validUntil","activeFrom","createdAt","updatedAt"]},"TenantSeatScope":{"type":"object","properties":{"scopeId":{"type":"string","nullable":true},"kind":{"type":"string"},"id":{"type":"string"},"crud":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}}},"required":["scopeId","kind","id","crud"]},"TenantSeatMutationResponse":{"type":"object","properties":{"tenant":{"allOf":[{"$ref":"#/components/schemas/Tenant"},{"nullable":true}]},"seat":{"allOf":[{"$ref":"#/components/schemas/TenantSeat"},{"nullable":true}]}},"required":["tenant","seat"]},"UpdateTenantSeatRequest":{"type":"object","properties":{"scopes":{"type":"array","items":{"type":"string"}},"validFrom":{"type":"string"},"validUntil":{"type":"string"},"active":{"type":"boolean"}}},"TenantOnlyResponse":{"type":"object","properties":{"tenant":{"allOf":[{"$ref":"#/components/schemas/Tenant"},{"nullable":true}]}},"required":["tenant"]},"SendTenantInviteRequest":{"type":"object","properties":{"email":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"validFrom":{"type":"string"},"validUntil":{"type":"string"}},"required":["email"]},"SaveApplicationResponse":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/Project"},"environments":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/ProjectEnvironment"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["project","environments"]},"Project":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"link":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"logoUri":{"type":"string","nullable":true},"defaultEnvironmentId":{"type":"string","nullable":true},"environments":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/ProjectEnvironment"}},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","name","type","link","description","logoUri","defaultEnvironmentId","environments","createdAt","updatedAt"]},"ProjectEnvironment":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"weight":{"type":"number","nullable":true},"isLive":{"type":"boolean","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","name","description","weight","isLive","createdAt","updatedAt"]},"SaveApplicationBody":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"url":{"type":"string"},"type":{"type":"string","enum":["web","m2m","mcp"]}},"required":["name"]},"ProjectDetailsResponse":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/Project"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["project"]},"DeleteApplicationResponse":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/Project"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["project"]},"SetDefaultEnvironmentResponse":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/Project"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["project"]},"SetDefaultEnvironmentBody":{"type":"object","properties":{"environmentId":{"type":"string"}},"required":["environmentId"]},"ServiceAccountsList":{"type":"object","properties":{"serviceAccounts":{"type":"array","items":{"$ref":"#/components/schemas/ServiceAccount"}},"total":{"type":"number","example":1}},"required":["serviceAccounts","total"],"description":"List of service accounts with count"},"ServiceAccount":{"type":"object","properties":{"id":{"type":"string","example":"sa_123456"},"organizationId":{"type":"string","example":"org_123456"},"clientId":{"type":"string","example":"client_123456"},"name":{"type":"string","example":"CI/CD Bot"},"description":{"type":"string","nullable":true,"example":"Bot for deploying stuff"},"scopes":{"type":"array","items":{"type":"string"},"example":["tenant:read"]},"active":{"type":"boolean","nullable":true,"example":true},"lastUsedAt":{"type":"string","nullable":true,"example":"2023-01-01T00:00:00Z"},"createdAt":{"type":"string","example":"2023-01-01T00:00:00Z"},"updatedAt":{"type":"string","example":"2023-01-01T00:00:00Z"}},"required":["id","organizationId","clientId","name","description","scopes","active","lastUsedAt","createdAt","updatedAt"],"description":"Service Account information"},"ServiceAccountResponse":{"type":"object","properties":{"serviceAccount":{"$ref":"#/components/schemas/ServiceAccount"}},"required":["serviceAccount"]},"CreateServiceAccountResponse":{"type":"object","properties":{"serviceAccount":{"$ref":"#/components/schemas/ServiceAccount"},"clientSecret":{"type":"string","example":"adsa_..."}},"required":["serviceAccount","clientSecret"]},"CreateServiceAccountRequest":{"type":"object","properties":{"name":{"type":"string","example":"CI/CD Bot"},"description":{"type":"string","example":"Bot for deploying stuff"},"scopes":{"type":"array","items":{"type":"string"},"example":["tenant:read"]}},"required":["name"]},"PersonalAccessTokensList":{"type":"object","properties":{"tokens":{"type":"array","items":{"$ref":"#/components/schemas/PersonalAccessToken"}},"total":{"type":"number","example":1}},"required":["tokens","total"],"description":"List personal access tokens"},"PersonalAccessToken":{"type":"object","properties":{"id":{"type":"string","example":"pat_123"},"environmentId":{"type":"string","nullable":true},"userId":{"type":"string","nullable":true},"name":{"type":"string","example":"CI token"},"slug":{"type":"string","nullable":true},"prefix":{"type":"string","nullable":true,"example":"adpat_xxxx..."},"expiresAt":{"type":"string","nullable":true,"example":"2026-12-31T00:00:00Z"},"lastUsedAt":{"type":"string","nullable":true},"revokedAt":{"type":"string","nullable":true},"active":{"type":"boolean","nullable":true,"example":true},"scopes":{"type":"array","nullable":true,"items":{"type":"string"},"example":["tenant:read"]},"createdAt":{"type":"string","nullable":true,"example":"2026-01-01T00:00:00Z"},"updatedAt":{"type":"string","nullable":true,"example":"2026-01-01T00:00:00Z"}},"required":["id","environmentId","userId","name","slug","prefix","expiresAt","lastUsedAt","revokedAt","active","scopes","createdAt","updatedAt"],"description":"Personal access token"},"CreatePersonalAccessTokenResponse":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/PersonalAccessToken"},"fullToken":{"type":"string","nullable":true,"example":"adpat_full_token_value"}},"required":["token","fullToken"],"description":"Create personal access token response"},"CreatePersonalAccessTokenRequest":{"type":"object","properties":{"name":{"type":"string","example":"CI token"},"expiresAt":{"type":"string","example":"2026-12-31T00:00:00Z"},"scopes":{"type":"array","items":{"type":"string"},"example":["tenant:read"]}},"required":["name"],"description":"Create personal access token request"},"RevokePersonalAccessTokenResponse":{"type":"object","properties":{"token":{"allOf":[{"$ref":"#/components/schemas/PersonalAccessToken"},{"nullable":true}]}},"required":["token"],"description":"Revoke personal access token response"},"ApplicationEnvironmentsResponse":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/EnvironmentProjectRef"},"environments":{"type":"array","items":{"$ref":"#/components/schemas/Environment"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["project","environments"]},"EnvironmentProjectRef":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["id","name","type"]},"Environment":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"weight":{"type":"number","nullable":true},"isLive":{"type":"boolean","nullable":true},"isDefault":{"type":"boolean","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","name","description","weight","isLive","isDefault","createdAt","updatedAt"]},"EnvironmentMutationResponse":{"type":"object","properties":{"tenant":{"$ref":"#/components/schemas/EnvironmentTenantRef"},"project":{"$ref":"#/components/schemas/EnvironmentProjectNameRef"},"environment":{"allOf":[{"$ref":"#/components/schemas/Environment"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["tenant","project","environment"]},"EnvironmentTenantRef":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["id","name"]},"EnvironmentProjectNameRef":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["id","name"]},"CreateEnvironmentBody":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"weight":{"type":"integer"},"isLive":{"type":"boolean"}},"required":["name"]},"UpdateEnvironmentBody":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"weight":{"type":"integer"},"isLive":{"type":"boolean"}},"required":["name"]},"ApplicationEnvironmentConnectionsResponse":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/EnvironmentProjectNameRef"},"environment":{"$ref":"#/components/schemas/EnvironmentNameRef"},"connections":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentConnection"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["project","environment","connections"]},"EnvironmentNameRef":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["id","name"]},"EnvironmentConnection":{"type":"object","properties":{"id":{"type":"string"},"providerId":{"type":"string","nullable":true},"active":{"type":"boolean","nullable":true},"rank":{"type":"number","nullable":true},"name":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","providerId","active","rank","name","createdAt","updatedAt"]},"SaveEnvironmentConnectionResponse":{"type":"object","properties":{"tenant":{"$ref":"#/components/schemas/EnvironmentTenantRef"},"environment":{"$ref":"#/components/schemas/EnvironmentNameDescRef"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["tenant","environment"]},"EnvironmentNameDescRef":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["id","name","description"]},"SaveEnvironmentConnectionBody":{"type":"object","properties":{"formPayload":{"type":"string"},"providerId":{"type":"string"},"connectionId":{"type":"string"},"name":{"type":"string"}},"required":["formPayload","providerId"]},"DeleteEnvironmentConnectionResponse":{"type":"object","properties":{"tenant":{"$ref":"#/components/schemas/EnvironmentTenantRef"},"environment":{"$ref":"#/components/schemas/EnvironmentNameRef"},"connection":{"allOf":[{"$ref":"#/components/schemas/EnvironmentConnection"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["tenant","environment","connection"]},"EnvironmentRedirectUrisResponse":{"type":"object","properties":{"environment":{"$ref":"#/components/schemas/EnvironmentNameRef"},"config":{"$ref":"#/components/schemas/EnvironmentRedirectUriConfig"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["environment","config"]},"EnvironmentRedirectUriConfig":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"successRedirectUri":{"type":"string","nullable":true},"errorRedirectUri":{"type":"string","nullable":true}},"required":["id","successRedirectUri","errorRedirectUri"]},"SaveEnvironmentRedirectUrisBody":{"type":"object","properties":{"successRedirectUri":{"type":"string"},"errorRedirectUri":{"type":"string"}},"required":["successRedirectUri"]},"SamlIdpMetadataResponse":{"type":"object","properties":{"metadata":{"type":"object","nullable":true,"properties":{"idpEntityId":{"type":"string","nullable":true},"idpSsoUrl":{"type":"string","nullable":true},"idpX509Cert":{"type":"string","nullable":true},"nameIdFormat":{"type":"string","nullable":true},"sloUrl":{"type":"string","nullable":true}},"required":["idpEntityId","idpSsoUrl","idpX509Cert","nameIdFormat","sloUrl"]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["metadata"]},"ResolveSamlIdpMetadataBody":{"type":"object","properties":{"metadataUrl":{"type":"string"},"metadataXml":{"type":"string"}}},"EnterpriseSsoMetadataResponse":{"type":"object","properties":{"metadata":{"type":"object","nullable":true,"properties":{"providerId":{"type":"string","nullable":true},"protocol":{"type":"string","nullable":true},"acsUrl":{"type":"string","nullable":true},"callbackUrl":{"type":"string","nullable":true},"loginUrl":{"type":"string","nullable":true},"spEntityId":{"type":"string","nullable":true},"supportsMetadataUrl":{"type":"boolean","nullable":true},"metadataXml":{"type":"string","nullable":true}},"required":["providerId","protocol","acsUrl","callbackUrl","loginUrl","spEntityId","supportsMetadataUrl","metadataXml"]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["metadata"]},"OidcClientsResponse":{"type":"object","properties":{"clients":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OidcClient"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["clients"]},"OidcClient":{"type":"object","properties":{"id":{"type":"string"},"clientId":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"logoUri":{"type":"string","nullable":true},"clientUri":{"type":"string","nullable":true},"policyUri":{"type":"string","nullable":true},"tosUri":{"type":"string","nullable":true},"redirectUris":{"type":"array","nullable":true,"items":{"type":"string"}},"postLogoutRedirectUris":{"type":"array","nullable":true,"items":{"type":"string"}},"grantTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"responseTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"scopes":{"type":"array","nullable":true,"items":{"type":"string"}},"tokenEndpointAuthMethod":{"type":"string","nullable":true},"pkceRequired":{"type":"boolean","nullable":true},"active":{"type":"boolean","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","clientId","name","description","logoUri","clientUri","policyUri","tosUri","redirectUris","postLogoutRedirectUris","grantTypes","responseTypes","scopes","tokenEndpointAuthMethod","pkceRequired","active","createdAt","updatedAt"]},"OidcClientMutationResponse":{"type":"object","properties":{"client":{"allOf":[{"$ref":"#/components/schemas/OidcClient"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["client"]},"RegisterOidcClientBody":{"type":"object","properties":{"clientName":{"type":"string"},"description":{"type":"string"},"logoUri":{"type":"string"},"clientUri":{"type":"string"},"policyUri":{"type":"string"},"tosUri":{"type":"string"},"redirectUris":{"type":"array","items":{"type":"string"}},"postLogoutRedirectUris":{"type":"array","items":{"type":"string"}},"grantTypes":{"type":"array","items":{"type":"string"}},"responseTypes":{"type":"array","items":{"type":"string"}},"scopes":{"type":"array","items":{"type":"string"}},"requirePkce":{"type":"boolean"},"tokenEndpointAuthMethod":{"type":"string"}},"required":["clientName"]},"UpdateOidcClientBody":{"type":"object","properties":{"clientName":{"type":"string"},"description":{"type":"string"},"logoUri":{"type":"string"},"clientUri":{"type":"string"},"policyUri":{"type":"string"},"tosUri":{"type":"string"},"redirectUris":{"type":"array","items":{"type":"string"}},"postLogoutRedirectUris":{"type":"array","items":{"type":"string"}},"grantTypes":{"type":"array","items":{"type":"string"}},"responseTypes":{"type":"array","items":{"type":"string"}},"scopes":{"type":"array","items":{"type":"string"}},"requirePkce":{"type":"boolean"},"tokenEndpointAuthMethod":{"type":"string"}}},"DeleteOidcClientResponse":{"type":"object","properties":{"clientId":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["clientId"]},"JwtClaimMappingsResponse":{"type":"object","properties":{"mappings":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/JwtClaimMapping"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["mappings"]},"JwtClaimMapping":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string","nullable":true},"claimName":{"type":"string","nullable":true},"source":{"type":"string","nullable":true},"metadataKey":{"type":"string","nullable":true},"staticValue":{"type":"string","nullable":true},"enabled":{"type":"boolean","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","claimName","source","metadataKey","staticValue","enabled","createdAt","updatedAt"]},"SaveJwtClaimMappingResponse":{"type":"object","properties":{"mapping":{"allOf":[{"$ref":"#/components/schemas/JwtClaimMapping"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["mapping"]},"SaveJwtClaimMappingBody":{"type":"object","properties":{"id":{"type":"string"},"claimName":{"type":"string"},"source":{"type":"string"},"metadataKey":{"type":"string"},"staticValue":{"type":"string"},"enabled":{"type":"boolean"}},"required":["claimName","source"]},"DeleteJwtClaimMappingResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success"]},"SessionConfigResponse":{"type":"object","properties":{"config":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["config"]},"UpdateSessionConfigBody":{"type":"object","additionalProperties":{"nullable":true}},"PasswordPolicyResponse":{"type":"object","properties":{"passwordAuthEnabled":{"type":"boolean","nullable":true},"policy":{"$ref":"#/components/schemas/PasswordPolicy"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["passwordAuthEnabled","policy"]},"PasswordPolicy":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"minLength":{"type":"number","nullable":true},"requireLowercase":{"type":"boolean","nullable":true},"requireUppercase":{"type":"boolean","nullable":true},"requireNumber":{"type":"boolean","nullable":true},"requireSymbol":{"type":"boolean","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","minLength","requireLowercase","requireUppercase","requireNumber","requireSymbol","createdAt","updatedAt"]},"UpdatePasswordPolicyBody":{"type":"object","properties":{"minLength":{"type":"integer"},"requireLowercase":{"type":"boolean"},"requireUppercase":{"type":"boolean"},"requireNumber":{"type":"boolean"},"requireSymbol":{"type":"boolean"},"passwordAuthEnabled":{"type":"boolean"}}},"BreachedPasswordPolicyResponse":{"type":"object","properties":{"policy":{"$ref":"#/components/schemas/BreachedPasswordPolicy"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["policy"]},"BreachedPasswordPolicy":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"enabled":{"type":"boolean","nullable":true},"checkOnSignup":{"type":"boolean","nullable":true},"checkOnChange":{"type":"boolean","nullable":true},"mode":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","enabled","checkOnSignup","checkOnChange","mode","createdAt","updatedAt"]},"UpdateBreachedPasswordPolicyBody":{"type":"object","properties":{"enabled":{"type":"boolean"},"checkOnSignup":{"type":"boolean"},"checkOnChange":{"type":"boolean"},"mode":{"type":"string","enum":["warn","block"]}}},"BruteForcePolicyResponse":{"type":"object","properties":{"policy":{"$ref":"#/components/schemas/BruteForcePolicy"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["policy"]},"BruteForcePolicy":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"enabled":{"type":"boolean","nullable":true},"maxFailures":{"type":"number","nullable":true},"lockoutMinutes":{"type":"number","nullable":true},"progressiveDelay":{"type":"boolean","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","enabled","maxFailures","lockoutMinutes","progressiveDelay","createdAt","updatedAt"]},"UpdateBruteForcePolicyBody":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxFailures":{"type":"integer"},"lockoutMinutes":{"type":"integer"},"progressiveDelay":{"type":"boolean"}}},"BotDetectionPolicyResponse":{"type":"object","properties":{"policy":{"$ref":"#/components/schemas/BotDetectionPolicy"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["policy"]},"BotDetectionPolicy":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"enabled":{"type":"boolean","nullable":true},"sensitivity":{"type":"string","nullable":true},"challengeMode":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","enabled","sensitivity","challengeMode","createdAt","updatedAt"]},"UpdateBotDetectionPolicyBody":{"type":"object","properties":{"enabled":{"type":"boolean"},"sensitivity":{"type":"string","enum":["low","medium","high"]},"challengeMode":{"type":"string","enum":["silent","step_up","block"]}}},"RateLimitPolicyResponse":{"type":"object","properties":{"policy":{"$ref":"#/components/schemas/RateLimitPolicy"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["policy"]},"RateLimitPolicy":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"enabled":{"type":"boolean","nullable":true},"windowSeconds":{"type":"number","nullable":true},"maxAttempts":{"type":"number","nullable":true},"scope":{"type":"string","nullable":true},"applySignIn":{"type":"boolean","nullable":true},"applySignUp":{"type":"boolean","nullable":true},"applyPasswordReset":{"type":"boolean","nullable":true},"action":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","enabled","windowSeconds","maxAttempts","scope","applySignIn","applySignUp","applyPasswordReset","action","createdAt","updatedAt"]},"UpdateRateLimitPolicyBody":{"type":"object","properties":{"enabled":{"type":"boolean"},"windowSeconds":{"type":"integer"},"maxAttempts":{"type":"integer"},"scope":{"type":"string","enum":["ip","ip_user","user"]},"applySignIn":{"type":"boolean"},"applySignUp":{"type":"boolean"},"applyPasswordReset":{"type":"boolean"},"action":{"type":"string","enum":["challenge","deny"]}}},"DeviceRiskPolicyResponse":{"type":"object","properties":{"policy":{"$ref":"#/components/schemas/DeviceRiskPolicy"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["policy"]},"DeviceRiskPolicy":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"challengeUnrecognized":{"type":"boolean","nullable":true},"impossibleTravel":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","challengeUnrecognized","impossibleTravel","createdAt","updatedAt"]},"UpdateDeviceRiskPolicyBody":{"type":"object","properties":{"challengeUnrecognized":{"type":"boolean"},"impossibleTravel":{"type":"string","enum":["off","normal","strict"]}}},"EnvironmentRestrictionsResponse":{"type":"object","properties":{"restrictions":{"$ref":"#/components/schemas/EnvironmentRestrictions"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["restrictions"]},"EnvironmentRestrictions":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"signupMode":{"type":"string","nullable":true},"allowlistEnabled":{"type":"boolean","nullable":true},"allowlistDomains":{"type":"string","nullable":true},"blocklistEnabled":{"type":"boolean","nullable":true},"blocklistDomains":{"type":"string","nullable":true},"applyToSignins":{"type":"boolean","nullable":true},"blockEmailSubaddresses":{"type":"boolean","nullable":true},"blockDisposableEmails":{"type":"boolean","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","signupMode","allowlistEnabled","allowlistDomains","blocklistEnabled","blocklistDomains","applyToSignins","blockEmailSubaddresses","blockDisposableEmails","createdAt","updatedAt"]},"UpdateEnvironmentRestrictionsBody":{"type":"object","properties":{"signupMode":{"type":"string"},"allowlistEnabled":{"type":"boolean"},"allowlistDomains":{"type":"string"},"blocklistEnabled":{"type":"boolean"},"blocklistDomains":{"type":"string"},"applyToSignins":{"type":"boolean"},"blockEmailSubaddresses":{"type":"boolean"},"blockDisposableEmails":{"type":"boolean"}}},"FormsResponse":{"type":"object","properties":{"forms":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/Form"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["forms"]},"Form":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"name":{"type":"string"},"key":{"type":"string"},"definition":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"status":{"type":"string"},"version":{"type":"number"},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","name","key","definition","status","version","createdAt","updatedAt"]},"SaveFormResponse":{"type":"object","properties":{"form":{"allOf":[{"$ref":"#/components/schemas/Form"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["form"]},"SaveFormBody":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"key":{"type":"string"},"definition":{"type":"object","additionalProperties":{"nullable":true}},"status":{"type":"string","enum":["draft","published"]}},"required":["name","key","definition"]},"DeleteFormResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success"]},"FormAttachmentsResponse":{"type":"object","properties":{"attachments":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/FormAttachment"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["attachments"]},"FormAttachment":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"formId":{"type":"string"},"hookType":{"type":"string"},"enabled":{"type":"boolean"},"rank":{"type":"number"},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","formId","hookType","enabled","rank","createdAt","updatedAt"]},"EnvironmentEmailProvidersResponse":{"type":"object","properties":{"providers":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentEmailProvider"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["providers"]},"EnvironmentEmailProvider":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"provider":{"type":"string"},"active":{"type":"boolean"},"config":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"secretHints":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","provider","active","config","secretHints","createdAt","updatedAt"]},"SaveEnvironmentEmailProviderResponse":{"type":"object","properties":{"provider":{"allOf":[{"$ref":"#/components/schemas/EnvironmentEmailProvider"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["provider"]},"SaveEmailProviderBody":{"type":"object","properties":{"provider":{"type":"string"},"active":{"type":"boolean"},"config":{"type":"object","additionalProperties":{"nullable":true}},"secrets":{"type":"object","additionalProperties":{"nullable":true}}},"required":["provider"]},"TestEmailProviderResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"messageId":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success","messageId"]},"TestEmailProviderBody":{"type":"object","properties":{"provider":{"type":"string"},"recipient":{"type":"string"}},"required":["provider","recipient"]},"EmailProviderSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success"]},"EnvironmentActionsResponse":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentAction"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["actions"]},"EnvironmentAction":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"name":{"type":"string"},"hookType":{"type":"string"},"url":{"type":"string"},"enabled":{"type":"boolean"},"failMode":{"type":"string"},"timeoutMs":{"type":"number"},"rank":{"type":"number"},"signingSecretHint":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","name","hookType","url","enabled","failMode","timeoutMs","rank","signingSecretHint","createdAt","updatedAt"]},"SaveEnvironmentActionResponse":{"type":"object","properties":{"action":{"allOf":[{"$ref":"#/components/schemas/EnvironmentAction"},{"nullable":true}]},"signingSecret":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["action","signingSecret"]},"SaveActionBody":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"hookType":{"type":"string"},"url":{"type":"string"},"enabled":{"type":"boolean"},"failMode":{"type":"string"},"timeoutMs":{"type":"number"},"rank":{"type":"number"},"regenerateSigningSecret":{"type":"boolean"}},"required":["name","hookType","url"]},"TestEnvironmentActionResponse":{"type":"object","properties":{"status":{"type":"string","nullable":true},"decision":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"responseStatus":{"type":"number","nullable":true},"durationMs":{"type":"number","nullable":true},"error":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["status","decision","message","responseStatus","durationMs","error"]},"TestActionBody":{"type":"object","properties":{"url":{"type":"string"},"signingSecret":{"type":"string"},"hookType":{"type":"string"},"samplePayload":{"type":"object","additionalProperties":{"nullable":true}}},"required":["url"]},"ActionExecutionsResponse":{"type":"object","properties":{"executions":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/ActionExecution"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["executions"]},"ActionExecution":{"type":"object","properties":{"id":{"type":"string"},"actionId":{"type":"string","nullable":true},"hookType":{"type":"string"},"status":{"type":"string"},"decision":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"responseStatus":{"type":"number","nullable":true},"durationMs":{"type":"number","nullable":true},"error":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true}},"required":["id","actionId","hookType","status","decision","message","responseStatus","durationMs","error","createdAt"]},"ActionSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success"]},"FeatureFlagsResponse":{"type":"object","properties":{"flags":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/FeatureFlag"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["flags"]},"FeatureFlag":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"type":{"type":"string"},"defaultValue":{"nullable":true},"enabled":{"type":"boolean"},"archived":{"type":"boolean"},"rules":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/FeatureFlagRule"}},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","key","name","description","type","enabled","archived","rules","createdAt","updatedAt"]},"FeatureFlagRule":{"type":"object","properties":{"id":{"type":"string"},"flagId":{"type":"string"},"priority":{"type":"number","nullable":true},"conditions":{"nullable":true},"percentageRollout":{"type":"number","nullable":true},"value":{"nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","flagId","priority","percentageRollout","createdAt","updatedAt"]},"SaveFeatureFlagResponse":{"type":"object","properties":{"flag":{"allOf":[{"$ref":"#/components/schemas/FeatureFlag"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["flag"]},"SaveFeatureFlagBody":{"type":"object","properties":{"id":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"defaultValue":{"nullable":true},"enabled":{"type":"boolean"},"archived":{"type":"boolean"},"rules":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"conditions":{"type":"object","additionalProperties":{"nullable":true}},"percentageRollout":{"type":"number"},"value":{"nullable":true}}}}},"required":["key","name"]},"FeatureFlagSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success"]},"EnvironmentAddonsResponse":{"type":"object","properties":{"addons":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentAddon"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["addons"]},"EnvironmentAddon":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"provider":{"type":"string"},"enabled":{"type":"boolean"},"config":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"eventTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"secretHints":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","provider","enabled","config","eventTypes","secretHints","createdAt","updatedAt"]},"SaveEnvironmentAddonResponse":{"type":"object","properties":{"addon":{"allOf":[{"$ref":"#/components/schemas/EnvironmentAddon"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["addon"]},"SaveAddonBody":{"type":"object","properties":{"provider":{"type":"string"},"enabled":{"type":"boolean"},"config":{"type":"object","additionalProperties":{"nullable":true}},"eventTypes":{"type":"array","items":{"type":"string"}},"secrets":{"type":"object","additionalProperties":{"nullable":true}}},"required":["provider"]},"DeleteEnvironmentAddonResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success"]},"EnvironmentVanityDomainsResponse":{"type":"object","properties":{"domains":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVanityDomain"}},"edgeHost":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["domains","edgeHost"]},"EnvironmentVanityDomain":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"tenantId":{"type":"string"},"hostname":{"type":"string"},"status":{"type":"string"},"lastCheckedAt":{"type":"string","nullable":true},"checkAttempts":{"type":"number","nullable":true},"certIssuedAt":{"type":"string","nullable":true},"lastError":{"type":"string","nullable":true},"active":{"type":"boolean","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","tenantId","hostname","status","lastCheckedAt","checkAttempts","certIssuedAt","lastError","active","createdAt","updatedAt"]},"CreateEnvironmentVanityDomainResponse":{"type":"object","properties":{"domain":{"allOf":[{"$ref":"#/components/schemas/EnvironmentVanityDomain"},{"nullable":true}]},"edgeHost":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["domain","edgeHost"]},"CreateVanityDomainBody":{"type":"object","properties":{"hostname":{"type":"string"}},"required":["hostname"]},"CheckEnvironmentVanityDomainResponse":{"type":"object","properties":{"domain":{"allOf":[{"$ref":"#/components/schemas/EnvironmentVanityDomain"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["domain"]},"DeleteEnvironmentVanityDomainResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success"]},"EnvUsersResponse":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/EnvUser"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["users"]},"EnvUser":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string","nullable":true},"externalId":{"type":"string","nullable":true},"userName":{"type":"string","nullable":true},"displayName":{"type":"string","nullable":true},"nickName":{"type":"string","nullable":true},"profileUrl":{"type":"string","nullable":true},"active":{"type":"boolean","nullable":true},"changePw":{"type":"boolean","nullable":true},"provider":{"type":"string","nullable":true},"emails":{"type":"array","items":{"$ref":"#/components/schemas/EnvUserEmail"}},"lastLogin":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","externalId","userName","displayName","nickName","profileUrl","active","provider","emails","lastLogin","createdAt","updatedAt"]},"EnvUserEmail":{"type":"object","properties":{"id":{"type":"string"},"value":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"primary":{"type":"boolean","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","value","type","primary","createdAt","updatedAt"]},"EnvUsersCountResponse":{"type":"object","properties":{"total":{"type":"number","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["total"]},"SetUsersActiveResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"message":{"type":"string","nullable":true},"users":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvUser"}},"updatedCount":{"type":"number","nullable":true},"failedCount":{"type":"number","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success","message","users","updatedCount","failedCount"]},"BulkSetUsersActiveBody":{"type":"object","properties":{"userIds":{"type":"array","items":{"type":"string"},"minItems":1},"active":{"type":"boolean"}},"required":["userIds","active"]},"DeleteUsersResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"message":{"type":"string","nullable":true},"deletedCount":{"type":"number","nullable":true},"failedCount":{"type":"number","nullable":true},"totalCount":{"type":"number","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success","message","deletedCount","failedCount","totalCount"]},"BulkDeleteUsersBody":{"type":"object","properties":{"userIds":{"type":"array","items":{"type":"string"},"minItems":1}},"required":["userIds"]},"ImportUsersResponse":{"type":"object","properties":{"total":{"type":"number","nullable":true},"successful":{"type":"number","nullable":true},"failed":{"type":"number","nullable":true},"results":{"type":"array","items":{"$ref":"#/components/schemas/ImportUserResult"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["total","successful","failed","results"]},"ImportUserResult":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"userId":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"errors":{"type":"array","nullable":true,"items":{"type":"string"}},"warnings":{"type":"array","nullable":true,"items":{"type":"string"}}},"required":["success","userId","email","username","errors","warnings"]},"ImportUsersBody":{"type":"object","properties":{"users":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}}},"required":["users"]},"CreateUserResponse":{"type":"object","properties":{"user":{"allOf":[{"$ref":"#/components/schemas/EnvUser"},{"nullable":true}]},"message":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["user","message"]},"CreateUserBody":{"type":"object","properties":{"email":{"type":"string"},"password":{"type":"string"},"displayName":{"type":"string"},"username":{"type":"string"},"givenName":{"type":"string"},"familyName":{"type":"string"},"active":{"type":"boolean"},"sendInvite":{"type":"boolean"},"changePw":{"type":"boolean"}},"required":["email","password"]},"EnvUserResponse":{"type":"object","properties":{"user":{"allOf":[{"$ref":"#/components/schemas/EnvUser"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["user"]},"SetUserActiveResponse":{"type":"object","properties":{"user":{"allOf":[{"$ref":"#/components/schemas/EnvUser"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["user"]},"UpdateEnvUserBody":{"type":"object","properties":{"userName":{"type":"string"},"displayName":{"type":"string"},"nickName":{"type":"string"},"profileUrl":{"type":"string"},"title":{"type":"string"},"preferredLanguage":{"type":"string"},"locale":{"type":"string"},"timezone":{"type":"string"},"externalId":{"type":"string"}}},"SetUserActiveBody":{"type":"object","properties":{"active":{"type":"boolean"}},"required":["active"]},"DeleteUserResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"message":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success","message"]},"UserGroupsResponse":{"type":"object","properties":{"user":{"allOf":[{"$ref":"#/components/schemas/EnvUser"},{"nullable":true}]},"groups":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvGroup"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["user","groups"]},"EnvGroup":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string","nullable":true},"name":{"type":"string"},"slug":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"memberCount":{"type":"number","nullable":true},"joinedAt":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","name","slug","description","memberCount","joinedAt","createdAt","updatedAt"]},"UserTotpStatusResponse":{"type":"object","properties":{"status":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean"},"backupCodesRemaining":{"type":"number","nullable":true}},"required":["enabled","backupCodesRemaining"]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["status"]},"DisableUserMfaResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"message":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success","message"]},"EnvGroupsResponse":{"type":"object","properties":{"groups":{"type":"array","items":{"$ref":"#/components/schemas/EnvGroup"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["groups"]},"CreateGroupResponse":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/CreatedGroup"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["group"]},"CreatedGroup":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"environmentId":{"type":"string","nullable":true},"name":{"type":"string"},"slug":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"memberCount":{"type":"number","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","name","slug","description","memberCount","createdAt","updatedAt"]},"CreateGroupBody":{"type":"object","properties":{"tenantId":{"type":"string"},"environmentId":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string"}},"required":["environmentId","name"]},"DeleteGroupResponse":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/DeletedGroup"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["group"]},"DeletedGroup":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"environmentId":{"type":"string","nullable":true},"name":{"type":"string"},"slug":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["id","environmentId","name","slug","description"]},"GroupMembersResponse":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/GroupWithMemberCount"},"members":{"type":"array","items":{"$ref":"#/components/schemas/EnvUser"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["group","members"]},"GroupWithMemberCount":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"environmentId":{"type":"string","nullable":true},"name":{"type":"string"},"slug":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"memberCount":{"type":"number","nullable":true}},"required":["id","environmentId","name","slug","description","memberCount"]},"AddGroupMemberResponse":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/DirectoryGroupSummary"},"member":{"$ref":"#/components/schemas/GroupMembership"},"user":{"allOf":[{"$ref":"#/components/schemas/EnvUser"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["group","member","user"]},"DirectoryGroupSummary":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string","nullable":true}},"required":["id","name","slug"]},"GroupMembership":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"groupId":{"type":"string","nullable":true},"userId":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","groupId","userId","createdAt","updatedAt"]},"AddGroupMemberBody":{"type":"object","properties":{"userId":{"type":"string"}},"required":["userId"]},"RemoveGroupMemberResponse":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/DirectoryGroupSummary"},"user":{"allOf":[{"$ref":"#/components/schemas/EnvUser"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["group","user"]},"UserSessionsResponse":{"type":"object","properties":{"sessions":{"type":"array","items":{"$ref":"#/components/schemas/UserSession"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["sessions"]},"UserSession":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string","nullable":true},"keyId":{"type":"string","nullable":true},"externalId":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"userAgent":{"type":"string","nullable":true},"expiration":{"type":"string","nullable":true},"revokedAt":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","keyId","externalId","location","userAgent","expiration","revokedAt","createdAt","updatedAt"]},"RevokeUserSessionResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"message":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success","message"]},"EnvironmentApiSecretsResponse":{"type":"object","properties":{"secrets":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentApiSecret"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["secrets"]},"EnvironmentApiSecret":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string","nullable":true},"prefix":{"type":"string","nullable":true},"scopes":{"type":"array","nullable":true,"items":{"type":"string"}},"expiresAt":{"type":"string","nullable":true},"lastUsedAt":{"type":"string","nullable":true},"revokedAt":{"type":"string","nullable":true},"active":{"type":"boolean","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","name","slug","prefix","scopes","expiresAt","lastUsedAt","revokedAt","active","createdAt","updatedAt"]},"CreateEnvironmentApiSecretResponse":{"type":"object","properties":{"secret":{"allOf":[{"$ref":"#/components/schemas/EnvironmentApiSecret"},{"nullable":true}]},"fullSecret":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["secret","fullSecret"]},"CreateEnvironmentApiSecretBody":{"type":"object","properties":{"name":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"expiresAt":{"type":"string"}},"required":["name","scopes"]},"RevokeEnvironmentApiSecretResponse":{"type":"object","properties":{"secret":{"allOf":[{"$ref":"#/components/schemas/EnvironmentApiSecret"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["secret"]},"ImpersonationGrantsResponse":{"type":"object","properties":{"grants":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/ImpersonationGrant"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["grants"]},"ImpersonationGrant":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"tenantId":{"type":"string","nullable":true},"escalationType":{"type":"string","nullable":true},"actorUserId":{"type":"string"},"actorExternalId":{"type":"string","nullable":true},"targetUserId":{"type":"string"},"targetExternalId":{"type":"string","nullable":true},"durationMinutes":{"type":"number","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"expiresAt":{"type":"string","nullable":true},"grantedByUserId":{"type":"string","nullable":true},"lastUsedAt":{"type":"string","nullable":true},"revokedAt":{"type":"string","nullable":true},"isExpired":{"type":"boolean","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","tenantId","escalationType","actorUserId","actorExternalId","targetUserId","targetExternalId","durationMinutes","reason","status","expiresAt","grantedByUserId","lastUsedAt","revokedAt","isExpired","createdAt","updatedAt"]},"ImpersonationGrantResponse":{"type":"object","properties":{"grant":{"allOf":[{"$ref":"#/components/schemas/ImpersonationGrant"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["grant"]},"CreateImpersonationGrantBody":{"type":"object","properties":{"actorUserId":{"type":"string"},"targetUserId":{"type":"string"},"durationMinutes":{"type":"integer","minimum":1},"reason":{"type":"string"}},"required":["actorUserId","targetUserId","durationMinutes"]},"ScimServiceProviderConfig":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"}},"documentationUri":{"type":"string"},"patch":{"type":"object","properties":{"supported":{"type":"boolean"}},"required":["supported"]},"bulk":{"type":"object","properties":{"supported":{"type":"boolean"},"maxOperations":{"type":"number"},"maxPayloadSize":{"type":"number"}},"required":["supported","maxOperations","maxPayloadSize"]},"filter":{"type":"object","properties":{"supported":{"type":"boolean"},"maxResults":{"type":"number"}},"required":["supported","maxResults"]},"changePassword":{"type":"object","properties":{"supported":{"type":"boolean"}},"required":["supported"]},"sort":{"type":"object","properties":{"supported":{"type":"boolean"}},"required":["supported"]},"etag":{"type":"object","properties":{"supported":{"type":"boolean"}},"required":["supported"]},"authenticationSchemes":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"specUri":{"type":"string"},"primary":{"type":"boolean"}},"required":["type","name","description","specUri","primary"]}},"meta":{"type":"object","properties":{"resourceType":{"type":"string"},"location":{"type":"string"}},"required":["resourceType","location"]}},"required":["schemas","documentationUri","patch","bulk","filter","changePassword","sort","etag","authenticationSchemes","meta"]},"ScimError":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"},"example":["urn:ietf:params:scim:api:messages:2.0:Error"]},"detail":{"type":"string","example":"User not found"},"status":{"type":"string","example":"404"},"scimType":{"type":"string","example":"uniqueness"}},"required":["schemas","detail","status"],"description":"RFC 7644 SCIM error response."},"ScimResourceType":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"}},"id":{"type":"string","example":"User"},"name":{"type":"string"},"endpoint":{"type":"string","example":"/Users"},"description":{"type":"string"},"schema":{"type":"string"},"meta":{"type":"object","properties":{"resourceType":{"type":"string"},"location":{"type":"string"}},"required":["resourceType","location"]}},"required":["schemas","id","name","endpoint","description","schema","meta"]},"ScimSchemaDefinition":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"attributes":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"meta":{"type":"object","properties":{"resourceType":{"type":"string"}},"required":["resourceType"]}},"required":["id","name","description","attributes","meta"]},"ScimUserListResponse":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"},"example":["urn:ietf:params:scim:api:messages:2.0:ListResponse"]},"totalResults":{"type":"number","example":1},"startIndex":{"type":"number","example":1},"itemsPerPage":{"type":"number","example":1},"Resources":{"type":"array","items":{"$ref":"#/components/schemas/ScimUser"}}},"required":["schemas","totalResults","startIndex","itemsPerPage","Resources"]},"ScimUser":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:User"]},"id":{"type":"string","example":"u_123"},"externalId":{"type":"string"},"userName":{"type":"string","example":"david"},"displayName":{"type":"string"},"name":{"$ref":"#/components/schemas/ScimName"},"active":{"type":"boolean","example":true},"emails":{"type":"array","items":{"$ref":"#/components/schemas/ScimEmail"}},"meta":{"$ref":"#/components/schemas/ScimMeta"}},"required":["schemas","id","userName","active","emails","meta"],"description":"RFC 7643 SCIM User resource."},"ScimName":{"type":"object","properties":{"formatted":{"type":"string"},"givenName":{"type":"string","example":"David"},"familyName":{"type":"string","example":"Barrat"},"middleName":{"type":"string"},"honorificPrefix":{"type":"string"},"honorificSuffix":{"type":"string"}}},"ScimEmail":{"type":"object","properties":{"value":{"type":"string","example":"david@example.com"},"type":{"type":"string","example":"work"},"primary":{"type":"boolean","example":true}},"required":["value","primary"]},"ScimMeta":{"type":"object","properties":{"resourceType":{"type":"string","example":"User"},"created":{"type":"string","example":"2025-08-31T18:54:48.000Z"},"lastModified":{"type":"string","nullable":true,"example":"2025-10-05T10:12:33.000Z"},"location":{"type":"string","example":"https://api.authdog.com/v1/scim/v2/Users/u_123"},"version":{"type":"string"}},"required":["resourceType","location"]},"ScimUserCreate":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"}},"userName":{"type":"string","example":"david"},"externalId":{"type":"string"},"displayName":{"type":"string"},"active":{"type":"boolean"},"name":{"$ref":"#/components/schemas/ScimName"},"emails":{"type":"array","items":{"$ref":"#/components/schemas/ScimEmail"}},"password":{"type":"string"}},"required":["userName"]},"ScimPatchOp":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"},"example":["urn:ietf:params:scim:api:messages:2.0:PatchOp"]},"Operations":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["add","remove","replace"]},"path":{"type":"string"},"value":{"nullable":true}},"required":["op"]}}},"required":["schemas","Operations"]},"ScimGroupListResponse":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"},"example":["urn:ietf:params:scim:api:messages:2.0:ListResponse"]},"totalResults":{"type":"number","example":1},"startIndex":{"type":"number","example":1},"itemsPerPage":{"type":"number","example":1},"Resources":{"type":"array","items":{"$ref":"#/components/schemas/ScimGroup"}}},"required":["schemas","totalResults","startIndex","itemsPerPage","Resources"]},"ScimGroup":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"},"example":["urn:ietf:params:scim:schemas:core:2.0:Group"]},"id":{"type":"string","example":"g_123"},"externalId":{"type":"string"},"displayName":{"type":"string","example":"Engineering"},"members":{"type":"array","items":{"$ref":"#/components/schemas/ScimMember"}},"meta":{"$ref":"#/components/schemas/ScimMeta"}},"required":["schemas","id","displayName","members","meta"],"description":"RFC 7643 SCIM Group resource."},"ScimMember":{"type":"object","properties":{"value":{"type":"string","example":"u_123"},"display":{"type":"string"},"$ref":{"type":"string","example":"https://api.authdog.com/v1/scim/v2/Users/u_123"}},"required":["value","$ref"]},"ScimGroupCreate":{"type":"object","properties":{"schemas":{"type":"array","items":{"type":"string"}},"externalId":{"type":"string"},"displayName":{"type":"string","example":"Engineering"},"members":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"display":{"type":"string"}},"required":["value"]}}},"required":["displayName"]},"HrisServiceConfig":{"type":"object","properties":{"documentationUri":{"type":"string"},"patch":{"type":"object","properties":{"supported":{"type":"boolean"}},"required":["supported"]},"bulk":{"type":"object","properties":{"supported":{"type":"boolean"}},"required":["supported"]},"filter":{"type":"object","properties":{"supported":{"type":"boolean"},"maxResults":{"type":"number"}},"required":["supported","maxResults"]},"sort":{"type":"object","properties":{"supported":{"type":"boolean"}},"required":["supported"]},"authenticationSchemes":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"specUri":{"type":"string"},"primary":{"type":"boolean"}},"required":["type","name","description","specUri","primary"]}},"resources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"endpoint":{"type":"string"},"description":{"type":"string"}},"required":["id","name","endpoint","description"]}},"meta":{"type":"object","properties":{"resourceType":{"type":"string"},"location":{"type":"string"}},"required":["resourceType","location"]}},"required":["documentationUri","patch","bulk","filter","sort","authenticationSchemes","resources","meta"]},"HrisError":{"type":"object","properties":{"detail":{"type":"string","example":"Employee not found"},"status":{"type":"string","example":"404"},"errorType":{"type":"string","example":"uniqueness"}},"required":["detail","status"],"description":"HRIS error response."},"HrisEmployeeListResponse":{"type":"object","properties":{"totalResults":{"type":"number","example":1},"startIndex":{"type":"number","example":1},"itemsPerPage":{"type":"number","example":1},"Resources":{"type":"array","items":{"$ref":"#/components/schemas/HrisEmployee"}}},"required":["totalResults","startIndex","itemsPerPage","Resources"]},"HrisEmployee":{"type":"object","properties":{"id":{"type":"string","example":"e_123"},"externalId":{"type":"string"},"userName":{"type":"string","example":"david"},"displayName":{"type":"string"},"name":{"$ref":"#/components/schemas/HrisName"},"active":{"type":"boolean","example":true},"emails":{"type":"array","items":{"$ref":"#/components/schemas/HrisEmail"}},"employment":{"type":"object","additionalProperties":{"nullable":true}},"meta":{"$ref":"#/components/schemas/HrisMeta"}},"required":["id","userName","active","emails","meta"],"description":"Authdog HRIS Employee resource."},"HrisName":{"type":"object","properties":{"formatted":{"type":"string"},"givenName":{"type":"string","example":"David"},"familyName":{"type":"string","example":"Barrat"},"middleName":{"type":"string"},"honorificPrefix":{"type":"string"},"honorificSuffix":{"type":"string"}}},"HrisEmail":{"type":"object","properties":{"value":{"type":"string","example":"david@example.com"},"type":{"type":"string","example":"work"},"primary":{"type":"boolean","example":true}},"required":["value","primary"]},"HrisMeta":{"type":"object","properties":{"resourceType":{"type":"string","example":"Employee"},"created":{"type":"string","example":"2025-08-31T18:54:48.000Z"},"lastModified":{"type":"string","example":"2025-10-05T10:12:33.000Z"},"location":{"type":"string","example":"https://api.authdog.com/v1/hris/v1/Employees/e_123"},"version":{"type":"string"}},"required":["resourceType","location"]},"HrisEmployeeCreate":{"type":"object","properties":{"userName":{"type":"string","example":"david"},"externalId":{"type":"string"},"displayName":{"type":"string"},"active":{"type":"boolean"},"name":{"$ref":"#/components/schemas/HrisName"},"emails":{"type":"array","items":{"$ref":"#/components/schemas/HrisEmail"}},"primaryEmail":{"type":"string"},"password":{"type":"string"},"employment":{"type":"object","additionalProperties":{"nullable":true}}},"required":["userName"]},"HrisPatchOp":{"type":"object","properties":{"Operations":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["add","remove","replace"]},"path":{"type":"string"},"value":{"nullable":true}},"required":["op"]}}},"required":["Operations"]},"HrisDepartmentListResponse":{"type":"object","properties":{"totalResults":{"type":"number","example":1},"startIndex":{"type":"number","example":1},"itemsPerPage":{"type":"number","example":1},"Resources":{"type":"array","items":{"$ref":"#/components/schemas/HrisDepartment"}}},"required":["totalResults","startIndex","itemsPerPage","Resources"]},"HrisDepartment":{"type":"object","properties":{"id":{"type":"string","example":"d_123"},"externalId":{"type":"string"},"displayName":{"type":"string","example":"Engineering"},"description":{"type":"string"},"members":{"type":"array","items":{"$ref":"#/components/schemas/HrisMember"}},"meta":{"$ref":"#/components/schemas/HrisMeta"}},"required":["id","displayName","members","meta"],"description":"Authdog HRIS Department resource."},"HrisMember":{"type":"object","properties":{"value":{"type":"string","example":"e_123"},"display":{"type":"string"},"$ref":{"type":"string","example":"https://api.authdog.com/v1/hris/v1/Employees/e_123"}},"required":["value","$ref"]},"HrisDepartmentCreate":{"type":"object","properties":{"externalId":{"type":"string"},"displayName":{"type":"string","example":"Engineering"},"description":{"type":"string"},"members":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"display":{"type":"string"}},"required":["value"]}}},"required":["displayName"]},"AuthzenConfiguration":{"type":"object","properties":{"policy_decision_point":{"type":"string"},"access_evaluation_endpoint":{"type":"string"},"access_evaluations_endpoint":{"type":"string"},"search_subject_endpoint":{"type":"string"},"search_resource_endpoint":{"type":"string"},"search_action_endpoint":{"type":"string"}},"required":["policy_decision_point","access_evaluation_endpoint"]},"AuthzenDecision":{"type":"object","properties":{"decision":{"type":"boolean"},"context":{"type":"object","properties":{"id":{"type":"string"},"reason_admin":{"type":"object","additionalProperties":{"nullable":true}},"reason_user":{"type":"object","additionalProperties":{"nullable":true}},"metadata":{"type":"object","additionalProperties":{"nullable":true}}},"additionalProperties":{"nullable":true}}},"required":["decision"]},"AuthzenError":{"type":"object","properties":{"error":{"type":"object","properties":{"status":{"type":"number","example":400},"message":{"type":"string","example":"subject.id is required"}},"required":["status","message"]}},"required":["error"]},"AuthzenEvaluationRequest":{"type":"object","properties":{"subject":{"$ref":"#/components/schemas/AuthzenSubject"},"action":{"$ref":"#/components/schemas/AuthzenAction"},"resource":{"$ref":"#/components/schemas/AuthzenResource"},"context":{"type":"object","additionalProperties":{"nullable":true},"description":"Request-time environment (ip, device, time, ...)."}},"required":["subject","action","resource"]},"AuthzenSubject":{"type":"object","properties":{"type":{"type":"string","example":"user"},"id":{"type":"string","example":"alice@example.com"},"properties":{"type":"object","additionalProperties":{"nullable":true},"description":"Free-form property bag carried on the entity."}},"required":["type","id"]},"AuthzenAction":{"type":"object","properties":{"name":{"type":"string","example":"can_read"},"properties":{"type":"object","additionalProperties":{"nullable":true},"description":"Free-form property bag carried on the entity."}},"required":["name"]},"AuthzenResource":{"type":"object","properties":{"type":{"type":"string","example":"document"},"id":{"type":"string","example":"doc-1"},"properties":{"type":"object","additionalProperties":{"nullable":true},"description":"Free-form property bag carried on the entity."}},"required":["type"]},"AuthzenEvaluationsResponse":{"type":"object","properties":{"evaluations":{"type":"array","items":{"$ref":"#/components/schemas/AuthzenDecision"}}},"required":["evaluations"]},"AuthzenEvaluationsRequest":{"type":"object","properties":{"subject":{"allOf":[{"$ref":"#/components/schemas/AuthzenSubject"},{"description":"Default subject, overridable per evaluation."}]},"action":{"$ref":"#/components/schemas/AuthzenAction"},"resource":{"$ref":"#/components/schemas/AuthzenResource"},"context":{"type":"object","additionalProperties":{"nullable":true},"description":"Request-time environment (ip, device, time, ...)."},"evaluations":{"type":"array","items":{"type":"object","properties":{"subject":{"$ref":"#/components/schemas/AuthzenSubject"},"action":{"$ref":"#/components/schemas/AuthzenAction"},"resource":{"$ref":"#/components/schemas/AuthzenResource"},"context":{"type":"object","additionalProperties":{"nullable":true},"description":"Request-time environment (ip, device, time, ...)."}}},"description":"Boxcarred evaluations. Each item inherits any member it omits from the top level."},"options":{"type":"object","properties":{"evaluations_semantic":{"type":"string","enum":["execute_all","deny_on_first_deny","permit_on_first_permit"]}},"additionalProperties":{"nullable":true}}}},"AuthzenSubjectSearchResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/AuthzenSubject"}},"page":{"$ref":"#/components/schemas/AuthzenPage"},"context":{"type":"object","additionalProperties":{"nullable":true}}},"required":["results"]},"AuthzenPage":{"type":"object","properties":{"next_token":{"type":"string","description":"Opaque forward-only cursor; absent on the last page."}}},"AuthzenSubjectSearchRequest":{"type":"object","properties":{"subject":{"type":"object","properties":{"type":{"type":"string","example":"user"},"id":{"type":"string","example":"alice@example.com"},"properties":{"type":"object","additionalProperties":{"nullable":true},"description":"Free-form property bag carried on the entity."}},"required":["type"],"description":"`type` filters the candidate set; `id` is ignored."},"action":{"$ref":"#/components/schemas/AuthzenAction"},"resource":{"$ref":"#/components/schemas/AuthzenResource"},"context":{"type":"object","additionalProperties":{"nullable":true},"description":"Request-time environment (ip, device, time, ...)."},"page":{"$ref":"#/components/schemas/AuthzenPage"}},"required":["subject","action","resource"]},"AuthzenResourceSearchResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/AuthzenResource"}},"page":{"$ref":"#/components/schemas/AuthzenPage"},"context":{"type":"object","additionalProperties":{"nullable":true}}},"required":["results"]},"AuthzenResourceSearchRequest":{"type":"object","properties":{"subject":{"$ref":"#/components/schemas/AuthzenSubject"},"action":{"$ref":"#/components/schemas/AuthzenAction"},"resource":{"allOf":[{"$ref":"#/components/schemas/AuthzenResource"},{"description":"`type` filters the candidate set; `id` is ignored."}]},"context":{"type":"object","additionalProperties":{"nullable":true},"description":"Request-time environment (ip, device, time, ...)."},"page":{"$ref":"#/components/schemas/AuthzenPage"}},"required":["subject","action","resource"]},"AuthzenActionSearchResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/AuthzenAction"}},"page":{"$ref":"#/components/schemas/AuthzenPage"},"context":{"type":"object","additionalProperties":{"nullable":true}}},"required":["results"]},"AuthzenActionSearchRequest":{"type":"object","properties":{"subject":{"$ref":"#/components/schemas/AuthzenSubject"},"resource":{"$ref":"#/components/schemas/AuthzenResource"},"context":{"type":"object","additionalProperties":{"nullable":true},"description":"Request-time environment (ip, device, time, ...)."},"page":{"$ref":"#/components/schemas/AuthzenPage"}},"required":["subject","resource"]},"EnvAuditLogsResponse":{"type":"object","properties":{"logs":{"type":"array","items":{"$ref":"#/components/schemas/EnvAuditLog"}},"total":{"type":"number"},"meta":{"$ref":"#/components/schemas/AuditQueryMeta"}},"required":["logs","total"]},"EnvAuditLog":{"type":"object","properties":{"id":{"type":"string","nullable":true},"applicationId":{"type":"string","nullable":true},"eventType":{"type":"string","nullable":true},"eventCategory":{"type":"string","nullable":true},"environmentId":{"type":"string","nullable":true},"eventPayload":{"type":"string","nullable":true},"externalId":{"type":"string","nullable":true},"orgId":{"type":"string","nullable":true},"providerId":{"type":"string","nullable":true},"remoteIp":{"type":"string","nullable":true},"tenantId":{"type":"string","nullable":true},"timestamp":{"type":"string","nullable":true},"userAgent":{"type":"string","nullable":true},"user":{"$ref":"#/components/schemas/AuditLogUser"},"location":{"$ref":"#/components/schemas/AuditLogLocation"}}},"AuditLogUser":{"type":"object","nullable":true,"properties":{"id":{"type":"string","nullable":true},"externalId":{"type":"string","nullable":true},"displayName":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"avatar":{"type":"string","nullable":true}}},"AuditLogLocation":{"type":"object","nullable":true,"properties":{"city":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"continent":{"type":"string","nullable":true},"countryFlag":{"type":"string","nullable":true}}},"AuditQueryMeta":{"type":"object","properties":{"ok":{"type":"object","nullable":true,"properties":{"message":{"type":"string","nullable":true},"code":{"type":"number","nullable":true}}},"error":{"type":"object","nullable":true,"properties":{"message":{"type":"string","nullable":true},"code":{"type":"number","nullable":true}}}}},"EventMetadataResponse":{"type":"object","properties":{"categories":{"type":"array","items":{"$ref":"#/components/schemas/EventCategoryMetadata"}},"totalEvents":{"type":"number"},"meta":{"$ref":"#/components/schemas/AuditQueryMeta"}},"required":["categories","totalEvents"]},"EventCategoryMetadata":{"type":"object","properties":{"category":{"type":"string"},"count":{"type":"number"},"eventTypes":{"type":"array","items":{"$ref":"#/components/schemas/EventTypeMetadata"},"default":[]}},"required":["category","count"]},"EventTypeMetadata":{"type":"object","properties":{"eventType":{"type":"string"},"count":{"type":"number"},"samplePayload":{"nullable":true}},"required":["eventType","count"]},"EventTypesCatalogResponse":{"type":"object","properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/EventTypeCatalogEntry"}},"categories":{"type":"array","items":{"type":"string"}}},"required":["entries","categories"]},"EventTypeCatalogEntry":{"type":"object","properties":{"eventType":{"type":"string"},"category":{"type":"string"}},"required":["eventType","category"]},"OrganizationAuditLogsResponse":{"type":"object","properties":{"logs":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationAuditLog"}},"total":{"type":"number"},"meta":{"$ref":"#/components/schemas/AuditQueryMeta"}},"required":["logs","total"]},"OrganizationAuditLog":{"type":"object","properties":{"id":{"type":"string","nullable":true},"organizationId":{"type":"string","nullable":true},"eventType":{"type":"string","nullable":true},"eventCategory":{"type":"string","nullable":true},"resourceType":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"previousValue":{"type":"string","nullable":true},"newValue":{"type":"string","nullable":true},"actorUserId":{"type":"string","nullable":true},"actorUserEmail":{"type":"string","nullable":true},"actorAuthMethod":{"type":"string","nullable":true},"tenantId":{"type":"string","nullable":true},"applicationId":{"type":"string","nullable":true},"environmentId":{"type":"string","nullable":true},"remoteIp":{"type":"string","nullable":true},"userAgent":{"type":"string","nullable":true},"timestamp":{"type":"string","nullable":true}}},"EventsListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Event"}},"list_metadata":{"$ref":"#/components/schemas/EventsListMetadata"},"meta":{"$ref":"#/components/schemas/EventsQueryMeta"}},"required":["data","list_metadata"]},"Event":{"type":"object","properties":{"id":{"type":"string"},"event":{"type":"string","description":"Canonical event type name.","example":"SIGNIN_SUCCESS"},"category":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true,"description":"ISO-8601 timestamp of when the event occurred."},"organization_id":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{"nullable":true},"description":"Event payload plus contextual attributes."}},"required":["id","event","data"]},"EventsListMetadata":{"type":"object","properties":{"after":{"type":"string","nullable":true,"description":"Cursor for the next page; null when there are no more events."}},"required":["after"]},"EventsQueryMeta":{"type":"object","properties":{"ok":{"type":"object","nullable":true,"properties":{"message":{"type":"string","nullable":true},"code":{"type":"number","nullable":true}}},"error":{"type":"object","nullable":true,"properties":{"message":{"type":"string","nullable":true},"code":{"type":"number","nullable":true}}}}},"EventTypesResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EventTypeCatalogEntry"}},"categories":{"type":"array","items":{"type":"string"}}},"required":["data","categories"]},"IngestSecurityEventsResponse":{"type":"object","properties":{"count":{"type":"number","description":"Number of events accepted into the analysis pipeline."},"rejected":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/IngestedEventRejection"},"description":"Per-event validation rejections; accepted events still ingest."},"meta":{"$ref":"#/components/schemas/EventsQueryMeta"}},"required":["count"]},"IngestedEventRejection":{"type":"object","properties":{"index":{"type":"number"},"reason":{"type":"string"}},"required":["index","reason"]},"IngestSecurityEventsBody":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/IngestSecurityEvent"},"minItems":1,"maxItems":50}},"required":["events"]},"IngestSecurityEvent":{"type":"object","properties":{"eventType":{"type":"string","minLength":1,"maxLength":128,"description":"Event type, e.g. `signin_failure` or `api.suspicious_request`.","example":"signin_failure"},"eventCategory":{"type":"string","maxLength":64,"description":"Event category; defaults to \"security\"."},"externalId":{"type":"string","maxLength":256,"description":"Subject the event concerns (user external id)."},"remoteIp":{"type":"string","maxLength":64},"userAgent":{"type":"string","maxLength":512},"providerId":{"type":"string","maxLength":64,"description":"Producer identifier; defaults to \"api\"."},"timestamp":{"type":"string","description":"ISO timestamp; invalid or out-of-window values become \"now\"."},"payload":{"type":"object","additionalProperties":{"nullable":true},"description":"Free-form attributes carried into analysis (max 8 KiB serialized)."},"city":{"type":"string","maxLength":128},"region":{"type":"string","maxLength":128},"country":{"type":"string","maxLength":8},"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":["eventType"]},"WebhookEndpointsResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEndpoint"}},"meta":{"$ref":"#/components/schemas/WebhooksQueryMeta"}},"required":["data"]},"WebhookEndpoint":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"enabled":{"type":"boolean","nullable":true},"webhookUrl":{"type":"string","nullable":true},"signingSecretConfigured":{"type":"boolean"},"eventTypes":{"type":"array","items":{"type":"string"},"default":[]},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","signingSecretConfigured"]},"WebhooksQueryMeta":{"type":"object","properties":{"ok":{"type":"object","nullable":true,"properties":{"message":{"type":"string","nullable":true},"code":{"type":"number","nullable":true}}},"error":{"type":"object","nullable":true,"properties":{"message":{"type":"string","nullable":true},"code":{"type":"number","nullable":true}}}}},"WebhookEndpointResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/WebhookEndpoint"},"signingSecret":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/WebhooksQueryMeta"}},"required":["data"]},"CreateWebhookEndpointBody":{"type":"object","properties":{"name":{"type":"string","minLength":1},"enabled":{"type":"boolean"},"webhookUrl":{"type":"string","minLength":1,"description":"Destination URL that receives signed webhook deliveries."},"eventTypes":{"type":"array","items":{"type":"string","minLength":1},"default":[]},"channels":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1}},"required":["name"]},"default":[]}},"required":["name","enabled","webhookUrl"]},"WebhookDeliveriesResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookDelivery"}},"meta":{"$ref":"#/components/schemas/WebhooksQueryMeta"}},"required":["data"]},"WebhookDelivery":{"type":"object","properties":{"id":{"type":"string"},"channelId":{"type":"string","nullable":true},"environmentId":{"type":"string","nullable":true},"eventId":{"type":"string","nullable":true},"eventType":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"attempts":{"type":"number","nullable":true},"responseStatus":{"type":"number","nullable":true},"error":{"type":"string","nullable":true},"lastAttemptAt":{"type":"string","nullable":true},"nextRetryAt":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true}},"required":["id"]},"RedeliverResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/WebhooksQueryMeta"}},"required":["success"]},"UpdateWebhookEndpointBody":{"type":"object","properties":{"name":{"type":"string","minLength":1},"enabled":{"type":"boolean"},"webhookUrl":{"type":"string","minLength":1,"description":"Omit to preserve the current destination URL."},"eventTypes":{"type":"array","items":{"type":"string","minLength":1},"default":[]},"channels":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1}},"required":["name"]},"default":[]}},"required":["name","enabled"]},"WebhookActionResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/WebhooksQueryMeta"}},"required":["success"]},"RotateSigningSecretResponse":{"type":"object","properties":{"signingSecret":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/WebhooksQueryMeta"}},"required":["signingSecret"]},"NotificationChannelsResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/NotificationChannel"}},"meta":{"$ref":"#/components/schemas/NotificationChannelMeta"}},"required":["data"]},"NotificationChannel":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"name":{"type":"string"},"type":{"$ref":"#/components/schemas/NotificationChannelType"},"enabled":{"type":"boolean"},"webhookUrlConfigured":{"type":"boolean"},"datadogApiKeyConfigured":{"type":"boolean"},"datadogSite":{"$ref":"#/components/schemas/DatadogSite"},"datadogService":{"type":"string","nullable":true},"datadogSource":{"type":"string","nullable":true},"datadogTags":{"type":"string","nullable":true},"sysdigApiTokenConfigured":{"type":"boolean"},"sysdigRegion":{"$ref":"#/components/schemas/SysdigRegion"},"sysdigSource":{"type":"string","nullable":true},"sysdigTags":{"type":"string","nullable":true},"splunkTokenConfigured":{"type":"boolean"},"splunkUrl":{"type":"string","nullable":true},"splunkIndex":{"type":"string","nullable":true},"splunkSourcetype":{"type":"string","nullable":true},"splunkSource":{"type":"string","nullable":true},"sumoUrlConfigured":{"type":"boolean"},"sumoSourceCategory":{"type":"string","nullable":true},"sumoSourceName":{"type":"string","nullable":true},"sumoSourceHost":{"type":"string","nullable":true},"sentinelSharedKeyConfigured":{"type":"boolean"},"sentinelWorkspaceId":{"type":"string","nullable":true},"sentinelLogType":{"type":"string","nullable":true},"defaultChannel":{"type":"string","nullable":true},"channels":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}},"eventTypes":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","environmentId","name","type","enabled","webhookUrlConfigured","datadogApiKeyConfigured","sysdigApiTokenConfigured","splunkTokenConfigured","sumoUrlConfigured","sentinelSharedKeyConfigured","channels","eventTypes","createdAt","updatedAt"]},"NotificationChannelType":{"type":"string","enum":["webhook","slack","datadog","sysdig","splunk","sumologic","sentinel"]},"DatadogSite":{"type":"string","nullable":true,"enum":["datadoghq.com","us3.datadoghq.com","us5.datadoghq.com","datadoghq.eu","ap1.datadoghq.com","ap2.datadoghq.com","uk1.datadoghq.com","ddog-gov.com","us2.ddog-gov.com",null]},"SysdigRegion":{"type":"string","nullable":true,"enum":["us1","us2","us4","eu1","au1","in1",null]},"NotificationChannelMeta":{"type":"object","properties":{"ok":{"type":"object","nullable":true,"properties":{"message":{"type":"string","nullable":true},"code":{"type":"number","nullable":true}}},"error":{"type":"object","nullable":true,"properties":{"message":{"type":"string","nullable":true},"code":{"type":"number","nullable":true}}}}},"NotificationChannelResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/NotificationChannel"},"meta":{"$ref":"#/components/schemas/NotificationChannelMeta"}},"required":["data"]},"CreateNotificationChannelBody":{"type":"object","properties":{"name":{"type":"string","minLength":1},"type":{"$ref":"#/components/schemas/NotificationChannelType"},"enabled":{"type":"boolean"},"webhookUrl":{"type":"string","description":"Slack or generic webhook URL. Required when creating those channel types; omit during update to preserve it."},"datadogApiKey":{"type":"string","minLength":1,"format":"password","description":"Datadog API key. Required when creating a Datadog channel; omit during update to preserve it."},"datadogSite":{"$ref":"#/components/schemas/DatadogSite"},"datadogService":{"type":"string","minLength":1},"datadogSource":{"type":"string","minLength":1},"datadogTags":{"type":"string"},"sysdigApiToken":{"type":"string","minLength":1,"format":"password","description":"Sysdig API token. Required when creating a Sysdig channel; omit during update to preserve it."},"sysdigRegion":{"$ref":"#/components/schemas/SysdigRegion"},"sysdigSource":{"type":"string","minLength":1},"sysdigTags":{"type":"string"},"splunkToken":{"type":"string","minLength":1,"format":"password","description":"Splunk HEC token. Required when creating a Splunk channel; omit during update to preserve it."},"splunkUrl":{"type":"string","minLength":1,"description":"Splunk HEC collector base URL (host[:port]). Required when creating a Splunk channel."},"splunkIndex":{"type":"string","minLength":1},"splunkSourcetype":{"type":"string","minLength":1},"splunkSource":{"type":"string","minLength":1},"sumoUrl":{"type":"string","minLength":1,"format":"password","description":"Sumo Logic HTTP Source collector URL (this URL is itself the credential). Required when creating a Sumo Logic channel; omit during update to preserve it."},"sumoSourceCategory":{"type":"string","minLength":1},"sumoSourceName":{"type":"string","minLength":1},"sumoSourceHost":{"type":"string","minLength":1},"sentinelWorkspaceId":{"type":"string","minLength":1,"description":"Microsoft Sentinel (Log Analytics) workspace ID (GUID). Required when creating a Sentinel channel."},"sentinelSharedKey":{"type":"string","minLength":1,"format":"password","description":"Log Analytics workspace shared key (primary or secondary). Required when creating a Sentinel channel; omit during update to preserve it."},"sentinelLogType":{"type":"string","minLength":1,"description":"Custom log table name (Log-Type header, alphanumeric; Azure appends _CL). Defaults to AuthdogAudit."},"defaultChannel":{"type":"string"},"channels":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1}},"required":["name"]},"default":[]},"eventTypes":{"type":"array","items":{"type":"string","minLength":1},"default":[]}},"required":["name","type","enabled"]},"UpdateNotificationChannelBody":{"type":"object","properties":{"name":{"type":"string","minLength":1},"type":{"$ref":"#/components/schemas/NotificationChannelType"},"enabled":{"type":"boolean"},"webhookUrl":{"type":"string","description":"Slack or generic webhook URL. Required when creating those channel types; omit during update to preserve it."},"datadogApiKey":{"type":"string","minLength":1,"format":"password","description":"Datadog API key. Required when creating a Datadog channel; omit during update to preserve it."},"datadogSite":{"$ref":"#/components/schemas/DatadogSite"},"datadogService":{"type":"string","minLength":1},"datadogSource":{"type":"string","minLength":1},"datadogTags":{"type":"string"},"sysdigApiToken":{"type":"string","minLength":1,"format":"password","description":"Sysdig API token. Required when creating a Sysdig channel; omit during update to preserve it."},"sysdigRegion":{"$ref":"#/components/schemas/SysdigRegion"},"sysdigSource":{"type":"string","minLength":1},"sysdigTags":{"type":"string"},"splunkToken":{"type":"string","minLength":1,"format":"password","description":"Splunk HEC token. Required when creating a Splunk channel; omit during update to preserve it."},"splunkUrl":{"type":"string","minLength":1,"description":"Splunk HEC collector base URL (host[:port]). Required when creating a Splunk channel."},"splunkIndex":{"type":"string","minLength":1},"splunkSourcetype":{"type":"string","minLength":1},"splunkSource":{"type":"string","minLength":1},"sumoUrl":{"type":"string","minLength":1,"format":"password","description":"Sumo Logic HTTP Source collector URL (this URL is itself the credential). Required when creating a Sumo Logic channel; omit during update to preserve it."},"sumoSourceCategory":{"type":"string","minLength":1},"sumoSourceName":{"type":"string","minLength":1},"sumoSourceHost":{"type":"string","minLength":1},"sentinelWorkspaceId":{"type":"string","minLength":1,"description":"Microsoft Sentinel (Log Analytics) workspace ID (GUID). Required when creating a Sentinel channel."},"sentinelSharedKey":{"type":"string","minLength":1,"format":"password","description":"Log Analytics workspace shared key (primary or secondary). Required when creating a Sentinel channel; omit during update to preserve it."},"sentinelLogType":{"type":"string","minLength":1,"description":"Custom log table name (Log-Type header, alphanumeric; Azure appends _CL). Defaults to AuthdogAudit."},"defaultChannel":{"type":"string"},"channels":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1}},"required":["name"]},"default":[]},"eventTypes":{"type":"array","items":{"type":"string","minLength":1},"default":[]}},"required":["name","type","enabled"]},"NotificationChannelActionResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/NotificationChannelMeta"}},"required":["success"]},"TestNotificationChannelBody":{"type":"object","properties":{"message":{"type":"string","minLength":1}},"required":["message"]},"WidgetTokenResponse":{"type":"object","properties":{"token":{"type":"string","nullable":true},"expiresAt":{"type":"string","nullable":true},"scopes":{"type":"array","items":{"type":"string"},"default":[]},"meta":{"$ref":"#/components/schemas/WidgetsQueryMeta"}},"required":["token"]},"WidgetsQueryMeta":{"type":"object","properties":{"ok":{"type":"object","nullable":true,"properties":{"message":{"type":"string","nullable":true},"code":{"type":"number","nullable":true}}},"error":{"type":"object","nullable":true,"properties":{"message":{"type":"string","nullable":true},"code":{"type":"number","nullable":true}}}}},"WidgetTokenRequest":{"type":"object","properties":{"organizationId":{"type":"string","description":"Organization the widget should be scoped to."},"userId":{"type":"string","description":"User the widget should act on behalf of."},"scopes":{"type":"array","items":{"type":"string"},"example":["users-management","organization-switcher"],"description":"Widget scopes to grant. Values are namespaced under `widgets:`."}}},"GeneratePortalLinkResponse":{"type":"object","properties":{"link":{"type":"string","nullable":true},"intent":{"type":"string","nullable":true},"expiresAt":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/AdminPortalQueryMeta"}},"required":["link"]},"AdminPortalQueryMeta":{"type":"object","properties":{"ok":{"type":"object","nullable":true,"properties":{"message":{"type":"string","nullable":true},"code":{"type":"number","nullable":true}}},"error":{"type":"object","nullable":true,"properties":{"message":{"type":"string","nullable":true},"code":{"type":"number","nullable":true}}}}},"GeneratePortalLinkRequest":{"type":"object","properties":{"organizationId":{"type":"string","description":"Organization whose admin will use the portal."},"intent":{"type":"string","enum":["sso","dsync","domain_verification"],"example":"sso","description":"Which setup flow the portal should open (default `sso`)."}},"required":["organizationId"]},"ElevatePolicyResponse":{"type":"object","properties":{"policy":{"$ref":"#/components/schemas/ElevatePolicy"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["policy"]},"ElevatePolicy":{"type":"object","nullable":true,"properties":{"id":{"type":"string","nullable":true},"environmentId":{"type":"string"},"tenantId":{"type":"string","nullable":true},"approvalRequired":{"type":"boolean"},"mfaRequired":{"type":"boolean"},"maxDurationMinutes":{"type":"integer"},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","tenantId","approvalRequired","mfaRequired","maxDurationMinutes","createdAt","updatedAt"]},"ElevateRequestsResponse":{"type":"object","properties":{"requests":{"type":"array","items":{"$ref":"#/components/schemas/ElevateRequest"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["requests"]},"ElevateRequest":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"tenantId":{"type":"string"},"requesterUserId":{"type":"string"},"requesterExternalId":{"type":"string","nullable":true},"requesterEmail":{"type":"string","nullable":true},"targetType":{"type":"string","enum":["role","fga"]},"roleId":{"type":"string","nullable":true},"targetNamespace":{"type":"string","nullable":true},"targetObjectId":{"type":"string","nullable":true},"targetRelation":{"type":"string","nullable":true},"reason":{"type":"string"},"ticketReference":{"type":"string","nullable":true},"requestedStartAt":{"type":"string"},"durationMinutes":{"type":"integer"},"status":{"type":"string"},"approvalRequired":{"type":"boolean"},"mfaRequired":{"type":"boolean"},"reviewNote":{"type":"string","nullable":true},"grant":{"$ref":"#/components/schemas/ElevateGrant"}},"required":["id","environmentId","tenantId","requesterUserId","requesterExternalId","requesterEmail","targetType","roleId","targetNamespace","targetObjectId","targetRelation","reason","ticketReference","requestedStartAt","durationMinutes","status","approvalRequired","mfaRequired","reviewNote","grant"],"additionalProperties":{"nullable":true}},"ElevateGrant":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"requestId":{"type":"string"},"environmentId":{"type":"string"},"tenantId":{"type":"string"},"granteeUserId":{"type":"string"},"granteeExternalId":{"type":"string","nullable":true},"targetType":{"type":"string","enum":["role","fga"]},"roleId":{"type":"string","nullable":true},"targetNamespace":{"type":"string","nullable":true},"targetObjectId":{"type":"string","nullable":true},"targetRelation":{"type":"string","nullable":true},"status":{"type":"string"},"validFrom":{"type":"string"},"expiresAt":{"type":"string"},"isActive":{"type":"boolean"},"revokedAt":{"type":"string","nullable":true}},"required":["id","requestId","environmentId","tenantId","granteeUserId","granteeExternalId","targetType","roleId","targetNamespace","targetObjectId","targetRelation","status","validFrom","expiresAt","isActive","revokedAt"],"additionalProperties":{"nullable":true}},"ElevateRequestResponse":{"type":"object","properties":{"request":{"allOf":[{"$ref":"#/components/schemas/ElevateRequest"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["request"]},"ElevateGrantResponse":{"type":"object","properties":{"grant":{"$ref":"#/components/schemas/ElevateGrant"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["grant"]},"ElevateActivationResponse":{"type":"object","properties":{"token":{"type":"string"},"tokenType":{"type":"string","enum":["Bearer"]},"expiresAt":{"type":"string"},"grantId":{"type":"string"}},"required":["token","tokenType","expiresAt","grantId"]},"EnvRolesResponse":{"type":"object","properties":{"roles":{"type":"array","items":{"$ref":"#/components/schemas/Role"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["roles"]},"Role":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"name":{"type":"string"},"slug":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"canCreate":{"type":"boolean","nullable":true},"canRead":{"type":"boolean","nullable":true},"canUpdate":{"type":"boolean","nullable":true},"canDelete":{"type":"boolean","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","resourceId","name","slug","description","canCreate","canRead","canUpdate","canDelete","createdAt","updatedAt"]},"SaveRoleResponse":{"type":"object","properties":{"role":{"allOf":[{"$ref":"#/components/schemas/Role"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["role"]},"SaveRoleBody":{"type":"object","properties":{"id":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string"},"canCreate":{"type":"boolean"},"canRead":{"type":"boolean"},"canUpdate":{"type":"boolean"},"canDelete":{"type":"boolean"}},"required":["name"]},"RbacMetaOnlyResponse":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/ManagementMeta"}}},"EnvPermissionsResponse":{"type":"object","properties":{"permissions":{"type":"array","items":{"$ref":"#/components/schemas/Permission"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["permissions"]},"Permission":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string","nullable":true},"resource":{"type":"string"},"action":{"type":"string"},"description":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","resource","action","description","createdAt","updatedAt"]},"SavePermissionResponse":{"type":"object","properties":{"permission":{"allOf":[{"$ref":"#/components/schemas/Permission"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["permission"]},"SavePermissionBody":{"type":"object","properties":{"id":{"type":"string"},"resource":{"type":"string"},"action":{"type":"string"},"description":{"type":"string"}},"required":["resource","action"]},"EnvResourcesResponse":{"type":"object","properties":{"resources":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["resources"]},"Resource":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string","nullable":true},"name":{"type":"string"},"slug":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","name","slug","description","createdAt","updatedAt"]},"SaveResourceResponse":{"type":"object","properties":{"resource":{"allOf":[{"$ref":"#/components/schemas/Resource"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["resource"]},"SaveResourceBody":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string"}},"required":["name"]},"RolePermissionsResponse":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/RoleSummary"},"permissions":{"type":"array","items":{"$ref":"#/components/schemas/PermissionSummary"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["role","permissions"]},"RoleSummary":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["id","name","slug","description"]},"PermissionSummary":{"type":"object","properties":{"id":{"type":"string"},"resource":{"type":"string"},"action":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["id","resource","action","description"]},"SetRolePermissionsBody":{"type":"object","properties":{"permissionIds":{"type":"array","items":{"type":"string"}}},"required":["permissionIds"]},"GroupRolesResponse":{"type":"object","properties":{"roles":{"type":"array","items":{"$ref":"#/components/schemas/GroupRoleSummary"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["roles"]},"GroupRoleSummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"canCreate":{"type":"boolean","nullable":true},"canRead":{"type":"boolean","nullable":true},"canUpdate":{"type":"boolean","nullable":true},"canDelete":{"type":"boolean","nullable":true}},"required":["id","name","slug","description","canCreate","canRead","canUpdate","canDelete"]},"AddGroupRoleResponse":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/RbacGroupSummary"},"role":{"$ref":"#/components/schemas/RbacGroupSummary"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["group","role"]},"RbacGroupSummary":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string","nullable":true}},"required":["id","name","slug"]},"AddGroupRoleBody":{"type":"object","properties":{"roleId":{"type":"string"}},"required":["roleId"]},"RemoveGroupRoleResponse":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/RbacGroupSummary"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["group"]},"AbacPoliciesResponse":{"type":"object","properties":{"policies":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/AbacPolicy"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["policies"]},"AbacPolicy":{"type":"object","properties":{"id":{"type":"string","nullable":true},"environmentId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"regoSource":{"type":"string","nullable":true},"enabled":{"type":"boolean","nullable":true},"version":{"type":"number","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","name","slug","description","regoSource","enabled","version","createdAt","updatedAt"]},"SaveAbacPolicyResponse":{"type":"object","properties":{"policy":{"allOf":[{"$ref":"#/components/schemas/AbacPolicy"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["policy"]},"SaveAbacPolicyBody":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string"},"regoSource":{"type":"string"},"enabled":{"type":"boolean"}},"required":["name","regoSource"]},"ValidateAbacPolicyResponse":{"type":"object","properties":{"valid":{"type":"boolean","nullable":true},"error":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["valid","error"]},"ValidateAbacPolicyBody":{"type":"object","properties":{"regoSource":{"type":"string"},"slug":{"type":"string"}},"required":["regoSource"]},"UserPermissionsResponse":{"type":"object","properties":{"permissions":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/Permission"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["permissions"]},"GroupRoleMappingsResponse":{"type":"object","properties":{"mappings":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/GroupRoleMapping"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["mappings"]},"GroupRoleMapping":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"matchType":{"type":"string"},"matchValue":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","matchType","matchValue","roleId","roleName","createdAt","updatedAt"]},"GroupRoleMappingResponse":{"type":"object","properties":{"mapping":{"allOf":[{"$ref":"#/components/schemas/GroupRoleMapping"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["mapping"]},"CreateGroupRoleMappingBody":{"type":"object","properties":{"matchType":{"type":"string"},"matchValue":{"type":"string"},"roleId":{"type":"string"}},"required":["matchType","matchValue","roleId"]},"ApplyGroupRoleMappingsResponse":{"type":"object","properties":{"groups":{"type":"number","nullable":true},"assignments":{"type":"number","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["groups","assignments"]},"EnvironmentThreatsResponse":{"type":"object","properties":{"threats":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/Threat"}},"total":{"type":"number","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["threats","total"]},"Threat":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"description":{"type":"string","nullable":true},"source":{"type":"string","nullable":true},"subjectType":{"type":"string","nullable":true},"subjectId":{"type":"string","nullable":true},"metadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"assignee":{"type":"string","nullable":true},"resolution":{"type":"string","nullable":true},"resolvedAt":{"type":"string","nullable":true},"detectedAt":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","type","severity","status","title","description","source","subjectType","subjectId","metadata","assignee","resolution","resolvedAt","detectedAt","createdAt","updatedAt"]},"ThreatResponse":{"type":"object","properties":{"threat":{"allOf":[{"$ref":"#/components/schemas/Threat"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["threat"]},"CreateThreatBody":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"severity":{"type":"string"},"description":{"type":"string"},"source":{"type":"string"},"subjectType":{"type":"string"},"subjectId":{"type":"string"},"metadata":{"type":"object","additionalProperties":{"nullable":true}},"detectedAt":{"type":"string"}},"required":["type","title"]},"UpdateThreatBody":{"type":"object","properties":{"status":{"type":"string"},"severity":{"type":"string"},"assignee":{"type":"string"}}},"ResolveThreatBody":{"type":"object","properties":{"status":{"type":"string"},"resolution":{"type":"string"}},"required":["status"]},"DeleteThreatResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"message":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success","message"]},"EnvironmentPostureOverviewResponse":{"type":"object","properties":{"score":{"type":"number"},"checksRun":{"type":"number"},"checksPassed":{"type":"number"},"checksFailed":{"type":"number"},"categoryScores":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/PostureCategoryScore"}},"findings":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/PostureFinding"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["score","checksRun","checksPassed","checksFailed","categoryScores","findings"]},"PostureCategoryScore":{"type":"object","properties":{"category":{"type":"string"},"score":{"type":"number"}},"required":["category","score"]},"PostureFinding":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"checkId":{"type":"string"},"category":{"type":"string"},"severity":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"description":{"type":"string","nullable":true},"remediation":{"type":"string","nullable":true},"metadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"acknowledgedBy":{"type":"string","nullable":true},"acknowledgedAt":{"type":"string","nullable":true},"note":{"type":"string","nullable":true},"lastCheckedAt":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","environmentId","checkId","category","severity","status","title","description","remediation","metadata","acknowledgedBy","acknowledgedAt","note","lastCheckedAt","createdAt","updatedAt"]},"ProvisioningTokensResponse":{"type":"object","properties":{"tokens":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/ProvisioningToken"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["tokens"]},"ProvisioningToken":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"tenantId":{"type":"string"},"name":{"type":"string"},"prefix":{"type":"string"},"expiresAt":{"type":"string","nullable":true},"lastUsedAt":{"type":"string","nullable":true},"revokedAt":{"type":"string","nullable":true},"active":{"type":"boolean"},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","tenantId","name","prefix","expiresAt","lastUsedAt","revokedAt","active","createdAt","updatedAt"]},"ProvisioningTokenWithSecretResponse":{"type":"object","properties":{"token":{"allOf":[{"$ref":"#/components/schemas/ProvisioningToken"},{"nullable":true}]},"fullToken":{"type":"string","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["token","fullToken"]},"CreateProvisioningTokenBody":{"type":"object","properties":{"name":{"type":"string"},"expiresAt":{"type":"string"}},"required":["name"]},"ProvisioningTokenResponse":{"type":"object","properties":{"token":{"allOf":[{"$ref":"#/components/schemas/ProvisioningToken"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["token"]},"BillingPlansResponse":{"type":"object","properties":{"plans":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BillingPlan"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["plans"]},"BillingPlan":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"forResource":{"type":"string"},"currency":{"type":"string"},"amountMonth":{"type":"number"},"amountAnnual":{"type":"number","nullable":true},"stripeProductId":{"type":"string","nullable":true},"stripePriceIdMonth":{"type":"string","nullable":true},"stripePriceIdAnnual":{"type":"string","nullable":true},"isDefault":{"type":"boolean"},"publiclyVisible":{"type":"boolean"},"sortOrder":{"type":"number"},"features":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BillingFeature"}},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","slug","name","description","forResource","currency","amountMonth","amountAnnual","stripeProductId","stripePriceIdMonth","stripePriceIdAnnual","isDefault","publiclyVisible","sortOrder","features","createdAt","updatedAt"]},"BillingFeature":{"type":"object","properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","slug","name","description","createdAt","updatedAt"]},"BillingPlanMutationResponse":{"type":"object","properties":{"plan":{"allOf":[{"$ref":"#/components/schemas/BillingPlan"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["plan"]},"SaveBillingPlanBody":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"forResource":{"type":"string","enum":["user","org"]},"currency":{"type":"string"},"amountMonth":{"type":"integer"},"amountAnnual":{"type":"integer","nullable":true},"isDefault":{"type":"boolean"},"publiclyVisible":{"type":"boolean"},"sortOrder":{"type":"integer"},"featureIds":{"type":"array","items":{"type":"string"}}},"required":["slug","name"]},"BillingDeleteResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success"]},"BillingFeaturesResponse":{"type":"object","properties":{"features":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BillingFeature"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["features"]},"BillingFeatureMutationResponse":{"type":"object","properties":{"feature":{"allOf":[{"$ref":"#/components/schemas/BillingFeature"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["feature"]},"SaveBillingFeatureBody":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"}},"required":["slug","name"]},"McpTrustStoreEntryResponse":{"type":"object","properties":{"entry":{"$ref":"#/components/schemas/McpTrustStoreEntry"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["entry"]},"McpTrustStoreEntry":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"environmentId":{"type":"string"},"tenantId":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"identityType":{"type":"string","nullable":true},"subject":{"type":"string","nullable":true},"allowedScopes":{"type":"array","nullable":true,"items":{"type":"string"}},"metadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"verificationStatus":{"type":"string","nullable":true},"verificationMethod":{"type":"string","nullable":true},"verifiedAt":{"type":"string","nullable":true},"revokedAt":{"type":"string","nullable":true},"active":{"type":"boolean"},"keys":{"type":"array","items":{"$ref":"#/components/schemas/McpTrustStoreKey"}},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","environmentId","tenantId","name","description","identityType","subject","allowedScopes","metadata","verificationStatus","verificationMethod","verifiedAt","revokedAt","active","keys","createdAt","updatedAt"]},"McpTrustStoreKey":{"type":"object","properties":{"id":{"type":"string"},"entryId":{"type":"string"},"environmentId":{"type":"string"},"publicKey":{"type":"string"},"keyType":{"type":"string","nullable":true},"fingerprint":{"type":"string"},"algorithm":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"expiresAt":{"type":"string","nullable":true},"revokedAt":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","entryId","environmentId","publicKey","keyType","fingerprint","algorithm","status","expiresAt","revokedAt","createdAt","updatedAt"]},"McpEventIngestResponse":{"type":"object","properties":{"count":{"type":"number"},"rejected":{"type":"array","items":{"type":"object","properties":{"index":{"type":"number"},"reason":{"type":"string"}},"required":["index","reason"]}},"meta":{"nullable":true}}},"McpEventsIngestBody":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/McpEventInput"}}},"required":["events"]},"McpEventInput":{"type":"object","properties":{"eventType":{"type":"string"},"serverId":{"type":"string"},"toolName":{"type":"string"},"subject":{"type":"string"},"trustEntryId":{"type":"string"},"decision":{"type":"string"},"reason":{"type":"string"},"durationMs":{"type":"number"},"errorClass":{"type":"string"},"argumentsDigest":{"type":"string"},"actChain":{"nullable":true},"remoteIp":{"type":"string"},"userAgent":{"type":"string"},"timestamp":{"type":"string"}},"required":["eventType"]},"McpTrustStoreEntriesResponse":{"type":"object","properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/McpTrustStoreEntry"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["entries"]},"CreateMcpTrustStoreEntryBody":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"identityType":{"type":"string"},"subject":{"type":"string"},"allowedScopes":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object","additionalProperties":{"nullable":true}},"publicKey":{"type":"string"},"keyType":{"type":"string"},"algorithm":{"type":"string"}},"required":["name"]},"UpdateMcpTrustStoreEntryBody":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"identityType":{"type":"string"},"subject":{"type":"string"},"allowedScopes":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object","additionalProperties":{"nullable":true}}}},"McpTrustStoreDeleteResponse":{"type":"object","properties":{"success":{"type":"boolean","nullable":true},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["success"]},"VerifyMcpTrustStoreEntryBody":{"type":"object","properties":{"verified":{"type":"boolean"},"verificationMethod":{"type":"string"}},"required":["verified"]},"McpTrustStoreKeyResponse":{"type":"object","properties":{"key":{"allOf":[{"$ref":"#/components/schemas/McpTrustStoreKey"},{"nullable":true}]},"entry":{"$ref":"#/components/schemas/McpTrustStoreEntry"},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["key","entry"]},"AddMcpTrustStoreKeyBody":{"type":"object","properties":{"publicKey":{"type":"string"},"keyType":{"type":"string"},"algorithm":{"type":"string"},"expiresAt":{"type":"string"}},"required":["publicKey"]},"RotateMcpTrustStoreKeyBody":{"type":"object","properties":{"publicKey":{"type":"string"},"keyType":{"type":"string"},"algorithm":{"type":"string"},"overlapExpiresAt":{"type":"string"}},"required":["publicKey"]}},"parameters":{}},"paths":{"/v1/health":{"get":{"tags":["Health"],"operationId":"healthCheck","summary":"Health check","description":"Liveness probe endpoint.","responses":{"200":{"description":"Liveness Probe endpoint","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Probe"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/userinfo":{"get":{"tags":["User info"],"operationId":"getUserInfo","summary":"User info","description":"Retrieve authenticated user information.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Retrieve authenticated user information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInfo"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User info not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Unexpected internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Identity service returned an error or invalid GraphQL response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations":{"get":{"tags":["Organizations"],"operationId":"organizationsList","summary":"List organizations","description":"List organizations for the authenticated user.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"List of organizations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationsList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Organizations"],"operationId":"organizationCreate","summary":"Create organization","description":"Create a new organization.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationRequest"}}}},"responses":{"200":{"description":"Organization created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/{id}":{"get":{"tags":["Organizations"],"operationId":"organizationGet","summary":"Get organization","description":"Retrieve a single organization by ID.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Organization details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"patch":{"tags":["Organizations"],"operationId":"organizationUpdate","summary":"Update organization","description":"Update an existing organization by ID.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationRequest"}}}},"responses":{"200":{"description":"Organization updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"tags":["Organizations"],"operationId":"organizationDelete","summary":"Delete organization","description":"Delete an organization by ID.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Organization deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessIdResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/{id}/members":{"get":{"tags":["Organizations"],"operationId":"organizationMembers","summary":"List organization members","description":"List members of an organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Organization members","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationMembersResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/{id}/invitations":{"get":{"tags":["Organizations"],"operationId":"organizationInvitations","summary":"List organization invitations","description":"List pending and historical invitations for an organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Organization invitations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInvitationsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Organizations"],"operationId":"organizationInvitationCreate","summary":"Create an organization invitation","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationInvitationRequest"}}}},"responses":{"200":{"description":"Created invitation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInvitationMutationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/{id}/invites":{"post":{"tags":["Organizations"],"operationId":"sendOrganizationInvite","summary":"Send organization invite","description":"Invite a user to an organization by email.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendOrganizationInviteRequest"}}}},"responses":{"200":{"description":"Invite sent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendOrganizationInviteResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/join":{"post":{"tags":["Organizations"],"operationId":"joinOrganizationWithCode","summary":"Join organization","description":"Join an organization using an invitation code.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinOrganizationWithCodeRequest"}}}},"responses":{"200":{"description":"Joined organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinOrganizationWithCodeResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/invitations/accept":{"post":{"tags":["Organizations"],"operationId":"organizationInvitationAccept","summary":"Accept an organization invitation","description":"Accepts an invitation using the token from the invitation email. The caller becomes an organization member.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptOrganizationInvitationRequest"}}}},"responses":{"200":{"description":"Joined organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptOrganizationInvitationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/{id}/invitations/{invitationId}/cancel":{"post":{"tags":["Organizations"],"operationId":"organizationInvitationCancel","summary":"Cancel an organization invitation","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"invitationId","in":"path"}],"responses":{"200":{"description":"Canceled invitation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInvitationMutationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/{id}/members/{memberId}":{"delete":{"tags":["Organizations"],"operationId":"organizationMemberRemove","summary":"Remove an organization member","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"memberId","in":"path"}],"responses":{"200":{"description":"Member removed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationOnlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/{id}/members/{memberId}/active":{"patch":{"tags":["Organizations"],"operationId":"organizationMemberSetActive","summary":"Enable or disable an organization member","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"memberId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetOrganizationMemberActiveRequest"}}}},"responses":{"200":{"description":"Member updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationOnlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/{id}/tenants":{"post":{"tags":["Organizations"],"operationId":"organizationTenantLink","summary":"Link a tenant to the organization","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkOrganizationTenantRequest"}}}},"responses":{"200":{"description":"Tenant linked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationOnlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/{id}/tenants/{tenantId}":{"delete":{"tags":["Organizations"],"operationId":"organizationTenantUnlink","summary":"Unlink a tenant from the organization","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"}],"responses":{"200":{"description":"Tenant unlinked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationOnlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/{id}/keys":{"get":{"tags":["Organization keys"],"operationId":"organizationKeysList","summary":"List organization API keys","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Organization keys (values masked)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationKeysResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Organization keys"],"operationId":"organizationKeyCreate","summary":"Create an organization API key","description":"The full key value is returned once in this response and never again.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationKeyBody"}}}},"responses":{"200":{"description":"Created key with its one-time full value","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationKeyWithTokenResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/{id}/keys/{keyId}/rotate":{"post":{"tags":["Organization keys"],"operationId":"organizationKeyRotate","summary":"Rotate an organization API key","description":"Replaces the key material; the new full value is returned once in this response.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"keyId","in":"path"}],"responses":{"200":{"description":"Rotated key with its one-time full value","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationKeyWithTokenResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/{id}/keys/{keyId}/revoke":{"post":{"tags":["Organization keys"],"operationId":"organizationKeyRevoke","summary":"Revoke an organization API key","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"keyId","in":"path"}],"responses":{"200":{"description":"Revoked key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationKeyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/{id}/keys/{keyId}/tenants":{"put":{"tags":["Organization keys"],"operationId":"organizationKeyTenantsUpdate","summary":"Replace the tenants an organization key can access","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"keyId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationKeyTenantsBody"}}}},"responses":{"200":{"description":"Updated key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationKeyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants":{"get":{"tags":["Tenants"],"operationId":"tenantsList","summary":"List tenants","description":"List tenants visible to the authenticated user.\nUse **`organization_id`** to return only tenants associated with one of that user's organizations (**`organizationIds`** from Management).","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"When set (also accepted as **organizationId**), response includes only tenants whose **`organizationIds`** contains this organization id.","example":"00000000-0000-4000-b000-000000000099"},"required":false,"description":"When set (also accepted as **organizationId**), response includes only tenants whose **`organizationIds`** contains this organization id.","name":"organization_id","in":"query"}],"responses":{"200":{"description":"List of tenants","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantsList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Tenants"],"operationId":"tenantCreate","summary":"Create tenant","description":"Create a new tenant.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTenantRequest"}}}},"responses":{"200":{"description":"Tenant created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/join":{"post":{"tags":["Tenants"],"operationId":"tenantJoinWithCode","summary":"Join a tenant with an invitation code","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinTenantWithCodeRequest"}}}},"responses":{"200":{"description":"Joined tenant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantMembershipResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{id}":{"get":{"tags":["Tenants"],"operationId":"tenantGet","summary":"Get tenant","description":"Retrieve a single tenant by ID. Optional **`organization_id`** restricts visibility the same way as **GET `/tenants`** (404 if absent under that scope).","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Same scoping semantics as **`GET …/tenants?organization_id=…`** (**organizationId** also accepted).","example":"00000000-0000-4000-b000-000000000099"},"required":false,"description":"Same scoping semantics as **`GET …/tenants?organization_id=…`** (**organizationId** also accepted).","name":"organization_id","in":"query"}],"responses":{"200":{"description":"Tenant details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Tenant not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"patch":{"tags":["Tenants"],"operationId":"tenantUpdate","summary":"Update tenant","description":"Update an existing tenant by ID.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTenantRequest"}}}},"responses":{"200":{"description":"Tenant updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"tags":["Tenants"],"operationId":"tenantDelete","summary":"Delete tenant","description":"Delete a tenant by ID.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Tenant deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessIdResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{id}/projects":{"get":{"tags":["Tenants"],"operationId":"tenantProjects","summary":"List tenant projects","description":"List projects for a tenant visible to the authenticated user.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Tenant projects","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantProjectsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{id}/domains":{"get":{"tags":["Tenants"],"operationId":"tenantDomains","summary":"List tenant domains","description":"List domains configured for a tenant.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Tenant domains","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantDomainsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Tenants"],"operationId":"tenantDomainCreate","summary":"Create tenant domain","description":"Create a new domain for a tenant.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTenantDomainRequest"}}}},"responses":{"200":{"description":"Domain created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTenantDomainResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{id}/domains/{domainId}":{"delete":{"tags":["Tenants"],"operationId":"tenantDomainDelete","summary":"Delete tenant domain","description":"Delete a domain for a tenant.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"domainId","in":"path"}],"responses":{"200":{"description":"Domain deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessIdResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{id}/domains/{domainId}/retry":{"post":{"tags":["Tenants"],"operationId":"tenantDomainRetryVerification","summary":"Retry tenant domain verification","description":"Retry verification for a tenant domain.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"domainId","in":"path"}],"responses":{"200":{"description":"Verification retried","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetryTenantDomainVerificationResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{id}/seats":{"get":{"tags":["Tenants"],"operationId":"tenantSeatsList","summary":"List tenant seats","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Seats","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantSeatsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{id}/seats/{seatId}":{"patch":{"tags":["Tenants"],"operationId":"tenantSeatUpdate","summary":"Update a tenant seat","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"seatId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTenantSeatRequest"}}}},"responses":{"200":{"description":"Updated seat","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantSeatMutationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"tags":["Tenants"],"operationId":"tenantSeatDelete","summary":"Delete a tenant seat","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"seatId","in":"path"}],"responses":{"200":{"description":"Deleted seat","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantOnlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{id}/invites":{"post":{"tags":["Tenants"],"operationId":"tenantInviteSend","summary":"Invite a user to the tenant","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendTenantInviteRequest"}}}},"responses":{"200":{"description":"Invitation sent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantMembershipResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/applications":{"post":{"tags":["Projects"],"operationId":"applicationSave","summary":"Create or update a project (application)","description":"Upsert: include `id` to update an existing project.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveApplicationBody"}}}},"responses":{"200":{"description":"Saved project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveApplicationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/applications/{applicationId}":{"get":{"tags":["Projects"],"operationId":"projectDetails","summary":"Get a project (application) with its environments","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"applicationId","in":"path"}],"responses":{"200":{"description":"Project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDetailsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"tags":["Projects"],"operationId":"applicationDelete","summary":"Delete a project (application)","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"applicationId","in":"path"}],"responses":{"200":{"description":"Deleted project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteApplicationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/applications/{applicationId}/default-environment":{"put":{"tags":["Projects"],"operationId":"applicationSetDefaultEnvironment","summary":"Set a project's default environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"applicationId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultEnvironmentBody"}}}},"responses":{"200":{"description":"Updated project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultEnvironmentResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/service-accounts":{"get":{"tags":["Service accounts"],"operationId":"serviceAccountsList","summary":"List service accounts","description":"List service accounts visible to the authenticated user.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"List of service accounts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountsList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Service accounts"],"operationId":"serviceAccountCreate","summary":"Create service account","description":"Create a new service account.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateServiceAccountRequest"}}}},"responses":{"200":{"description":"Service Account created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateServiceAccountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/service-accounts/{id}":{"get":{"tags":["Service accounts"],"operationId":"serviceAccountGet","summary":"Get service account","description":"Retrieve a single service account by ID.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Service Account details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Service Account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"tags":["Service accounts"],"operationId":"serviceAccountDelete","summary":"Delete service account","description":"Delete a service account by ID.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Service Account deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessIdResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/personal-access-tokens":{"get":{"tags":["Personal access tokens"],"operationId":"personalAccessTokensList","summary":"List personal access tokens","description":"List personal access tokens for the authenticated user.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"List of personal access tokens","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonalAccessTokensList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Personal access tokens"],"operationId":"personalAccessTokenCreate","summary":"Create personal access token","description":"Create a new personal access token.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePersonalAccessTokenRequest"}}}},"responses":{"200":{"description":"Token created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePersonalAccessTokenResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/personal-access-tokens/{id}/revoke":{"post":{"tags":["Personal access tokens"],"operationId":"personalAccessTokenRevoke","summary":"Revoke personal access token","description":"Revoke a personal access token by ID.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Token revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokePersonalAccessTokenResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/applications/{applicationId}/environments":{"get":{"tags":["Environments"],"operationId":"applicationEnvironmentsList","summary":"List environments for a project","description":"Returns environments for an application (project). Proxies to management GraphQL `applicationEnvironments`.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"applicationId","in":"path"}],"responses":{"200":{"description":"Environment list payload from management","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationEnvironmentsResponse"}}}},"400":{"description":"Bad request / GraphQL error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Environments"],"operationId":"environmentCreate","summary":"Create environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"applicationId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEnvironmentBody"}}}},"responses":{"200":{"description":"Created environment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentMutationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}":{"patch":{"tags":["Environments"],"operationId":"environmentUpdate","summary":"Update environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEnvironmentBody"}}}},"responses":{"200":{"description":"Updated environment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentMutationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"tags":["Environments"],"operationId":"environmentDelete","summary":"Delete environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Deleted environment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentMutationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/applications/{applicationId}/environments/{environmentId}/connections":{"get":{"tags":["Environments"],"operationId":"applicationEnvironmentConnections","summary":"List IdP connections for an environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"applicationId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Connections","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationEnvironmentConnectionsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/connections":{"post":{"tags":["Environments"],"operationId":"environmentConnectionSave","summary":"Create or update an IdP connection","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveEnvironmentConnectionBody"}}}},"responses":{"200":{"description":"Saved connection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveEnvironmentConnectionResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/connections/{connectionId}":{"delete":{"tags":["Environments"],"operationId":"environmentConnectionDelete","summary":"Delete an IdP connection","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"connectionId","in":"path"}],"responses":{"200":{"description":"Deleted connection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEnvironmentConnectionResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/applications/{applicationId}/environments/{environmentId}/redirect-uris":{"get":{"tags":["Environments"],"operationId":"applicationEnvironmentRedirectUris","summary":"Get redirect URI configuration","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"applicationId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Redirect URI config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentRedirectUrisResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/redirect-uris":{"put":{"tags":["Environments"],"operationId":"environmentRedirectUrisSave","summary":"Update redirect URIs","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveEnvironmentRedirectUrisBody"}}}},"responses":{"200":{"description":"Updated redirect URIs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentRedirectUrisResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/connections/resolve-saml-metadata":{"post":{"tags":["Environments"],"operationId":"samlIdpMetadataResolve","summary":"Resolve SAML IdP metadata","description":"Stateless resolver: parses IdP metadata from a URL or inline XML and returns the extracted SSO configuration.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveSamlIdpMetadataBody"}}}},"responses":{"200":{"description":"Parsed IdP metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SamlIdpMetadataResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/connections/sso-metadata":{"get":{"tags":["Environments"],"operationId":"enterpriseSsoMetadataGet","summary":"Get the SP metadata for an enterprise SSO connection","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":false,"name":"connectionId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"providerId","in":"query"}],"responses":{"200":{"description":"Service-provider metadata for the connection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnterpriseSsoMetadataResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/applications/{applicationId}/environments/{environmentId}/oidc-clients":{"get":{"tags":["OIDC clients"],"operationId":"oidcClientsList","summary":"List OIDC clients for an environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"applicationId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"OIDC clients","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OidcClientsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["OIDC clients"],"operationId":"oidcClientRegister","summary":"Register an OIDC client","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"applicationId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterOidcClientBody"}}}},"responses":{"200":{"description":"Registered client","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OidcClientMutationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/applications/{applicationId}/environments/{environmentId}/oidc-clients/{clientId}":{"patch":{"tags":["OIDC clients"],"operationId":"oidcClientUpdate","summary":"Update an OIDC client","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"applicationId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"clientId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOidcClientBody"}}}},"responses":{"200":{"description":"Updated client","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OidcClientMutationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"tags":["OIDC clients"],"operationId":"oidcClientDelete","summary":"Delete an OIDC client","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"applicationId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"clientId","in":"path"}],"responses":{"200":{"description":"Deleted client","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteOidcClientResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/jwt-claim-mappings":{"get":{"tags":["Environment settings"],"operationId":"jwtClaimMappingsList","summary":"List custom JWT claim mappings","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Claim mappings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JwtClaimMappingsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Environment settings"],"operationId":"jwtClaimMappingSave","summary":"Create or update a JWT claim mapping","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJwtClaimMappingBody"}}}},"responses":{"200":{"description":"Saved mapping","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJwtClaimMappingResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/jwt-claim-mappings/{mappingId}":{"delete":{"tags":["Environment settings"],"operationId":"jwtClaimMappingDelete","summary":"Delete a JWT claim mapping","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"mappingId","in":"path"}],"responses":{"200":{"description":"Deleted mapping","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteJwtClaimMappingResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/session-config":{"get":{"tags":["Environment settings"],"operationId":"sessionConfigGet","summary":"Get session configuration","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Session configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionConfigResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"tags":["Environment settings"],"operationId":"sessionConfigUpdate","summary":"Update session configuration","description":"Partial update: only the provided fields change. Forwarded to management `saveEnvironmentSessionConfig`.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionConfigBody"}}}},"responses":{"200":{"description":"Updated session configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionConfigResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/password-policy":{"get":{"tags":["Environment settings"],"operationId":"passwordPolicyGet","summary":"Get password policy","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Password policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordPolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"tags":["Environment settings"],"operationId":"passwordPolicyUpdate","summary":"Update password policy","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePasswordPolicyBody"}}}},"responses":{"200":{"description":"Updated password policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordPolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/breached-password-policy":{"get":{"tags":["Environment settings"],"operationId":"breachedPasswordPolicyGet","summary":"Get breached password policy","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Breached password policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BreachedPasswordPolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"tags":["Environment settings"],"operationId":"breachedPasswordPolicyUpdate","summary":"Update breached password policy","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBreachedPasswordPolicyBody"}}}},"responses":{"200":{"description":"Updated breached password policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BreachedPasswordPolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/brute-force-policy":{"get":{"tags":["Environment settings"],"operationId":"bruteForcePolicyGet","summary":"Get brute force policy","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Brute force policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BruteForcePolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"tags":["Environment settings"],"operationId":"bruteForcePolicyUpdate","summary":"Update brute force policy","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBruteForcePolicyBody"}}}},"responses":{"200":{"description":"Updated brute force policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BruteForcePolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/bot-detection-policy":{"get":{"tags":["Environment settings"],"operationId":"botDetectionPolicyGet","summary":"Get bot detection policy","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Bot detection policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BotDetectionPolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"tags":["Environment settings"],"operationId":"botDetectionPolicyUpdate","summary":"Update bot detection policy","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBotDetectionPolicyBody"}}}},"responses":{"200":{"description":"Updated bot detection policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BotDetectionPolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/rate-limit-policy":{"get":{"tags":["Environment settings"],"operationId":"rateLimitPolicyGet","summary":"Get rate limit policy","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Rate limit policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitPolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"tags":["Environment settings"],"operationId":"rateLimitPolicyUpdate","summary":"Update rate limit policy","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRateLimitPolicyBody"}}}},"responses":{"200":{"description":"Updated rate limit policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitPolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/device-risk-policy":{"get":{"tags":["Environment settings"],"operationId":"deviceRiskPolicyGet","summary":"Get device risk policy","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Device risk policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceRiskPolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"tags":["Environment settings"],"operationId":"deviceRiskPolicyUpdate","summary":"Update device risk policy","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeviceRiskPolicyBody"}}}},"responses":{"200":{"description":"Updated device risk policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceRiskPolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/restrictions":{"get":{"tags":["Environment settings"],"operationId":"environmentRestrictionsGet","summary":"Get signup/signin restrictions","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Restrictions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentRestrictionsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"tags":["Environment settings"],"operationId":"environmentRestrictionsUpdate","summary":"Update signup/signin restrictions","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEnvironmentRestrictionsBody"}}}},"responses":{"200":{"description":"Updated restrictions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentRestrictionsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/forms":{"get":{"tags":["Forms"],"operationId":"formsList","summary":"List forms configured for an environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Forms","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Forms"],"operationId":"formSave","summary":"Create or update a form","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveFormBody"}}}},"responses":{"200":{"description":"Saved form","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveFormResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/forms/{formId}":{"delete":{"tags":["Forms"],"operationId":"formDelete","summary":"Delete a form","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"formId","in":"path"}],"responses":{"200":{"description":"Deleted form","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteFormResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/form-attachments":{"get":{"tags":["Forms"],"operationId":"formAttachmentsList","summary":"List flow-point attachments configured for an environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Form attachments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormAttachmentsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/email-providers":{"get":{"tags":["Email providers"],"operationId":"emailProvidersList","summary":"List email delivery providers","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Email providers (secrets masked)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentEmailProvidersResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Email providers"],"operationId":"emailProviderSave","summary":"Create or update an email provider","description":"Upsert keyed by `provider`. Omit `secrets` to keep previously stored secrets unchanged.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveEmailProviderBody"}}}},"responses":{"200":{"description":"Saved provider","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveEnvironmentEmailProviderResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/email-providers/test":{"post":{"tags":["Email providers"],"operationId":"emailProviderTest","summary":"Send a test email through a configured provider","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestEmailProviderBody"}}}},"responses":{"200":{"description":"Test delivery result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestEmailProviderResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/email-providers/{provider}/activate":{"post":{"tags":["Email providers"],"operationId":"emailProviderActivate","summary":"Set the active email provider","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"provider","in":"path"}],"responses":{"200":{"description":"Activation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailProviderSuccessResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/email-providers/{provider}":{"delete":{"tags":["Email providers"],"operationId":"emailProviderDelete","summary":"Delete an email provider","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"provider","in":"path"}],"responses":{"200":{"description":"Deletion result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailProviderSuccessResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/actions":{"get":{"tags":["Actions"],"operationId":"actionsList","summary":"List auth action hooks","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Action hooks (signing secret masked)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentActionsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Actions"],"operationId":"actionSave","summary":"Create or update an auth action hook","description":"Upsert by `id` (omit to create). The signing secret is returned once on create, and again only when `regenerateSigningSecret` is set.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveActionBody"}}}},"responses":{"200":{"description":"Saved action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveEnvironmentActionResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/actions/test":{"post":{"tags":["Actions"],"operationId":"actionTest","summary":"Fire a sample payload at a hook URL","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestActionBody"}}}},"responses":{"200":{"description":"Test invocation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestEnvironmentActionResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/actions/executions":{"get":{"tags":["Actions"],"operationId":"actionExecutions","summary":"List recent action invocations (logs)","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":false,"name":"actionId","in":"query"},{"schema":{"type":"number","nullable":true},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Recent action executions (newest first)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionExecutionsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/actions/{id}":{"delete":{"tags":["Actions"],"operationId":"actionDelete","summary":"Delete an auth action hook","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Deletion result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionSuccessResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/feature-flags":{"get":{"tags":["Feature flags"],"operationId":"featureFlagsList","summary":"List feature flags","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Feature flags with rules","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Feature flags"],"operationId":"featureFlagSave","summary":"Create or update a feature flag","description":"Upsert by `id` (or by env+`key` on create). Providing `rules` replaces the rule set.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveFeatureFlagBody"}}}},"responses":{"200":{"description":"Saved flag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveFeatureFlagResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/feature-flags/{id}":{"delete":{"tags":["Feature flags"],"operationId":"featureFlagDelete","summary":"Delete a feature flag","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Deletion result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagSuccessResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/addons":{"get":{"tags":["Add-ons"],"operationId":"addonsList","summary":"List add-on configurations","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Add-ons (secrets masked)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentAddonsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Add-ons"],"operationId":"addonSave","summary":"Create or update an add-on configuration","description":"Upsert keyed by `provider`. Omit `secrets` to keep previously stored secrets unchanged.\n\nRecognized `config` keys per provider:\n- `google_analytics`: `measurementId` (required)\n- `stripe`: `claimName`\n- `google_recaptcha`: `siteKey` (required), `version` (`v2` | `v3`), `minScore` (0–1, v3 only), `protectedActions` (subset of `signin`, `signup`, `waitlist`, `magic_link`, `otp_verify`, `otp_resend`, `mfa_verify`; omit to protect every flow, the last four are v3-only)\n\nRecognized `secrets` keys: `writeKey` (segment), `stripeSecretKey` / `stripeWebhookSecret` (stripe), `recaptchaSecretKey` (google_recaptcha).","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveAddonBody"}}}},"responses":{"200":{"description":"Saved add-on","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveEnvironmentAddonResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/addons/{provider}":{"delete":{"tags":["Add-ons"],"operationId":"addonDelete","summary":"Delete an add-on configuration","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"provider","in":"path"}],"responses":{"200":{"description":"Deletion result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEnvironmentAddonResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/vanity-domains":{"get":{"tags":["Vanity domains"],"operationId":"vanityDomainsList","summary":"List vanity domains","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Vanity domains and the edge host to CNAME to","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVanityDomainsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Vanity domains"],"operationId":"vanityDomainCreate","summary":"Register a vanity domain","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVanityDomainBody"}}}},"responses":{"200":{"description":"Registered domain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEnvironmentVanityDomainResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/vanity-domains/{domainId}/check":{"post":{"tags":["Vanity domains"],"operationId":"vanityDomainCheck","summary":"Re-check a vanity domain's DNS/TLS status","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"domainId","in":"path"}],"responses":{"200":{"description":"Refreshed domain status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckEnvironmentVanityDomainResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/vanity-domains/{domainId}":{"delete":{"tags":["Vanity domains"],"operationId":"vanityDomainDelete","summary":"Delete a vanity domain","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"domainId","in":"path"}],"responses":{"200":{"description":"Deletion result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEnvironmentVanityDomainResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/users":{"get":{"tags":["Directory"],"operationId":"envUsersList","summary":"List users in an environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"integer","nullable":true,"minimum":0},"required":false,"name":"offset","in":"query"},{"schema":{"type":"integer","minimum":1},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"searchQuery","in":"query"}],"responses":{"200":{"description":"Users","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvUsersResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Directory"],"operationId":"envUserCreate","summary":"Create a user","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserBody"}}}},"responses":{"200":{"description":"Created user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/users/search":{"get":{"tags":["Directory"],"operationId":"envUsersSearch","summary":"Search users in an environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"q","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0},"required":false,"name":"offset","in":"query"},{"schema":{"type":"integer","minimum":1},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Matching users","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvUsersResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/users/count":{"get":{"tags":["Directory"],"operationId":"envUsersCount","summary":"Count users in an environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"User count","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvUsersCountResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/users/bulk/set-active":{"post":{"tags":["Directory"],"operationId":"envUsersBulkSetActive","summary":"Enable or disable multiple users","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkSetUsersActiveBody"}}}},"responses":{"200":{"description":"Bulk result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetUsersActiveResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/users/bulk/delete":{"post":{"tags":["Directory"],"operationId":"envUsersBulkDelete","summary":"Delete multiple users","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteUsersBody"}}}},"responses":{"200":{"description":"Bulk result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteUsersResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/users/import":{"post":{"tags":["Directory"],"operationId":"envUsersImport","summary":"Bulk import users","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportUsersBody"}}}},"responses":{"200":{"description":"Import results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportUsersResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/users/{userId}":{"get":{"tags":["Directory"],"operationId":"envUserGet","summary":"Get a user","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"}],"responses":{"200":{"description":"User","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvUserResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"tags":["Directory"],"operationId":"envUserUpdate","summary":"Update a user's profile","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEnvUserBody"}}}},"responses":{"200":{"description":"Updated user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetUserActiveResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"tags":["Directory"],"operationId":"envUserDelete","summary":"Delete a user from the environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"}],"responses":{"200":{"description":"Deleted user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteUserResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/users/{userId}/active":{"patch":{"tags":["Directory"],"operationId":"envUserSetActive","summary":"Enable or disable a user","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetUserActiveBody"}}}},"responses":{"200":{"description":"Updated user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetUserActiveResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/users/{userId}/groups":{"get":{"tags":["Directory"],"operationId":"userGroupsList","summary":"List groups a user belongs to","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"}],"responses":{"200":{"description":"User groups","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/me/mfa/totp":{"get":{"tags":["Directory"],"operationId":"myTotpStatus","summary":"Get the caller's TOTP status","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"TOTP status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTotpStatusResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/users/{userId}/mfa":{"delete":{"tags":["Directory"],"operationId":"envUserDisableMfa","summary":"Disable a user's MFA factors","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"}],"responses":{"200":{"description":"MFA disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisableUserMfaResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/groups":{"get":{"tags":["Directory"],"operationId":"envGroupsList","summary":"List groups","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Groups","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvGroupsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/groups":{"post":{"tags":["Directory"],"operationId":"envGroupCreate","summary":"Create a group","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroupBody"}}}},"responses":{"200":{"description":"Created group","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroupResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/groups/{groupId}":{"delete":{"tags":["Directory"],"operationId":"envGroupDelete","summary":"Delete a group","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"groupId","in":"path"}],"responses":{"200":{"description":"Deleted group","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteGroupResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/groups/{groupId}/members":{"get":{"tags":["Directory"],"operationId":"groupMembersList","summary":"List members of a group","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"groupId","in":"path"}],"responses":{"200":{"description":"Group members","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupMembersResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Directory"],"operationId":"groupMemberAdd","summary":"Add a user to a group","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"groupId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddGroupMemberBody"}}}},"responses":{"200":{"description":"Added member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddGroupMemberResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/groups/{groupId}/members/{userId}":{"delete":{"tags":["Directory"],"operationId":"groupMemberRemove","summary":"Remove a user from a group","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"groupId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"}],"responses":{"200":{"description":"Removed member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveGroupMemberResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/users/{userId}/sessions":{"get":{"tags":["Directory"],"operationId":"userSessionsList","summary":"List sessions for a user","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"}],"responses":{"200":{"description":"Sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSessionsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/environments/{environmentId}/sessions/{sessionId}":{"delete":{"tags":["Directory"],"operationId":"userSessionRevoke","summary":"Revoke a user session","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"sessionId","in":"path"}],"responses":{"200":{"description":"Revoked session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeUserSessionResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/api-secrets":{"get":{"tags":["API secrets"],"operationId":"environmentApiSecretsList","summary":"List API secrets for an environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"API secrets (values masked)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentApiSecretsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["API secrets"],"operationId":"environmentApiSecretCreate","summary":"Create an API secret","description":"Creates an environment API secret. The full secret value is returned once in this response and never again.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEnvironmentApiSecretBody"}}}},"responses":{"200":{"description":"Created API secret with its one-time full value","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEnvironmentApiSecretResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/api-secrets/{secretId}/revoke":{"post":{"tags":["API secrets"],"operationId":"environmentApiSecretRevoke","summary":"Revoke an API secret","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"secretId","in":"path"}],"responses":{"200":{"description":"Revoked API secret","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeEnvironmentApiSecretResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/impersonation-grants":{"get":{"tags":["Impersonation"],"operationId":"impersonationGrantsList","summary":"List impersonation grants","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Impersonation grants","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImpersonationGrantsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Impersonation"],"operationId":"impersonationGrantCreate","summary":"Create an impersonation grant","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateImpersonationGrantBody"}}}},"responses":{"200":{"description":"Created grant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImpersonationGrantResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/impersonation-grants/{grantId}/revoke":{"post":{"tags":["Impersonation"],"operationId":"impersonationGrantRevoke","summary":"Revoke an impersonation grant","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"grantId","in":"path"}],"responses":{"200":{"description":"Revoked grant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImpersonationGrantResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/scim/v2/ServiceProviderConfig":{"get":{"tags":["SCIM"],"operationId":"scimServiceProviderConfig","summary":"SCIM ServiceProviderConfig","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Service provider configuration","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimServiceProviderConfig"}}}},"401":{"description":"Unauthorized","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}}},"/v1/scim/v2/ResourceTypes":{"get":{"tags":["SCIM"],"operationId":"scimResourceTypes","summary":"List SCIM ResourceTypes","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Supported resource types","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimResourceType"}}}},"401":{"description":"Unauthorized","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}}},"/v1/scim/v2/ResourceTypes/{id}":{"get":{"tags":["SCIM"],"operationId":"scimResourceTypeById","summary":"Get a SCIM ResourceType","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Resource type","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimResourceType"}}}},"404":{"description":"Resource not found","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}}},"/v1/scim/v2/Schemas":{"get":{"tags":["SCIM"],"operationId":"scimSchemas","summary":"List SCIM Schemas","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Supported schemas","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimSchemaDefinition"}}}},"401":{"description":"Unauthorized","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}}},"/v1/scim/v2/Schemas/{id}":{"get":{"tags":["SCIM"],"operationId":"scimSchemaById","summary":"Get a SCIM Schema","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Schema definition","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimSchemaDefinition"}}}},"404":{"description":"Resource not found","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}}},"/v1/scim/v2/Users":{"get":{"tags":["SCIM"],"operationId":"scimListUsers","summary":"List SCIM Users","description":"Supports `filter`, `startIndex`, and `count` query parameters.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Users","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimUserListResponse"}}}},"401":{"description":"Unauthorized","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}},"post":{"tags":["SCIM"],"operationId":"scimCreateUser","summary":"Create a SCIM User","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimUserCreate"}}}},"responses":{"201":{"description":"Created","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimUser"}}}},"400":{"description":"Invalid request body","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}},"409":{"description":"Resource already exists","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}}},"/v1/scim/v2/Users/{id}":{"get":{"tags":["SCIM"],"operationId":"scimGetUser","summary":"Get a SCIM User","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"User","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimUser"}}}},"404":{"description":"Resource not found","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}},"put":{"tags":["SCIM"],"operationId":"scimReplaceUser","summary":"Replace a SCIM User","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimUserCreate"}}}},"responses":{"200":{"description":"Updated","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimUser"}}}},"404":{"description":"Resource not found","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}},"patch":{"tags":["SCIM"],"operationId":"scimPatchUser","summary":"Patch a SCIM User","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimPatchOp"}}}},"responses":{"200":{"description":"Updated","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimUser"}}}},"404":{"description":"Resource not found","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}},"delete":{"tags":["SCIM"],"operationId":"scimDeleteUser","summary":"Delete a SCIM User","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"204":{"description":"Deleted"},"404":{"description":"Resource not found","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}}},"/v1/scim/v2/Groups":{"get":{"tags":["SCIM"],"operationId":"scimListGroups","summary":"List SCIM Groups","description":"Supports `filter`, `startIndex`, and `count` query parameters.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Groups","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimGroupListResponse"}}}},"401":{"description":"Unauthorized","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}},"post":{"tags":["SCIM"],"operationId":"scimCreateGroup","summary":"Create a SCIM Group","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimGroupCreate"}}}},"responses":{"201":{"description":"Created","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimGroup"}}}},"400":{"description":"Invalid request body","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}},"409":{"description":"Resource already exists","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}}},"/v1/scim/v2/Groups/{id}":{"get":{"tags":["SCIM"],"operationId":"scimGetGroup","summary":"Get a SCIM Group","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Group","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimGroup"}}}},"404":{"description":"Resource not found","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}},"put":{"tags":["SCIM"],"operationId":"scimReplaceGroup","summary":"Replace a SCIM Group","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimGroupCreate"}}}},"responses":{"200":{"description":"Updated","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimGroup"}}}},"404":{"description":"Resource not found","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}},"patch":{"tags":["SCIM"],"operationId":"scimPatchGroup","summary":"Patch a SCIM Group","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimPatchOp"}}}},"responses":{"200":{"description":"Updated","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimGroup"}}}},"404":{"description":"Resource not found","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}},"delete":{"tags":["SCIM"],"operationId":"scimDeleteGroup","summary":"Delete a SCIM Group","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"204":{"description":"Deleted"},"404":{"description":"Resource not found","content":{"application/scim+json":{"schema":{"$ref":"#/components/schemas/ScimError"}}}}}}},"/v1/hris/v1/ServiceConfig":{"get":{"tags":["HRIS"],"operationId":"hrisServiceConfig","summary":"HRIS ServiceConfig","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Service configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisServiceConfig"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}}}}},"/v1/hris/v1/Employees":{"get":{"tags":["HRIS"],"operationId":"hrisListEmployees","summary":"List HRIS Employees","description":"Supports `filter`, `startIndex`, and `count` query parameters.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Employees","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisEmployeeListResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}}}},"post":{"tags":["HRIS"],"operationId":"hrisCreateEmployee","summary":"Create an HRIS Employee","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisEmployeeCreate"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisEmployee"}}}},"400":{"description":"Invalid request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}},"409":{"description":"Resource already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}}}}},"/v1/hris/v1/Employees/{id}":{"get":{"tags":["HRIS"],"operationId":"hrisGetEmployee","summary":"Get an HRIS Employee","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Employee","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisEmployee"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}}}},"put":{"tags":["HRIS"],"operationId":"hrisReplaceEmployee","summary":"Replace an HRIS Employee","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisEmployeeCreate"}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisEmployee"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}}}},"patch":{"tags":["HRIS"],"operationId":"hrisPatchEmployee","summary":"Patch an HRIS Employee","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisPatchOp"}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisEmployee"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}}}},"delete":{"tags":["HRIS"],"operationId":"hrisDeleteEmployee","summary":"Delete an HRIS Employee","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"204":{"description":"Deleted"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}}}}},"/v1/hris/v1/Departments":{"get":{"tags":["HRIS"],"operationId":"hrisListDepartments","summary":"List HRIS Departments","description":"Supports `filter`, `startIndex`, and `count` query parameters.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Departments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisDepartmentListResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}}}},"post":{"tags":["HRIS"],"operationId":"hrisCreateDepartment","summary":"Create an HRIS Department","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisDepartmentCreate"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisDepartment"}}}},"400":{"description":"Invalid request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}},"409":{"description":"Resource already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}}}}},"/v1/hris/v1/Departments/{id}":{"get":{"tags":["HRIS"],"operationId":"hrisGetDepartment","summary":"Get an HRIS Department","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Department","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisDepartment"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}}}},"put":{"tags":["HRIS"],"operationId":"hrisReplaceDepartment","summary":"Replace an HRIS Department","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisDepartmentCreate"}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisDepartment"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}}}},"patch":{"tags":["HRIS"],"operationId":"hrisPatchDepartment","summary":"Patch an HRIS Department","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisPatchOp"}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisDepartment"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}}}},"delete":{"tags":["HRIS"],"operationId":"hrisDeleteDepartment","summary":"Delete an HRIS Department","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"204":{"description":"Deleted"},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HrisError"}}}}}}},"/.well-known/authzen-configuration":{"get":{"tags":["AuthZEN"],"operationId":"authzenConfiguration","summary":"AuthZEN discovery document","description":"Advertises the PDP's endpoints (spec section 9.1). Unauthenticated.","responses":{"200":{"description":"PDP metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenConfiguration"}}}}}}},"/access/v1/evaluation":{"post":{"tags":["AuthZEN"],"operationId":"authzenEvaluation","summary":"Evaluate one access request","description":"Returns a boolean decision for a single subject/action/resource tuple (spec section 6). The bearer token is an environment API secret (`adenv_…`); it selects the environment whose permission model decides the request. Fail-closed: an unresolvable subject or an internal error yields `decision: false` with a reason, never a 5xx.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenEvaluationRequest"}}}},"responses":{"200":{"description":"Decision","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenDecision"}}}},"400":{"description":"The request body is malformed or incomplete","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenError"}}}},"401":{"description":"The bearer token is missing, invalid, or revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenError"}}}}}}},"/access/v1/evaluations":{"post":{"tags":["AuthZEN"],"operationId":"authzenEvaluations","summary":"Evaluate a batch of access requests","description":"Boxcarred evaluation (spec section 7). Each item inherits any member it omits from the top level. `options.evaluations_semantic` selects `execute_all` (default), `deny_on_first_deny`, or `permit_on_first_permit`; short-circuited items are still returned, filled with the semantic's implied decision. At most 100 evaluations per request.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenEvaluationsRequest"}}}},"responses":{"200":{"description":"One decision per evaluation, in request order","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenEvaluationsResponse"}}}},"400":{"description":"The request body is malformed or incomplete","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenError"}}}},"401":{"description":"The bearer token is missing, invalid, or revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenError"}}}}}}},"/access/v1/search/subject":{"post":{"tags":["AuthZEN"],"operationId":"authzenSearchSubject","summary":"Search subjects","description":"\"Who can do this action on this resource?\" (spec section 8.4). Results are paged with an opaque forward-only `page.next_token`.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenSubjectSearchRequest"}}}},"responses":{"200":{"description":"Matching subjects","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenSubjectSearchResponse"}}}},"400":{"description":"The request body is malformed or incomplete","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenError"}}}},"401":{"description":"The bearer token is missing, invalid, or revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenError"}}}}}}},"/access/v1/search/resource":{"post":{"tags":["AuthZEN"],"operationId":"authzenSearchResource","summary":"Search resources","description":"\"What can this subject do this action to?\" (spec section 8.5). Under the FGA permission model results are resource *instances*; under RBAC and ABAC they are resource *types*, `context.metadata.result_granularity` says which.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenResourceSearchRequest"}}}},"responses":{"200":{"description":"Matching resources","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenResourceSearchResponse"}}}},"400":{"description":"The request body is malformed or incomplete","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenError"}}}},"401":{"description":"The bearer token is missing, invalid, or revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenError"}}}}}}},"/access/v1/search/action":{"post":{"tags":["AuthZEN"],"operationId":"authzenSearchAction","summary":"Search actions","description":"\"What can this subject do to this resource?\" (spec section 8.6).","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenActionSearchRequest"}}}},"responses":{"200":{"description":"Permitted actions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenActionSearchResponse"}}}},"400":{"description":"The request body is malformed or incomplete","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenError"}}}},"401":{"description":"The bearer token is missing, invalid, or revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthzenError"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/audit/logs":{"get":{"tags":["Audit"],"operationId":"envAuditLogs","summary":"List environment audit logs","description":"List audit logs for an environment using the management GraphQL audit model.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"integer","nullable":true,"minimum":0},"required":false,"name":"offset","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"searchQuery","in":"query"},{"schema":{"type":"string"},"required":false,"name":"from","in":"query"},{"schema":{"type":"string"},"required":false,"name":"to","in":"query"},{"schema":{"type":"string"},"required":false,"name":"startDateTime","in":"query"},{"schema":{"type":"string"},"required":false,"name":"endDateTime","in":"query"},{"schema":{"type":"string"},"required":false,"name":"relativeTime","in":"query"},{"schema":{"type":"string"},"required":false,"name":"eventType","in":"query"},{"schema":{"type":"string"},"required":false,"name":"eventCategory","in":"query"},{"schema":{"type":"string","example":"authn,team_management","description":"Comma-separated event categories"},"required":false,"description":"Comma-separated event categories","name":"categories","in":"query"},{"schema":{"type":"string","example":"SIGNIN_SUCCESS,NEW_USER","description":"Comma-separated event types"},"required":false,"description":"Comma-separated event types","name":"eventTypes","in":"query"},{"schema":{"type":"string"},"required":false,"name":"eventDetailsSearch","in":"query"},{"schema":{"type":"string"},"required":false,"name":"externalIdSearch","in":"query"},{"schema":{"type":"string"},"required":false,"name":"userAgentSearch","in":"query"},{"schema":{"type":"string","example":"user_1,user_2","description":"Comma-separated user IDs to filter by"},"required":false,"description":"Comma-separated user IDs to filter by","name":"userIds","in":"query"},{"schema":{"type":"string","example":"Chrome,Firefox","description":"Comma-separated browser names"},"required":false,"description":"Comma-separated browser names","name":"browsers","in":"query"},{"schema":{"type":"string","example":"macOS,Linux","description":"Comma-separated operating system names"},"required":false,"description":"Comma-separated operating system names","name":"operatingSystems","in":"query"},{"schema":{"type":"string","example":"127.0.0.1,10.0.0.1","description":"Comma-separated remote IP values"},"required":false,"description":"Comma-separated remote IP values","name":"locations","in":"query"}],"responses":{"200":{"description":"Environment audit logs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvAuditLogsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/audit/event-metadata":{"get":{"tags":["Audit"],"operationId":"envAuditEventMetadata","summary":"Get environment audit event metadata","description":"Return aggregated environment audit event categories and event types.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":false,"name":"from","in":"query"},{"schema":{"type":"string"},"required":false,"name":"to","in":"query"},{"schema":{"type":"string"},"required":false,"name":"startDateTime","in":"query"},{"schema":{"type":"string"},"required":false,"name":"endDateTime","in":"query"},{"schema":{"type":"boolean","nullable":true},"required":false,"name":"allTime","in":"query"}],"responses":{"200":{"description":"Environment audit event metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventMetadataResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/audit/event-types":{"get":{"tags":["Audit"],"operationId":"envAuditEventTypes","summary":"Get grouped environment audit event types","description":"Return grouped environment audit event types, including catalog-backed zero-count entries when available.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":false,"name":"from","in":"query"},{"schema":{"type":"string"},"required":false,"name":"to","in":"query"},{"schema":{"type":"string"},"required":false,"name":"startDateTime","in":"query"},{"schema":{"type":"string"},"required":false,"name":"endDateTime","in":"query"},{"schema":{"type":"boolean","nullable":true},"required":false,"name":"allTime","in":"query"}],"responses":{"200":{"description":"Grouped event types by category","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventMetadataResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/audit/event-types/catalog":{"get":{"tags":["Audit"],"operationId":"envAuditEventTypesCatalog","summary":"Get audit event type catalog","description":"Return the centralized event type catalog and the derived list of categories used by environment audit endpoints.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Centralized audit event catalog","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTypesCatalogResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/organizations/{id}/audit/logs":{"get":{"tags":["Audit"],"operationId":"organizationAuditLogs","summary":"List organization audit logs","description":"List audit logs for an organization using the management GraphQL audit model.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"org_123"},"required":true,"name":"id","in":"path"},{"schema":{"type":"integer","nullable":true,"minimum":0},"required":false,"name":"offset","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"searchQuery","in":"query"},{"schema":{"type":"string"},"required":false,"name":"startDateTime","in":"query"},{"schema":{"type":"string"},"required":false,"name":"endDateTime","in":"query"},{"schema":{"type":"string"},"required":false,"name":"relativeTime","in":"query"},{"schema":{"type":"string"},"required":false,"name":"eventType","in":"query"},{"schema":{"type":"string"},"required":false,"name":"eventCategory","in":"query"},{"schema":{"type":"string","example":"organization_management,tenant_management","description":"Comma-separated event categories"},"required":false,"description":"Comma-separated event categories","name":"categories","in":"query"},{"schema":{"type":"string"},"required":false,"name":"resourceType","in":"query"}],"responses":{"200":{"description":"Organization audit logs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationAuditLogsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/events":{"get":{"tags":["Events"],"operationId":"listEvents","summary":"List events","description":"Cursor-paginated stream of immutable events for an environment. Filter by event type, category, organization, and time range. Use `list_metadata.after` to page.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string","example":"SIGNIN_SUCCESS,NEW_USER","description":"Comma-separated event types to filter by (maps to WorkOS `events[]`)."},"required":false,"description":"Comma-separated event types to filter by (maps to WorkOS `events[]`).","name":"events","in":"query"},{"schema":{"type":"string","example":"authn,team_management","description":"Comma-separated event categories to filter by."},"required":false,"description":"Comma-separated event categories to filter by.","name":"categories","in":"query"},{"schema":{"type":"string","example":"2026-01-01T00:00:00Z","description":"ISO-8601 lower bound (inclusive) on event time."},"required":false,"description":"ISO-8601 lower bound (inclusive) on event time.","name":"rangeStart","in":"query"},{"schema":{"type":"string","example":"2026-02-01T00:00:00Z","description":"ISO-8601 upper bound (exclusive) on event time."},"required":false,"description":"ISO-8601 upper bound (exclusive) on event time.","name":"rangeEnd","in":"query"},{"schema":{"type":"string","description":"Opaque pagination cursor returned as `list_metadata.after` on the previous page."},"required":false,"description":"Opaque pagination cursor returned as `list_metadata.after` on the previous page.","name":"after","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"example":20,"description":"Maximum number of events to return (default 20, max 100)."},"required":false,"description":"Maximum number of events to return (default 20, max 100).","name":"limit","in":"query"}],"responses":{"200":{"description":"A page of events","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventsListResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/events/types":{"get":{"tags":["Events"],"operationId":"listEventTypes","summary":"List event types","description":"Return the catalog of event types that can appear in the events stream, grouped by category.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Event type catalog","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTypesResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/events/ingest":{"post":{"tags":["Events"],"operationId":"ingestSecurityEvents","summary":"Ingest security events","description":"Submit raw security events into the analysis pipeline. Events are recorded in the event store and reviewed by the AI analysis service against the environment's Lidar monitors; confirmed findings surface as Signals in console Lidar. Up to 50 events per call.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestSecurityEventsBody"}}}},"responses":{"200":{"description":"Ingestion summary","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestSecurityEventsResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/webhooks":{"get":{"tags":["Webhooks"],"operationId":"listWebhookEndpoints","summary":"List webhook endpoints","description":"List the webhook endpoints configured for an environment, including subscribed event types. Signing secrets are never returned; use rotate-secret to obtain a new secret.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Webhook endpoints","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointsResponse"}}}},"400":{"description":"Invalid request or Management operation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Webhooks"],"operationId":"createWebhookEndpoint","summary":"Create a webhook endpoint","description":"Create a webhook notification channel. When Management returns a signing secret, it is included once in the response and never again.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookEndpointBody"}}}},"responses":{"200":{"description":"Created webhook endpoint","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointResponse"}}}},"400":{"description":"Invalid request or Management operation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/webhooks/deliveries":{"get":{"tags":["Webhooks"],"operationId":"listWebhookDeliveries","summary":"List webhook deliveries","description":"List recorded webhook delivery attempts for an environment, optionally filtered by endpoint or status.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":false,"name":"channelId","in":"query"},{"schema":{"type":"string","enum":["pending","success","failed"]},"required":false,"name":"status","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":200},"required":false,"name":"limit","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0},"required":false,"name":"offset","in":"query"}],"responses":{"200":{"description":"Webhook deliveries","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDeliveriesResponse"}}}},"400":{"description":"Invalid request or Management operation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/webhooks/deliveries/{deliveryId}/redeliver":{"post":{"tags":["Webhooks"],"operationId":"redeliverWebhook","summary":"Redeliver a webhook","description":"Re-attempt a previously recorded webhook delivery, re-signing the stored payload.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string","example":"del_123"},"required":true,"name":"deliveryId","in":"path"}],"responses":{"200":{"description":"Redelivery result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeliverResponse"}}}},"400":{"description":"Invalid request or Management operation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/webhooks/{channelId}":{"put":{"tags":["Webhooks"],"operationId":"updateWebhookEndpoint","summary":"Update a webhook endpoint","description":"Replace webhook endpoint configuration. Omit webhookUrl to preserve the current destination.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string","example":"chan_123"},"required":true,"name":"channelId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookEndpointBody"}}}},"responses":{"200":{"description":"Updated webhook endpoint","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointResponse"}}}},"400":{"description":"Invalid request or Management operation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"tags":["Webhooks"],"operationId":"deleteWebhookEndpoint","summary":"Delete a webhook endpoint","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string","example":"chan_123"},"required":true,"name":"channelId","in":"path"}],"responses":{"200":{"description":"Deletion result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookActionResponse"}}}},"400":{"description":"Invalid request or Management operation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/webhooks/{channelId}/rotate-secret":{"post":{"tags":["Webhooks"],"operationId":"rotateWebhookSigningSecret","summary":"Rotate a webhook signing secret","description":"Generate a new HMAC signing secret for a webhook endpoint. The previous secret stops being valid immediately. The new secret is returned once.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string","example":"chan_123"},"required":true,"name":"channelId","in":"path"}],"responses":{"200":{"description":"New signing secret","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateSigningSecretResponse"}}}},"400":{"description":"Invalid request or Management operation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/notification-channels":{"get":{"tags":["Notification channels"],"operationId":"listNotificationChannels","summary":"List notification channels","description":"List generic webhook, Slack, Datadog, Sysdig, Splunk, Sumo Logic, and Microsoft Sentinel notification channels configured for an environment. Secret values are never returned.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Notification channels","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelsResponse"}}}},"400":{"description":"Invalid request or Management operation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Notification channels"],"operationId":"createNotificationChannel","summary":"Create notification channel","description":"Create a generic webhook, Slack, Datadog, Sysdig, Splunk, Sumo Logic, or Microsoft Sentinel notification channel. Datadog requires datadogApiKey; Sysdig requires sysdigApiToken; Splunk requires splunkToken + splunkUrl; Sumo Logic requires sumoUrl; Sentinel requires sentinelWorkspaceId + sentinelSharedKey; webhook and Slack require webhookUrl.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNotificationChannelBody"}}}},"responses":{"200":{"description":"Created notification channel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelResponse"}}}},"400":{"description":"Invalid request or Management operation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/notification-channels/{channelId}":{"put":{"tags":["Notification channels"],"operationId":"updateNotificationChannel","summary":"Update notification channel","description":"Replace notification channel configuration. Omit webhookUrl, datadogApiKey, sysdigApiToken, splunkToken, sumoUrl, or sentinelSharedKey to preserve its current secret value.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string","example":"chan_123"},"required":true,"name":"channelId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationChannelBody"}}}},"responses":{"200":{"description":"Updated notification channel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelResponse"}}}},"400":{"description":"Invalid request or Management operation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"tags":["Notification channels"],"operationId":"deleteNotificationChannel","summary":"Delete notification channel","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string","example":"chan_123"},"required":true,"name":"channelId","in":"path"}],"responses":{"200":{"description":"Deletion result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelActionResponse"}}}},"400":{"description":"Invalid request or Management operation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/notification-channels/{channelId}/test":{"post":{"tags":["Notification channels"],"operationId":"testNotificationChannel","summary":"Test notification channel","description":"Send a test message using the channel's stored webhook, Datadog, Sysdig, Splunk, Sumo Logic, or Microsoft Sentinel credentials.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string","example":"chan_123"},"required":true,"name":"channelId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestNotificationChannelBody"}}}},"responses":{"200":{"description":"Test delivery result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelActionResponse"}}}},"400":{"description":"Invalid request or Management operation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/widgets/token":{"post":{"tags":["Widgets"],"operationId":"createWidgetToken","summary":"Create a widget token","description":"Mint a short-lived, environment-signed token scoping a set of embeddable widgets to a user or organization. Present it to the identity service when initializing a widget.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WidgetTokenRequest"}}}},"responses":{"200":{"description":"A signed widget token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WidgetTokenResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/portal/generate-link":{"post":{"tags":["Admin Portal"],"operationId":"generatePortalLink","summary":"Generate an admin portal link","description":"Create a time-limited link that drops an organization's admin into a scoped self-serve setup flow (SSO, Directory Sync, or domain verification) without a dashboard login.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"tenant_123"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string","example":"env_456"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratePortalLinkRequest"}}}},"responses":{"200":{"description":"A time-limited portal link","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratePortalLinkResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Tenant or organization scope mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Environment or organization not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/elevate/policy":{"get":{"tags":["Elevate"],"operationId":"elevatePolicyGet","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Elevate policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElevatePolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"tags":["Elevate"],"operationId":"elevatePolicyUpdate","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"approvalRequired":{"type":"boolean"},"mfaRequired":{"type":"boolean"},"maxDurationMinutes":{"type":"integer","minimum":5,"maximum":1440}},"required":["approvalRequired","mfaRequired","maxDurationMinutes"]}}}},"responses":{"200":{"description":"Updated Elevate policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElevatePolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/elevate/access-requests":{"get":{"tags":["Elevate"],"operationId":"elevateRequestsList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":false,"name":"status","in":"query"}],"responses":{"200":{"description":"Access requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElevateRequestsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Elevate"],"operationId":"elevateRequestCreate","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"targetType":{"type":"string","enum":["role","fga"]},"roleId":{"type":"string"},"targetNamespace":{"type":"string"},"targetObjectId":{"type":"string"},"targetRelation":{"type":"string"},"requestedStartAt":{"type":"string"},"durationMinutes":{"type":"integer"},"reason":{"type":"string","minLength":3},"ticketReference":{"type":"string"}},"required":["targetType","durationMinutes","reason"]}}}},"responses":{"200":{"description":"Created access request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElevateRequestResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/elevate/access-requests/{requestId}":{"get":{"tags":["Elevate"],"operationId":"elevateRequestGet","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"requestId","in":"path"}],"responses":{"200":{"description":"Access request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElevateRequestResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/elevate/access-requests/{requestId}/approve":{"post":{"tags":["Elevate"],"operationId":"elevateRequestApprove","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"requestId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reviewNote":{"type":"string"}},"default":{}}}}},"responses":{"200":{"description":"approve access request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElevateRequestResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/elevate/access-requests/{requestId}/deny":{"post":{"tags":["Elevate"],"operationId":"elevateRequestDeny","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"requestId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reviewNote":{"type":"string"}},"default":{}}}}},"responses":{"200":{"description":"deny access request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElevateRequestResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/elevate/access-requests/{requestId}/cancel":{"post":{"tags":["Elevate"],"operationId":"elevateRequestCancel","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"requestId","in":"path"}],"responses":{"200":{"description":"Cancelled access request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElevateRequestResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/elevate/access-grants/{grantId}/revoke":{"post":{"tags":["Elevate"],"operationId":"elevateGrantRevoke","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"grantId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string"}},"default":{}}}}},"responses":{"200":{"description":"Revoked access grant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElevateGrantResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/elevate/access-grants/{grantId}/activate":{"post":{"tags":["Elevate"],"operationId":"elevateGrantActivate","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"grantId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"mfaCode":{"type":"string","minLength":6,"maxLength":6}},"default":{}}}}},"responses":{"200":{"description":"Short-lived elevated token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElevateActivationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/roles":{"get":{"tags":["RBAC"],"operationId":"envRolesList","summary":"List roles in an environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Roles","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvRolesResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["RBAC"],"operationId":"envRoleCreate","summary":"Create or update a role","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveRoleBody"}}}},"responses":{"200":{"description":"Saved role","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveRoleResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/roles/{roleId}":{"delete":{"tags":["RBAC"],"operationId":"envRoleDelete","summary":"Delete a role","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"roleId","in":"path"}],"responses":{"200":{"description":"Deleted role","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RbacMetaOnlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/permissions":{"get":{"tags":["RBAC"],"operationId":"envPermissionsList","summary":"List permissions in an environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Permissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvPermissionsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["RBAC"],"operationId":"envPermissionCreate","summary":"Create or update a permission","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavePermissionBody"}}}},"responses":{"200":{"description":"Saved permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavePermissionResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/permissions/{permissionId}":{"delete":{"tags":["RBAC"],"operationId":"envPermissionDelete","summary":"Delete a permission","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"permissionId","in":"path"}],"responses":{"200":{"description":"Deleted permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RbacMetaOnlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/resources":{"get":{"tags":["RBAC"],"operationId":"envResourcesList","summary":"List resources in an environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Resources","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvResourcesResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["RBAC"],"operationId":"envResourceCreate","summary":"Create or update a resource","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveResourceBody"}}}},"responses":{"200":{"description":"Saved resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveResourceResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/resources/{resourceId}":{"delete":{"tags":["RBAC"],"operationId":"envResourceDelete","summary":"Delete a resource","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"resourceId","in":"path"}],"responses":{"200":{"description":"Deleted resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RbacMetaOnlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/roles/{roleId}/permissions":{"get":{"tags":["RBAC"],"operationId":"rolePermissionsList","summary":"List permissions assigned to a role","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"roleId","in":"path"}],"responses":{"200":{"description":"Role permissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RolePermissionsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"tags":["RBAC"],"operationId":"rolePermissionsSet","summary":"Set permissions for a role","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"roleId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetRolePermissionsBody"}}}},"responses":{"200":{"description":"Updated role permissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RolePermissionsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/groups/{groupId}/roles":{"get":{"tags":["RBAC"],"operationId":"groupRolesList","summary":"List roles assigned to a group","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"groupId","in":"path"}],"responses":{"200":{"description":"Group roles","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupRolesResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["RBAC"],"operationId":"groupRoleAdd","summary":"Assign a role to a group","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"groupId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddGroupRoleBody"}}}},"responses":{"200":{"description":"Added group role","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddGroupRoleResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/groups/{groupId}/roles/{roleId}":{"delete":{"tags":["RBAC"],"operationId":"groupRoleRemove","summary":"Remove a role from a group","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"groupId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"roleId","in":"path"}],"responses":{"200":{"description":"Removed group role","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveGroupRoleResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/abac-policies":{"get":{"tags":["RBAC"],"operationId":"abacPoliciesList","summary":"List ABAC policies","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Policies","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AbacPoliciesResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["RBAC"],"operationId":"abacPolicySave","summary":"Create or update an ABAC policy","description":"Upsert: include `id` to update an existing policy.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveAbacPolicyBody"}}}},"responses":{"200":{"description":"Saved policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveAbacPolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/abac-policies/validate":{"post":{"tags":["RBAC"],"operationId":"abacPolicyValidate","summary":"Validate an ABAC policy's Rego source","description":"Stateless syntax/semantic validation; nothing is persisted.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateAbacPolicyBody"}}}},"responses":{"200":{"description":"Validation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateAbacPolicyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/abac-policies/{policyId}":{"delete":{"tags":["RBAC"],"operationId":"abacPolicyDelete","summary":"Delete an ABAC policy","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"policyId","in":"path"}],"responses":{"200":{"description":"Deleted policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RbacMetaOnlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/me/permissions":{"get":{"tags":["RBAC"],"operationId":"myPermissions","summary":"List the caller's effective permissions","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Effective permissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPermissionsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/group-role-mappings":{"get":{"tags":["RBAC"],"operationId":"groupRoleMappingsList","summary":"List group-to-role mappings","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Mappings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupRoleMappingsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["RBAC"],"operationId":"groupRoleMappingCreate","summary":"Create a group-to-role mapping","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroupRoleMappingBody"}}}},"responses":{"200":{"description":"Created mapping","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupRoleMappingResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/group-role-mappings/apply":{"post":{"tags":["RBAC"],"operationId":"groupRoleMappingsApply","summary":"Apply group-to-role mappings to existing groups","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Application result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyGroupRoleMappingsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/group-role-mappings/{mappingId}":{"delete":{"tags":["RBAC"],"operationId":"groupRoleMappingDelete","summary":"Delete a group-to-role mapping","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"mappingId","in":"path"}],"responses":{"200":{"description":"Deleted mapping","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RbacMetaOnlyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/threats":{"get":{"tags":["Threats"],"operationId":"threatsList","summary":"List threats","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":false,"name":"status","in":"query"},{"schema":{"type":"string"},"required":false,"name":"severity","in":"query"},{"schema":{"type":"string"},"required":false,"name":"type","in":"query"},{"schema":{"type":"string"},"required":false,"name":"assignee","in":"query"},{"schema":{"type":"integer","minimum":1},"required":false,"name":"limit","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0},"required":false,"name":"offset","in":"query"}],"responses":{"200":{"description":"Threats","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentThreatsResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Threats"],"operationId":"threatCreate","summary":"Create a threat","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateThreatBody"}}}},"responses":{"200":{"description":"Created threat","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThreatResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/threats/{threatId}":{"get":{"tags":["Threats"],"operationId":"threatDetails","summary":"Get a threat","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"threatId","in":"path"}],"responses":{"200":{"description":"Threat","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThreatResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"patch":{"tags":["Threats"],"operationId":"threatUpdate","summary":"Update a threat's status, severity, or assignee","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"threatId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateThreatBody"}}}},"responses":{"200":{"description":"Updated threat","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThreatResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"tags":["Threats"],"operationId":"threatDelete","summary":"Delete a threat","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"threatId","in":"path"}],"responses":{"200":{"description":"Deleted threat","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteThreatResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/threats/{threatId}/resolve":{"post":{"tags":["Threats"],"operationId":"threatResolve","summary":"Resolve or dismiss a threat","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"threatId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveThreatBody"}}}},"responses":{"200":{"description":"Resolved threat","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThreatResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/security/posture":{"get":{"tags":["Security Posture"],"operationId":"securityPostureOverview","summary":"Get the environment's cloud security posture score and findings","description":"Evaluates the environment's configuration (password policy, redirect URIs, JWKS, add-ons, ...) against Authdog's posture checks and returns a 0-100 score with per-check findings. Recomputed on every read.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Security posture overview","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentPostureOverviewResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/scim-tokens":{"get":{"tags":["Provisioning tokens"],"operationId":"scimTokensList","summary":"List SCIM tokens","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"SCIM tokens (values masked)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisioningTokensResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Provisioning tokens"],"operationId":"scimTokenCreate","summary":"Create a SCIM token","description":"The full token value is returned once in this response and never again.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProvisioningTokenBody"}}}},"responses":{"200":{"description":"Created token with its one-time full value","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisioningTokenWithSecretResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/scim-tokens/{tokenId}/rotate":{"post":{"tags":["Provisioning tokens"],"operationId":"scimTokenRotate","summary":"Rotate a SCIM token","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"tokenId","in":"path"}],"responses":{"200":{"description":"Rotated token with its one-time full value","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisioningTokenWithSecretResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/scim-tokens/{tokenId}/revoke":{"post":{"tags":["Provisioning tokens"],"operationId":"scimTokenRevoke","summary":"Revoke a SCIM token","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"tokenId","in":"path"}],"responses":{"200":{"description":"Revoked token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisioningTokenResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/hris-tokens":{"get":{"tags":["Provisioning tokens"],"operationId":"hrisTokensList","summary":"List HRIS tokens","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"HRIS tokens (values masked)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisioningTokensResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Provisioning tokens"],"operationId":"hrisTokenCreate","summary":"Create a HRIS token","description":"The full token value is returned once in this response and never again.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProvisioningTokenBody"}}}},"responses":{"200":{"description":"Created token with its one-time full value","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisioningTokenWithSecretResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/hris-tokens/{tokenId}/rotate":{"post":{"tags":["Provisioning tokens"],"operationId":"hrisTokenRotate","summary":"Rotate a HRIS token","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"tokenId","in":"path"}],"responses":{"200":{"description":"Rotated token with its one-time full value","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisioningTokenWithSecretResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/hris-tokens/{tokenId}/revoke":{"post":{"tags":["Provisioning tokens"],"operationId":"hrisTokenRevoke","summary":"Revoke a HRIS token","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"tokenId","in":"path"}],"responses":{"200":{"description":"Revoked token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisioningTokenResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/billing/plans":{"get":{"tags":["Billing"],"operationId":"billingPlansList","summary":"List billing plans","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Plans","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingPlansResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Billing"],"operationId":"billingPlanSave","summary":"Create or update a billing plan","description":"Upsert: include `id` to update. `featureIds` replaces the plan's full feature set. Amounts are integer cents.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveBillingPlanBody"}}}},"responses":{"200":{"description":"Saved plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingPlanMutationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/billing/plans/{planId}":{"delete":{"tags":["Billing"],"operationId":"billingPlanDelete","summary":"Delete a billing plan","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"planId","in":"path"}],"responses":{"200":{"description":"Deleted plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingDeleteResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/billing/plans/{planId}/sync-stripe":{"post":{"tags":["Billing"],"operationId":"billingPlanSyncStripe","summary":"Sync a billing plan to Stripe","description":"Creates the Stripe Product and monthly/annual Prices backing the plan using the environment's connected Stripe add-on.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"planId","in":"path"}],"responses":{"200":{"description":"Synced plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingPlanMutationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/billing/features":{"get":{"tags":["Billing"],"operationId":"billingFeaturesList","summary":"List billing features","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Features","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingFeaturesResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["Billing"],"operationId":"billingFeatureSave","summary":"Create or update a billing feature","description":"Upsert: include `id` to update an existing feature.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveBillingFeatureBody"}}}},"responses":{"200":{"description":"Saved feature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingFeatureMutationResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/billing/features/{featureId}":{"delete":{"tags":["Billing"],"operationId":"billingFeatureDelete","summary":"Delete a billing feature","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"featureId","in":"path"}],"responses":{"200":{"description":"Deleted feature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingDeleteResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/mcp/trust-store/resolve":{"get":{"tags":["MCP Trust Store"],"operationId":"mcpTrustStoreResolve","summary":"Resolve a trust store entry by subject (SDK runtime)","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","example":"https://mcp.acme.com"},"required":true,"name":"subject","in":"query"}],"responses":{"200":{"description":"Resolved trust store entry (or null)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpTrustStoreEntryResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/mcp/events":{"post":{"tags":["MCP Trust Store"],"operationId":"mcpEventsIngest","summary":"Ingest MCP tool-call telemetry (SDK runtime)","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpEventsIngestBody"}}}},"responses":{"200":{"description":"Ingest result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpEventIngestResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/mcp/trust-store":{"get":{"tags":["MCP Trust Store"],"operationId":"mcpTrustStoreEntriesList","summary":"List trust store entries in an environment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"responses":{"200":{"description":"Trust store entries","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpTrustStoreEntriesResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["MCP Trust Store"],"operationId":"mcpTrustStoreEntryCreate","summary":"Register a trust store entry","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMcpTrustStoreEntryBody"}}}},"responses":{"200":{"description":"Created entry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpTrustStoreEntryResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/mcp/trust-store/{entryId}":{"get":{"tags":["MCP Trust Store"],"operationId":"mcpTrustStoreEntryGet","summary":"Get a trust store entry","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"entryId","in":"path"}],"responses":{"200":{"description":"Trust store entry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpTrustStoreEntryResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"patch":{"tags":["MCP Trust Store"],"operationId":"mcpTrustStoreEntryUpdate","summary":"Update a trust store entry","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"entryId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMcpTrustStoreEntryBody"}}}},"responses":{"200":{"description":"Updated entry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpTrustStoreEntryResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"tags":["MCP Trust Store"],"operationId":"mcpTrustStoreEntryDelete","summary":"Delete a trust store entry","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"entryId","in":"path"}],"responses":{"200":{"description":"Deleted entry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpTrustStoreDeleteResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/mcp/trust-store/{entryId}/verify":{"post":{"tags":["MCP Trust Store"],"operationId":"mcpTrustStoreEntryVerify","summary":"Verify or unverify a trust store entry","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"entryId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMcpTrustStoreEntryBody"}}}},"responses":{"200":{"description":"Updated verification status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpTrustStoreEntryResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/mcp/trust-store/{entryId}/revoke":{"post":{"tags":["MCP Trust Store"],"operationId":"mcpTrustStoreEntryRevoke","summary":"Revoke (distrust) a trust store entry","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"entryId","in":"path"}],"responses":{"200":{"description":"Revoked entry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpTrustStoreEntryResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/mcp/trust-store/{entryId}/keys":{"post":{"tags":["MCP Trust Store"],"operationId":"mcpTrustStoreKeyAdd","summary":"Add a key to a trust store entry","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"entryId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddMcpTrustStoreKeyBody"}}}},"responses":{"200":{"description":"Added key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpTrustStoreKeyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/mcp/trust-store/{entryId}/keys/{keyId}/rotate":{"post":{"tags":["MCP Trust Store"],"operationId":"mcpTrustStoreKeyRotate","summary":"Rotate a key with an optional overlap window","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"entryId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"keyId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateMcpTrustStoreKeyBody"}}}},"responses":{"200":{"description":"Rotated key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpTrustStoreKeyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/tenants/{tenantId}/environments/{environmentId}/mcp/trust-store/{entryId}/keys/{keyId}":{"delete":{"tags":["MCP Trust Store"],"operationId":"mcpTrustStoreKeyRevoke","summary":"Revoke a single key","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tenantId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"environmentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"entryId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"keyId","in":"path"}],"responses":{"200":{"description":"Revoked key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpTrustStoreKeyResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}