{"openapi":"3.1.0","info":{"title":"Pydantic Logfire API","summary":"Public API to access Logfire resources","description":"To be able to use the Logfire API, you need to either create an\n[OAuth App](https://logfire.pydantic.dev/-/redirect/default-org/settings/developer/oauth-apps) or a\n[Personal Access Token](https://logfire.pydantic.dev/-/redirect/default-org/settings/developer/pat).\n","termsOfService":"https://pydantic.dev/legal/terms-of-service","version":"0.1.0"},"paths":{"/v1/api-keys/":{"get":{"tags":["API Keys"],"summary":"List Organization Api Keys","description":"List the organization's API keys, including project-scoped keys.\n\nA non-personal (service) caller sees only service keys (`user_id IS NULL`). A\npersonal caller additionally sees its own personal keys; another user's personal\nkeys are always hidden, matching the ownership guard on update/delete.","operationId":"list_organization_api_keys_v1_api_keys__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/APIKeyRead"},"type":"array","title":"Response List Organization Api Keys V1 Api Keys  Get"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["organization:read_api_key"]}]},"post":{"tags":["API Keys"],"summary":"Create Organization Api Key","description":"Create an API key delegated from the calling credential.\n\nThe new key can never exceed the caller's own grant: its scopes, personal/service\nkind, and project scope are all constrained to the caller. Creation is audit-logged\nby the service layer.\n\nOmitting `project_id` makes an organization-wide key. One may carry a project-bound\nscope (`project:gateway_proxy`, `project:read_otlp`, `project:write_otlp`) only\nalongside `organization:create_api_key`, and then only to pass on: it resolves no\nproject, so it can grant the scope to the project keys it creates but never use it.\nAny other pairing is rejected with 422.","operationId":"create_organization_api_key_v1_api_keys__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyCreateOutput"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"403":{"description":"Requested scopes or project scoping exceed the caller's own grant, or its owner lacks the permissions those scopes require on the target project"},"404":{"description":"Project not found. A caller whose own project authorization is checked gets the 403 above instead, which does not distinguish a project it cannot reach from one that does not exist"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["organization:create_api_key"]}]}},"/v1/api-keys/{api_key_id}/":{"patch":{"tags":["API Keys"],"summary":"Update Organization Api Key","description":"Update an API key's title, description, and/or per-scope `claims`.\n\nAn empty body is rejected with 422.","operationId":"update_organization_api_key_v1_api_keys__api_key_id___patch","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_api_key"]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Api Key Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"404":{"description":"API key not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["API Keys"],"summary":"Revoke Organization Api Key","description":"Revoke (soft-delete) an API key. The key stops authenticating immediately.","operationId":"revoke_organization_api_key_v1_api_keys__api_key_id___delete","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_api_key"]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Api Key Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"400":{"description":"Cannot retire a token belonging to a frontend application"},"404":{"description":"API key not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/api-keys/{api_key_id}/disable/":{"post":{"tags":["API Keys"],"summary":"Disable Organization Api Key","description":"Disable an API key so it stops authenticating immediately.\n\nReversible via `/enable/` (unlike `DELETE`).","operationId":"disable_organization_api_key_v1_api_keys__api_key_id__disable__post","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_api_key"]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Api Key Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"400":{"description":"Cannot retire a token belonging to a frontend application"},"404":{"description":"API key not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/api-keys/{api_key_id}/enable/":{"post":{"tags":["API Keys"],"summary":"Enable Organization Api Key","description":"Re-enable a previously disabled API key (sets `active = TRUE`).\n\nAn expired key cannot be re-enabled (rotate or create a new key instead), and neither can a\nbrowser credential whose frontend application was deleted.","operationId":"enable_organization_api_key_v1_api_keys__api_key_id__enable__post","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_api_key"]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Api Key Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"400":{"description":"Cannot enable expired API key, or one whose application was deleted"},"404":{"description":"API key not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/api-keys/{api_key_id}/expire/":{"patch":{"tags":["API Keys"],"summary":"Expire Organization Api Key","description":"Force-expire an API key immediately by setting its expiry to now.\n\nPermanent: an expired key cannot be re-enabled or rotated; create a new key\ninstead. Already-expired or unknown keys return 404.","operationId":"expire_organization_api_key_v1_api_keys__api_key_id__expire__patch","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_api_key"]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Api Key Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"400":{"description":"Cannot retire a token belonging to a frontend application"},"404":{"description":"API key not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/api-keys/{api_key_id}/rotate/":{"post":{"tags":["API Keys"],"summary":"Rotate Organization Api Key","description":"Rotate an API key: mint a replacement under a new id, returning the new token.\n\nThe replacement clones the key's name, scopes, claims, and project scoping under a\nnew id with a fresh secret. The old key is retired after `overlap_seconds`\n(default 0 = immediately); a positive value keeps the old secret valid for a\ncutover window. The new token is returned only here, so store it now.\n\nOnly a currently-valid key can be rotated. An expired key cannot be rotated (it has\nno working secret to clone; create a new key instead); a disabled key cannot be\nrotated either (that would re-enable it under a new secret; enable it first).","operationId":"rotate_organization_api_key_v1_api_keys__api_key_id__rotate__post","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_api_key","organization:create_api_key"]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Api Key Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyRotateInput","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyRotateOutput"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"400":{"description":"Cannot rotate an expired or disabled API key"},"403":{"description":"The rotated key's scopes or project scoping exceed the caller's own grant, or its owner lacks the permissions those scopes require on the project it names"},"404":{"description":"API key not found"},"409":{"description":"The key's frontend application already has as many live tokens as it may have"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/audit-logs/":{"get":{"tags":["Audit Logs"],"summary":"List Audit Logs","description":"List audit logs for an organization.\n\nRequires an API key with the `organization:auditlog` scope.\nOnly available for organizations with an enterprise_cloud subscription or self-hosted deployments.\n\nThe time range cannot exceed 90 days.","operationId":"list_audit_logs_v1_audit_logs__get","security":[{"OAuth2AuthorizationCodeBearer":["organization:auditlog"]}],"parameters":[{"name":"start_time","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Start time for audit logs","title":"Start Time"},"description":"Start time for audit logs"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"End time for audit logs","title":"End Time"},"description":"End time for audit logs"},{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"enum":["INSERT","UPDATE","DELETE","VIEW","LOGIN","FAILED_LOGIN","LOGOUT","CLAIM_INVITATION","REVOKE_INVITATION","VERIFY","SSO_SIGN_IN_ATTEMPT"],"type":"string"},{"type":"null"}],"description":"Filter by action type","title":"Action"},"description":"Filter by action type"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AuditLogInfoRead"},"title":"Response List Audit Logs V1 Audit Logs  Get"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/audit-logs/{audit_log_id}/":{"get":{"tags":["Audit Logs"],"summary":"Get Audit Log","description":"Get details for a specific audit log.\n\nRequires an API key with the `organization:auditlog` scope.\nOnly available for organizations with an enterprise_cloud subscription or self-hosted deployments.","operationId":"get_audit_log_v1_audit_logs__audit_log_id___get","security":[{"OAuth2AuthorizationCodeBearer":["organization:auditlog"]}],"parameters":[{"name":"audit_log_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"Audit log ID","title":"Audit Log Id"},"description":"Audit log ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogDetailRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/usage/":{"get":{"tags":["Billing"],"summary":"Get Billing Usage","description":"Get billing usage data for the current or a previous billing period.\n\nUse periodOffset=0 for the current period, -1 for the previous, -2 for two periods ago.\n\nReturns usage totals, per-project breakdown, and cost calculations\nfor enterprise cloud organizations.","operationId":"get_billing_usage_v1_billing_usage__get","security":[{"OAuth2AuthorizationCodeBearer":["organization:payment"]}],"parameters":[{"name":"periodOffset","in":"query","required":false,"schema":{"type":"integer","maximum":0,"minimum":-2,"default":0,"title":"Periodoffset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingUsageResponse"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/channels/":{"get":{"tags":["Channels"],"summary":"List Channels","description":"List all notification channels for the organization the project belongs to.","operationId":"list_channels_v1_channels__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ChannelRead"},"type":"array","title":"Response List Channels V1 Channels  Get"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["organization:read_channel"]}]},"post":{"tags":["Channels"],"summary":"Create Channel","description":"Create a notification channel.","operationId":"create_channel_v1_channels__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["organization:write_channel"]}]}},"/v1/channels/{channel_id}/":{"get":{"tags":["Channels"],"summary":"Get Channel","description":"Get a single notification channel by ID.","operationId":"get_channel_v1_channels__channel_id___get","security":[{"OAuth2AuthorizationCodeBearer":["organization:read_channel"]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Channels"],"summary":"Update Channel","description":"Update a notification channel.","operationId":"update_channel_v1_channels__channel_id___put","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_channel"]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Channels"],"summary":"Delete Channel","description":"Delete a notification channel.","operationId":"delete_channel_v1_channels__channel_id___delete","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_channel"]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/group-mappings/":{"get":{"tags":["Group Mappings"],"summary":"Get Group Mappings","description":"Return the group-organization mapping stored in `platform_config` (self-hosted admin only).\n\nWhen `api_mapping_status` is `overridden_by_environment`, the returned mapping is stored but\nis not used for synchronization. The environment-configured mapping is effective, and PUT\nrequests return 409.","operationId":"get_group_mappings_v1_group_mappings__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupOrganizationMappingStatusRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}}},"deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":["instance:admin"]}]},"put":{"tags":["Group Mappings"],"summary":"Update Group Mappings","description":"Replace the complete authoritative group-access mapping (self-hosted admin only).\n\nOrganizations and projects referenced by the mapping become managed by identity-provider\ngroups. On each user's next sign-in, memberships and roles in those scopes are reconciled\nagainst their current provider groups, so existing manual access may be changed or removed.\n\nMembership in a user's own personal organization is never removed. Organizations and projects\nnot referenced by the mapping are left unchanged, and only projects explicitly listed in\n`project_roles` are managed. Removing a scope from the mapping stops managing it but does not\nrestore access changed or removed by an earlier reconciliation. When multiple matching groups\ngrant roles in the same scope, the most permissive mapped role is applied.\n\nEvery `organization_name` and `project_name` in the payload must correspond to an existing\nrecord, and every `group_id` must be unique; otherwise a 400 is returned. A 409 is returned\nwhen an environment-configured mapping overrides API-managed mappings.","operationId":"update_group_mappings_v1_group_mappings__put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupOrganizationMappingUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupOrganizationMappingRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"400":{"description":"The mapping is invalid"},"409":{"description":"An environment-configured mapping overrides API-managed mappings"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":["instance:admin"]}]}},"/v1/gateway/providers/":{"get":{"tags":["Gateway Providers"],"summary":"List Gateway Providers","description":"List supported organization-owned Gateway providers.","operationId":"list_gateway_providers_v1_gateway_providers__get","security":[{"OAuth2AuthorizationCodeBearer":["organization:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayProvidersPage"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"403":{"description":"The organization plan does not include Gateway provider management"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Gateway Providers"],"summary":"Create Gateway Provider","description":"Create a supported organization-owned Gateway provider.","operationId":"create_gateway_provider_v1_gateway_providers__post","security":[{"OAuth2AuthorizationCodeBearer":["organization:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayProviderCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayProviderRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"403":{"description":"The organization plan does not include Gateway provider management"},"409":{"description":"A provider with the same slug already exists"},"503":{"description":"Provider stored, but Gateway did not confirm the refresh"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/gateway/providers/{provider_id}/":{"get":{"tags":["Gateway Providers"],"summary":"Get Gateway Provider","description":"Get a supported organization-owned Gateway provider.","operationId":"get_gateway_provider_v1_gateway_providers__provider_id___get","security":[{"OAuth2AuthorizationCodeBearer":["organization:read"]}],"parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayProviderRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"403":{"description":"The organization plan does not include Gateway provider management"},"404":{"description":"Provider not found"},"409":{"description":"Provider configuration is not supported by this API"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Gateway Providers"],"summary":"Update Gateway Provider","description":"Update pricing requirements, credentials, or Bedrock endpoint settings for a Gateway provider.","operationId":"update_gateway_provider_v1_gateway_providers__provider_id___patch","security":[{"OAuth2AuthorizationCodeBearer":["organization:write"]}],"parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Provider Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GatewayProviderConfigurationUpdate"},{"$ref":"#/components/schemas/GatewayProviderPricingUpdate"}],"title":"Provider Input"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayProviderRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"403":{"description":"The organization plan does not include Gateway provider management"},"404":{"description":"Provider not found"},"409":{"description":"Provider configuration is not supported by this API"},"503":{"description":"Provider stored, but Gateway did not confirm the refresh"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Gateway Providers"],"summary":"Delete Gateway Provider","description":"Idempotently delete a supported organization-owned Gateway provider.","operationId":"delete_gateway_provider_v1_gateway_providers__provider_id___delete","security":[{"OAuth2AuthorizationCodeBearer":["organization:write"]}],"parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Provider Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"403":{"description":"The organization plan does not include Gateway provider management"},"409":{"description":"Provider configuration is not supported by this API"},"503":{"description":"Provider absent, but Gateway did not confirm the refresh"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instance/organizations/":{"get":{"tags":["Instance"],"summary":"List Instance Organizations","description":"List all organizations across the self-hosted instance.","operationId":"list_instance_organizations_v1_instance_organizations__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/OrganizationReadV1"},"type":"array","title":"Response List Instance Organizations V1 Instance Organizations  Get"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["instance:admin"]}]},"post":{"tags":["Instance"],"summary":"Create Instance Organization","description":"Create an organization owned by the token's user across the self-hosted instance.","operationId":"create_instance_organization_v1_instance_organizations__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationReadV1"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["instance:admin"]}]}},"/v1/instance/usage-report/":{"get":{"tags":["Instance"],"summary":"List Instance Usage Report","description":"List completed monthly usage for all organizations in a self-hosted instance.","operationId":"list_instance_usage_report_v1_instance_usage_report__get","security":[{"OAuth2AuthorizationCodeBearer":["instance:billing"]}],"parameters":[{"name":"includeOrganizationNames","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Includeorganizationnames"}},{"name":"includeProjectNames","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Includeprojectnames"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InstanceUsageReportRowV1"},"title":"Response List Instance Usage Report V1 Instance Usage Report  Get"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instance/group-mappings/":{"get":{"tags":["Instance","Group Mappings"],"summary":"Get Group Mappings","description":"Return the group-organization mapping stored in `platform_config` (self-hosted admin only).\n\nWhen `api_mapping_status` is `overridden_by_environment`, the returned mapping is stored but\nis not used for synchronization. The environment-configured mapping is effective, and PUT\nrequests return 409.","operationId":"get_group_mappings_v1_instance_group_mappings__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupOrganizationMappingStatusRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["instance:admin"]}]},"put":{"tags":["Instance","Group Mappings"],"summary":"Update Group Mappings","description":"Replace the complete authoritative group-access mapping (self-hosted admin only).\n\nOrganizations and projects referenced by the mapping become managed by identity-provider\ngroups. On each user's next sign-in, memberships and roles in those scopes are reconciled\nagainst their current provider groups, so existing manual access may be changed or removed.\n\nMembership in a user's own personal organization is never removed. Organizations and projects\nnot referenced by the mapping are left unchanged, and only projects explicitly listed in\n`project_roles` are managed. Removing a scope from the mapping stops managing it but does not\nrestore access changed or removed by an earlier reconciliation. When multiple matching groups\ngrant roles in the same scope, the most permissive mapped role is applied.\n\nEvery `organization_name` and `project_name` in the payload must correspond to an existing\nrecord, and every `group_id` must be unique; otherwise a 400 is returned. A 409 is returned\nwhen an environment-configured mapping overrides API-managed mappings.","operationId":"update_group_mappings_v1_instance_group_mappings__put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupOrganizationMappingUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupOrganizationMappingRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"400":{"description":"The mapping is invalid"},"409":{"description":"An environment-configured mapping overrides API-managed mappings"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["instance:admin"]}]}},"/v1/integrations/pagerduty/services/{pagerduty_service_id}/":{"get":{"tags":["Integrations"],"summary":"Resolve PagerDuty service","description":"Resolve the Logfire IDs for a service approved through a PagerDuty connection.\n\nUse PagerDuty's account subdomain and service ID as stable inputs. The returned\n`install_id` and `service_id` are the values required by a\n`pagerduty-integration` notification channel.","operationId":"get_pagerduty_service_v1_integrations_pagerduty_services__pagerduty_service_id___get","security":[{"OAuth2AuthorizationCodeBearer":["organization:read_channel"]}],"parameters":[{"name":"pagerduty_service_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":255,"title":"Pagerduty Service Id"}},{"name":"account_subdomain","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":255,"title":"Account Subdomain"}},{"name":"region","in":"query","required":false,"schema":{"$ref":"#/components/schemas/PagerdutyRegion","default":"us"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagerDutyServiceView"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"404":{"description":"PagerDuty service not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/invitations/":{"get":{"tags":["Invitations"],"summary":"List Organization Invitations","description":"List organization invitations for the token's organization.","operationId":"list_organization_invitations_v1_invitations__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/OrganizationInvitationReadV1"},"type":"array","title":"Response List Organization Invitations V1 Invitations  Get"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["organization:read_invitation"]}]},"post":{"tags":["Invitations"],"summary":"Create Organization Invitation","description":"Create an organization invitation for the token's organization.\n\n`max_usage_count` sets how many people may join through the returned link, and defaults to 1.","operationId":"create_organization_invitation_v1_invitations__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInvitationCreateV1"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInvitationCreateResponseV1"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["organization:write_invitation"]}]}},"/v1/members/":{"get":{"tags":["Members"],"summary":"List Members","description":"List all members for the token's organization.","operationId":"list_members_v1_members__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/OrganizationMemberReadV1"},"type":"array","title":"Response List Members V1 Members  Get"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["organization:read_member"]}]}},"/v1/members/{user_id}/":{"patch":{"tags":["Members"],"summary":"Update Member","description":"Update a member's role in the token's organization.","operationId":"update_member_v1_members__user_id___patch","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_member"]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationMemberUpdateV1"}}}},"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Members"],"summary":"Delete Member","description":"Remove a member from the token's organization.","operationId":"delete_member_v1_members__user_id___delete","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_member"]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/organization/":{"get":{"tags":["Organizations"],"summary":"Get Current Organization","description":"Read the token's organization.","operationId":"get_current_organization_v1_organization__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationReadV1"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["organization:read"]}]},"put":{"tags":["Organizations"],"summary":"Update Current Organization","description":"Update the token's organization.","operationId":"update_current_organization_v1_organization__put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationReadV1"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["organization:write"]}]},"delete":{"tags":["Organizations"],"summary":"Delete Current Organization","description":"Delete the token's organization.","operationId":"delete_current_organization_v1_organization__delete","responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["organization:write"]}]}},"/v1/organizations/":{"get":{"tags":["Organizations"],"summary":"List Organizations","description":"List all organizations (self-hosted admin only).\n\nThis endpoint is deprecated and has moved to `/api/v1/instance/organizations/`.","operationId":"list_organizations_v1_organizations__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/OrganizationReadV1"},"type":"array","title":"Response List Organizations V1 Organizations  Get"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}}},"deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":["organization:admin"]}]},"post":{"tags":["Organizations"],"summary":"Create Organization","description":"Create an organization owned by the token's user (on-prem only).\n\nThis endpoint is deprecated and has moved to `/api/v1/instance/organizations/`.","operationId":"create_organization_v1_organizations__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationReadV1"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":["organization:admin"]}]}},"/v1/organizations/{organization_id}/":{"get":{"tags":["Organizations"],"summary":"Get Organization","description":"Read an organization by id (self-hosted admin only).\n\nThis endpoint is deprecated. Use `/api/v1/organization/` with an org-context token instead.","operationId":"get_organization_v1_organizations__organization_id___get","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":["organization:admin"]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Organization Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationReadV1"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Organizations"],"summary":"Update Organization","description":"Update an organization (self-hosted admin only).\n\nThis endpoint is deprecated. Use `/api/v1/organization/` with an org-context token instead.","operationId":"update_organization_v1_organizations__organization_id___put","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":["organization:admin"]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Organization Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationReadV1"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Organizations"],"summary":"Delete Organization","description":"Delete an organization (self-hosted admin only).\n\nThis endpoint is deprecated. Use `/api/v1/organization/` with an org-context token instead.","operationId":"delete_organization_v1_organizations__organization_id___delete","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":["organization:admin"]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Organization Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/organizations/{organization_id}/invitations/":{"post":{"tags":["Organizations"],"summary":"Create Self Hosted Organization Invitation","description":"Create an organization invitation and return its join URL (self-hosted admin only).\n\n`max_usage_count` sets how many people may join through the returned link, and defaults to 1.\n\nThis endpoint is deprecated. Use `/api/v1/invitations/` with an org-context token instead.","operationId":"create_self_hosted_organization_invitation_v1_organizations__organization_id__invitations__post","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":["organization:admin"]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Organization Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInvitationCreateV1"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInvitationCreateResponseV1"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/":{"get":{"tags":["Projects","Projects"],"summary":"List Projects","operationId":"list_projects_v1_projects__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProjectListRead"},"type":"array","title":"Response List Projects V1 Projects  Get"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["project:read"]}]},"post":{"tags":["Projects","Projects"],"summary":"Create Project","operationId":"create_project_v1_projects__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["organization:create_project"]}]}},"/v1/projects/{project_id}/":{"get":{"tags":["Projects","Projects"],"summary":"Get Project Info","operationId":"get_project_info_v1_projects__project_id___get","security":[{"OAuth2AuthorizationCodeBearer":["project:read"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectListRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Projects","Projects"],"summary":"Update Project","operationId":"update_project_v1_projects__project_id___put","security":[{"OAuth2AuthorizationCodeBearer":["project:write"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Projects","Projects"],"summary":"Delete Project","operationId":"delete_project_v1_projects__project_id___delete","security":[{"OAuth2AuthorizationCodeBearer":["project:write"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/dashboards/":{"get":{"tags":["Projects","Dashboards"],"summary":"List Dashboards","operationId":"list_dashboards_v1_projects__project_id__dashboards__get","security":[{"OAuth2AuthorizationCodeBearer":["project:read_dashboard"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DashboardSummary"},"title":"Response List Dashboards V1 Projects  Project Id  Dashboards  Get"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Projects","Dashboards"],"summary":"Create Dashboard","operationId":"create_dashboard_v1_projects__project_id__dashboards__post","security":[{"OAuth2AuthorizationCodeBearer":["project:write_dashboard"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dashboard"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"409":{"description":"Dashboard with this slug already exists"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/dashboards/{dashboard_id}/":{"get":{"tags":["Projects","Dashboards"],"summary":"Get Dashboard","operationId":"get_dashboard_v1_projects__project_id__dashboards__dashboard_id___get","security":[{"OAuth2AuthorizationCodeBearer":["project:read_dashboard"]}],"parameters":[{"name":"dashboard_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dashboard Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDashboardResponse"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Projects","Dashboards"],"summary":"Update Dashboard","operationId":"update_dashboard_v1_projects__project_id__dashboards__dashboard_id___put","security":[{"OAuth2AuthorizationCodeBearer":["project:write_dashboard"]}],"parameters":[{"name":"dashboard_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dashboard Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dashboard"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"409":{"description":"Dashboard version conflict"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Projects","Dashboards"],"summary":"Delete Dashboard","operationId":"delete_dashboard_v1_projects__project_id__dashboards__dashboard_id___delete","security":[{"OAuth2AuthorizationCodeBearer":["project:write_dashboard"]}],"parameters":[{"name":"dashboard_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dashboard Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/alerts/":{"get":{"tags":["Projects","Alerts"],"summary":"List Alerts","description":"List all alerts for a project.","operationId":"list_alerts_v1_projects__project_id__alerts__get","security":[{"OAuth2AuthorizationCodeBearer":["project:read_alert"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlertWithLastRun"},"title":"Response List Alerts V1 Projects  Project Id  Alerts  Get"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Projects","Alerts"],"summary":"Create Alert","description":"Create a new alert.","operationId":"create_alert_v1_projects__project_id__alerts__post","security":[{"OAuth2AuthorizationCodeBearer":["project:write_alert"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertSaveResult"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/alerts/{alert_id}/":{"get":{"tags":["Projects","Alerts"],"summary":"Get Alert","description":"Get an alert.","operationId":"get_alert_v1_projects__project_id__alerts__alert_id___get","security":[{"OAuth2AuthorizationCodeBearer":["project:read_alert"]}],"parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Alert Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertWithLastRun"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Projects","Alerts"],"summary":"Update Alert","description":"Update an alert.","operationId":"update_alert_v1_projects__project_id__alerts__alert_id___put","security":[{"OAuth2AuthorizationCodeBearer":["project:write_alert"]}],"parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Alert Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertSaveResult"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Projects","Alerts"],"summary":"Delete Alert","description":"Delete an alert.","operationId":"delete_alert_v1_projects__project_id__alerts__alert_id___delete","security":[{"OAuth2AuthorizationCodeBearer":["project:write_alert"]}],"parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Alert Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/write-tokens/":{"post":{"tags":["Projects","Projects"],"summary":"Create Write Token","description":"Creates a write token for a project.\n\nThe write token allows you to add data to your project.","operationId":"create_write_token_v1_projects__project_id__write_tokens__post","security":[{"OAuth2AuthorizationCodeBearer":["project:write_token"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWriteTokenInput","default":{}}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWriteTokenOutput"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Projects","Projects"],"summary":"List Write Tokens","description":"List write tokens for a project.","operationId":"list_write_tokens_v1_projects__project_id__write_tokens__get","security":[{"OAuth2AuthorizationCodeBearer":["project:write_token"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WriteTokenRead"},"title":"Response List Write Tokens V1 Projects  Project Id  Write Tokens  Get"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/write-tokens/{token_id}/rotate/":{"post":{"tags":["Projects","Projects"],"summary":"Rotate Write Token","description":"Rotate a write token: expire the existing token and create a new one atomically.\n\nBy default the old token stops working immediately. Pass `grace_period_hours` to keep it working\nwhile the replacement is deployed, which is what a credential baked into a running deployment\nneeds, since that deployment has to be rolled out before the old token can stop. During that\nwindow both tokens work, and `previous_token_expires_at` says when that stops being true.\n\nA grace period only ever shortens the outgoing token's life. If it was already going to expire\nbefore the window ran out, that earlier expiry stands: this route retires a credential, so it\nnever hands one more time than it was granted.\n\nThe replacement is minted inside the rotation rather than here, because what it has to look like\n(whether it is public, its scopes) is a property of the token being rotated and is not known\nuntil that row has been read.\n\nA token belonging to a frontend application is refused, as it already is by the expire and revoke\nroutes beside this one. Those credentials live in a shipped browser bundle, and replacing one is\ntwo steps taken on the customer's own timing: add a second token, redeploy, then revoke the\nfirst. A grace period would instead retire a published credential on a clock this API sets.","operationId":"rotate_write_token_v1_projects__project_id__write_tokens__token_id__rotate__post","security":[{"OAuth2AuthorizationCodeBearer":["project:write_token"]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Token Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateWriteTokenInput","default":{}}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateWriteTokenOutput"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"400":{"description":"Cannot rotate a token belonging to a frontend application"},"404":{"description":"Project token not found"},"422":{"description":"The requested grace period is not positive, or is longer than 7 days"}}}},"/v1/projects/{project_id}/write-tokens/{token_id}/expire/":{"patch":{"tags":["Projects","Projects"],"summary":"Expire Write Token","description":"Force-expire a write token immediately by setting its expiry to now.\n\nRefused for a token belonging to a frontend application. This route mints nothing to replace the\ntoken, and an application's token can only be attached by creating the application, so expiring\none leaves the application alive, configured, and unable to receive data until somebody rotates\nit. Rotate it instead, with `grace_period_hours` if the bundle carrying it has to be rebuilt\nfirst, or delete the application to retire the credential.","operationId":"expire_write_token_v1_projects__project_id__write_tokens__token_id__expire__patch","security":[{"OAuth2AuthorizationCodeBearer":["project:write_token"]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Token Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"400":{"description":"Cannot expire a token belonging to a frontend application"},"404":{"description":"Project token not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/write-tokens/{token_id}/":{"delete":{"tags":["Projects","Projects"],"summary":"Revoke Write Token","description":"Revoke a write token. Refused for a token belonging to a frontend application.\n\nThat application would be left alive and unable to receive data, and nothing else can attach a\ntoken to an existing application. Rotate the token instead, or delete the application.","operationId":"revoke_write_token_v1_projects__project_id__write_tokens__token_id___delete","security":[{"OAuth2AuthorizationCodeBearer":["project:write_token"]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Token Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"400":{"description":"Cannot delete a token belonging to a frontend application"},"404":{"description":"Project token not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/read-tokens/":{"post":{"tags":["Projects","Projects"],"summary":"Create Read Token","operationId":"create_read_token_v1_projects__project_id__read_tokens__post","security":[{"OAuth2AuthorizationCodeBearer":["project:read_token"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReadTokenInput","default":{}}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadTokenPublicAPIRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Projects","Projects"],"summary":"List Read Tokens","operationId":"list_read_tokens_v1_projects__project_id__read_tokens__get","security":[{"OAuth2AuthorizationCodeBearer":["project:read_token"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ReadTokenRead"},"title":"Response List Read Tokens V1 Projects  Project Id  Read Tokens  Get"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/read-tokens/{token_id}/rotate/":{"post":{"tags":["Projects","Projects"],"summary":"Rotate Read Token","description":"Rotate a read token: expire the existing token and create a new one.\n\nThe old token is immediately expired (expires_at set to now) and a new token is created\nin a single atomic operation. Returns the newly created token.","operationId":"rotate_read_token_v1_projects__project_id__read_tokens__token_id__rotate__post","security":[{"OAuth2AuthorizationCodeBearer":["project:read_token"]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Token Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadTokenPublicAPIRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"404":{"description":"Project read token not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/read-tokens/{token_id}/expire/":{"patch":{"tags":["Projects","Projects"],"summary":"Expire Read Token","description":"Force-expire a read token immediately by setting its expiry to now.","operationId":"expire_read_token_v1_projects__project_id__read_tokens__token_id__expire__patch","security":[{"OAuth2AuthorizationCodeBearer":["project:read_token"]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Token Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"404":{"description":"Project read token not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/read-tokens/{token_id}/":{"delete":{"tags":["Projects","Projects"],"summary":"Revoke Read Token","operationId":"revoke_read_token_v1_projects__project_id__read_tokens__token_id___delete","security":[{"OAuth2AuthorizationCodeBearer":["project:read_token"]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Token Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"404":{"description":"Project token not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/variables/":{"get":{"tags":["Projects","Variables"],"summary":"Get Variables Config","description":"Get the full variables configuration for a project.\n\nReturns the complete configuration in a format compatible with the\nlogfire SDK's VariablesConfig, suitable for use with remote variable providers.\n\nRequires: User token with project:read_variables scope.","operationId":"get_variables_config_v1_projects__project_id__variables__get","security":[{"OAuth2AuthorizationCodeBearer":["project:read_variables"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariablesConfig"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Projects","Variables"],"summary":"Create Variable","description":"Create a new variable definition, optionally with labels and versions.\n\nRequires: User token with project:write_variables scope.","operationId":"create_variable_v1_projects__project_id__variables__post","security":[{"OAuth2AuthorizationCodeBearer":["project:write_variables"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariableDefinitionCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariableDefinitionRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/variables/{name}/":{"get":{"tags":["Projects","Variables"],"summary":"Get Variable By Name","description":"Get a variable definition by name with current labels and latest version.\n\nRequires: User token with project:read_variables scope.","operationId":"get_variable_by_name_v1_projects__project_id__variables__name___get","security":[{"OAuth2AuthorizationCodeBearer":["project:read_variables"]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariableConfig"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Projects","Variables"],"summary":"Update Variable","description":"Update an existing variable definition, optionally with labels and versions.\n\nFields present and set to None will be cleared.\nFields not present will not be changed.\n\nRequires: User token with project:write_variables scope.","operationId":"update_variable_v1_projects__project_id__variables__name___put","security":[{"OAuth2AuthorizationCodeBearer":["project:write_variables"]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariableDefinitionUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariableDefinitionRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/setup-progress/{setup_attempt_id}/project-ready/":{"post":{"tags":["Projects","Projects"],"summary":"Report Cli Project Ready","description":"Report that the CLI prepared this project. This client report does not verify data ingestion.\n\nRequires a user OAuth session and the caller's current browser-created setup attempt.\nDuplicate reports preserve the first timestamp and version. Attempts expire after 24 hours.","operationId":"report_cli_project_ready_v1_projects__project_id__setup_progress__setup_attempt_id__project_ready__post","security":[{"OAuth2AuthorizationCodeBearer":["project:write_token"]}],"parameters":[{"name":"setup_attempt_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Setup Attempt Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CliProjectReadyReport"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CliSetupProgress"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/notification-windows/":{"post":{"tags":["Notification windows"],"summary":"Create Schedule","description":"Create a notification window. Days are ISO weekdays, 1 (Monday) to 7 (Sunday).","operationId":"create_schedule_v1_notification_windows__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreateRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["organization:write_channel"]}]}},"/v1/notification-windows/{schedule_id}/":{"get":{"tags":["Notification windows"],"summary":"Get Schedule","description":"Get a notification window.","operationId":"get_schedule_v1_notification_windows__schedule_id___get","security":[{"OAuth2AuthorizationCodeBearer":["organization:read_channel"]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"404":{"description":"Notification window not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Notification windows"],"summary":"Update Schedule","description":"Update a notification window. Omitted fields are left unchanged.","operationId":"update_schedule_v1_notification_windows__schedule_id___put","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_channel"]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"404":{"description":"Notification window not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Notification windows"],"summary":"Delete Schedule","description":"Delete a notification window. Channel assignments that used it then notify at all times.","operationId":"delete_schedule_v1_notification_windows__schedule_id___delete","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_channel"]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"404":{"description":"Notification window not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/schedules/":{"post":{"tags":["Notification windows"],"summary":"Create Schedule Deprecated Schedules Path","description":"Deprecated. Use `/notification-windows/` instead.\n\nCreate a notification window. Days are ISO weekdays, 1 (Monday) to 7 (Sunday).","operationId":"create_schedule_deprecated_schedules_path_v1_schedules__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreateRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":["organization:write_channel"]}]}},"/v1/schedules/{schedule_id}/":{"get":{"tags":["Notification windows"],"summary":"Get Schedule Deprecated Schedules Path","description":"Deprecated. Use `/notification-windows/{schedule_id}/` instead.\n\nGet a notification window.","operationId":"get_schedule_deprecated_schedules_path_v1_schedules__schedule_id___get","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":["organization:read_channel"]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"404":{"description":"Notification window not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Notification windows"],"summary":"Update Schedule Deprecated Schedules Path","description":"Deprecated. Use `/notification-windows/{schedule_id}/` instead.\n\nUpdate a notification window. Omitted fields are left unchanged.","operationId":"update_schedule_deprecated_schedules_path_v1_schedules__schedule_id___put","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":["organization:write_channel"]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRead"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"404":{"description":"Notification window not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Notification windows"],"summary":"Delete Schedule Deprecated Schedules Path","description":"Deprecated. Use `/notification-windows/{schedule_id}/` instead.\n\nDelete a notification window. Channel assignments that used it then notify at all times.","operationId":"delete_schedule_deprecated_schedules_path_v1_schedules__schedule_id___delete","deprecated":true,"security":[{"OAuth2AuthorizationCodeBearer":["organization:write_channel"]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"404":{"description":"Notification window not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage/daily/":{"get":{"tags":["Usage"],"summary":"Get Organization Daily Usage","description":"Get organization-level daily usage (up to 3 months).\n\nReturns daily usage aggregated across all projects, read from `token_usage_rollup`.","operationId":"get_organization_daily_usage_v1_usage_daily__get","security":[{"OAuth2AuthorizationCodeBearer":["organization:payment"]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageResponseV1"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage/monthly/":{"get":{"tags":["Usage"],"summary":"Get Organization Monthly Usage","description":"Get organization-level monthly usage since account opening.\n\nReturns monthly usage aggregated across all projects, read from `token_usage_monthly`.","operationId":"get_organization_monthly_usage_v1_usage_monthly__get","security":[{"OAuth2AuthorizationCodeBearer":["organization:payment"]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageResponseV1"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage/projects/daily/":{"get":{"tags":["Usage"],"summary":"Get All Projects Daily Usage","description":"Get daily usage for all projects in the organization (up to 90 days).\n\nReturns daily usage broken down by project. Each row is one `(date, project)` pair.\nRead from `token_usage_rollup`. Supports pagination via `limit` and `offset`.","operationId":"get_all_projects_daily_usage_v1_usage_projects_daily__get","security":[{"OAuth2AuthorizationCodeBearer":["organization:payment"]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedProjectsUsageResponseV1"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage/projects/monthly/":{"get":{"tags":["Usage"],"summary":"Get All Projects Monthly Usage","description":"Get monthly usage for all projects in the organization.\n\nReturns monthly usage broken down by project. Each row is one `(month, project)` pair.\nRead from `token_usage_monthly`.","operationId":"get_all_projects_monthly_usage_v1_usage_projects_monthly__get","security":[{"OAuth2AuthorizationCodeBearer":["organization:payment"]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectsUsageResponseV1"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage/projects/{project_id}/daily/":{"get":{"tags":["Usage"],"summary":"Get Project Daily Usage","description":"Get daily usage for a single project (up to 3 months).\n\nReturns daily usage for the specified project, read from `token_usage_rollup`.","operationId":"get_project_daily_usage_v1_usage_projects__project_id__daily__get","security":[{"OAuth2AuthorizationCodeBearer":["organization:payment"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageResponseV1"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage/projects/{project_id}/monthly/":{"get":{"tags":["Usage"],"summary":"Get Project Monthly Usage","description":"Get monthly usage for a single project since account opening.\n\nReturns monthly usage for the specified project, read from `token_usage_monthly`.","operationId":"get_project_monthly_usage_v1_usage_projects__project_id__monthly__get","security":[{"OAuth2AuthorizationCodeBearer":["organization:payment"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageResponseV1"}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPExceptionError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scim/Users":{"get":{"tags":["SCIM"],"summary":"Get Users On Prem","operationId":"get_users_on_prem_scim_Users_get","security":[{"OAuth2AuthorizationCodeBearer":["instance:scim"]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scim/Users/{user_email}":{"get":{"tags":["SCIM"],"summary":"Get User On Prem","operationId":"get_user_on_prem_scim_Users__user_email__get","security":[{"OAuth2AuthorizationCodeBearer":["instance:scim"]}],"parameters":[{"name":"user_email","in":"path","required":true,"schema":{"type":"string","title":"User Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResourceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scim/Groups":{"get":{"tags":["SCIM"],"summary":"Get Groups On Prem","operationId":"get_groups_on_prem_scim_Groups_get","security":[{"OAuth2AuthorizationCodeBearer":["instance:scim"]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scim/Groups/{group_id}":{"get":{"tags":["SCIM"],"summary":"Get Group On Prem","operationId":"get_group_on_prem_scim_Groups__group_id__get","security":[{"OAuth2AuthorizationCodeBearer":["instance:scim"]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupResourceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["SCIM"],"summary":"Update Group On Prem","operationId":"update_group_on_prem_scim_Groups__group_id__patch","security":[{"OAuth2AuthorizationCodeBearer":["instance:scim"]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupUpdate"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scim/{provider_name}/Users":{"get":{"tags":["SCIM"],"summary":"Get Users Cloud","operationId":"get_users_cloud_scim__provider_name__Users_get","security":[{"OAuth2AuthorizationCodeBearer":["organization:scim"]}],"parameters":[{"name":"provider_name","in":"path","required":true,"schema":{"type":"string","title":"Provider Name"}},{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scim/{provider_name}/Users/{user_email}":{"get":{"tags":["SCIM"],"summary":"Get User Cloud","operationId":"get_user_cloud_scim__provider_name__Users__user_email__get","security":[{"OAuth2AuthorizationCodeBearer":["organization:scim"]}],"parameters":[{"name":"user_email","in":"path","required":true,"schema":{"type":"string","title":"User Email"}},{"name":"provider_name","in":"path","required":true,"schema":{"type":"string","title":"Provider Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResourceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scim/{provider_name}/Groups":{"get":{"tags":["SCIM"],"summary":"Get Groups Cloud","operationId":"get_groups_cloud_scim__provider_name__Groups_get","security":[{"OAuth2AuthorizationCodeBearer":["organization:scim"]}],"parameters":[{"name":"provider_name","in":"path","required":true,"schema":{"type":"string","title":"Provider Name"}},{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scim/{provider_name}/Groups/{group_id}":{"get":{"tags":["SCIM"],"summary":"Get Group Cloud","operationId":"get_group_cloud_scim__provider_name__Groups__group_id__get","security":[{"OAuth2AuthorizationCodeBearer":["organization:scim"]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"provider_name","in":"path","required":true,"schema":{"type":"string","title":"Provider Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupResourceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["SCIM"],"summary":"Update Group Cloud","operationId":"update_group_cloud_scim__provider_name__Groups__group_id__patch","security":[{"OAuth2AuthorizationCodeBearer":["organization:scim"]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"provider_name","in":"path","required":true,"schema":{"type":"string","title":"Provider Name"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupUpdate"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/par":{"post":{"tags":["OAuth"],"summary":"Pushed Authorization Request (RFC 9126)","description":"Validate and store a short-lived RFC 9126 pushed authorization request.","operationId":"oauth_pushed_authorization_request_oauth_par_post","responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PARResponse"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Content Too Large"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Service Unavailable"}},"parameters":[{"name":"authorization","in":"header","required":false,"description":"HTTP Basic client authentication, as accepted by the token endpoint.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["client_id","redirect_uri","response_type","code_challenge","code_challenge_method"],"properties":{"client_id":{"type":"string"},"client_secret":{"type":"string","writeOnly":true},"redirect_uri":{"type":"string","format":"uri"},"response_type":{"type":"string","enum":["code"]},"scope":{"type":"string"},"state":{"type":"string"},"code_challenge":{"type":"string","minLength":43,"maxLength":43,"pattern":"^[A-Za-z0-9_-]{43}$"},"code_challenge_method":{"type":"string","enum":["S256"]},"resource":{"type":"string","format":"uri"}},"additionalProperties":true}}}}}},"/oauth/authorize":{"get":{"tags":["OAuth"],"summary":"Oauth Authorize Get","description":"OAuth 2.0 authorization endpoint (GET).\n\nThis endpoint validates the request and redirects to the consent page where the user\ncan select a project and authorize the client.\n\nImplements RFC 6749 Section 4.1.1 (Authorization Request) and 4.1.2.1 (Error Response).\n\n**SECURITY POLICY:** PKCE (RFC 7636) with S256 is REQUIRED for all clients.\nClients must provide code_challenge and code_challenge_method=S256 parameters.\n\nRFC 8707: The `resource` parameter identifies the target resource server\nfor which the token will be issued.\n\nNote: While RFC 6749 lists redirect_uri as OPTIONAL, Section 3.1.2 states it MUST be\nincluded if multiple redirect URIs are registered. This implementation requires it.","operationId":"oauth_authorize_get_oauth_authorize_get","parameters":[{"name":"response_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Type"}},{"name":"client_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"}},{"name":"redirect_uri","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Uri"}},{"name":"scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"code_challenge","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Challenge"}},{"name":"code_challenge_method","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Challenge Method"}},{"name":"resource","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource"}},{"name":"request_uri","in":"query","required":false,"schema":{"anyOf":[{"type":"string","writeOnly":true,"format":"password"},{"type":"null"}],"title":"Request Uri"}},{"name":"logfire_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string","writeOnly":true,"format":"password"},{"type":"null"}],"title":"Logfire Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["OAuth"],"summary":"Oauth Authorize Post","description":"OAuth 2.0 authorization endpoint (POST).\n\nThis endpoint receives the user's consent (with selected organization and project)\nand generates an authorization code.\n\nRFC 8707: The `resource` parameter identifies the target resource server.\n\nWhen called with Accept: application/json, returns the redirect URL as JSON\ninstead of a 303 redirect. This avoids CSP form-action restrictions that block\ncross-origin redirects in the OAuth flow's redirect chain.","operationId":"oauth_authorize_post_oauth_authorize_post","parameters":[{"name":"logfire_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string","writeOnly":true,"format":"password"},{"type":"null"}],"title":"Logfire Token"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_oauth_authorize_post_oauth_authorize_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/grantable-scopes":{"get":{"tags":["OAuth"],"summary":"Oauth Grantable Scopes","description":"Return the subset of `scopes` the authenticated user can actually grant.\n\nUsed by the consent UI to show which scopes the current user can grant for the\ncurrently-selected org/project, so the user isn't asked to approve scopes that\nwould be silently filtered server-side during the POST /authorize step.\n\nScopes not recognized by the platform (e.g. OIDC scopes like `openid`) are\npassed through; only platform resource scopes are filtered by permissions.","operationId":"oauth_grantable_scopes_oauth_grantable_scopes_get","parameters":[{"name":"organization_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Organization Id"}},{"name":"scopes","in":"query","required":true,"schema":{"type":"string","description":"Space-separated list of scopes to check","title":"Scopes"},"description":"Space-separated list of scopes to check"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Project Id"}},{"name":"logfire_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string","writeOnly":true,"format":"password"},{"type":"null"}],"title":"Logfire Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantableScopesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/token":{"post":{"tags":["OAuth"],"summary":"Oauth Token","description":"OAuth 2.0 token endpoint.\n\nSupports `authorization_code`, `refresh_token`,\n`urn:ietf:params:oauth:grant-type:device_code` (RFC 8628), and\n`urn:ietf:params:oauth:grant-type:token-exchange` (RFC 8693) grant types.\n\n**SECURITY POLICY:** PKCE (RFC 7636) with S256 is REQUIRED for authorization_code grant.\nClients must provide code_verifier parameter when exchanging authorization codes.\n\nRFC 8707: The `resource` parameter identifies the target resource server for which\nthe token is being requested.\n\nPer RFC 6749 Section 2.3.1, clients can authenticate via:\n- HTTP Basic authentication (Authorization header)\n- Request body parameters (client_id and client_secret)\n\nClients MUST NOT use both authentication methods simultaneously.\n\nPer RFC 6749 Section 4.1.3, client_id is REQUIRED only if the client is not\nauthenticating with the authorization server (e.g., via Authorization header).\n\nThis deployment permits token exchange without separate client authentication\nbecause native/DCR callers are public clients and the signed `subject_token` is\nthe credential. Exchanges are restricted to same-origin, downscoped resource\ntokens. RFC 8693 leaves client authentication to deployment policy.","operationId":"oauth_token_oauth_token_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"user-agent","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User-Agent"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_oauth_token_oauth_token_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TokenResponse"},{"$ref":"#/components/schemas/TokenExchangeResponse"}],"title":"Response Oauth Token Oauth Token Post"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/device/code":{"post":{"tags":["OAuth"],"summary":"Device Authorization Request","description":"RFC 8628 Section 3.1 - Device Authorization Request.\n\nThe client requests a device code from the authorization server.\nThe user will then visit the verification_uri and enter the user_code\nto authorize the device.\n\nReturns device_code, user_code, verification_uri, and polling interval.","operationId":"device_authorization_oauth_device_code_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_device_authorization_oauth_device_code_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceAuthorizationResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/register":{"post":{"tags":["OAuth"],"summary":"Dynamic Client Registration (RFC 7591)","description":"RFC 7591: Dynamic Client Registration.\n\nAllows MCP clients and other OAuth clients to register themselves\nwithout prior manual setup.  Creates a **public** OAuth client\n(`token_endpoint_auth_method: \"none\"`) with no organization binding.\nThe organization is determined later when the user authorizes.\n\nThis endpoint is unauthenticated per the MCP/OAuth specification.\n\nSecurity considerations (RFC 7591 Section 5):\n- DCR clients are **public** (no secret); security relies on PKCE (S256),\n  redirect_uri validation, and the user's explicit consent on the authorization page.\n- Requested scopes are limited to the user-delegable OAuth catalog, then narrowed by\n  resource metadata, the user's permissions, and explicit consent.\n- Rate limiting is enforced per IP (60/min, 600/hour) to prevent resource exhaustion.\n- Client IDs use `lf_dcr_` prefix for easy identification and auditing.","operationId":"oauth_register_oauth_register_post","parameters":[{"name":"user-agent","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User-Agent"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DCRRequest","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DCRResponse"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DCRErrorResponse"}}},"description":"Bad Request"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/register/{client_id}":{"delete":{"tags":["OAuth"],"summary":"Delete Dynamic Client Registration (RFC 7592)","description":"RFC 7592: Client Configuration Endpoint (DELETE).\n\nAllows a DCR-registered client to deregister itself using the\n`registration_access_token` issued during registration.\n\nOn success, the client and all associated tokens are invalidated.","operationId":"oauth_deregister_oauth_register__client_id__delete","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/signup/intents":{"post":{"tags":["Signup"],"summary":"Create Signup Intent","description":"Prepare an expiring CLI signup handoff without reserving either name.","operationId":"create_signup_intent_signup_intents_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupIntentRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupIntentResponse"}}}},"400":{"description":"The OAuth continuation is not a Logfire PAR URL"},"413":{"description":"The signup intent body exceeds 4096 bytes"},"429":{"description":"Too many signup attempts; retry after the Retry-After interval"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"APIKeyClaims":{"properties":{"project:gateway_proxy":{"$ref":"#/components/schemas/GatewayKeySettings"}},"type":"object","title":"APIKeyClaims"},"APIKeyCreate":{"properties":{"name":{"type":"string","minLength":1,"title":"Name"},"scopes":{"items":{"$ref":"#/components/schemas/OAuthScopeId"},"type":"array","minItems":1,"title":"Scopes","examples":[["organization:read_api_key"]]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"claims":{"$ref":"#/components/schemas/ScopeClaims"},"project_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Project Id"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["name","scopes"],"title":"APIKeyCreate","description":"Request body for creating an API key via the public API.\n\n`scopes` must be a subset of the caller's own scopes. Omitting `project_id` (or\npassing `null`) mints an org-wide key; giving a `project_id` scopes the key to that\nproject. `claims` carries optional per-scope settings (today only\n`project:gateway_proxy`). Whether the new key is personal or a service key is\nderived from the caller, not chosen here."},"APIKeyCreateOutput":{"properties":{"api_key":{"$ref":"#/components/schemas/APIKeyRead"},"token":{"type":"string","title":"Token"}},"type":"object","required":["api_key","token"],"title":"APIKeyCreateOutput","description":"The created key plus its plaintext token (returned only once, at creation)."},"APIKeyRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"scopes":{"items":{"$ref":"#/components/schemas/OAuthScopeId"},"type":"array","title":"Scopes"},"project_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Project Id"},"project_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Name"},"all_projects":{"type":"boolean","title":"All Projects"},"created_by":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"},"active":{"type":"boolean","title":"Active"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"updated_by":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By"},"claims":{"$ref":"#/components/schemas/APIKeyClaims"}},"type":"object","required":["id","organization_id","name","description","scopes","project_id","project_name","all_projects","created_by","created_by_name","created_at","last_used_at","expires_at","user_id","active","updated_at","updated_by"],"title":"APIKeyRead"},"APIKeyRotateInput":{"properties":{"overlap_seconds":{"type":"integer","maximum":604800.0,"minimum":0.0,"title":"Overlap Seconds"}},"type":"object","title":"APIKeyRotateInput","description":"Optional rotation settings."},"APIKeyRotateOutput":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"token":{"type":"string","title":"Token"}},"type":"object","required":["id","token"],"title":"APIKeyRotateOutput","description":"The replacement key's id and its new plaintext token (returned only once)."},"APIKeyUpdate":{"properties":{"name":{"type":"string","minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"claims":{"$ref":"#/components/schemas/ScopeClaims"}},"type":"object","minProperties":1,"title":"APIKeyUpdate","description":"Partial update of an API key: display metadata and/or per-scope `claims`."},"AlertChannelAssignment":{"properties":{"channel_id":{"type":"string","format":"uuid","title":"Channel Id"},"schedule_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Schedule Id"}},"type":"object","required":["channel_id"],"title":"AlertChannelAssignment"},"AlertChannelAssignmentRead":{"properties":{"channel_id":{"type":"string","format":"uuid","title":"Channel Id"},"schedule_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Schedule Id"}},"type":"object","required":["channel_id","schedule_id"],"title":"AlertChannelAssignmentRead"},"AlertChannelRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"label":{"type":"string","title":"Label"},"active":{"type":"boolean","title":"Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name"},"config":{"oneOf":[{"$ref":"#/components/schemas/Webhook"},{"$ref":"#/components/schemas/Opsgenie"},{"$ref":"#/components/schemas/Pagerduty"},{"$ref":"#/components/schemas/PagerdutyIntegration"},{"$ref":"#/components/schemas/Notification"},{"$ref":"#/components/schemas/SlackIntegration"},{"$ref":"#/components/schemas/Email"},{"$ref":"#/components/schemas/WebPush"}],"title":"Config","discriminator":{"propertyName":"type","mapping":{"email":"#/components/schemas/Email","notification":"#/components/schemas/Notification","opsgenie":"#/components/schemas/Opsgenie","pagerduty":"#/components/schemas/Pagerduty","pagerduty-integration":"#/components/schemas/PagerdutyIntegration","slack-integration":"#/components/schemas/SlackIntegration","web-push":"#/components/schemas/WebPush","webhook":"#/components/schemas/Webhook"}}},"schedule_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Schedule Id"}},"type":"object","required":["id","organization_id","label","active","created_at","updated_at","created_by_name","updated_by_name","config","schedule_id"],"title":"AlertChannelRead"},"AlertCreate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"query":{"title":"Query","examples":["SELECT 1"]},"time_window":{"type":"string","format":"duration","title":"Time Window"},"frequency":{"type":"string","format":"duration","title":"Frequency"},"watermark":{"type":"string","format":"duration","title":"Watermark"},"active":{"type":"boolean","title":"Active","description":"Whether the alert starts enabled.","default":true},"channel_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Channel Ids","description":"Legacy shorthand for assigning channels without schedules."},"channel_assignments":{"anyOf":[{"items":{"$ref":"#/components/schemas/AlertChannelAssignment"},"type":"array"},{"type":"null"}],"title":"Channel Assignments","description":"Schedule-aware channel configuration. When both `channel_assignments` and `channel_ids` are provided, `channel_assignments` is used."},"notify_when":{"type":"string","enum":["has_matches","has_matches_changed","matches_changed","starts_having_matches"],"title":"Notify When"},"environments":{"items":{"type":"string"},"type":"array","title":"Environments","description":"Deployment environments to scope the query to. Empty = all environments (no filter).","default":[]}},"type":"object","required":["name","query","time_window","frequency","watermark","notify_when"],"title":"AlertCreate"},"AlertQueryCheck":{"properties":{"status":{"type":"string","enum":["ok","slow","timed_out","not_checked"],"title":"Status"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"timed_out":{"type":"boolean","title":"Timed Out"},"message":{"type":"string","title":"Message"}},"type":"object","required":["status","duration_ms","timed_out","message"],"title":"AlertQueryCheck","description":"The result of one save check of an alert query."},"AlertSaveResult":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"query":{"type":"string","title":"Query"},"time_window":{"type":"string","format":"duration","title":"Time Window"},"frequency":{"type":"string","format":"duration","title":"Frequency"},"watermark":{"type":"string","format":"duration","title":"Watermark"},"environments":{"items":{"type":"string"},"type":"array","title":"Environments"},"channels":{"items":{"$ref":"#/components/schemas/AlertChannelRead"},"type":"array","title":"Channels"},"channel_assignments":{"items":{"$ref":"#/components/schemas/AlertChannelAssignmentRead"},"type":"array","title":"Channel Assignments","description":"The channels in `channels`, in the shape that create and update accept as `channel_assignments`, sorted by `channel_id`."},"notify_when":{"type":"string","enum":["has_matches","has_matches_changed","matches_changed","starts_having_matches"],"title":"Notify When"},"active":{"type":"boolean","title":"Active"},"slo_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Slo Id"},"integration_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Id"},"slo_tier":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Slo Tier"},"slo_tier_viable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Slo Tier Viable"},"slo_bucket_tier":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Slo Bucket Tier"},"snoozed_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Snoozed Until"},"suppression":{"anyOf":[{"$ref":"#/components/schemas/AlertSuppression"},{"type":"null"}]},"query_check":{"anyOf":[{"$ref":"#/components/schemas/AlertQueryCheck"},{"type":"null"}]}},"type":"object","required":["id","organization_id","project_id","created_at","updated_at","created_by_name","updated_by_name","name","description","query","time_window","frequency","watermark","environments","channels","channel_assignments","notify_when","active","snoozed_until","suppression","query_check"],"title":"AlertSaveResult","description":"A created or updated alert, with the result of the save check of its query."},"AlertSuppression":{"properties":{"reason":{"type":"string","enum":["paused","snoozed","target_too_low"],"title":"Reason"},"until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Until"},"evaluated":{"type":"boolean","title":"Evaluated"}},"type":"object","required":["reason","until","evaluated"],"title":"AlertSuppression"},"AlertUpdate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"time_window":{"type":"string","format":"duration","title":"Time Window"},"frequency":{"type":"string","format":"duration","title":"Frequency"},"watermark":{"type":"string","format":"duration","title":"Watermark"},"active":{"type":"boolean","title":"Active"},"query":{"type":"string","title":"Query"},"channel_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Channel Ids","description":"Legacy shorthand for assigning channels without schedules."},"channel_assignments":{"items":{"$ref":"#/components/schemas/AlertChannelAssignment"},"type":"array","title":"Channel Assignments","description":"Schedule-aware channel configuration. When both `channel_assignments` and `channel_ids` are provided, `channel_assignments` is used."},"notify_when":{"type":"string","enum":["has_matches","has_matches_changed","matches_changed","starts_having_matches"],"title":"Notify When"},"environments":{"items":{"type":"string"},"type":"array","title":"Environments"}},"type":"object","title":"AlertUpdate","description":"The fields that can be updated on an alert."},"AlertWithLastRun":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"query":{"type":"string","title":"Query"},"time_window":{"type":"string","format":"duration","title":"Time Window"},"frequency":{"type":"string","format":"duration","title":"Frequency"},"watermark":{"type":"string","format":"duration","title":"Watermark"},"environments":{"items":{"type":"string"},"type":"array","title":"Environments"},"channels":{"items":{"$ref":"#/components/schemas/AlertChannelRead"},"type":"array","title":"Channels"},"channel_assignments":{"items":{"$ref":"#/components/schemas/AlertChannelAssignmentRead"},"type":"array","title":"Channel Assignments","description":"The channels in `channels`, in the shape that create and update accept as `channel_assignments`, sorted by `channel_id`."},"notify_when":{"type":"string","enum":["has_matches","has_matches_changed","matches_changed","starts_having_matches"],"title":"Notify When"},"active":{"type":"boolean","title":"Active"},"slo_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Slo Id"},"integration_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Id"},"slo_tier":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Slo Tier"},"slo_tier_viable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Slo Tier Viable"},"slo_bucket_tier":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Slo Bucket Tier"},"snoozed_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Snoozed Until"},"suppression":{"anyOf":[{"$ref":"#/components/schemas/AlertSuppression"},{"type":"null"}]},"last_run":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run"},"has_matches":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Matches"},"fired":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Fired"},"has_errors":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Errors"},"result_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Result Length"},"result":{"$ref":"#/components/schemas/JSONBData"}},"type":"object","required":["id","organization_id","project_id","created_at","updated_at","created_by_name","updated_by_name","name","description","query","time_window","frequency","watermark","environments","channels","channel_assignments","notify_when","active","snoozed_until","suppression","last_run","has_matches","fired","has_errors","result_length","result"],"title":"AlertWithLastRun"},"ApiKeyCredentials":{"properties":{"type":{"type":"string","const":"api-key","title":"Type"},"value":{"type":"string","format":"password","title":"Value","writeOnly":true}},"additionalProperties":false,"type":"object","required":["type","value"],"title":"ApiKeyCredentials"},"AuditLogDetailRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"organization_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Name"},"project_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Name"},"user_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Name"},"action":{"type":"string","enum":["INSERT","UPDATE","DELETE","VIEW","LOGIN","FAILED_LOGIN","LOGOUT","CLAIM_INVITATION","REVOKE_INVITATION","VERIFY","SSO_SIGN_IN_ATTEMPT"],"title":"Action"},"resource_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type"},"record_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Record Id"},"ip_address":{"anyOf":[{"type":"string","format":"ipv4"},{"type":"string","format":"ipv6"},{"type":"null"}],"title":"Ip Address"},"metadata":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/JSONBData"},"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["id","created_at","organization_name","project_name","user_name","action","resource_type","record_id","ip_address","metadata"],"title":"AuditLogDetailRead"},"AuditLogInfoRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"organization_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Name"},"project_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Name"},"user_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Name"},"action":{"type":"string","enum":["INSERT","UPDATE","DELETE","VIEW","LOGIN","FAILED_LOGIN","LOGOUT","CLAIM_INVITATION","REVOKE_INVITATION","VERIFY","SSO_SIGN_IN_ATTEMPT"],"title":"Action"},"resource_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type"},"record_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Record Id"},"ip_address":{"anyOf":[{"type":"string","format":"ipv4"},{"type":"string","format":"ipv6"},{"type":"null"}],"title":"Ip Address"}},"type":"object","required":["id","created_at","organization_name","project_name","user_name","action","resource_type","record_id","ip_address"],"title":"AuditLogInfoRead"},"BedrockApiProviderPatchConfig":{"properties":{"api":{"type":"string","enum":["runtime","mantle"],"title":"Api"},"region":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)+$","title":"Region"},"credentials":{"$ref":"#/components/schemas/ApiKeyCredentials"}},"additionalProperties":false,"type":"object","required":["api"],"title":"BedrockApiProviderPatchConfig"},"BedrockCredentialsProviderPatchConfig":{"properties":{"credentials":{"$ref":"#/components/schemas/ApiKeyCredentials"},"api":{"type":"string","enum":["runtime","mantle"],"title":"Api"},"region":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)+$","title":"Region"}},"additionalProperties":false,"type":"object","required":["credentials"],"title":"BedrockCredentialsProviderPatchConfig"},"BedrockProvider":{"properties":{"vendor":{"type":"string","const":"bedrock","title":"Vendor"},"config":{"$ref":"#/components/schemas/BedrockProviderConfig"}},"additionalProperties":false,"type":"object","required":["vendor","config"],"title":"BedrockProvider"},"BedrockProviderConfig":{"properties":{"api":{"type":"string","enum":["runtime","mantle"],"title":"Api"},"region":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)+$","title":"Region"},"credentials":{"$ref":"#/components/schemas/ApiKeyCredentials"}},"additionalProperties":false,"type":"object","required":["api","region","credentials"],"title":"BedrockProviderConfig"},"BedrockProviderPatch":{"properties":{"vendor":{"type":"string","const":"bedrock","title":"Vendor"},"config":{"anyOf":[{"$ref":"#/components/schemas/BedrockApiProviderPatchConfig"},{"$ref":"#/components/schemas/BedrockRegionProviderPatchConfig"},{"$ref":"#/components/schemas/BedrockCredentialsProviderPatchConfig"}],"title":"Config"}},"additionalProperties":false,"type":"object","required":["vendor","config"],"title":"BedrockProviderPatch"},"BedrockProviderRead":{"properties":{"vendor":{"type":"string","const":"bedrock","title":"Vendor"},"config":{"$ref":"#/components/schemas/BedrockProviderReadConfig"}},"type":"object","required":["vendor","config"],"title":"BedrockProviderRead"},"BedrockProviderReadConfig":{"properties":{"api":{"type":"string","enum":["runtime","mantle"],"title":"Api"},"region":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)+$","title":"Region"}},"type":"object","required":["api","region"],"title":"BedrockProviderReadConfig"},"BedrockRegionProviderPatchConfig":{"properties":{"region":{"type":"string","maxLength":63,"minLength":3,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)+$","title":"Region"},"api":{"type":"string","enum":["runtime","mantle"],"title":"Api"},"credentials":{"$ref":"#/components/schemas/ApiKeyCredentials"}},"additionalProperties":false,"type":"object","required":["region"],"title":"BedrockRegionProviderPatchConfig"},"BillingPeriod":{"properties":{"start":{"type":"string","format":"date","title":"Start"},"end":{"type":"string","format":"date","title":"End"},"anchor_day":{"type":"integer","title":"Anchor Day"}},"type":"object","required":["start","end","anchor_day"],"title":"BillingPeriod"},"BillingUsageResponse":{"properties":{"organization":{"type":"string","title":"Organization"},"billing_period":{"$ref":"#/components/schemas/BillingPeriod"},"plan":{"type":"string","title":"Plan"},"usage":{"$ref":"#/components/schemas/UsageSummary"},"cost":{"$ref":"#/components/schemas/CostSummary"}},"type":"object","required":["organization","billing_period","plan","usage","cost"],"title":"BillingUsageResponse"},"Body_device_authorization_oauth_device_code_post":{"properties":{"client_id":{"type":"string","title":"Client Id"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"},"code_challenge":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Challenge"},"code_challenge_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Challenge Method"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource"}},"type":"object","required":["client_id"],"title":"Body_device_authorization_oauth_device_code_post"},"Body_oauth_authorize_post_oauth_authorize_post":{"properties":{"client_id":{"type":"string","title":"Client Id"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"scope":{"type":"string","title":"Scope"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"project_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Project Id"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"code_challenge":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Challenge"},"code_challenge_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Challenge Method"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource"},"csrf_token":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Csrf Token"},"claims":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claims"}},"type":"object","required":["client_id","redirect_uri","scope","organization_id"],"title":"Body_oauth_authorize_post_oauth_authorize_post"},"Body_oauth_token_oauth_token_post":{"properties":{"grant_type":{"type":"string","title":"Grant Type"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"redirect_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Uri"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Client Secret"},"refresh_token":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Refresh Token"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"},"code_verifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Verifier"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource"},"device_code":{"anyOf":[{"type":"string","format":"password","writeOnly":true},{"type":"null"}],"title":"Device Code"},"client_assertion_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Assertion Type"},"client_assertion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Assertion"}},"type":"object","required":["grant_type"],"title":"Body_oauth_token_oauth_token_post"},"ChannelCreate":{"properties":{"label":{"type":"string","title":"Label"},"config":{"oneOf":[{"$ref":"#/components/schemas/Webhook"},{"$ref":"#/components/schemas/Opsgenie"},{"$ref":"#/components/schemas/Pagerduty"},{"$ref":"#/components/schemas/PagerdutyIntegration"},{"$ref":"#/components/schemas/Notification"},{"$ref":"#/components/schemas/SlackIntegration"},{"$ref":"#/components/schemas/Email"},{"$ref":"#/components/schemas/WebPush"}],"title":"Config","discriminator":{"propertyName":"type","mapping":{"email":"#/components/schemas/Email","notification":"#/components/schemas/Notification","opsgenie":"#/components/schemas/Opsgenie","pagerduty":"#/components/schemas/Pagerduty","pagerduty-integration":"#/components/schemas/PagerdutyIntegration","slack-integration":"#/components/schemas/SlackIntegration","web-push":"#/components/schemas/WebPush","webhook":"#/components/schemas/Webhook"}}}},"type":"object","required":["label","config"],"title":"ChannelCreate"},"ChannelRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"label":{"type":"string","title":"Label"},"active":{"type":"boolean","title":"Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name"},"config":{"oneOf":[{"$ref":"#/components/schemas/Webhook"},{"$ref":"#/components/schemas/Opsgenie"},{"$ref":"#/components/schemas/Pagerduty"},{"$ref":"#/components/schemas/PagerdutyIntegration"},{"$ref":"#/components/schemas/Notification"},{"$ref":"#/components/schemas/SlackIntegration"},{"$ref":"#/components/schemas/Email"},{"$ref":"#/components/schemas/WebPush"}],"title":"Config","discriminator":{"propertyName":"type","mapping":{"email":"#/components/schemas/Email","notification":"#/components/schemas/Notification","opsgenie":"#/components/schemas/Opsgenie","pagerduty":"#/components/schemas/Pagerduty","pagerduty-integration":"#/components/schemas/PagerdutyIntegration","slack-integration":"#/components/schemas/SlackIntegration","web-push":"#/components/schemas/WebPush","webhook":"#/components/schemas/Webhook"}}}},"type":"object","required":["id","organization_id","label","active","created_at","updated_at","created_by_name","updated_by_name","config"],"title":"ChannelRead"},"ChannelUpdate":{"properties":{"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"config":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/WebhookUpdate"},{"$ref":"#/components/schemas/Opsgenie"},{"$ref":"#/components/schemas/Pagerduty"},{"$ref":"#/components/schemas/PagerdutyIntegration"},{"$ref":"#/components/schemas/Notification"},{"$ref":"#/components/schemas/SlackIntegration"},{"$ref":"#/components/schemas/Email"},{"$ref":"#/components/schemas/WebPush"}],"discriminator":{"propertyName":"type","mapping":{"email":"#/components/schemas/Email","notification":"#/components/schemas/Notification","opsgenie":"#/components/schemas/Opsgenie","pagerduty":"#/components/schemas/Pagerduty","pagerduty-integration":"#/components/schemas/PagerdutyIntegration","slack-integration":"#/components/schemas/SlackIntegration","web-push":"#/components/schemas/WebPush","webhook":"#/components/schemas/WebhookUpdate"}}},{"type":"null"}],"title":"Config"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"ChannelUpdate"},"CliProjectReadyReport":{"properties":{"cli_version":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[0-9][0-9A-Za-z.+-]*$","title":"Cli Version"}},"additionalProperties":false,"type":"object","required":["cli_version"],"title":"CliProjectReadyReport"},"CliSetupProgress":{"properties":{"setup_attempt_id":{"type":"string","format":"uuid","title":"Setup Attempt Id"},"task":{"$ref":"#/components/schemas/CliSetupTask"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"project_ready_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Project Ready At"},"cli_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cli Version"}},"type":"object","required":["setup_attempt_id","task","started_at","project_ready_at","cli_version"],"title":"CliSetupProgress"},"CliSetupTask":{"type":"string","enum":["instrumentation","infrastructure","hosts","docker","kubernetes","gateway","evals"]},"CodeDefaultLabelData":{"properties":{"target_type":{"type":"string","const":"code_default","title":"Target Type"}},"type":"object","required":["target_type"],"title":"CodeDefaultLabelData","description":"Label data indicating to use the code default value."},"ConditionData":{"properties":{"kind":{"type":"string","title":"Kind"},"attribute":{"type":"string","title":"Attribute"},"value":{"title":"Value"},"values":{"items":{},"type":"array","title":"Values"},"pattern":{"type":"string","title":"Pattern"}},"type":"object","title":"ConditionData","description":"Condition for targeting, stored as JSONB.\n\nDifferent condition types have different fields, so all are optional.\nThe 'kind' field determines which other fields are relevant."},"CostSummary":{"properties":{"currency":{"type":"string","title":"Currency"},"price_per_million_observations":{"type":"number","title":"Price Per Million Observations"},"included_observations_value":{"type":"number","title":"Included Observations Value"},"usage_cost":{"type":"number","title":"Usage Cost"},"discount":{"type":"number","title":"Discount"},"total_cost":{"type":"number","title":"Total Cost"}},"type":"object","required":["currency","price_per_million_observations","included_observations_value","usage_cost","discount","total_cost"],"title":"CostSummary"},"CreateReadTokenInput":{"properties":{"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","title":"CreateReadTokenInput"},"CreateWriteTokenInput":{"properties":{"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","title":"CreateWriteTokenInput"},"CreateWriteTokenOutput":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"token":{"type":"string","title":"Token"}},"type":"object","required":["id","project_id","created_at","description","expires_at","token"],"title":"CreateWriteTokenOutput"},"DCRErrorResponse":{"properties":{"error":{"type":"string","enum":["invalid_client_metadata","invalid_redirect_uri","invalid_request"],"title":"Error"},"error_description":{"type":"string","title":"Error Description"}},"type":"object","required":["error","error_description"],"title":"DCRErrorResponse"},"DCRRequest":{"properties":{"client_name":{"type":"string","title":"Client Name"},"client_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uri"},"logo_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Uri"},"redirect_uris":{"items":{"type":"string"},"type":"array","title":"Redirect Uris"},"grant_types":{"items":{"type":"string"},"type":"array","title":"Grant Types"},"response_types":{"items":{"type":"string"},"type":"array","title":"Response Types"},"token_endpoint_auth_method":{"type":"string","title":"Token Endpoint Auth Method"},"scope":{"type":"string","title":"Scope"},"application_type":{"type":"string","title":"Application Type"}},"type":"object","title":"DCRRequest","description":"RFC 7591 Client Metadata for Dynamic Client Registration."},"DCRResponse":{"properties":{"client_id":{"type":"string","title":"Client Id"},"client_id_issued_at":{"type":"integer","title":"Client Id Issued At"},"client_name":{"type":"string","title":"Client Name"},"client_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uri"},"logo_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Uri"},"redirect_uris":{"items":{"type":"string"},"type":"array","title":"Redirect Uris"},"grant_types":{"items":{"type":"string"},"type":"array","title":"Grant Types"},"response_types":{"items":{"type":"string"},"type":"array","title":"Response Types"},"token_endpoint_auth_method":{"type":"string","title":"Token Endpoint Auth Method"},"scope":{"type":"string","title":"Scope"},"application_type":{"type":"string","title":"Application Type"},"registration_client_uri":{"type":"string","title":"Registration Client Uri"},"registration_access_token":{"type":"string","title":"Registration Access Token"}},"type":"object","required":["client_id","client_id_issued_at","client_name","redirect_uris","grant_types","response_types","token_endpoint_auth_method","scope","application_type","registration_client_uri","registration_access_token"],"title":"DCRResponse","description":"RFC 7591/7592 Client Information Response."},"Dashboard":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name"},"dashboard_name":{"type":"string","title":"Dashboard Name"},"dashboard_slug":{"type":"string","title":"Dashboard Slug"},"version":{"type":"integer","title":"Version"},"definition":{"$ref":"#/components/schemas/DashboardDefinitionRead"}},"type":"object","required":["id","project_id","created_at","updated_at","created_by_name","updated_by_name","dashboard_name","dashboard_slug","version","definition"],"title":"Dashboard"},"DashboardCollapse":{"properties":{"open":{"type":"boolean","title":"Open"}},"type":"object","required":["open"],"title":"DashboardCollapse"},"DashboardCreate":{"properties":{"kind":{"type":"string","const":"Dashboard","title":"Kind"},"metadata":{"$ref":"#/components/schemas/DashboardMetadataCreate"},"spec":{"$ref":"#/components/schemas/DashboardCreateSpec"}},"type":"object","required":["kind","metadata","spec"],"title":"DashboardCreate"},"DashboardCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"definition":{"$ref":"#/components/schemas/DashboardCreate"}},"type":"object","required":["name","slug","definition"],"title":"DashboardCreateRequest"},"DashboardCreateSpec":{"properties":{"display":{"anyOf":[{"$ref":"#/components/schemas/DashboardDisplay"},{"type":"null"}]},"datasources":{"additionalProperties":{"$ref":"#/components/schemas/DashboardDatasourceSpec"},"type":"object","title":"Datasources"},"variables":{"items":{"$ref":"#/components/schemas/DashboardVariable"},"type":"array","title":"Variables"},"panels":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/DashboardPanel"},"type":"object","maxProperties":1000},{"type":"null"}],"title":"Panels"},"layouts":{"items":{"$ref":"#/components/schemas/DashboardLayout"},"type":"array","title":"Layouts"},"duration":{"anyOf":[{"type":"string","pattern":"^((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0)$"},{"type":"null"}],"title":"Duration","default":"1h"},"refreshInterval":{"type":"string","pattern":"^((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0)$","title":"Refreshinterval","default":"0s"}},"type":"object","required":["display","panels","layouts"],"title":"DashboardCreateSpec"},"DashboardDatasourceSpec":{"properties":{"display":{"anyOf":[{"$ref":"#/components/schemas/DashboardDisplay"},{"type":"null"}]},"default":{"type":"boolean","title":"Default","default":false},"plugin":{"$ref":"#/components/schemas/DashboardPlugin"}},"type":"object","required":["display","plugin"],"title":"DashboardDatasourceSpec"},"DashboardDefinitionRead":{"properties":{"kind":{"type":"string","const":"Dashboard","title":"Kind"},"metadata":{"$ref":"#/components/schemas/DashboardProjectMetadataRead"},"spec":{"$ref":"#/components/schemas/DashboardSpec"}},"type":"object","required":["kind","metadata","spec"],"title":"DashboardDefinitionRead"},"DashboardDisplay":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["name"],"title":"DashboardDisplay"},"DashboardGridDisplay":{"properties":{"title":{"type":"string","title":"Title"},"collapse":{"$ref":"#/components/schemas/DashboardCollapse"}},"type":"object","title":"DashboardGridDisplay"},"DashboardGridItem":{"properties":{"x":{"type":"integer","title":"X"},"y":{"type":"integer","title":"Y"},"width":{"type":"integer","title":"Width"},"height":{"type":"integer","title":"Height"},"content":{"$ref":"#/components/schemas/PanelRef"}},"type":"object","required":["x","y","width","height","content"],"title":"DashboardGridItem"},"DashboardGridSpec":{"properties":{"display":{"$ref":"#/components/schemas/DashboardGridDisplay"},"items":{"items":{"$ref":"#/components/schemas/DashboardGridItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"DashboardGridSpec"},"DashboardLayout":{"properties":{"kind":{"type":"string","const":"Grid","title":"Kind"},"spec":{"$ref":"#/components/schemas/DashboardGridSpec"}},"type":"object","required":["kind","spec"],"title":"DashboardLayout"},"DashboardListVariable":{"properties":{"kind":{"type":"string","const":"ListVariable","title":"Kind"},"spec":{"$ref":"#/components/schemas/DashboardListVariableSpec"}},"type":"object","required":["kind","spec"],"title":"DashboardListVariable"},"DashboardListVariableSpec":{"properties":{"name":{"type":"string","title":"Name"},"display":{"$ref":"#/components/schemas/DashboardVariableDisplay"},"defaultValue":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Defaultvalue"},"allowMultiple":{"type":"boolean","title":"Allowmultiple"},"allowAllValue":{"type":"boolean","title":"Allowallvalue"},"customAllValue":{"type":"string","title":"Customallvalue"},"capturingRegexp":{"type":"string","title":"Capturingregexp"},"sort":{"type":"string","title":"Sort"},"plugin":{"$ref":"#/components/schemas/DashboardPlugin"}},"type":"object","required":["name","allowMultiple","allowAllValue","plugin"],"title":"DashboardListVariableSpec"},"DashboardMetadataCreate":{"properties":{"name":{"type":"string","title":"Name"},"project":{"type":"string","title":"Project"}},"type":"object","required":["name","project"],"title":"DashboardMetadataCreate"},"DashboardPanel":{"properties":{"kind":{"type":"string","const":"Panel","title":"Kind"},"spec":{"$ref":"#/components/schemas/DashboardPanelSpec"}},"type":"object","required":["kind","spec"],"title":"DashboardPanel"},"DashboardPanelDisplay":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"}},"type":"object","required":["name"],"title":"DashboardPanelDisplay"},"DashboardPanelLink":{"properties":{"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url"},"tooltip":{"type":"string","title":"Tooltip"},"renderVariables":{"type":"boolean","title":"Rendervariables"},"targetBlank":{"type":"boolean","title":"Targetblank"}},"type":"object","title":"DashboardPanelLink"},"DashboardPanelSpec":{"properties":{"display":{"$ref":"#/components/schemas/DashboardPanelDisplay"},"plugin":{"$ref":"#/components/schemas/DashboardPlugin"},"queries":{"items":{"$ref":"#/components/schemas/DashboardQuery"},"type":"array","title":"Queries"},"links":{"items":{"$ref":"#/components/schemas/DashboardPanelLink"},"type":"array","title":"Links"},"variables":{"items":{"$ref":"#/components/schemas/DashboardVariable"},"type":"array","title":"Variables"}},"type":"object","required":["display","plugin"],"title":"DashboardPanelSpec"},"DashboardPlugin":{"properties":{"kind":{"type":"string","minLength":1,"title":"Kind"},"spec":{"title":"Spec"}},"type":"object","required":["kind","spec"],"title":"DashboardPlugin"},"DashboardProjectMetadataRead":{"properties":{"name":{"type":"string","title":"Name"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"},"version":{"type":"integer","title":"Version"},"project":{"type":"string","title":"Project"},"layoutUpdatedAt":{"type":"string","format":"date-time","title":"Layoutupdatedat"}},"type":"object","required":["name","project"],"title":"DashboardProjectMetadataRead"},"DashboardQuery":{"properties":{"kind":{"type":"string","title":"Kind"},"spec":{"title":"Spec"}},"type":"object","required":["kind","spec"],"title":"DashboardQuery"},"DashboardSpec":{"properties":{"display":{"anyOf":[{"$ref":"#/components/schemas/DashboardDisplay"},{"type":"null"}]},"datasources":{"additionalProperties":{"$ref":"#/components/schemas/DashboardDatasourceSpec"},"type":"object","title":"Datasources"},"variables":{"items":{"$ref":"#/components/schemas/DashboardVariable"},"type":"array","title":"Variables"},"panels":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/DashboardPanel"},"type":"object"},{"type":"null"}],"title":"Panels"},"layouts":{"items":{"$ref":"#/components/schemas/DashboardLayout"},"type":"array","title":"Layouts"},"duration":{"anyOf":[{"type":"string","pattern":"^((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0)$"},{"type":"null"}],"title":"Duration","default":"1h"},"refreshInterval":{"type":"string","pattern":"^((([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?|0)$","title":"Refreshinterval","default":"0s"}},"type":"object","required":["display","variables","panels","layouts"],"title":"DashboardSpec"},"DashboardSummary":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name"},"dashboard_name":{"type":"string","title":"Dashboard Name"},"dashboard_slug":{"type":"string","title":"Dashboard Slug"},"version":{"type":"integer","title":"Version"}},"type":"object","required":["id","project_id","created_at","updated_at","created_by_name","updated_by_name","dashboard_name","dashboard_slug","version"],"title":"DashboardSummary"},"DashboardTextVariable":{"properties":{"kind":{"type":"string","const":"TextVariable","title":"Kind"},"spec":{"$ref":"#/components/schemas/DashboardTextVariableSpec"}},"type":"object","required":["kind","spec"],"title":"DashboardTextVariable"},"DashboardTextVariableSpec":{"properties":{"name":{"type":"string","title":"Name"},"display":{"$ref":"#/components/schemas/DashboardVariableDisplay"},"value":{"type":"string","title":"Value"},"constant":{"type":"boolean","title":"Constant"}},"type":"object","required":["name","value"],"title":"DashboardTextVariableSpec"},"DashboardUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"definition":{"anyOf":[{"$ref":"#/components/schemas/DashboardCreate"},{"type":"null"}]},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"}},"type":"object","title":"DashboardUpdateRequest"},"DashboardVariable":{"oneOf":[{"$ref":"#/components/schemas/DashboardTextVariable"},{"$ref":"#/components/schemas/DashboardListVariable"}],"discriminator":{"propertyName":"kind","mapping":{"ListVariable":"#/components/schemas/DashboardListVariable","TextVariable":"#/components/schemas/DashboardTextVariable"}}},"DashboardVariableDisplay":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"hidden":{"type":"boolean","title":"Hidden"}},"type":"object","title":"DashboardVariableDisplay"},"DeviceAuthorizationResponse":{"properties":{"device_code":{"type":"string","title":"Device Code"},"user_code":{"type":"string","title":"User Code"},"verification_uri":{"type":"string","title":"Verification Uri"},"verification_uri_complete":{"type":"string","title":"Verification Uri Complete"},"expires_in":{"type":"integer","title":"Expires In"},"interval":{"type":"integer","title":"Interval"}},"type":"object","required":["device_code","user_code","verification_uri","verification_uri_complete","expires_in","interval"],"title":"DeviceAuthorizationResponse","description":"RFC 8628 Section 3.2 - Device Authorization Response."},"Email":{"properties":{"type":{"type":"string","const":"email","title":"Type"},"recipients":{"items":{"type":"string"},"type":"array","maxItems":50,"minItems":1,"title":"Recipients"}},"type":"object","required":["type","recipients"],"title":"Email"},"ErrorResponse":{"properties":{"error":{"type":"string","enum":["invalid_request","unauthorized_client","access_denied","unsupported_response_type","invalid_scope","server_error","temporarily_unavailable","invalid_client","invalid_grant","unsupported_grant_type","invalid_target","authorization_pending","slow_down","expired_token","unsupported_token_type"],"title":"Error"},"error_description":{"type":"string","title":"Error Description"}},"type":"object","required":["error","error_description"],"title":"ErrorResponse"},"FixedApiKeyProvider":{"properties":{"vendor":{"type":"string","enum":["openai","anthropic","doubleword","google-gla","groq","huggingface","mistral"],"title":"Vendor"},"config":{"$ref":"#/components/schemas/FixedApiKeyProviderConfig"}},"additionalProperties":false,"type":"object","required":["vendor","config"],"title":"FixedApiKeyProvider"},"FixedApiKeyProviderConfig":{"properties":{"credentials":{"$ref":"#/components/schemas/ApiKeyCredentials"}},"additionalProperties":false,"type":"object","required":["credentials"],"title":"FixedApiKeyProviderConfig"},"FixedApiKeyProviderPatch":{"properties":{"vendor":{"type":"string","enum":["openai","anthropic","doubleword","google-gla","groq","huggingface","mistral"],"title":"Vendor"},"config":{"$ref":"#/components/schemas/FixedApiKeyProviderPatchConfig"}},"additionalProperties":false,"type":"object","required":["vendor","config"],"title":"FixedApiKeyProviderPatch"},"FixedApiKeyProviderPatchConfig":{"properties":{"credentials":{"$ref":"#/components/schemas/ApiKeyCredentials"}},"additionalProperties":false,"type":"object","required":["credentials"],"title":"FixedApiKeyProviderPatchConfig"},"FixedApiKeyProviderRead":{"properties":{"vendor":{"type":"string","enum":["openai","anthropic","doubleword","google-gla","groq","huggingface","mistral"],"title":"Vendor"}},"type":"object","required":["vendor"],"title":"FixedApiKeyProviderRead"},"GatewayKeySettings":{"properties":{"spending_limit_daily":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Spending Limit Daily"},"spending_limit_weekly":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Spending Limit Weekly"},"spending_limit_monthly":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Spending Limit Monthly"},"spending_limit_total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Spending Limit Total"},"cache_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cache Enabled"}},"type":"object","title":"GatewayKeySettings","description":"AI Gateway spend caps and response caching for a `project:gateway_proxy` key.\n\nAll fields are optional: an omitted or `null` spending limit means no limit\nfor that window, and `cache_enabled=null` inherits the project default."},"GatewayProviderConfigurationUpdate":{"properties":{"provider":{"oneOf":[{"$ref":"#/components/schemas/FixedApiKeyProviderPatch"},{"$ref":"#/components/schemas/BedrockProviderPatch"}],"title":"Provider","discriminator":{"propertyName":"vendor","mapping":{"anthropic":"#/components/schemas/FixedApiKeyProviderPatch","bedrock":"#/components/schemas/BedrockProviderPatch","doubleword":"#/components/schemas/FixedApiKeyProviderPatch","google-gla":"#/components/schemas/FixedApiKeyProviderPatch","groq":"#/components/schemas/FixedApiKeyProviderPatch","huggingface":"#/components/schemas/FixedApiKeyProviderPatch","mistral":"#/components/schemas/FixedApiKeyProviderPatch","openai":"#/components/schemas/FixedApiKeyProviderPatch"}}},"pricing":{"$ref":"#/components/schemas/GatewayProviderPricing-Input"}},"additionalProperties":false,"type":"object","required":["provider"],"title":"GatewayProviderConfigurationUpdate"},"GatewayProviderCreate":{"properties":{"slug":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._-]*$","title":"Slug"},"provider":{"oneOf":[{"$ref":"#/components/schemas/FixedApiKeyProvider"},{"$ref":"#/components/schemas/BedrockProvider"}],"title":"Provider","discriminator":{"propertyName":"vendor","mapping":{"anthropic":"#/components/schemas/FixedApiKeyProvider","bedrock":"#/components/schemas/BedrockProvider","doubleword":"#/components/schemas/FixedApiKeyProvider","google-gla":"#/components/schemas/FixedApiKeyProvider","groq":"#/components/schemas/FixedApiKeyProvider","huggingface":"#/components/schemas/FixedApiKeyProvider","mistral":"#/components/schemas/FixedApiKeyProvider","openai":"#/components/schemas/FixedApiKeyProvider"}}},"pricing":{"$ref":"#/components/schemas/GatewayProviderPricing-Input"}},"additionalProperties":false,"type":"object","required":["slug","provider"],"title":"GatewayProviderCreate"},"GatewayProviderPricing-Input":{"properties":{"required":{"type":"boolean","title":"Required"}},"additionalProperties":false,"type":"object","required":["required"],"title":"GatewayProviderPricing"},"GatewayProviderPricing-Output":{"properties":{"required":{"type":"boolean","title":"Required"}},"type":"object","required":["required"],"title":"GatewayProviderPricing"},"GatewayProviderPricingUpdate":{"properties":{"pricing":{"$ref":"#/components/schemas/GatewayProviderPricing-Input"},"provider":{"oneOf":[{"$ref":"#/components/schemas/FixedApiKeyProviderPatch"},{"$ref":"#/components/schemas/BedrockProviderPatch"}],"title":"Provider","discriminator":{"propertyName":"vendor","mapping":{"anthropic":"#/components/schemas/FixedApiKeyProviderPatch","bedrock":"#/components/schemas/BedrockProviderPatch","doubleword":"#/components/schemas/FixedApiKeyProviderPatch","google-gla":"#/components/schemas/FixedApiKeyProviderPatch","groq":"#/components/schemas/FixedApiKeyProviderPatch","huggingface":"#/components/schemas/FixedApiKeyProviderPatch","mistral":"#/components/schemas/FixedApiKeyProviderPatch","openai":"#/components/schemas/FixedApiKeyProviderPatch"}}}},"additionalProperties":false,"type":"object","required":["pricing"],"title":"GatewayProviderPricingUpdate"},"GatewayProviderRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"slug":{"type":"string","title":"Slug"},"provider":{"oneOf":[{"$ref":"#/components/schemas/FixedApiKeyProviderRead"},{"$ref":"#/components/schemas/BedrockProviderRead"}],"title":"Provider","discriminator":{"propertyName":"vendor","mapping":{"anthropic":"#/components/schemas/FixedApiKeyProviderRead","bedrock":"#/components/schemas/BedrockProviderRead","doubleword":"#/components/schemas/FixedApiKeyProviderRead","google-gla":"#/components/schemas/FixedApiKeyProviderRead","groq":"#/components/schemas/FixedApiKeyProviderRead","huggingface":"#/components/schemas/FixedApiKeyProviderRead","mistral":"#/components/schemas/FixedApiKeyProviderRead","openai":"#/components/schemas/FixedApiKeyProviderRead"}}},"pricing":{"$ref":"#/components/schemas/GatewayProviderPricing-Output"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","slug","provider","pricing","created_at"],"title":"GatewayProviderRead"},"GatewayProvidersPage":{"properties":{"providers":{"items":{"$ref":"#/components/schemas/GatewayProviderRead"},"type":"array","title":"Providers"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["providers","next_cursor"],"title":"GatewayProvidersPage"},"GatewayProxyClaims":{"properties":{"spending_limit_daily":{"anyOf":[{"type":"integer","maximum":500000000.0,"minimum":0.0},{"type":"null"}],"title":"Spending Limit Daily"},"spending_limit_weekly":{"anyOf":[{"type":"integer","maximum":500000000.0,"minimum":0.0},{"type":"null"}],"title":"Spending Limit Weekly"},"spending_limit_monthly":{"anyOf":[{"type":"integer","maximum":500000000.0,"minimum":0.0},{"type":"null"}],"title":"Spending Limit Monthly"},"spending_limit_total":{"anyOf":[{"type":"integer","maximum":500000000.0,"minimum":0.0},{"type":"null"}],"title":"Spending Limit Total"},"cache_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cache Enabled"}},"additionalProperties":false,"type":"object","title":"GatewayProxyClaims","description":"Settings carried by the `project:gateway_proxy` scope."},"GetDashboardResponse":{"properties":{"dashboard":{"$ref":"#/components/schemas/DashboardDefinitionRead"}},"type":"object","required":["dashboard"],"title":"GetDashboardResponse"},"GrantableScopesResponse":{"properties":{"grantable_scopes":{"items":{"type":"string"},"type":"array","title":"Grantable Scopes"}},"type":"object","required":["grantable_scopes"],"title":"GrantableScopesResponse","description":"Subset of `scopes` the authenticated user can grant in the given org/project."},"GroupOrganizationMapping":{"properties":{"group_id":{"type":"string","title":"Group Id"},"organization_roles":{"items":{"$ref":"#/components/schemas/OrganizationRoleDefinition"},"type":"array","title":"Organization Roles"}},"type":"object","required":["group_id","organization_roles"],"title":"GroupOrganizationMapping"},"GroupOrganizationMappingRead":{"properties":{"group_organization_mapping":{"items":{"$ref":"#/components/schemas/GroupOrganizationMapping"},"type":"array","title":"Group Organization Mapping"}},"type":"object","required":["group_organization_mapping"],"title":"GroupOrganizationMappingRead"},"GroupOrganizationMappingStatusRead":{"properties":{"group_organization_mapping":{"items":{"$ref":"#/components/schemas/GroupOrganizationMapping"},"type":"array","title":"Group Organization Mapping"},"api_mapping_status":{"type":"string","enum":["active","overridden_by_environment"],"title":"Api Mapping Status"}},"type":"object","required":["group_organization_mapping","api_mapping_status"],"title":"GroupOrganizationMappingStatusRead"},"GroupOrganizationMappingUpdate":{"properties":{"group_organization_mapping":{"items":{"$ref":"#/components/schemas/GroupOrganizationMapping"},"type":"array","title":"Group Organization Mapping"}},"type":"object","required":["group_organization_mapping"],"title":"GroupOrganizationMappingUpdate"},"GroupResourceRead":{"properties":{"schemas":{"items":{"type":"string"},"type":"array","title":"Schemas"},"id":{"type":"string","title":"Id"},"meta":{"$ref":"#/components/schemas/ResourceMetaRead"},"displayName":{"type":"string","title":"Displayname"}},"type":"object","required":["schemas","id","meta","displayName"],"title":"GroupResourceRead"},"GroupUpdate":{"properties":{"schemas":{"items":{"type":"string"},"type":"array","title":"Schemas"},"Operations":{"items":{"$ref":"#/components/schemas/GroupUpdateOperation"},"type":"array","title":"Operations"}},"type":"object","required":["schemas","Operations"],"title":"GroupUpdate"},"GroupUpdateOperation":{"properties":{"op":{"type":"string","title":"Op"},"path":{"type":"string","title":"Path"},"value":{"anyOf":[{"items":{"$ref":"#/components/schemas/GroupUpdateOperationValue"},"type":"array"},{"type":"string"}],"title":"Value"}},"type":"object","required":["op"],"title":"GroupUpdateOperation"},"GroupUpdateOperationValue":{"properties":{"value":{"type":"string","title":"Value"},"display":{"type":"string","title":"Display"}},"type":"object","required":["value"],"title":"GroupUpdateOperationValue"},"HTTPExceptionError":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"HTTPExceptionError"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InstanceUsageReportRowV1":{"properties":{"date":{"type":"string","format":"date","title":"Date"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"organization_name":{"type":"string","title":"Organization Name"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"project_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Name"},"records_count":{"type":"integer","title":"Records Count"},"metrics_count":{"type":"integer","title":"Metrics Count"},"total_observations":{"type":"integer","title":"Total Observations"}},"type":"object","required":["date","organization_id","project_id","records_count","metrics_count","total_observations"],"title":"InstanceUsageReportRowV1"},"JSONBData":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/JSONBData"},"type":"object"},{"items":{"$ref":"#/components/schemas/JSONBData"},"type":"array"},{"type":"string"},{"type":"integer"},{"type":"boolean"},{"type":"number"},{"type":"null"}]},"KeyIsNotPresent":{"properties":{"attribute":{"type":"string","title":"Attribute"},"kind":{"type":"string","const":"key-is-not-present","title":"Kind","default":"key-is-not-present"}},"type":"object","required":["attribute"],"title":"KeyIsNotPresent","description":"Condition that matches when an attribute key is not present."},"KeyIsPresent":{"properties":{"attribute":{"type":"string","title":"Attribute"},"kind":{"type":"string","const":"key-is-present","title":"Kind","default":"key-is-present"}},"type":"object","required":["attribute"],"title":"KeyIsPresent","description":"Condition that matches when an attribute key is present."},"LabelRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"variable_definition_id":{"type":"string","format":"uuid","title":"Variable Definition Id"},"label":{"type":"string","title":"Label"},"target_type":{"type":"string","title":"Target Type"},"target_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Label"},"version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Version Id"},"version_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version Number"},"serialized_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Serialized Value"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"updated_by":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name"}},"type":"object","required":["id","variable_definition_id","label","target_type","target_label","version_id","version_number","serialized_value","updated_at","updated_by","updated_by_name"],"title":"LabelRead","description":"A label as read from the database."},"LabelRef":{"properties":{"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"},"ref":{"type":"string","title":"Ref"}},"type":"object","required":["ref"],"title":"LabelRef","description":"A label pointing via reference to another label, 'latest', or 'code_default'."},"LabelRefLabelData":{"properties":{"target_type":{"type":"string","const":"label","title":"Target Type"},"target_label":{"type":"string","title":"Target Label"}},"type":"object","required":["target_type","target_label"],"title":"LabelRefLabelData","description":"Label data pointing to another label."},"LabeledValue":{"properties":{"version":{"type":"integer","title":"Version"},"serialized_value":{"type":"string","title":"Serialized Value"}},"type":"object","required":["version","serialized_value"],"title":"LabeledValue","description":"A label pointing to a version with an inline serialized value."},"LatestLabelData":{"properties":{"target_type":{"type":"string","const":"latest","title":"Target Type"}},"type":"object","required":["target_type"],"title":"LatestLabelData","description":"Label data pointing to the latest version."},"LatestVersion":{"properties":{"version":{"type":"integer","title":"Version"},"serialized_value":{"type":"string","title":"Serialized Value"}},"type":"object","required":["version","serialized_value"],"title":"LatestVersion","description":"The latest version of a variable, always carrying its serialized value."},"ListResponse":{"properties":{"schemas":{"items":{"type":"string"},"type":"array","title":"Schemas"},"totalResults":{"type":"integer","title":"Totalresults"},"Resources":{"anyOf":[{"items":{"$ref":"#/components/schemas/UserResourceRead"},"type":"array"},{"items":{"$ref":"#/components/schemas/GroupResourceRead"},"type":"array"}],"title":"Resources"},"startIndex":{"type":"integer","title":"Startindex"},"itemsPerPage":{"type":"integer","title":"Itemsperpage"}},"type":"object","required":["schemas","totalResults","Resources","startIndex","itemsPerPage"],"title":"ListResponse"},"Notification":{"properties":{"type":{"type":"string","const":"notification","title":"Type"},"recipients":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Recipients"}},"type":"object","required":["type","recipients"],"title":"Notification"},"OAuthScopeId":{"type":"string","enum":["instance:admin","instance:billing","instance:scim","organization:admin","organization:read","organization:create_project","organization:write","organization:scim","organization:read_invitation","organization:write_invitation","organization:read_member","organization:write_member","organization:read_channel","organization:write_channel","organization:create_api_key","organization:read_api_key","organization:write_api_key","organization:auditlog","organization:payment","organization:read_trust_policy","organization:write_trust_policy","project:read","project:write","project:write_token","project:read_token","project:read_dashboard","project:write_dashboard","project:read_alert","project:write_alert","project:read_workflow","project:write_workflow","project:trigger_workflow","project:read_datasets","project:write_datasets","project:read_variables","project:write_variables","project:read_external_variables","project:gateway_proxy","project:read_otlp","project:write_otlp","project:read_api_key","project:write_api_key"]},"Opsgenie":{"properties":{"type":{"type":"string","const":"opsgenie","title":"Type"},"auth_key":{"type":"string","title":"Auth Key"},"base_url":{"type":"string","title":"Base Url"}},"type":"object","required":["type","auth_key"],"title":"Opsgenie"},"OrganizationCreate":{"properties":{"organization_name":{"type":"string","maxLength":50,"minLength":2,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","title":"Organization Name"},"creation_intent":{"type":"string","enum":["free","team"],"title":"Creation Intent"},"organization_display_name":{"type":"string","title":"Organization Display Name"},"github_handle":{"type":"string","title":"Github Handle"},"location":{"type":"string","title":"Location"},"avatar":{"type":"string","title":"Avatar"},"links":{"items":{"$ref":"#/components/schemas/OrganizationLink"},"type":"array","title":"Links"},"description":{"type":"string","title":"Description"}},"type":"object","required":["organization_name"],"title":"OrganizationCreate"},"OrganizationInvitationCreateResponseV1":{"properties":{"invite_url":{"type":"string","title":"Invite Url"}},"type":"object","required":["invite_url"],"title":"OrganizationInvitationCreateResponseV1"},"OrganizationInvitationCreateV1":{"properties":{"role":{"type":"string","enum":["admin","member","guest","billing"],"title":"Role"},"expiration":{"type":"string","format":"date-time","title":"Expiration"},"max_usage_count":{"type":"integer","maximum":1000.0,"exclusiveMinimum":0.0,"title":"Max Usage Count"}},"type":"object","required":["role"],"title":"OrganizationInvitationCreateV1"},"OrganizationInvitationReadV1":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"invite_url":{"type":"string","title":"Invite Url"},"expiration":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expiration"},"max_usage_count":{"type":"integer","title":"Max Usage Count"},"role_id":{"type":"string","format":"uuid","title":"Role Id"},"usage_count":{"type":"integer","title":"Usage Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"}},"type":"object","required":["id","organization_id","invite_url","expiration","max_usage_count","role_id","usage_count","created_at","last_used_at"],"title":"OrganizationInvitationReadV1"},"OrganizationLink":{"properties":{"url":{"type":"string","title":"Url"},"icon":{"type":"string","title":"Icon"},"name":{"type":"string","title":"Name"}},"type":"object","required":["url","icon","name"],"title":"OrganizationLink"},"OrganizationMemberReadV1":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"role_id":{"type":"string","format":"uuid","title":"Role Id"},"member_since":{"type":"string","format":"date-time","title":"Member Since"},"github_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Github Username"},"avatar":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar"},"role":{"type":"string","title":"Role"}},"type":"object","required":["id","name","email","role_id","member_since","github_username","avatar","role"],"title":"OrganizationMemberReadV1"},"OrganizationMemberUpdateV1":{"properties":{"role":{"type":"string","enum":["admin","member","guest","billing"],"title":"Role"}},"type":"object","required":["role"],"title":"OrganizationMemberUpdateV1"},"OrganizationReadV1":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_name":{"type":"string","title":"Organization Name"},"subscription_plan":{"anyOf":[{"$ref":"#/components/schemas/SubscriptionPlanId"},{"type":"null"}]},"has_admin_panel":{"type":"boolean","title":"Has Admin Panel"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"billing_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Email"},"organization_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Display Name"},"github_handle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Github Handle"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"avatar":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar"},"links":{"anyOf":[{"items":{"$ref":"#/components/schemas/OrganizationLink"},"type":"array"},{"type":"null"}],"title":"Links"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"spending_cap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Spending Cap"},"spending_cap_reached_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Spending Cap Reached At"},"planless_grace_period_ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Planless Grace Period Ends At"},"gateway_enabled":{"type":"boolean","title":"Gateway Enabled"},"ai_enabled":{"type":"boolean","title":"Ai Enabled"},"ai_training_enabled":{"type":"boolean","title":"Ai Training Enabled"}},"type":"object","required":["id","organization_name","subscription_plan","has_admin_panel","created_at","updated_at","billing_email","organization_display_name","github_handle","location","avatar","links","description","spending_cap","spending_cap_reached_at","planless_grace_period_ends_at","gateway_enabled","ai_enabled","ai_training_enabled"],"title":"OrganizationReadV1"},"OrganizationRoleDefinition":{"properties":{"organization_name":{"type":"string","title":"Organization Name"},"role":{"type":"string","title":"Role"},"project_roles":{"items":{"$ref":"#/components/schemas/ProjectRoleDefinition"},"type":"array","title":"Project Roles","default":[]}},"type":"object","required":["organization_name","role"],"title":"OrganizationRoleDefinition"},"OrganizationUpdate":{"properties":{"organization_name":{"type":"string","maxLength":50,"minLength":2,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","title":"Organization Name"},"billing_email":{"type":"string","title":"Billing Email"},"organization_display_name":{"type":"string","title":"Organization Display Name"},"github_handle":{"type":"string","title":"Github Handle"},"location":{"type":"string","title":"Location"},"avatar":{"type":"string","title":"Avatar"},"links":{"items":{"$ref":"#/components/schemas/OrganizationLink"},"type":"array","title":"Links"},"description":{"type":"string","title":"Description"}},"type":"object","title":"OrganizationUpdate"},"OverrideData":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"conditions":{"items":{"$ref":"#/components/schemas/ConditionData"},"type":"array","title":"Conditions"},"rollout":{"$ref":"#/components/schemas/RolloutData"}},"type":"object","required":["conditions","rollout"],"title":"OverrideData","description":"Override configuration stored as JSONB."},"PARResponse":{"properties":{"request_uri":{"type":"string","title":"Request Uri"},"expires_in":{"type":"integer","title":"Expires In"}},"type":"object","required":["request_uri","expires_in"],"title":"PARResponse","description":"RFC 9126 successful pushed authorization response."},"PagerDutyServiceView":{"properties":{"install_id":{"type":"string","format":"uuid","title":"Install Id"},"service_id":{"type":"string","format":"uuid","title":"Service Id"},"pagerduty_service_id":{"type":"string","title":"Pagerduty Service Id"},"service_name":{"type":"string","title":"Service Name"}},"type":"object","required":["install_id","service_id","pagerduty_service_id","service_name"],"title":"PagerDutyServiceView"},"Pagerduty":{"properties":{"type":{"type":"string","const":"pagerduty","title":"Type"},"routing_key":{"type":"string","title":"Routing Key"},"region":{"$ref":"#/components/schemas/PagerdutyRegion"}},"type":"object","required":["type","routing_key"],"title":"Pagerduty","description":"Pages via the PagerDuty Events API v2 using a service integration's routing key.\n\n`region` selects the events endpoint (`events.pagerduty.com` vs `events.eu.pagerduty.com`);\nrouting keys only work on the region their PagerDuty account is hosted in."},"PagerdutyIntegration":{"properties":{"type":{"type":"string","const":"pagerduty-integration","title":"Type"},"install_id":{"type":"string","format":"uuid","title":"Install Id"},"service_id":{"type":"string","format":"uuid","title":"Service Id"}},"type":"object","required":["type","install_id","service_id"],"title":"PagerdutyIntegration","description":"Pages a service selected from a PagerDuty App installation.\n\nThe persisted channel references the selected service relationally. `install_id`\nand `service_id` form the API representation used to select that service, whose\nencrypted Events API key is resolved immediately before delivery."},"PagerdutyRegion":{"type":"string","enum":["us","eu"]},"PaginatedProjectsUsageResponseV1":{"properties":{"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"type":"string","format":"date","title":"End Date"},"total":{"type":"integer","title":"Total"},"usage":{"items":{"$ref":"#/components/schemas/ProjectUsageRowV1"},"type":"array","title":"Usage"}},"type":"object","required":["start_date","end_date","total","usage"],"title":"PaginatedProjectsUsageResponseV1"},"PanelRef":{"properties":{"$ref":{"type":"string"}},"type":"object","required":["$ref"],"title":"PanelRef"},"ProjectCreate":{"properties":{"project_name":{"type":"string","maxLength":50,"minLength":2,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","title":"Project Name"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"},"visibility":{"type":"string","enum":["private","public"],"title":"Visibility","default":"public"}},"type":"object","required":["project_name"],"title":"ProjectCreate"},"ProjectListRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"project_name":{"type":"string","title":"Project Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"organization_name":{"type":"string","title":"Organization Name"},"visibility":{"type":"string","enum":["private","public"],"title":"Visibility"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"organization_role_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Role Name"},"project_role_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Role Name"}},"type":"object","required":["id","project_name","created_at","description","organization_name","visibility","updated_at"],"title":"ProjectListRead"},"ProjectRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"project_name":{"type":"string","title":"Project Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"organization_name":{"type":"string","title":"Organization Name"},"visibility":{"type":"string","enum":["private","public"],"title":"Visibility"}},"type":"object","required":["id","project_name","created_at","description","organization_name","visibility"],"title":"ProjectRead"},"ProjectRoleDefinition":{"properties":{"project_name":{"type":"string","title":"Project Name"},"role":{"type":"string","title":"Role"}},"type":"object","required":["project_name","role"],"title":"ProjectRoleDefinition"},"ProjectUpdate":{"properties":{"project_name":{"anyOf":[{"type":"string","maxLength":50,"minLength":2,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},{"type":"null"}],"title":"Project Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"visibility":{"anyOf":[{"type":"string","enum":["private","public"]},{"type":"null"}],"title":"Visibility"}},"type":"object","title":"ProjectUpdate"},"ProjectUsage":{"properties":{"project_name":{"type":"string","title":"Project Name"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"observations":{"type":"integer","title":"Observations"}},"type":"object","required":["project_name","project_id","observations"],"title":"ProjectUsage"},"ProjectUsageRowV1":{"properties":{"date":{"type":"string","format":"date","title":"Date"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"project_name":{"type":"string","title":"Project Name"},"records_count":{"type":"integer","title":"Records Count"},"metrics_count":{"type":"integer","title":"Metrics Count"},"total_observations":{"type":"integer","title":"Total Observations"}},"type":"object","required":["date","project_id","project_name","records_count","metrics_count","total_observations"],"title":"ProjectUsageRowV1"},"ProjectsUsageResponseV1":{"properties":{"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"type":"string","format":"date","title":"End Date"},"total_records_count":{"type":"integer","title":"Total Records Count"},"total_metrics_count":{"type":"integer","title":"Total Metrics Count"},"total_observations":{"type":"integer","title":"Total Observations"},"usage":{"items":{"$ref":"#/components/schemas/ProjectUsageRowV1"},"type":"array","title":"Usage"}},"type":"object","required":["start_date","end_date","total_records_count","total_metrics_count","total_observations","usage"],"title":"ProjectsUsageResponseV1"},"ReadTokenPublicAPIRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"token":{"type":"string","title":"Token"}},"type":"object","required":["id","project_id","created_at","description","expires_at","token"],"title":"ReadTokenPublicAPIRead"},"ReadTokenRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"},"project_name":{"type":"string","title":"Project Name"},"token_prefix":{"type":"string","title":"Token Prefix"},"active":{"type":"boolean","title":"Active"}},"type":"object","required":["id","project_id","created_at","description","expires_at","created_by_name","project_name","token_prefix","active"],"title":"ReadTokenRead"},"ResourceMetaRead":{"properties":{"resourceType":{"type":"string","title":"Resourcetype"}},"type":"object","required":["resourceType"],"title":"ResourceMetaRead"},"Rollout":{"properties":{"labels":{"additionalProperties":{"type":"number"},"propertyNames":{"maxLength":200,"minLength":1},"type":"object","title":"Labels"}},"type":"object","required":["labels"],"title":"Rollout","description":"Configuration for label selection with weighted probabilities."},"RolloutData":{"properties":{"labels":{"additionalProperties":{"type":"number"},"type":"object","title":"Labels"},"latest_weight":{"type":"number","title":"Latest Weight"}},"type":"object","required":["labels"],"title":"RolloutData","description":"Rollout configuration stored as JSONB."},"RolloutOverride":{"properties":{"conditions":{"items":{"oneOf":[{"$ref":"#/components/schemas/ValueEquals"},{"$ref":"#/components/schemas/ValueDoesNotEqual"},{"$ref":"#/components/schemas/ValueIsIn"},{"$ref":"#/components/schemas/ValueIsNotIn"},{"$ref":"#/components/schemas/ValueMatchesRegex"},{"$ref":"#/components/schemas/ValueDoesNotMatchRegex"},{"$ref":"#/components/schemas/KeyIsPresent"},{"$ref":"#/components/schemas/KeyIsNotPresent"}],"discriminator":{"propertyName":"kind","mapping":{"key-is-not-present":"#/components/schemas/KeyIsNotPresent","key-is-present":"#/components/schemas/KeyIsPresent","value-does-not-equal":"#/components/schemas/ValueDoesNotEqual","value-does-not-match-regex":"#/components/schemas/ValueDoesNotMatchRegex","value-equals":"#/components/schemas/ValueEquals","value-is-in":"#/components/schemas/ValueIsIn","value-is-not-in":"#/components/schemas/ValueIsNotIn","value-matches-regex":"#/components/schemas/ValueMatchesRegex"}}},"type":"array","title":"Conditions"},"rollout":{"$ref":"#/components/schemas/Rollout"}},"type":"object","required":["conditions","rollout"],"title":"RolloutOverride","description":"An override of the default rollout when specific conditions are met."},"RotateWriteTokenInput":{"properties":{"grace_period_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Grace Period Hours"}},"type":"object","title":"RotateWriteTokenInput"},"RotateWriteTokenOutput":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"token":{"type":"string","title":"Token"},"previous_token_expires_at":{"type":"string","format":"date-time","title":"Previous Token Expires At"}},"type":"object","required":["id","project_id","created_at","description","expires_at","token","previous_token_expires_at"],"title":"RotateWriteTokenOutput"},"ScheduleCreateRequest":{"properties":{"label":{"type":"string","title":"Label"},"timezone":{"type":"string","enum":["Africa/Abidjan","Africa/Accra","Africa/Addis_Ababa","Africa/Algiers","Africa/Asmara","Africa/Asmera","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Douala","Africa/El_Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao_Tome","Africa/Timbuktu","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/ComodRivadavia","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Atikokan","America/Atka","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Buenos_Aires","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Catamarca","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Ciudad_Juarez","America/Coral_Harbour","America/Cordoba","America/Costa_Rica","America/Coyhaique","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Ensenada","America/Fort_Nelson","America/Fort_Wayne","America/Fortaleza","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Indianapolis","America/Inuvik","America/Iqaluit","America/Jamaica","America/Jujuy","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/Knox_IN","America/Kralendijk","America/La_Paz","America/Lima","America/Los_Angeles","America/Louisville","America/Lower_Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Mendoza","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montreal","America/Montserrat","America/Nassau","America/New_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Nuuk","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Acre","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Rosario","America/Santa_Isabel","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Shiprock","America/Sitka","America/St_Barthelemy","America/St_Johns","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Virgin","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/South_Pole","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Ashkhabad","Asia/Atyrau","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Calcutta","Asia/Chita","Asia/Choibalsan","Asia/Chongqing","Asia/Chungking","Asia/Colombo","Asia/Dacca","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Harbin","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Istanbul","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kashgar","Asia/Kathmandu","Asia/Katmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macao","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Rangoon","Asia/Riyadh","Asia/Saigon","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Tel_Aviv","Asia/Thimbu","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ujung_Pandang","Asia/Ulaanbaatar","Asia/Ulan_Bator","Asia/Urumqi","Asia/Ust-Nera","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faeroe","Atlantic/Faroe","Atlantic/Jan_Mayen","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/St_Helena","Atlantic/Stanley","Australia/ACT","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Canberra","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/LHI","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/NSW","Australia/North","Australia/Perth","Australia/Queensland","Australia/South","Australia/Sydney","Australia/Tasmania","Australia/Victoria","Australia/West","Australia/Yancowinna","Brazil/Acre","Brazil/DeNoronha","Brazil/East","Brazil/West","CET","CST6CDT","Canada/Atlantic","Canada/Central","Canada/Eastern","Canada/Mountain","Canada/Newfoundland","Canada/Pacific","Canada/Saskatchewan","Canada/Yukon","Chile/Continental","Chile/EasterIsland","Cuba","EET","EST","EST5EDT","Egypt","Eire","Etc/GMT","Etc/GMT+0","Etc/GMT+1","Etc/GMT+10","Etc/GMT+11","Etc/GMT+12","Etc/GMT+2","Etc/GMT+3","Etc/GMT+4","Etc/GMT+5","Etc/GMT+6","Etc/GMT+7","Etc/GMT+8","Etc/GMT+9","Etc/GMT-0","Etc/GMT-1","Etc/GMT-10","Etc/GMT-11","Etc/GMT-12","Etc/GMT-13","Etc/GMT-14","Etc/GMT-2","Etc/GMT-3","Etc/GMT-4","Etc/GMT-5","Etc/GMT-6","Etc/GMT-7","Etc/GMT-8","Etc/GMT-9","Etc/GMT0","Etc/Greenwich","Etc/UCT","Etc/UTC","Etc/Universal","Etc/Zulu","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belfast","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Busingen","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Kyiv","Europe/Lisbon","Europe/Ljubljana","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Nicosia","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San_Marino","Europe/Sarajevo","Europe/Saratov","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Tiraspol","Europe/Ulyanovsk","Europe/Uzhgorod","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zaporozhye","Europe/Zurich","Factory","GB","GB-Eire","GMT","GMT+0","GMT-0","GMT0","Greenwich","HST","Hongkong","Iceland","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Iran","Israel","Jamaica","Japan","Kwajalein","Libya","MET","MST","MST7MDT","Mexico/BajaNorte","Mexico/BajaSur","Mexico/General","NZ","NZ-CHAT","Navajo","PRC","PST8PDT","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Johnston","Pacific/Kanton","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Ponape","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Samoa","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Truk","Pacific/Wake","Pacific/Wallis","Pacific/Yap","Poland","Portugal","ROC","ROK","Singapore","Turkey","UCT","US/Alaska","US/Aleutian","US/Arizona","US/Central","US/East-Indiana","US/Eastern","US/Hawaii","US/Indiana-Starke","US/Michigan","US/Mountain","US/Pacific","US/Samoa","UTC","Universal","W-SU","WET","Zulu","localtime"],"minLength":1,"title":"Timezone"},"windows":{"items":{"$ref":"#/components/schemas/ScheduleWindowRequest"},"type":"array","minItems":1,"title":"Windows"}},"type":"object","required":["label","timezone","windows"],"title":"ScheduleCreateRequest","description":"The request body for `ScheduleCreate`, shared by the UI and `/v1` schedule routes."},"ScheduleRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"label":{"type":"string","title":"Label"},"timezone":{"type":"string","enum":["Africa/Abidjan","Africa/Accra","Africa/Addis_Ababa","Africa/Algiers","Africa/Asmara","Africa/Asmera","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Douala","Africa/El_Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao_Tome","Africa/Timbuktu","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/ComodRivadavia","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Atikokan","America/Atka","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Buenos_Aires","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Catamarca","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Ciudad_Juarez","America/Coral_Harbour","America/Cordoba","America/Costa_Rica","America/Coyhaique","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Ensenada","America/Fort_Nelson","America/Fort_Wayne","America/Fortaleza","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Indianapolis","America/Inuvik","America/Iqaluit","America/Jamaica","America/Jujuy","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/Knox_IN","America/Kralendijk","America/La_Paz","America/Lima","America/Los_Angeles","America/Louisville","America/Lower_Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Mendoza","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montreal","America/Montserrat","America/Nassau","America/New_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Nuuk","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Acre","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Rosario","America/Santa_Isabel","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Shiprock","America/Sitka","America/St_Barthelemy","America/St_Johns","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Virgin","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/South_Pole","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Ashkhabad","Asia/Atyrau","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Calcutta","Asia/Chita","Asia/Choibalsan","Asia/Chongqing","Asia/Chungking","Asia/Colombo","Asia/Dacca","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Harbin","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Istanbul","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kashgar","Asia/Kathmandu","Asia/Katmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macao","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Rangoon","Asia/Riyadh","Asia/Saigon","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Tel_Aviv","Asia/Thimbu","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ujung_Pandang","Asia/Ulaanbaatar","Asia/Ulan_Bator","Asia/Urumqi","Asia/Ust-Nera","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faeroe","Atlantic/Faroe","Atlantic/Jan_Mayen","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/St_Helena","Atlantic/Stanley","Australia/ACT","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Canberra","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/LHI","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/NSW","Australia/North","Australia/Perth","Australia/Queensland","Australia/South","Australia/Sydney","Australia/Tasmania","Australia/Victoria","Australia/West","Australia/Yancowinna","Brazil/Acre","Brazil/DeNoronha","Brazil/East","Brazil/West","CET","CST6CDT","Canada/Atlantic","Canada/Central","Canada/Eastern","Canada/Mountain","Canada/Newfoundland","Canada/Pacific","Canada/Saskatchewan","Canada/Yukon","Chile/Continental","Chile/EasterIsland","Cuba","EET","EST","EST5EDT","Egypt","Eire","Etc/GMT","Etc/GMT+0","Etc/GMT+1","Etc/GMT+10","Etc/GMT+11","Etc/GMT+12","Etc/GMT+2","Etc/GMT+3","Etc/GMT+4","Etc/GMT+5","Etc/GMT+6","Etc/GMT+7","Etc/GMT+8","Etc/GMT+9","Etc/GMT-0","Etc/GMT-1","Etc/GMT-10","Etc/GMT-11","Etc/GMT-12","Etc/GMT-13","Etc/GMT-14","Etc/GMT-2","Etc/GMT-3","Etc/GMT-4","Etc/GMT-5","Etc/GMT-6","Etc/GMT-7","Etc/GMT-8","Etc/GMT-9","Etc/GMT0","Etc/Greenwich","Etc/UCT","Etc/UTC","Etc/Universal","Etc/Zulu","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belfast","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Busingen","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Kyiv","Europe/Lisbon","Europe/Ljubljana","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Nicosia","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San_Marino","Europe/Sarajevo","Europe/Saratov","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Tiraspol","Europe/Ulyanovsk","Europe/Uzhgorod","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zaporozhye","Europe/Zurich","Factory","GB","GB-Eire","GMT","GMT+0","GMT-0","GMT0","Greenwich","HST","Hongkong","Iceland","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Iran","Israel","Jamaica","Japan","Kwajalein","Libya","MET","MST","MST7MDT","Mexico/BajaNorte","Mexico/BajaSur","Mexico/General","NZ","NZ-CHAT","Navajo","PRC","PST8PDT","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Johnston","Pacific/Kanton","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Ponape","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Samoa","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Truk","Pacific/Wake","Pacific/Wallis","Pacific/Yap","Poland","Portugal","ROC","ROK","Singapore","Turkey","UCT","US/Alaska","US/Aleutian","US/Arizona","US/Central","US/East-Indiana","US/Eastern","US/Hawaii","US/Indiana-Starke","US/Michigan","US/Mountain","US/Pacific","US/Samoa","UTC","Universal","W-SU","WET","Zulu","localtime"],"minLength":1,"title":"Timezone"},"windows":{"items":{"$ref":"#/components/schemas/ScheduleWindow"},"type":"array","title":"Windows"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","organization_id","label","timezone","windows","created_at","updated_at"],"title":"ScheduleRead"},"ScheduleUpdateRequest":{"properties":{"label":{"type":"string","title":"Label"},"timezone":{"type":"string","enum":["Africa/Abidjan","Africa/Accra","Africa/Addis_Ababa","Africa/Algiers","Africa/Asmara","Africa/Asmera","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Douala","Africa/El_Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao_Tome","Africa/Timbuktu","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/ComodRivadavia","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Atikokan","America/Atka","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Buenos_Aires","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Catamarca","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Ciudad_Juarez","America/Coral_Harbour","America/Cordoba","America/Costa_Rica","America/Coyhaique","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Ensenada","America/Fort_Nelson","America/Fort_Wayne","America/Fortaleza","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Indianapolis","America/Inuvik","America/Iqaluit","America/Jamaica","America/Jujuy","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/Knox_IN","America/Kralendijk","America/La_Paz","America/Lima","America/Los_Angeles","America/Louisville","America/Lower_Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Mendoza","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montreal","America/Montserrat","America/Nassau","America/New_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Nuuk","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Acre","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Rosario","America/Santa_Isabel","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Shiprock","America/Sitka","America/St_Barthelemy","America/St_Johns","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Virgin","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/South_Pole","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Ashkhabad","Asia/Atyrau","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Calcutta","Asia/Chita","Asia/Choibalsan","Asia/Chongqing","Asia/Chungking","Asia/Colombo","Asia/Dacca","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Harbin","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Istanbul","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kashgar","Asia/Kathmandu","Asia/Katmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macao","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Rangoon","Asia/Riyadh","Asia/Saigon","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Tel_Aviv","Asia/Thimbu","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ujung_Pandang","Asia/Ulaanbaatar","Asia/Ulan_Bator","Asia/Urumqi","Asia/Ust-Nera","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faeroe","Atlantic/Faroe","Atlantic/Jan_Mayen","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/St_Helena","Atlantic/Stanley","Australia/ACT","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Canberra","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/LHI","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/NSW","Australia/North","Australia/Perth","Australia/Queensland","Australia/South","Australia/Sydney","Australia/Tasmania","Australia/Victoria","Australia/West","Australia/Yancowinna","Brazil/Acre","Brazil/DeNoronha","Brazil/East","Brazil/West","CET","CST6CDT","Canada/Atlantic","Canada/Central","Canada/Eastern","Canada/Mountain","Canada/Newfoundland","Canada/Pacific","Canada/Saskatchewan","Canada/Yukon","Chile/Continental","Chile/EasterIsland","Cuba","EET","EST","EST5EDT","Egypt","Eire","Etc/GMT","Etc/GMT+0","Etc/GMT+1","Etc/GMT+10","Etc/GMT+11","Etc/GMT+12","Etc/GMT+2","Etc/GMT+3","Etc/GMT+4","Etc/GMT+5","Etc/GMT+6","Etc/GMT+7","Etc/GMT+8","Etc/GMT+9","Etc/GMT-0","Etc/GMT-1","Etc/GMT-10","Etc/GMT-11","Etc/GMT-12","Etc/GMT-13","Etc/GMT-14","Etc/GMT-2","Etc/GMT-3","Etc/GMT-4","Etc/GMT-5","Etc/GMT-6","Etc/GMT-7","Etc/GMT-8","Etc/GMT-9","Etc/GMT0","Etc/Greenwich","Etc/UCT","Etc/UTC","Etc/Universal","Etc/Zulu","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belfast","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Busingen","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Kyiv","Europe/Lisbon","Europe/Ljubljana","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Nicosia","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San_Marino","Europe/Sarajevo","Europe/Saratov","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Tiraspol","Europe/Ulyanovsk","Europe/Uzhgorod","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zaporozhye","Europe/Zurich","Factory","GB","GB-Eire","GMT","GMT+0","GMT-0","GMT0","Greenwich","HST","Hongkong","Iceland","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Iran","Israel","Jamaica","Japan","Kwajalein","Libya","MET","MST","MST7MDT","Mexico/BajaNorte","Mexico/BajaSur","Mexico/General","NZ","NZ-CHAT","Navajo","PRC","PST8PDT","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Johnston","Pacific/Kanton","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Ponape","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Samoa","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Truk","Pacific/Wake","Pacific/Wallis","Pacific/Yap","Poland","Portugal","ROC","ROK","Singapore","Turkey","UCT","US/Alaska","US/Aleutian","US/Arizona","US/Central","US/East-Indiana","US/Eastern","US/Hawaii","US/Indiana-Starke","US/Michigan","US/Mountain","US/Pacific","US/Samoa","UTC","Universal","W-SU","WET","Zulu","localtime"],"minLength":1,"title":"Timezone"},"windows":{"items":{"$ref":"#/components/schemas/ScheduleWindowRequest"},"type":"array","minItems":1,"title":"Windows"}},"type":"object","title":"ScheduleUpdateRequest","description":"The request body for `ScheduleUpdate`, shared by the UI and `/v1` schedule routes."},"ScheduleWindow":{"properties":{"days":{"items":{"type":"integer"},"type":"array","title":"Days"},"start_time":{"type":"string","format":"time","title":"Start Time"},"end_time":{"type":"string","format":"time","title":"End Time"}},"type":"object","required":["days","start_time","end_time"],"title":"ScheduleWindow","description":"A time window within a schedule.\n\nWindows define when alerts should be sent. Times use HH:MM format (24-hour).\nDays use ISO weekday numbers: 1=Monday through 7=Sunday."},"ScheduleWindowRequest":{"properties":{"days":{"items":{"type":"integer","maximum":7.0,"minimum":1.0},"type":"array","minItems":1,"title":"Days"},"start_time":{"type":"string","format":"time","title":"Start Time"},"end_time":{"type":"string","format":"time","title":"End Time"}},"type":"object","required":["days","start_time","end_time"],"title":"ScheduleWindowRequest","description":"A request's `ScheduleWindow`, validated: ISO weekdays 1 (Monday) to 7, at least one day."},"ScopeClaims":{"properties":{"project:gateway_proxy":{"$ref":"#/components/schemas/GatewayProxyClaims"}},"additionalProperties":false,"type":"object","title":"ScopeClaims"},"SignupIntentRequest":{"properties":{"organization_name":{"type":"string","maxLength":50,"minLength":2,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","title":"Organization Name"},"project_name":{"type":"string","maxLength":50,"minLength":2,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","title":"Project Name"},"authorization_url":{"type":"string","maxLength":2048,"title":"Authorization Url"}},"type":"object","required":["organization_name","project_name","authorization_url"],"title":"SignupIntentRequest","description":"Names and short OAuth continuation prepared by the Logfire CLI."},"SignupIntentResponse":{"properties":{"claim_url":{"type":"string","title":"Claim Url"},"expires_in":{"type":"integer","title":"Expires In"}},"type":"object","required":["claim_url","expires_in"],"title":"SignupIntentResponse","description":"Short-lived browser claim link whose fragment contains the one-time bearer."},"SlackIntegration":{"properties":{"type":{"type":"string","const":"slack-integration","title":"Type"},"install_id":{"type":"string","format":"uuid","title":"Install Id"},"channel_id":{"type":"string","title":"Channel Id"},"include_agent_prompt":{"type":"boolean","title":"Include Agent Prompt","description":"Whether Slack App notifications include an agent investigation prompt.","default":true}},"type":"object","required":["type","install_id","channel_id"],"title":"SlackIntegration","description":"Posts to a channel of a customer's installed Slack App (the `external_installations` integration).\n\nUnlike `webhook` (a bearer-capable incoming-webhook URL), this stores no secret: `install_id` points at\nthe install whose encrypted bot token the worker decrypts at send time, and `channel_id` is the Slack\nchannel the bot must already be a member of."},"SubscriptionPlanId":{"type":"string","enum":["personal","team","growth","enterprise_cloud","non_stripe","enterprise","internal"]},"TokenExchangeResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"issued_token_type":{"type":"string","title":"Issued Token Type"},"token_type":{"type":"string","title":"Token Type"},"expires_in":{"type":"integer","title":"Expires In"},"scope":{"type":"string","title":"Scope"},"refresh_token":{"type":"string","title":"Refresh Token"}},"type":"object","required":["access_token","issued_token_type","token_type","scope"],"title":"TokenExchangeResponse","description":"RFC 8693 §2.2 successful token-exchange response.\n\nDistinct from the OAuth 2.0 token endpoint's `TokenResponse` (RFC 6749 §5.1):\n`issued_token_type` is mandatory per §2.2.1, while `refresh_token` is optional and\nreaches only one of the paths that share this shape. The OIDC workload token is\nsessionless and the device exchange already hands back a durable API key, so both\nare the §2.2.1 \"one temporary credential for a different temporary credential\" case\nand return none. The Platform exchange returns one when it binds an\norganization-scoped grant to a project, which\n`OAuthService.exchange_platform_access_token` documents.\n\n`expires_in` is RECOMMENDED, not required, by §2.2.1. All three paths set it: the\nPlatform exchange caps the derived token at the source token's expiry, the OIDC workload\npath mints a short-lived JWT, and the device-token exchange mints a personal API key that\nalways carries an expiry (see `api_key_token_exchange`)."},"TokenResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","const":"Bearer","title":"Token Type"},"expires_in":{"type":"integer","title":"Expires In"},"refresh_token":{"type":"string","title":"Refresh Token"},"scope":{"type":"string","title":"Scope"}},"type":"object","required":["access_token","token_type","expires_in","refresh_token","scope"],"title":"TokenResponse"},"UsageBreakdown":{"properties":{"spans":{"type":"integer","title":"Spans"},"metrics":{"type":"integer","title":"Metrics"}},"type":"object","required":["spans","metrics"],"title":"UsageBreakdown"},"UsageResponseV1":{"properties":{"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"type":"string","format":"date","title":"End Date"},"total_records_count":{"type":"integer","title":"Total Records Count"},"total_metrics_count":{"type":"integer","title":"Total Metrics Count"},"total_observations":{"type":"integer","title":"Total Observations"},"usage":{"items":{"$ref":"#/components/schemas/UsageRowV1"},"type":"array","title":"Usage"}},"type":"object","required":["start_date","end_date","total_records_count","total_metrics_count","total_observations","usage"],"title":"UsageResponseV1"},"UsageRowV1":{"properties":{"date":{"type":"string","format":"date","title":"Date"},"records_count":{"type":"integer","title":"Records Count"},"metrics_count":{"type":"integer","title":"Metrics Count"},"total_observations":{"type":"integer","title":"Total Observations"}},"type":"object","required":["date","records_count","metrics_count","total_observations"],"title":"UsageRowV1"},"UsageSummary":{"properties":{"total_observations":{"type":"integer","title":"Total Observations"},"breakdown":{"$ref":"#/components/schemas/UsageBreakdown"},"included_observations":{"type":"integer","title":"Included Observations"},"billable_observations":{"type":"integer","title":"Billable Observations"},"project_breakdown":{"items":{"$ref":"#/components/schemas/ProjectUsage"},"type":"array","title":"Project Breakdown"}},"type":"object","required":["total_observations","breakdown","included_observations","billable_observations","project_breakdown"],"title":"UsageSummary"},"UserReasourceNameRead":{"properties":{"givenName":{"type":"string","title":"Givenname"}},"type":"object","required":["givenName"],"title":"UserReasourceNameRead"},"UserResourceEmailRead":{"properties":{"value":{"type":"string","title":"Value"},"type":{"type":"string","title":"Type"},"primary":{"type":"boolean","title":"Primary"}},"type":"object","required":["value","type","primary"],"title":"UserResourceEmailRead"},"UserResourceRead":{"properties":{"schemas":{"items":{"type":"string"},"type":"array","title":"Schemas"},"id":{"type":"string","title":"Id"},"meta":{"$ref":"#/components/schemas/ResourceMetaRead"},"userName":{"type":"string","title":"Username"},"name":{"$ref":"#/components/schemas/UserReasourceNameRead"},"active":{"type":"boolean","title":"Active"},"emails":{"items":{"$ref":"#/components/schemas/UserResourceEmailRead"},"type":"array","title":"Emails"}},"type":"object","required":["schemas","id","meta","userName","name","active","emails"],"title":"UserResourceRead"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValueDoesNotEqual":{"properties":{"attribute":{"type":"string","title":"Attribute"},"value":{"title":"Value"},"kind":{"type":"string","const":"value-does-not-equal","title":"Kind","default":"value-does-not-equal"}},"type":"object","required":["attribute","value"],"title":"ValueDoesNotEqual","description":"Condition that matches when an attribute does not equal a specific value."},"ValueDoesNotMatchRegex":{"properties":{"attribute":{"type":"string","title":"Attribute"},"pattern":{"anyOf":[{"type":"string"},{"type":"string","format":"regex"}],"title":"Pattern"},"kind":{"type":"string","const":"value-does-not-match-regex","title":"Kind","default":"value-does-not-match-regex"}},"type":"object","required":["attribute","pattern"],"title":"ValueDoesNotMatchRegex","description":"Condition that matches when an attribute value does not match a regex pattern."},"ValueEquals":{"properties":{"attribute":{"type":"string","title":"Attribute"},"value":{"title":"Value"},"kind":{"type":"string","const":"value-equals","title":"Kind","default":"value-equals"}},"type":"object","required":["attribute","value"],"title":"ValueEquals","description":"Condition that matches when an attribute equals a specific value."},"ValueIsIn":{"properties":{"attribute":{"type":"string","title":"Attribute"},"values":{"items":{},"type":"array","title":"Values"},"kind":{"type":"string","const":"value-is-in","title":"Kind","default":"value-is-in"}},"type":"object","required":["attribute","values"],"title":"ValueIsIn","description":"Condition that matches when an attribute value is in a set of values."},"ValueIsNotIn":{"properties":{"attribute":{"type":"string","title":"Attribute"},"values":{"items":{},"type":"array","title":"Values"},"kind":{"type":"string","const":"value-is-not-in","title":"Kind","default":"value-is-not-in"}},"type":"object","required":["attribute","values"],"title":"ValueIsNotIn","description":"Condition that matches when an attribute value is not in a set of values."},"ValueMatchesRegex":{"properties":{"attribute":{"type":"string","title":"Attribute"},"pattern":{"anyOf":[{"type":"string"},{"type":"string","format":"regex"}],"title":"Pattern"},"kind":{"type":"string","const":"value-matches-regex","title":"Kind","default":"value-matches-regex"}},"type":"object","required":["attribute","pattern"],"title":"ValueMatchesRegex","description":"Condition that matches when an attribute value matches a regex pattern."},"VariableConfig":{"properties":{"name":{"type":"string","title":"Name"},"kind":{"type":"string","enum":["general","prompt"],"title":"Kind","default":"general"},"labels":{"additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/LabeledValue"},{"$ref":"#/components/schemas/LabelRef"}]},"propertyNames":{"maxLength":200,"minLength":1},"type":"object","title":"Labels"},"latest_version":{"anyOf":[{"$ref":"#/components/schemas/LatestVersion"},{"type":"null"}]},"rollout":{"$ref":"#/components/schemas/Rollout"},"overrides":{"items":{"$ref":"#/components/schemas/RolloutOverride"},"type":"array","title":"Overrides"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"json_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Json Schema"},"template_inputs_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Template Inputs Schema"},"type_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type Name"},"aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Aliases"},"example":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Example"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"prompt_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt Slug"}},"type":"object","required":["name","labels","rollout","overrides"],"title":"VariableConfig","description":"Configuration for a single managed variable including labels and rollout rules."},"VariableDefinitionCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"},"json_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Json Schema"},"template_inputs_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Template Inputs Schema"},"type_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Type Id"},"rollout":{"$ref":"#/components/schemas/RolloutData"},"overrides":{"items":{"$ref":"#/components/schemas/OverrideData"},"type":"array","title":"Overrides"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases"},"example":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Example"},"external":{"type":"boolean","title":"External"},"labels":{"additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/VersionLabelData"},{"$ref":"#/components/schemas/LatestLabelData"},{"$ref":"#/components/schemas/CodeDefaultLabelData"},{"$ref":"#/components/schemas/LabelRefLabelData"}]},"type":"object","title":"Labels"},"initial_serialized_value":{"type":"string","title":"Initial Serialized Value"}},"type":"object","required":["name","description","json_schema","rollout","overrides"],"title":"VariableDefinitionCreateRequest","description":"Request model for creating a variable definition."},"VariableDefinitionRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"type_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Type Id"},"type_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type Name"},"kind":{"type":"string","enum":["general","prompt"],"title":"Kind"},"name":{"type":"string","title":"Name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"prompt_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"json_schema":{"anyOf":[{"$ref":"#/components/schemas/JSONBData"},{"type":"null"}]},"template_inputs_schema":{"anyOf":[{"$ref":"#/components/schemas/JSONBData"},{"type":"null"}]},"labels":{"additionalProperties":{"$ref":"#/components/schemas/LabelRead"},"type":"object","title":"Labels"},"latest_version":{"anyOf":[{"$ref":"#/components/schemas/VersionRead"},{"type":"null"}]},"rollout":{"$ref":"#/components/schemas/RolloutData"},"overrides":{"items":{"$ref":"#/components/schemas/OverrideData"},"type":"array","title":"Overrides"},"aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Aliases"},"example":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Example"},"external":{"type":"boolean","title":"External"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name"}},"type":"object","required":["id","project_id","type_id","type_name","kind","name","display_name","prompt_slug","description","json_schema","template_inputs_schema","labels","latest_version","rollout","overrides","aliases","example","external","created_at","updated_at","created_by_name","updated_by_name"],"title":"VariableDefinitionRead","description":"Variable definition with current labels and latest version assembled."},"VariableDefinitionUpdateRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"},"json_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Json Schema"},"template_inputs_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Template Inputs Schema"},"type_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Type Id"},"rollout":{"$ref":"#/components/schemas/RolloutData"},"overrides":{"items":{"$ref":"#/components/schemas/OverrideData"},"type":"array","title":"Overrides"},"aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Aliases"},"example":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Example"},"external":{"type":"boolean","title":"External"},"labels":{"additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/VersionLabelData"},{"$ref":"#/components/schemas/LatestLabelData"},{"$ref":"#/components/schemas/CodeDefaultLabelData"},{"$ref":"#/components/schemas/LabelRefLabelData"}]},"type":"object","title":"Labels"}},"type":"object","title":"VariableDefinitionUpdateRequest","description":"Request model for updating a variable definition.\n\nShould be the same as `VariableDefinitionCreateRequest`, just with `total=False`."},"VariablesConfig":{"properties":{"variables":{"additionalProperties":{"$ref":"#/components/schemas/VariableConfig"},"type":"object","title":"Variables"}},"type":"object","required":["variables"],"title":"VariablesConfig","description":"Container for all managed variable configurations."},"VersionLabelData":{"properties":{"target_type":{"type":"string","const":"version","title":"Target Type"},"serialized_value":{"type":"string","title":"Serialized Value"},"version":{"type":"integer","title":"Version"}},"type":"object","required":["target_type","serialized_value"],"title":"VersionLabelData","description":"Label data pointing to a version by serialized value."},"VersionRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"variable_definition_id":{"type":"string","format":"uuid","title":"Variable Definition Id"},"version":{"type":"integer","title":"Version"},"serialized_value":{"type":"string","title":"Serialized Value"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"created_by":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"}},"type":"object","required":["id","variable_definition_id","version","serialized_value","description","created_at","created_by","created_by_name"],"title":"VersionRead","description":"A version as read from the database."},"WebPush":{"properties":{"type":{"type":"string","const":"web-push","title":"Type"},"recipients":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":50,"minItems":1,"title":"Recipients"}},"type":"object","required":["type","recipients"],"title":"WebPush","description":"Sends a browser notification to every device the named members turned push on for.\n\nRecipients are members rather than devices: a person, not a laptop, is who an alert is\naddressed to, and which of their devices are registered is theirs to change from their own\nsettings without editing anyone's alert. A member with no registered device receives\nnothing, exactly as a muted one does."},"Webhook":{"properties":{"type":{"type":"string","const":"webhook","title":"Type"},"format":{"$ref":"#/components/schemas/WebhookFormat"},"url":{"type":"string","title":"Url"}},"type":"object","required":["type","format","url"],"title":"Webhook"},"WebhookFormat":{"type":"string","enum":["auto","slack-blockkit","slack-legacy","raw-data"]},"WebhookUpdate":{"properties":{"type":{"type":"string","const":"webhook","title":"Type"},"format":{"$ref":"#/components/schemas/WebhookFormat"},"url":{"type":"string","title":"Url"}},"type":"object","required":["type","format","url"],"title":"WebhookUpdate","description":"Webhook config variant for updates that allows empty URL (signals \"keep existing credential\")."},"WriteTokenRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"project_name":{"type":"string","title":"Project Name"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"},"token_prefix":{"type":"string","title":"Token Prefix"},"active":{"type":"boolean","title":"Active"},"frontend_application_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Frontend Application Id"},"frontend_application_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Frontend Application Name"},"frontend_application_deleted":{"type":"boolean","title":"Frontend Application Deleted"}},"type":"object","required":["id","project_id","created_at","description","expires_at","project_name","created_by_name","token_prefix","active","frontend_application_id","frontend_application_name","frontend_application_deleted"],"title":"WriteTokenRead"}},"securitySchemes":{"OAuth2AuthorizationCodeBearer":{"type":"oauth2","flows":{"authorizationCode":{"refreshUrl":"/api/oauth/token","scopes":{"instance:admin":"Platform admin access to manage the whole self-hosted instance","instance:billing":"Read billing and usage data across the whole self-hosted instance","instance:scim":"SCIM provisioning across every organization in the self-hosted instance","organization:admin":"Platform admin access to manage organizations across the instance (self-hosted only)","organization:read":"Read organization details and settings","organization:write":"Edit organization settings","organization:create_project":"Ability to create projects within the organization","organization:read_member":"Read organization members and roles","organization:write_member":"Modify organization member roles and membership","organization:read_channel":"Read notification channels across the organization","organization:write_channel":"Create or modify notification channels across the organization","organization:create_api_key":"Create new API keys for the organization","organization:read_api_key":"Read API keys across the organization","organization:write_api_key":"Edit or revoke existing API keys across the organization","organization:read_invitation":"Read organization invitations","organization:write_invitation":"Create organization invitations","project:read":"View projects and their settings","project:write":"Rename or delete projects and change their settings","project:write_token":"Create write tokens","project:read_token":"Create read tokens","project:read_dashboard":"Read dashboards within a project","project:write_dashboard":"Create or modify dashboards within a project","project:read_workflow":"Read workflow configuration within a project","project:write_workflow":"Create, edit, and delete workflow configuration within a project","project:trigger_workflow":"Start workflow runs within a project","project:read_alert":"Read alerts and SLOs within a project","project:write_alert":"Create or modify alerts and SLOs within a project","project:read_datasets":"Read datasets within a project","project:write_datasets":"Create or modify datasets within a project","project:read_variables":"Read managed variables and prompts within a project","project:write_variables":"Create or modify managed variables and prompts within a project","project:read_external_variables":"Read external managed variables within a project via OFREP","project:gateway_proxy":"Proxy AI model requests through the project AI Gateway","project:read_otlp":"Query trace data submitted to the project via OTLP","project:write_otlp":"Send OTLP traces, logs, and metrics to the project","project:read_api_key":"Read API keys within a project","project:write_api_key":"Create, edit, or revoke API keys within a project","organization:scim":"SCIM access to organizations","organization:auditlog":"Read audit logs for the organization","organization:payment":"Read billing usage data for the organization","organization:read_trust_policy":"Read OIDC trust policies and their token exchange history","organization:write_trust_policy":"Create, modify, or delete OIDC trust policies and revoke issued workload tokens"},"authorizationUrl":"api/oauth/authorize","tokenUrl":"/api/oauth/token"}}}}},"servers":[{"url":"/api"}]}