{"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":"Audit","description":"Audit log queries and event metadata"},{"name":"Events","description":"Cursor-paginated immutable event stream and type catalog"},{"name":"Webhooks","description":"Webhook endpoints, signing secrets, 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."}],"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"},"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"},"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"},"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"]},"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"]},"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"]},"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},"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"]},"SetUserActiveResponse":{"type":"object","properties":{"user":{"allOf":[{"$ref":"#/components/schemas/EnvUser"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["user"]},"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"]},"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"]},"EnvGroupsResponse":{"type":"object","properties":{"groups":{"type":"array","items":{"$ref":"#/components/schemas/EnvGroup"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["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"]},"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"]},"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"]},"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"]},"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},"signingSecret":{"type":"string","nullable":true},"eventTypes":{"type":"array","items":{"type":"string"},"default":[]},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id"]},"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}}}}},"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"]},"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},"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","channels","eventTypes","createdAt","updatedAt"]},"NotificationChannelType":{"type":"string","enum":["webhook","slack","datadog"]},"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]},"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"},"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"},"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"]},"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"]},"McpTrustStoreEntriesResponse":{"type":"object","properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/McpTrustStoreEntry"}},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["entries"]},"McpTrustStoreEntry":{"type":"object","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"]},"McpTrustStoreEntryResponse":{"type":"object","properties":{"entry":{"allOf":[{"$ref":"#/components/schemas/McpTrustStoreEntry"},{"nullable":true}]},"meta":{"$ref":"#/components/schemas/ManagementMeta"}},"required":["entry"]},"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":{"allOf":[{"$ref":"#/components/schemas/McpTrustStoreEntry"},{"nullable":true}]},"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"}}}}}}},"/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/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/{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/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}/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"}}}}}}},"/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}":{"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/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}/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/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"}}}}}}},"/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}/webhooks":{"get":{"tags":["Webhooks"],"operationId":"listWebhookEndpoints","summary":"List webhook endpoints","description":"List the webhook endpoints configured for an environment, including their subscribed event types and signing 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"}}}},"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"}}}},"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"}}}},"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.","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"}}}},"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, and Datadog 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, or Datadog notification channel. Datadog requires datadogApiKey; 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 or datadogApiKey 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 or Datadog 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"}}}},"500":{"description":"Internal Server Error","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}/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"}}}}}}}}}