{"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.\nThe one exception is `project:read_otlp` beside `project:read`, which lets the key query\nevery readable project through the MCP server. Any 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).\n\nThe replacement of a personal key expires no later than the calling API key, or the OAuth\ngrant behind the calling access token. So a personal key cannot renew itself past the\ncredential, and the sign-in, that it came from.","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","VIEW_SECRET"],"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/endpoints/":{"get":{"tags":["Gateway"],"summary":"List Gateway Endpoints","description":"List organization-owned Endpoints.","operationId":"list_gateway_endpoints_v1_gateway_endpoints__get","security":[{"OAuth2AuthorizationCodeBearer":["organization:read_gateway"]}],"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"}},{"name":"slug","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9][A-Za-z0-9._-]*$"},{"type":"null"}],"title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicGatewayEndpointsPage"}}}},"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"],"summary":"Create Gateway Endpoint","description":"Create an Endpoint and its complete Provider configuration atomically.","operationId":"create_gateway_endpoint_v1_gateway_endpoints__post","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_gateway"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayEndpointCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicGatewayEndpointRead"}}}},"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":"An Endpoint with the same slug already exists"},"422":{"description":"A Provider is not owned by this organization"}}}},"/v1/gateway/endpoints/{endpoint_id}/":{"get":{"tags":["Gateway"],"summary":"Get Gateway Endpoint","description":"Get an organization-owned Endpoint by UUID.","operationId":"get_gateway_endpoint_v1_gateway_endpoints__endpoint_id___get","security":[{"OAuth2AuthorizationCodeBearer":["organization:read_gateway"]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicGatewayEndpointRead"}}}},"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":"Endpoint not found"},"409":{"description":"Endpoint configuration is not supported by this API"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Gateway"],"summary":"Update Gateway Endpoint","description":"Update an organization-owned Endpoint description.","operationId":"update_gateway_endpoint_v1_gateway_endpoints__endpoint_id___patch","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_gateway"]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayEndpointUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicGatewayEndpointRead"}}}},"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":"Mutable organization-owned Endpoint not found"},"409":{"description":"Endpoint configuration is not supported by this API"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Gateway"],"summary":"Delete Gateway Endpoint","description":"Idempotently delete an organization-owned Endpoint.","operationId":"delete_gateway_endpoint_v1_gateway_endpoints__endpoint_id___delete","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_gateway"]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint 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":"Endpoint configuration is unsupported or deletion would expose a direct Provider"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/gateway/endpoints/{endpoint_id}/providers/":{"put":{"tags":["Gateway"],"summary":"Replace Gateway Endpoint Providers","description":"Atomically replace an Endpoint's complete Provider configuration.","operationId":"replace_gateway_endpoint_providers_v1_gateway_endpoints__endpoint_id__providers__put","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_gateway"]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayEndpointProvidersReplace"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicGatewayEndpointRead"}}}},"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":"Mutable organization-owned Endpoint not found"},"409":{"description":"Endpoint configuration is not supported by this API, or the replacement removes or pauses a Provider that a routing policy uses"},"422":{"description":"A Provider is not owned by this organization"}}}},"/v1/gateway/providers/":{"get":{"tags":["Gateway"],"summary":"List Gateway Providers","description":"List supported organization-owned Gateway providers.","operationId":"list_gateway_providers_v1_gateway_providers__get","security":[{"OAuth2AuthorizationCodeBearer":["organization:read_gateway"]}],"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"],"summary":"Create Gateway Provider","description":"Create a supported organization-owned Gateway provider.","operationId":"create_gateway_provider_v1_gateway_providers__post","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_gateway"]}],"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, or the organization has reached its BYOK Provider Limit"},"409":{"description":"A provider with the same slug already exists"},"422":{"description":"The request is not valid, or the endpoint is not allowed for this organization"},"503":{"description":"Provider stored, but Gateway did not confirm the refresh"}}}},"/v1/gateway/providers/{provider_id}/":{"get":{"tags":["Gateway"],"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_gateway"]}],"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"],"summary":"Update Gateway Provider","description":"Update pricing requirements, credentials, or Bedrock, Azure, and Vertex endpoint settings for a Gateway provider.","operationId":"update_gateway_provider_v1_gateway_providers__provider_id___patch","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_gateway"]}],"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"},"422":{"description":"The request is not valid, or the endpoint is not allowed for this organization"},"503":{"description":"Provider stored, but Gateway did not confirm the refresh"}}},"delete":{"tags":["Gateway"],"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_gateway"]}],"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/gateway/spending-limits/":{"get":{"tags":["Gateway"],"summary":"Get Organization Spending Limits","description":"Get the organization's Gateway spending limits.\n\nAn organization limit caps the Gateway spend of every project and credential in the organization.","operationId":"get_organization_spending_limits_v1_gateway_spending_limits__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewaySpendingLimitsRead"}}}},"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 the AI Gateway"}},"security":[{"OAuth2AuthorizationCodeBearer":["organization:read_gateway"]}]},"patch":{"tags":["Gateway"],"summary":"Update Organization Spending Limits","description":"Update the organization's Gateway spending limits.\n\nA number sets the limit for that window and `null` removes it. A window that the body omits is unchanged.\nThe Gateway checks spend after each request, so the request that goes over a limit completes and later\nrequests are blocked until the window resets.","operationId":"update_organization_spending_limits_v1_gateway_spending_limits__patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewaySpendingLimitsPatch"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewaySpendingLimitsRead"}}}},"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 the AI Gateway"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":["organization:write_gateway"]}]}},"/v1/gateway/spending-limits/projects/{project_id}/":{"get":{"tags":["Gateway"],"summary":"Get Project Spending Limits","description":"Get a project's Gateway spending limits.","operationId":"get_project_spending_limits_v1_gateway_spending_limits_projects__project_id___get","security":[{"OAuth2AuthorizationCodeBearer":["organization:read_gateway"]}],"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/GatewaySpendingLimitsRead"}}}},"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 the AI Gateway"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Gateway"],"summary":"Update Project Spending Limits","description":"Update a project's Gateway spending limits.\n\nA number sets the limit for that window and `null` removes it. A window that the body omits is unchanged.\nWhen the project goes over a limit, the Gateway blocks every credential in the project until the window\nresets.","operationId":"update_project_spending_limits_v1_gateway_spending_limits_projects__project_id___patch","security":[{"OAuth2AuthorizationCodeBearer":["organization:write_gateway"]}],"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/GatewaySpendingLimitsPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewaySpendingLimitsRead"}}}},"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 the AI Gateway"},"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","description":"Create a dashboard from a definition.\n\nThe request's name and project scope determine the saved identity.\nDefinition metadata is optional and is ignored.","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","description":"Update a dashboard's name or full definition.\n\nSaved panel positions and visibility are preserved by default. Supply a full\ndefinition with `replace_layout=true` to replace them. An omitted or null definition\npreserves the current definition and placements.","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"}},{"name":"replace_layout","in":"query","required":false,"schema":{"type":"boolean","description":"Replace saved panel positions and visibility with the supplied definition.","default":false,"title":"Replace Layout"},"description":"Replace saved panel positions and visibility with the supplied definition."}],"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"}}}},"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/projects/{project_id}/fleet/collector-policies/":{"get":{"tags":["Projects","Projects"],"summary":"List Collector Policies","description":"List the project's Collector assignments, the policies a host can enroll with.","operationId":"list_collector_policies_v1_projects__project_id__fleet_collector_policies__get","security":[{"OAuth2AuthorizationCodeBearer":["project:read_fleet"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FleetPage_CollectorPolicyRead_"}}}},"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":"Fleet is not enabled"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/fleet/host-enrollments/":{"post":{"tags":["Projects","Projects"],"summary":"Create Host Enrollment","description":"Enroll one managed Collector host and return its runtime credential and OpAMP URL.\n\nPolicies that reference `LOGFIRE_TOKEN` also receive a dedicated ingest credential.\nThose policies require `project:write_token` in addition to the Fleet enrollment scope.","operationId":"create_host_enrollment_v1_projects__project_id__fleet_host_enrollments__post","security":[{"OAuth2AuthorizationCodeBearer":["project:enroll_fleet"]}],"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/HostEnrollmentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostEnrollmentRead"}}}},"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":"Fleet is not enabled, or the policy does not exist"},"409":{"description":"The registration key was used with a different request"},"422":{"description":"The policy is not a Collector policy"}}}},"/v1/projects/{project_id}/fleet/installations/":{"get":{"tags":["Projects","Projects"],"summary":"List Installations","description":"List the project's installations with their connection, health, and applied policy.","operationId":"list_installations_v1_projects__project_id__fleet_installations__get","security":[{"OAuth2AuthorizationCodeBearer":["project:read_fleet"]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FleetPage_InstallationStatusRead_"}}}},"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":"Fleet is not enabled"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/fleet/installations/{installation_id}/":{"get":{"tags":["Projects","Projects"],"summary":"Get Installation","description":"Return one installation's connection, health, and applied policy.","operationId":"get_installation_v1_projects__project_id__fleet_installations__installation_id___get","security":[{"OAuth2AuthorizationCodeBearer":["project:read_fleet"]}],"parameters":[{"name":"installation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Installation 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/InstallationStatusRead"}}}},"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":"Fleet is not enabled, or the installation does not exist"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/fleet/installations/{installation_id}/revoke/":{"post":{"tags":["Projects","Projects"],"summary":"Revoke Installation","description":"Revoke every active credential bound to one installation, so it can no longer connect.","operationId":"revoke_installation_v1_projects__project_id__fleet_installations__installation_id__revoke__post","security":[{"OAuth2AuthorizationCodeBearer":["project:manage_fleet"]}],"parameters":[{"name":"installation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Installation 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/InstallationRevocationRead"}}}},"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":"Fleet is not enabled, or the installation does not exist"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/{project_id}/fleet/enrollment-tokens/":{"post":{"tags":["Projects","Projects"],"summary":"Create Enrollment Token","description":"Create a scoped host enrollment key and its profile atomically.\n\nThe Supervisor exchanges the key through OpAMP. The profile fixes the policy, environment and host allowance.","operationId":"create_enrollment_token_v1_projects__project_id__fleet_enrollment_tokens__post","security":[{"OAuth2AuthorizationCodeBearer":["project:manage_fleet"]}],"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/EnrollmentTokenCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrollmentTokenRead"}}}},"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":"Fleet is not enabled, or the policy does not exist"},"422":{"description":"The policy is not a Collector policy"}}}},"/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\nThe OIDC scopes (e.g. `openid`) are passed through. Platform resource scopes are\nfiltered by permissions, and a scope that the platform does not know is dropped.","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","parameters":[{"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_device_authorization_oauth_device_code_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceAuthorizationResponse"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"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"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["id","token","expires_at"],"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":[]},"instance_policy":{"anyOf":[{"$ref":"#/components/schemas/AlertInstancePolicy"},{"type":"null"}],"description":"Track each result row as its own occurrence. Omit it to evaluate the whole result as one."}},"type":"object","required":["name","query","time_window","frequency","watermark","notify_when"],"title":"AlertCreate"},"AlertInstancePolicy":{"properties":{"identity_columns":{"items":{"type":"string","maxLength":128,"minLength":1},"type":"array","maxItems":8,"minItems":1,"title":"Identity Columns","description":"Result columns whose values identify an occurrence. Names must be unique."},"pending_runs":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Pending Runs","description":"Consecutive matching runs before a new occurrence fires."},"missing_runs":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Missing Runs","description":"Consecutive runs without the occurrence before it closes."},"missing_behavior":{"type":"string","enum":["no_longer_matching","expire"],"title":"Missing Behavior","description":"The close reason of an occurrence that is missing for `missing_runs` runs."},"continuity_runs":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Continuity Runs","description":"Deprecated and ignored by settlement: runs that fail or are skipped never close an occurrence. Still required and stored for compatibility, and changing it still counts as a configuration change. At least `missing_runs`."}},"type":"object","required":["identity_columns","pending_runs","missing_runs","missing_behavior","continuity_runs"],"title":"AlertInstancePolicy","description":"Track each result row as its own occurrence, keyed by the values of the identity columns.\n\nIdentity column names are unique. `continuity_runs` is deprecated and ignored by settlement, and at least `missing_runs`."},"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"},"instance_policy":{"anyOf":[{"$ref":"#/components/schemas/AlertInstancePolicy"},{"type":"null"}]},"integration_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Id"},"schedule_warning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Warning"},"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"},"instance_policy":{"anyOf":[{"$ref":"#/components/schemas/AlertInstancePolicy"},{"type":"null"}],"description":"Replaces the instance policy. Send `null` to remove it. Omit to keep it."}},"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"},"instance_policy":{"anyOf":[{"$ref":"#/components/schemas/AlertInstancePolicy"},{"type":"null"}]},"integration_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Id"},"schedule_warning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Warning"},"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":{"anyOf":[{"type":"string","enum":["INSERT","UPDATE","DELETE","VIEW","LOGIN","FAILED_LOGIN","LOGOUT","CLAIM_INVITATION","REVOKE_INVITATION","VERIFY","SSO_SIGN_IN_ATTEMPT","VIEW_SECRET"]},{"type":"string"}],"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":{"anyOf":[{"type":"string","enum":["INSERT","UPDATE","DELETE","VIEW","LOGIN","FAILED_LOGIN","LOGOUT","CLAIM_INVITATION","REVOKE_INVITATION","VERIFY","SSO_SIGN_IN_ATTEMPT","VIEW_SECRET"]},{"type":"string"}],"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"},"AzureApiKeyCredentials":{"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":"AzureApiKeyCredentials"},"AzureProvider":{"properties":{"vendor":{"type":"string","const":"azure","title":"Vendor"},"config":{"$ref":"#/components/schemas/AzureProviderConfig"}},"additionalProperties":false,"type":"object","required":["vendor","config"],"title":"AzureProvider"},"AzureProviderConfig":{"properties":{"endpoint":{"type":"string","title":"Endpoint"},"credentials":{"$ref":"#/components/schemas/AzureApiKeyCredentials"}},"additionalProperties":false,"type":"object","required":["endpoint","credentials"],"title":"AzureProviderConfig"},"AzureProviderPatch":{"properties":{"vendor":{"type":"string","const":"azure","title":"Vendor"},"config":{"$ref":"#/components/schemas/AzureProviderPatchConfig"}},"additionalProperties":false,"type":"object","required":["vendor","config"],"title":"AzureProviderPatch"},"AzureProviderPatchConfig":{"properties":{"credentials":{"$ref":"#/components/schemas/AzureApiKeyCredentials"},"endpoint":{"type":"string","title":"Endpoint"}},"additionalProperties":false,"type":"object","required":["credentials"],"title":"AzureProviderPatchConfig"},"AzureProviderRead":{"properties":{"vendor":{"type":"string","const":"azure","title":"Vendor"},"config":{"$ref":"#/components/schemas/AzureProviderReadConfig"}},"type":"object","required":["vendor","config"],"title":"AzureProviderRead"},"AzureProviderReadConfig":{"properties":{"endpoint":{"type":"string","title":"Endpoint"}},"type":"object","required":["endpoint"],"title":"AzureProviderReadConfig"},"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."},"CollectorPolicyRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"revision":{"type":"integer","title":"Revision"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","revision","created_at"],"title":"CollectorPolicyRead","description":"A Collector assignment; `id` is what `host-enrollments` takes as `assignment_id`."},"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"},"CredentialRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"profile_id":{"type":"string","format":"uuid","title":"Profile Id"},"installation_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Installation Id"},"kind":{"type":"string","enum":["bootstrap","runtime"],"title":"Kind"},"name":{"type":"string","title":"Name"},"token_hint":{"type":"string","title":"Token Hint"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","project_id","profile_id","installation_id","kind","name","token_hint","expires_at","revoked_at","created_at"],"title":"CredentialRead"},"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"},"require_pushed_authorization_requests":{"title":"Require Pushed Authorization Requests"}},"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"},"require_pushed_authorization_requests":{"type":"boolean","title":"Require Pushed Authorization Requests"},"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","spec"],"title":"DashboardCreate"},"DashboardCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"slug":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9._~-]+$","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","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"},"EnrollmentTokenCreate":{"properties":{"installation_name":{"anyOf":[{"type":"string","maxLength":200,"minLength":1,"pattern":"\\S"},{"type":"null"}],"title":"Installation Name","description":"Display name for a single host"},"name":{"type":"string","maxLength":200,"minLength":1,"pattern":"\\S","title":"Name","description":"Enrollment key label"},"assignment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignment Id"},"environment":{"type":"string","maxLength":200,"title":"Environment"},"expires_in":{"type":"integer","maximum":365.0,"minimum":1.0,"title":"Expires In","description":"Token lifetime in days"},"max_installations":{"type":"integer","maximum":100000.0,"minimum":1.0,"title":"Max Installations","description":"How many hosts can enroll with the token (default 1000)"}},"type":"object","required":["assignment_id","environment","expires_in"],"title":"EnrollmentTokenCreate"},"EnrollmentTokenRead":{"properties":{"profile":{"$ref":"#/components/schemas/ProfileRead"},"credential":{"$ref":"#/components/schemas/CredentialRead"},"token":{"type":"string","format":"password","title":"Token","description":"A bootstrap credential the Supervisor exchanges through OpAMP","writeOnly":true}},"type":"object","required":["profile","credential","token"],"title":"EnrollmentTokenRead"},"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"},"FleetPage_CollectorPolicyRead_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CollectorPolicyRead"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items","next_cursor"],"title":"FleetPage"},"FleetPage_InstallationStatusRead_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/InstallationStatusRead"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items","next_cursor"],"title":"FleetPage"},"GatewayEndpointCreate":{"properties":{"slug":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._-]*$","title":"Slug"},"providers":{"items":{"$ref":"#/components/schemas/GatewayEndpointProviderInput"},"type":"array","maxItems":100,"minItems":1,"title":"Providers"},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description"}},"additionalProperties":false,"type":"object","required":["slug","providers"],"title":"GatewayEndpointCreate"},"GatewayEndpointProviderInput":{"properties":{"provider_id":{"type":"string","format":"uuid","title":"Provider Id"},"priority":{"type":"integer","maximum":2147483647.0,"minimum":0.0,"title":"Priority","description":"The Gateway tries Providers with a higher priority first. Providers with the same priority are tried in a random order that follows their weights."},"weight":{"type":"number","exclusiveMinimum":0.0,"title":"Weight"},"active":{"type":"boolean","title":"Active"}},"additionalProperties":false,"type":"object","required":["provider_id"],"title":"GatewayEndpointProviderInput"},"GatewayEndpointProvidersReplace":{"properties":{"providers":{"items":{"$ref":"#/components/schemas/GatewayEndpointProviderInput"},"type":"array","maxItems":100,"minItems":1,"title":"Providers"}},"additionalProperties":false,"type":"object","required":["providers"],"title":"GatewayEndpointProvidersReplace"},"GatewayEndpointUpdate":{"properties":{"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description"}},"additionalProperties":false,"type":"object","title":"GatewayEndpointUpdate"},"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"},{"$ref":"#/components/schemas/AzureProviderPatch"},{"$ref":"#/components/schemas/GoogleVertexProviderPatch"}],"title":"Provider","discriminator":{"propertyName":"vendor","mapping":{"anthropic":"#/components/schemas/FixedApiKeyProviderPatch","azure":"#/components/schemas/AzureProviderPatch","bedrock":"#/components/schemas/BedrockProviderPatch","doubleword":"#/components/schemas/FixedApiKeyProviderPatch","google-gla":"#/components/schemas/FixedApiKeyProviderPatch","google-vertex":"#/components/schemas/GoogleVertexProviderPatch","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"},{"$ref":"#/components/schemas/AzureProvider"},{"$ref":"#/components/schemas/GoogleVertexProvider"}],"title":"Provider","discriminator":{"propertyName":"vendor","mapping":{"anthropic":"#/components/schemas/FixedApiKeyProvider","azure":"#/components/schemas/AzureProvider","bedrock":"#/components/schemas/BedrockProvider","doubleword":"#/components/schemas/FixedApiKeyProvider","google-gla":"#/components/schemas/FixedApiKeyProvider","google-vertex":"#/components/schemas/GoogleVertexProvider","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"},{"$ref":"#/components/schemas/AzureProviderPatch"},{"$ref":"#/components/schemas/GoogleVertexProviderPatch"}],"title":"Provider","discriminator":{"propertyName":"vendor","mapping":{"anthropic":"#/components/schemas/FixedApiKeyProviderPatch","azure":"#/components/schemas/AzureProviderPatch","bedrock":"#/components/schemas/BedrockProviderPatch","doubleword":"#/components/schemas/FixedApiKeyProviderPatch","google-gla":"#/components/schemas/FixedApiKeyProviderPatch","google-vertex":"#/components/schemas/GoogleVertexProviderPatch","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"},{"$ref":"#/components/schemas/AzureProviderRead"},{"$ref":"#/components/schemas/GoogleVertexProviderRead"}],"title":"Provider","discriminator":{"propertyName":"vendor","mapping":{"anthropic":"#/components/schemas/FixedApiKeyProviderRead","azure":"#/components/schemas/AzureProviderRead","bedrock":"#/components/schemas/BedrockProviderRead","doubleword":"#/components/schemas/FixedApiKeyProviderRead","google-gla":"#/components/schemas/FixedApiKeyProviderRead","google-vertex":"#/components/schemas/GoogleVertexProviderRead","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."},"GatewaySpendingLimitsPatch":{"properties":{"daily_usd":{"anyOf":[{"type":"integer","maximum":500000000.0,"minimum":1.0},{"type":"null"}],"title":"Daily Usd"},"weekly_usd":{"anyOf":[{"type":"integer","maximum":500000000.0,"minimum":1.0},{"type":"null"}],"title":"Weekly Usd"},"monthly_usd":{"anyOf":[{"type":"integer","maximum":500000000.0,"minimum":1.0},{"type":"null"}],"title":"Monthly Usd"}},"additionalProperties":false,"type":"object","title":"GatewaySpendingLimitsPatch"},"GatewaySpendingLimitsRead":{"properties":{"daily_usd":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Daily Usd"},"weekly_usd":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Weekly Usd"},"monthly_usd":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Monthly Usd"}},"type":"object","required":["daily_usd","weekly_usd","monthly_usd"],"title":"GatewaySpendingLimitsRead"},"GetDashboardResponse":{"properties":{"dashboard":{"$ref":"#/components/schemas/DashboardDefinitionRead"}},"type":"object","required":["dashboard"],"title":"GetDashboardResponse"},"GoogleServiceAccountJsonCredentials":{"properties":{"type":{"type":"string","const":"service-account-json","title":"Type"},"value":{"type":"string","format":"password","title":"Value","writeOnly":true}},"additionalProperties":false,"type":"object","required":["type","value"],"title":"GoogleServiceAccountJsonCredentials"},"GoogleVertexProvider":{"properties":{"vendor":{"type":"string","const":"google-vertex","title":"Vendor"},"config":{"$ref":"#/components/schemas/GoogleVertexProviderConfig"}},"additionalProperties":false,"type":"object","required":["vendor","config"],"title":"GoogleVertexProvider"},"GoogleVertexProviderConfig":{"properties":{"endpoint":{"type":"string","title":"Endpoint"},"credentials":{"$ref":"#/components/schemas/GoogleServiceAccountJsonCredentials"}},"additionalProperties":false,"type":"object","required":["endpoint","credentials"],"title":"GoogleVertexProviderConfig"},"GoogleVertexProviderPatch":{"properties":{"vendor":{"type":"string","const":"google-vertex","title":"Vendor"},"config":{"$ref":"#/components/schemas/GoogleVertexProviderPatchConfig"}},"additionalProperties":false,"type":"object","required":["vendor","config"],"title":"GoogleVertexProviderPatch"},"GoogleVertexProviderPatchConfig":{"properties":{"credentials":{"$ref":"#/components/schemas/GoogleServiceAccountJsonCredentials"},"endpoint":{"type":"string","title":"Endpoint"}},"additionalProperties":false,"type":"object","required":["credentials"],"title":"GoogleVertexProviderPatchConfig"},"GoogleVertexProviderRead":{"properties":{"vendor":{"type":"string","const":"google-vertex","title":"Vendor"},"config":{"$ref":"#/components/schemas/GoogleVertexProviderReadConfig"}},"type":"object","required":["vendor","config"],"title":"GoogleVertexProviderRead"},"GoogleVertexProviderReadConfig":{"properties":{"endpoint":{"type":"string","title":"Endpoint"}},"type":"object","required":["endpoint"],"title":"GoogleVertexProviderReadConfig"},"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"},"HostEnrollmentCreate":{"properties":{"assignment_id":{"type":"string","format":"uuid","title":"Assignment Id"},"name":{"type":"string","maxLength":200,"minLength":1,"pattern":"\\S","title":"Name"},"environment":{"type":"string","maxLength":200,"minLength":1,"title":"Environment"},"registration_key":{"type":"string","format":"uuid","title":"Registration Key"}},"type":"object","required":["assignment_id","name","environment","registration_key"],"title":"HostEnrollmentCreate"},"HostEnrollmentRead":{"properties":{"telemetry_token":{"type":"string","format":"password","title":"Telemetry Token","description":"Installation-owned Logfire ingest credential. Present only when issued with this runtime credential.","writeOnly":true},"installation":{"$ref":"#/components/schemas/InstallationRead"},"credential":{"$ref":"#/components/schemas/CredentialRead"},"token":{"type":"string","format":"password","title":"Token","writeOnly":true},"opamp_url":{"type":"string","title":"Opamp Url"},"credential_delivery":{"type":"string","enum":["issued","replaced"],"title":"Credential Delivery","description":"`replaced` on a retry: every earlier credential of the installation is now revoked"}},"type":"object","required":["installation","credential","token","opamp_url","credential_delivery"],"title":"HostEnrollmentRead"},"InstallationRead":{"properties":{"bridge":{"anyOf":[{"$ref":"#/components/schemas/OperatorBridgeSettings"},{"type":"null"}]},"id":{"type":"string","format":"uuid","title":"Id"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"profile_id":{"type":"string","format":"uuid","title":"Profile Id"},"name":{"type":"string","title":"Name"},"kind":{"type":"string","enum":["collector","sdk"],"title":"Kind"},"placement":{"type":"string","enum":["host","kubernetes","application"],"title":"Placement"},"mode":{"type":"string","enum":["managed","monitored"],"title":"Mode"},"environment":{"type":"string","title":"Environment"},"assignment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignment Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","project_id","profile_id","name","kind","placement","mode","environment","assignment_id","created_at"],"title":"InstallationRead"},"InstallationRevocationRead":{"properties":{"installation_id":{"type":"string","format":"uuid","title":"Installation Id"},"revoked_count":{"type":"integer","title":"Revoked Count"}},"type":"object","required":["installation_id","revoked_count"],"title":"InstallationRevocationRead"},"InstallationStatusRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"profile_id":{"type":"string","format":"uuid","title":"Profile Id"},"name":{"type":"string","title":"Name"},"kind":{"type":"string","enum":["collector","sdk"],"title":"Kind"},"placement":{"type":"string","enum":["host","kubernetes","application"],"title":"Placement"},"mode":{"type":"string","enum":["managed","monitored"],"title":"Mode"},"environment":{"type":"string","title":"Environment"},"assignment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignment Id","description":"The collector policy (`collector-policies` id) it enrolled with"},"instance_count":{"type":"integer","title":"Instance Count"},"connected_count":{"type":"integer","title":"Connected Count"},"disconnected_count":{"type":"integer","title":"Disconnected Count"},"healthy_count":{"type":"integer","title":"Healthy Count"},"degraded_count":{"type":"integer","title":"Degraded Count"},"applied_count":{"type":"integer","title":"Applied Count"},"pending_count":{"type":"integer","title":"Pending Count"},"failed_count":{"type":"integer","title":"Failed Count"},"last_seen_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Seen At","description":"The latest observation from any instance"},"runtime":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Runtime"},"configuration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Configuration Id","description":"The applied configuration document; not a collector policy id. Null when instances differ"},"configuration_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Configuration Name"},"configuration_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Configuration Version","description":"The configuration document version assigned"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","profile_id","name","kind","placement","mode","environment","assignment_id","instance_count","connected_count","disconnected_count","healthy_count","degraded_count","applied_count","pending_count","failed_count","last_seen_at","runtime","configuration_id","configuration_name","configuration_version","created_at"],"title":"InstallationStatusRead","description":"One installation with the connection, health, and applied-policy counts the UI inventory shows."},"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","organization:read_gateway","organization:write_gateway","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:execute_agent_sandboxes","project:execute_monty","project:read_otlp","project:write_otlp","project:read_api_key","project:write_api_key","project:read_fleet","project:enroll_fleet","project:manage_fleet","project:write_sourcemaps"]},"OperatorBridgeSettings":{"properties":{"name":{"type":"string","maxLength":63,"minLength":1,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","title":"Name"},"namespaces":{"items":{"type":"string","maxLength":63,"minLength":1,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"type":"array","maxItems":100,"minItems":1,"title":"Namespaces"}},"additionalProperties":false,"type":"object","required":["namespaces"],"title":"OperatorBridgeSettings"},"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"},"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","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"},"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"},"ProfileRead":{"properties":{"installation_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Installation Name"},"bridge":{"anyOf":[{"$ref":"#/components/schemas/OperatorBridgeSettings"},{"type":"null"}]},"id":{"type":"string","format":"uuid","title":"Id"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"name":{"type":"string","title":"Name"},"kind":{"type":"string","enum":["collector","sdk"],"title":"Kind"},"placement":{"type":"string","enum":["host","kubernetes","application"],"title":"Placement"},"mode":{"type":"string","enum":["managed","monitored"],"title":"Mode"},"environment":{"type":"string","title":"Environment"},"assignment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignment Id"},"max_installations":{"type":"integer","title":"Max Installations"},"installation_count":{"type":"integer","title":"Installation Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","project_id","name","kind","placement","mode","environment","assignment_id","max_installations","installation_count","created_at"],"title":"ProfileRead"},"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"},"PublicGatewayEndpointProviderRead":{"properties":{"provider_id":{"type":"string","format":"uuid","title":"Provider Id"},"priority":{"type":"integer","title":"Priority"},"weight":{"type":"number","title":"Weight"},"active":{"type":"boolean","title":"Active"}},"type":"object","required":["provider_id","priority","weight","active"],"title":"PublicGatewayEndpointProviderRead"},"PublicGatewayEndpointRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"slug":{"type":"string","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"providers":{"items":{"$ref":"#/components/schemas/PublicGatewayEndpointProviderRead"},"type":"array","title":"Providers"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","slug","description","providers","created_at"],"title":"PublicGatewayEndpointRead"},"PublicGatewayEndpointsPage":{"properties":{"endpoints":{"items":{"$ref":"#/components/schemas/PublicGatewayEndpointRead"},"type":"array","title":"Endpoints"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["endpoints","next_cursor"],"title":"PublicGatewayEndpointsPage"},"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"],"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"],"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"],"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:execute_agent_sandboxes":"Run code in this project's agent sandboxes","project:execute_monty":"Run code in this project's agent sandboxes","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","project:read_fleet":"Read Fleet Collector policies and installations within a project","project:enroll_fleet":"Enroll hosts into Fleet and issue their credentials, including project write tokens","project:manage_fleet":"Revoke Fleet installations and create reusable enrollment keys that let any host join Fleet","project:write_sourcemaps":"Upload, list, and delete source maps and bundles 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","organization:read_gateway":"Read AI Gateway administration, such as providers","organization:write_gateway":"Create, modify, or delete AI Gateway administration, such as providers and their credentials"},"authorizationUrl":"api/oauth/authorize","tokenUrl":"/api/oauth/token"}}}}},"servers":[{"url":"/api"}]}