openapi: 3.0.3 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 [OAuth App](https://logfire.pydantic.dev/-/redirect/default-org/settings/developer/oauth-apps) or a [Personal Access Token](https://logfire.pydantic.dev/-/redirect/default-org/settings/developer/pat). ' 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. A non-personal (service) caller sees only service keys (`user_id IS NULL`). A personal caller additionally sees its own personal keys; another user''s personal keys 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. The new key can never exceed the caller''s own grant: its scopes, personal/service kind, and project scope are all constrained to the caller. Creation is audit-logged by the service layer.' 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 '404': description: Project not found '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`. An 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' '404': description: API key not found '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. Requires an API key with the `organization:auditlog` scope. Only available for organizations with an enterprise_cloud subscription or self-hosted deployments. The 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 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. Requires an API key with the `organization:auditlog` scope. Only 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. Use periodOffset=0 for the current period, -1 for the previous, -2 for two periods ago. Returns usage totals, per-project breakdown, and cost calculations for 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 currently stored in `platform_config` (self-hosted admin only). operationId: get_group_mappings_v1_group_mappings__get 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' security: - OAuth2AuthorizationCodeBearer: - instance:admin put: tags: - Group Mappings summary: Update Group Mappings description: 'Replace the group-organization mapping stored in `platform_config` (self-hosted admin only). Every `organization_name` and `project_name` in the payload must correspond to an existing record in the database; otherwise a 400 is returned.' 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' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2AuthorizationCodeBearer: - instance:admin /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 responses: '200': description: Successful Response content: application/json: schema: items: $ref: '#/components/schemas/InstanceUsageReportRowV1' type: array 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' security: - OAuth2AuthorizationCodeBearer: - instance:billing /v1/instance/group-mappings/: get: tags: - Instance - Group Mappings summary: Get Group Mappings description: Return the group-organization mapping currently stored in `platform_config` (self-hosted admin only). operationId: get_group_mappings_v1_instance_group_mappings__get 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' security: - OAuth2AuthorizationCodeBearer: - instance:admin put: tags: - Instance - Group Mappings summary: Update Group Mappings description: 'Replace the group-organization mapping stored in `platform_config` (self-hosted admin only). Every `organization_name` and `project_name` in the payload must correspond to an existing record in the database; otherwise a 400 is returned.' 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' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2AuthorizationCodeBearer: - instance:admin /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 a single-use organization invitation for the token's organization. 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/organizations/: get: tags: - Organizations summary: List Organizations description: 'List all organizations (self-hosted admin only). This 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). This 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). operationId: get_organization_v1_organizations__organization_id___get 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). operationId: update_organization_v1_organizations__organization_id___put 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). operationId: delete_organization_v1_organizations__organization_id___delete 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 a single-use organization invitation and return its join URL (self-hosted admin only). This endpoint is deprecated. Use `/api/v1/invitations/` with an org-context token instead.' operationId: create_self_hosted_organization_invitation_v1_organizations__organization_id__invitations__post deprecated: true security: - OAuth2AuthorizationCodeBearer: - organization:admin parameters: - name: organization_id in: path required: true schema: type: string format: uuid title: Organization Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrganizationInvitationCreateV1' responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OrganizationInvitationCreateResponseV1' '429': description: Rate limit exceeded headers: Retry-After: description: Seconds to wait before retrying. schema: type: string content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/projects/: get: tags: - Projects - Projects summary: List Projects operationId: list_projects_v1_projects__get responses: '200': description: Successful Response content: application/json: schema: items: $ref: '#/components/schemas/ProjectListRead' type: array title: Response List Projects V1 Projects Get '429': description: Rate limit exceeded headers: Retry-After: description: Seconds to wait before retrying. schema: type: string content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionError' security: - OAuth2AuthorizationCodeBearer: - project:read post: tags: - Projects - Projects summary: Create Project operationId: create_project_v1_projects__post requestBody: content: application/json: schema: $ref: '#/components/schemas/ProjectCreate' required: true responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ProjectRead' '429': description: Rate limit exceeded headers: Retry-After: description: Seconds to wait before retrying. schema: type: string content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2AuthorizationCodeBearer: - organization:create_project /v1/projects/{project_id}/: get: tags: - Projects - Projects summary: Get Project Info operationId: get_project_info_v1_projects__project_id___get security: - OAuth2AuthorizationCodeBearer: - project:read parameters: - name: project_id in: path required: true schema: type: string format: uuid title: Project Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ProjectListRead' '429': description: Rate limit exceeded headers: Retry-After: description: Seconds to wait before retrying. schema: type: string content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - Projects - Projects summary: Update Project operationId: update_project_v1_projects__project_id___put security: - OAuth2AuthorizationCodeBearer: - project:write parameters: - name: project_id in: path required: true schema: type: string format: uuid title: Project Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ProjectUpdate' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ProjectRead' '429': description: Rate limit exceeded headers: Retry-After: description: Seconds to wait before retrying. schema: type: string content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - Projects - Projects summary: Delete Project operationId: delete_project_v1_projects__project_id___delete security: - OAuth2AuthorizationCodeBearer: - project:write parameters: - name: project_id in: path required: true schema: type: string format: uuid title: Project Id responses: '204': description: Successful Response '429': description: Rate limit exceeded headers: Retry-After: description: Seconds to wait before retrying. schema: type: string content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/projects/{project_id}/dashboards/: get: tags: - Projects - Dashboards summary: List Dashboards operationId: list_dashboards_v1_projects__project_id__dashboards__get security: - OAuth2AuthorizationCodeBearer: - project:read_dashboard parameters: - name: project_id in: path required: true schema: type: string format: uuid title: Project Id responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/DashboardSummary' title: Response List Dashboards V1 Projects Project Id Dashboards Get '429': description: Rate limit exceeded headers: Retry-After: description: Seconds to wait before retrying. schema: type: string content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' post: tags: - Projects - Dashboards summary: Create Dashboard operationId: create_dashboard_v1_projects__project_id__dashboards__post security: - OAuth2AuthorizationCodeBearer: - project:write_dashboard parameters: - name: project_id in: path required: true schema: type: string format: uuid title: Project Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DashboardCreateRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Dashboard' '429': description: Rate limit exceeded headers: Retry-After: description: Seconds to wait before retrying. schema: type: string content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionError' '409': description: Dashboard with this slug already exists '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/projects/{project_id}/dashboards/{dashboard_id}/: get: tags: - Projects - Dashboards summary: Get Dashboard operationId: get_dashboard_v1_projects__project_id__dashboards__dashboard_id___get security: - OAuth2AuthorizationCodeBearer: - project:read_dashboard parameters: - name: dashboard_id in: path required: true schema: type: string format: uuid title: Dashboard Id - name: project_id in: path required: true schema: type: string format: uuid title: Project Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/GetDashboardResponse' '429': description: Rate limit exceeded headers: Retry-After: description: Seconds to wait before retrying. schema: type: string content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - Projects - Dashboards summary: Update Dashboard operationId: update_dashboard_v1_projects__project_id__dashboards__dashboard_id___put security: - OAuth2AuthorizationCodeBearer: - project:write_dashboard parameters: - name: dashboard_id in: path required: true schema: type: string format: uuid title: Dashboard Id - name: project_id in: path required: true schema: type: string format: uuid title: Project Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DashboardUpdateRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Dashboard' '429': description: Rate limit exceeded headers: Retry-After: description: Seconds to wait before retrying. schema: type: string content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionError' '409': description: Dashboard version conflict '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - Projects - Dashboards summary: Delete Dashboard operationId: delete_dashboard_v1_projects__project_id__dashboards__dashboard_id___delete security: - OAuth2AuthorizationCodeBearer: - project:write_dashboard parameters: - name: dashboard_id in: path required: true schema: type: string format: uuid title: Dashboard Id - name: project_id in: path required: true schema: type: string format: uuid title: Project Id responses: '204': description: Successful Response '429': description: Rate limit exceeded headers: Retry-After: description: Seconds to wait before retrying. schema: type: string content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/projects/{project_id}/alerts/: get: tags: - Projects - Alerts summary: List Alerts description: List all alerts for a project. operationId: list_alerts_v1_projects__project_id__alerts__get security: - OAuth2AuthorizationCodeBearer: - project:read_alert parameters: - name: project_id in: path required: true schema: type: string format: uuid title: Project Id responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/AlertWithLastRun' title: Response List Alerts V1 Projects Project Id Alerts Get '429': description: Rate limit exceeded headers: Retry-After: description: Seconds to wait before retrying. schema: type: string content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' post: tags: - Projects - Alerts summary: Create Alert description: Create a new alert. operationId: create_alert_v1_projects__project_id__alerts__post security: - OAuth2AuthorizationCodeBearer: - project:write_alert parameters: - name: project_id in: path required: true schema: type: string format: uuid title: Project Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AlertCreate' responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AlertRead' '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/AlertRead' '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. The 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. The old token is immediately expired (expires_at set to now) and a new token is created in a single atomic operation. Returns the newly created token.' 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 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' '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}/expire/: patch: tags: - Projects - Projects summary: Expire Write Token description: Force-expire a write token immediately by setting its expiry to now. 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' '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. 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' '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. The old token is immediately expired (expires_at set to now) and a new token is created in 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. Returns the complete configuration in a format compatible with the logfire SDK''s VariablesConfig, suitable for use with remote variable providers. Requires: 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. Requires: 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. Requires: 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. Fields present and set to None will be cleared. Fields not present will not be changed. Requires: 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/usage/daily/: get: tags: - Usage summary: Get Organization Daily Usage description: 'Get organization-level daily usage (up to 3 months). Returns 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. Returns 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). Returns daily usage broken down by project. Each row is one `(date, project)` pair. Read 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. Returns monthly usage broken down by project. Each row is one `(month, project)` pair. Read 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). Returns 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. Returns 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: - organization: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: - organization: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: - organization: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: - organization: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: - organization: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/authorize: get: tags: - OAuth summary: Oauth Authorize Get description: 'OAuth 2.0 authorization endpoint (GET). This endpoint validates the request and redirects to the consent page where the user can select a project and authorize the client. Implements RFC 6749 Section 4.1.1 (Authorization Request) and 4.1.2.1 (Error Response). **SECURITY POLICY:** PKCE (RFC 7636) with S256 is REQUIRED for all clients. Clients must provide code_challenge and code_challenge_method=S256 parameters. RFC 8707: The `resource` parameter identifies the target resource server for which the token will be issued. Note: While RFC 6749 lists redirect_uri as OPTIONAL, Section 3.1.2 states it MUST be included 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: logfire_token in: cookie required: false schema: anyOf: - type: string - 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). This endpoint receives the user''s consent (with selected organization and project) and generates an authorization code. RFC 8707: The `resource` parameter identifies the target resource server. When called with Accept: application/json, returns the redirect URL as JSON instead of a 303 redirect. This avoids CSP form-action restrictions that block cross-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 - 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. Used by the consent UI to show which scopes the current user can grant for the currently-selected org/project, so the user isn''t asked to approve scopes that would be silently filtered server-side during the POST /authorize step. Scopes not recognized by the platform (e.g. OIDC scopes like `openid`) are passed through — only platform resource scopes are filtered by permissions.' operationId: oauth_grantable_scopes_oauth_grantable_scopes_get parameters: - name: organization_id in: query required: true schema: type: string format: uuid title: Organization Id - name: scopes in: query required: true schema: type: string description: Space-separated list of scopes to check title: Scopes description: Space-separated list of scopes to check - name: project_id in: query required: false schema: anyOf: - type: string format: uuid - type: 'null' title: Project Id - name: logfire_token in: cookie required: false schema: anyOf: - type: string - 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. Supports `authorization_code`, `refresh_token`, `urn:ietf:params:oauth:grant-type:device_code` (RFC 8628), and `urn:ietf:params:oauth:grant-type:token-exchange` (RFC 8693) grant types. **SECURITY POLICY:** PKCE (RFC 7636) with S256 is REQUIRED for authorization_code grant. Clients must provide code_verifier parameter when exchanging authorization codes. RFC 8707: The `resource` parameter identifies the target resource server for which the token is being requested. Per RFC 6749 Section 2.3.1, clients can authenticate via: - HTTP Basic authentication (Authorization header) - Request body parameters (client_id and client_secret) Clients MUST NOT use both authentication methods simultaneously. Per RFC 6749 Section 4.1.3, client_id is REQUIRED only if the client is not authenticating with the authorization server (e.g., via Authorization header). RFC 8693: The `token-exchange` grant type is unauthenticated (the subject_token JWT is itself the credential), so it skips the client-credentials handling below and is dispatched first via `handle_token_exchange`.' 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. The client requests a device code from the authorization server. The user will then visit the verification_uri and enter the user_code to authorize the device. Returns device_code, user_code, verification_uri, and polling interval.' operationId: device_authorization_oauth_device_code_post requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Body_device_authorization_oauth_device_code_post' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DeviceAuthorizationResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /oauth/register: post: tags: - OAuth summary: Dynamic Client Registration (RFC 7591) description: "RFC 7591 — Dynamic Client Registration.\n\nAllows MCP clients\ \ and other OAuth clients to register themselves\nwithout prior manual setup.\ \ Creates a **public** OAuth client\n(`token_endpoint_auth_method: \"none\"\ `) with no organization binding.\nThe organization is determined later when\ \ the user authorizes.\n\nThis endpoint is unauthenticated per the MCP/OAuth\ \ specification.\n\nSecurity considerations (RFC 7591 Section 5):\n- DCR clients\ \ are **public** (no secret) — security relies on PKCE (S256),\n redirect_uri\ \ validation, and the user's explicit consent on the authorization page.\n\ - Scopes are restricted to a safe subset (`_DCR_ALLOWED_SCOPES`); no admin\ \ scopes.\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). Allows a DCR-registered client to deregister itself using the `registration_access_token` issued during registration. On 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' 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 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. `scopes` must be a subset of the caller''s own scopes. Omitting `project_id` (or passing `null`) mints an org-wide key; giving a `project_id` scopes the key to that project. `claims` carries optional per-scope settings (today only `project:gateway_proxy`). Whether the new key is personal or a service key is derived 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 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 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/Notification' title: Config discriminator: propertyName: type mapping: notification: '#/components/schemas/Notification' opsgenie: '#/components/schemas/Opsgenie' 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 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 type: object required: - name - description - query - time_window - frequency - watermark - notify_when title: AlertCreate AlertRead: 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 channels: items: $ref: '#/components/schemas/AlertChannelRead' type: array title: Channels notify_when: type: string enum: - has_matches - has_matches_changed - matches_changed - starts_having_matches title: Notify When active: type: boolean title: Active 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 - channels - notify_when - active title: AlertRead 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 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 channels: items: $ref: '#/components/schemas/AlertChannelRead' type: array title: Channels notify_when: type: string enum: - has_matches - has_matches_changed - matches_changed - starts_having_matches title: Notify When active: type: boolean title: Active last_run: anyOf: - type: string format: date-time - type: 'null' title: Last Run has_matches: anyOf: - type: boolean - type: 'null' title: Has Matches has_errors: anyOf: - type: boolean - type: 'null' title: Has Errors result: $ref: '#/components/schemas/JSONBData' result_length: anyOf: - type: integer - type: 'null' title: Result Length 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 - channels - notify_when - active - last_run - has_matches - has_errors - result - result_length title: AlertWithLastRun AuditLogDetailRead: properties: id: type: string format: uuid title: Id created_at: type: string format: date-time title: Created At organization_name: anyOf: - type: string - type: 'null' title: Organization Name project_name: anyOf: - type: string - type: 'null' title: Project Name user_name: anyOf: - type: string - type: 'null' title: User Name action: type: string enum: - INSERT - UPDATE - DELETE - VIEW - LOGIN - FAILED_LOGIN - LOGOUT - CLAIM_INVITATION - REVOKE_INVITATION - VERIFY title: Action resource_type: anyOf: - type: string - type: 'null' title: Resource Type record_id: anyOf: - type: string format: uuid - type: 'null' title: Record Id ip_address: anyOf: - type: string format: ipv4 - type: string format: ipv6 - type: 'null' title: Ip Address metadata: anyOf: - additionalProperties: $ref: '#/components/schemas/JSONBData' type: object - type: 'null' title: Metadata type: object required: - id - created_at - organization_name - project_name - user_name - action - resource_type - record_id - ip_address - metadata title: AuditLogDetailRead AuditLogInfoRead: properties: id: type: string format: uuid title: Id created_at: type: string format: date-time title: Created At organization_name: anyOf: - type: string - type: 'null' title: Organization Name project_name: anyOf: - type: string - type: 'null' title: Project Name user_name: anyOf: - type: string - type: 'null' title: User Name action: type: string enum: - INSERT - UPDATE - DELETE - VIEW - LOGIN - FAILED_LOGIN - LOGOUT - CLAIM_INVITATION - REVOKE_INVITATION - VERIFY 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 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 - type: 'null' title: Csrf Token limits: anyOf: - type: string - type: 'null' title: Limits 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 - type: 'null' title: Client Secret refresh_token: anyOf: - type: string - 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 - 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/Notification' title: Config discriminator: propertyName: type mapping: notification: '#/components/schemas/Notification' opsgenie: '#/components/schemas/Opsgenie' 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/Notification' title: Config discriminator: propertyName: type mapping: notification: '#/components/schemas/Notification' opsgenie: '#/components/schemas/Opsgenie' 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/Notification' discriminator: propertyName: type mapping: notification: '#/components/schemas/Notification' opsgenie: '#/components/schemas/Opsgenie' webhook: '#/components/schemas/WebhookUpdate' - type: 'null' title: Config active: anyOf: - type: boolean - type: 'null' title: Active type: object title: ChannelUpdate CodeDefaultLabelData: properties: target_type: type: string enum: - code_default title: Target Type type: object required: - target_type title: CodeDefaultLabelData description: Label data indicating to use the code default value. ConditionData: properties: kind: type: string title: Kind attribute: type: string title: Attribute value: title: Value values: items: {} type: array title: Values pattern: type: string title: Pattern type: object title: ConditionData description: 'Condition for targeting, stored as JSONB. Different condition types have different fields, so all are optional. The ''kind'' field determines which other fields are relevant.' CostSummary: properties: currency: type: string title: Currency price_per_million_observations: type: number title: Price Per Million Observations included_observations_value: type: number title: Included Observations Value usage_cost: type: number title: Usage Cost discount: type: number title: Discount total_cost: type: number title: Total Cost type: object required: - currency - price_per_million_observations - included_observations_value - usage_cost - discount - total_cost title: CostSummary CreateReadTokenInput: properties: expires_at: anyOf: - type: string format: date-time - type: 'null' title: Expires At type: object title: CreateReadTokenInput CreateWriteTokenInput: properties: expires_at: anyOf: - type: string format: date-time - type: 'null' title: Expires At type: object title: CreateWriteTokenInput CreateWriteTokenOutput: properties: id: type: string format: uuid title: Id project_id: type: string format: uuid title: Project Id created_at: type: string format: date-time title: Created At description: anyOf: - type: string - type: 'null' title: Description expires_at: anyOf: - type: string format: date-time - type: 'null' title: Expires At token: type: string title: Token type: object required: - id - project_id - created_at - description - expires_at - token title: CreateWriteTokenOutput DCRErrorResponse: properties: error: type: string enum: - invalid_client_metadata - invalid_redirect_uri title: Error error_description: type: string title: Error Description type: object required: - error - error_description title: DCRErrorResponse DCRRequest: properties: client_name: type: string title: Client Name client_uri: anyOf: - type: string - type: 'null' title: Client Uri logo_uri: anyOf: - type: string - type: 'null' title: Logo Uri redirect_uris: items: type: string type: array title: Redirect Uris grant_types: items: type: string type: array title: Grant Types response_types: items: type: string type: array title: Response Types token_endpoint_auth_method: type: string title: Token Endpoint Auth Method scope: type: string title: Scope application_type: type: string title: Application Type type: object title: DCRRequest description: RFC 7591 Client Metadata for Dynamic Client Registration. DCRResponse: properties: client_id: type: string title: Client Id client_id_issued_at: type: integer title: Client Id Issued At client_name: type: string title: Client Name client_uri: anyOf: - type: string - type: 'null' title: Client Uri logo_uri: anyOf: - type: string - type: 'null' title: Logo Uri redirect_uris: items: type: string type: array title: Redirect Uris grant_types: items: type: string type: array title: Grant Types response_types: items: type: string type: array title: Response Types token_endpoint_auth_method: type: string title: Token Endpoint Auth Method scope: type: string title: Scope application_type: type: string title: Application Type registration_client_uri: type: string title: Registration Client Uri registration_access_token: type: string title: Registration Access Token type: object required: - client_id - client_id_issued_at - client_name - redirect_uris - grant_types - response_types - token_endpoint_auth_method - scope - application_type - registration_client_uri - registration_access_token title: DCRResponse description: RFC 7591/7592 Client Information Response. Dashboard: properties: id: type: string format: uuid title: Id project_id: type: string format: uuid title: Project Id created_at: type: string format: date-time title: Created At updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At created_by_name: anyOf: - type: string - type: 'null' title: Created By Name updated_by_name: anyOf: - type: string - type: 'null' title: Updated By Name dashboard_name: type: string title: Dashboard Name dashboard_slug: type: string title: Dashboard Slug version: type: integer title: Version definition: $ref: '#/components/schemas/DashboardDefinitionRead' type: object required: - id - project_id - created_at - updated_at - created_by_name - updated_by_name - dashboard_name - dashboard_slug - version - definition title: Dashboard DashboardCollapse: properties: open: type: boolean title: Open type: object required: - open title: DashboardCollapse DashboardCreate: properties: kind: type: string enum: - Dashboard title: Kind metadata: $ref: '#/components/schemas/DashboardMetadataCreate' spec: $ref: '#/components/schemas/DashboardCreateSpec' type: object required: - kind - metadata - spec title: DashboardCreate DashboardCreateRequest: properties: name: type: string title: Name slug: type: string title: Slug definition: $ref: '#/components/schemas/DashboardCreate' type: object required: - name - slug - definition title: DashboardCreateRequest DashboardCreateSpec: properties: display: anyOf: - $ref: '#/components/schemas/DashboardDisplay' - type: 'null' datasources: additionalProperties: $ref: '#/components/schemas/DashboardDatasourceSpec' type: object title: Datasources variables: items: $ref: '#/components/schemas/DashboardVariable-Input' type: array title: Variables panels: anyOf: - additionalProperties: $ref: '#/components/schemas/DashboardPanel-Input' type: object - type: 'null' title: Panels layouts: items: $ref: '#/components/schemas/DashboardLayout-Input' 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 enum: - 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-Input: properties: display: $ref: '#/components/schemas/DashboardGridDisplay' items: items: $ref: '#/components/schemas/DashboardGridItem' type: array title: Items type: object required: - items title: DashboardGridSpec DashboardGridSpec-Output: properties: display: $ref: '#/components/schemas/DashboardGridDisplay' items: items: $ref: '#/components/schemas/DashboardGridItem' type: array title: Items type: object required: - items title: DashboardGridSpec DashboardLayout-Input: properties: kind: type: string enum: - Grid title: Kind spec: $ref: '#/components/schemas/DashboardGridSpec-Input' type: object required: - kind - spec title: DashboardLayout DashboardLayout-Output: properties: kind: type: string enum: - Grid title: Kind spec: $ref: '#/components/schemas/DashboardGridSpec-Output' type: object required: - kind - spec title: DashboardLayout DashboardListVariable-Input: properties: kind: type: string enum: - ListVariable title: Kind spec: $ref: '#/components/schemas/DashboardListVariableSpec' type: object required: - kind - spec title: DashboardListVariable DashboardListVariable-Output: properties: kind: type: string enum: - ListVariable title: Kind spec: $ref: '#/components/schemas/DashboardListVariableSpec' type: object required: - kind - spec title: DashboardListVariable DashboardListVariableSpec: properties: name: type: string title: Name display: $ref: '#/components/schemas/DashboardVariableDisplay' defaultValue: anyOf: - type: string - items: type: string type: array - type: 'null' title: Defaultvalue allowMultiple: type: boolean title: Allowmultiple allowAllValue: type: boolean title: Allowallvalue customAllValue: type: string title: Customallvalue capturingRegexp: type: string title: Capturingregexp sort: type: string title: Sort plugin: $ref: '#/components/schemas/DashboardPlugin' type: object required: - name - allowMultiple - allowAllValue - plugin title: DashboardListVariableSpec DashboardMetadataCreate: properties: name: type: string title: Name project: type: string title: Project type: object required: - name - project title: DashboardMetadataCreate DashboardPanel-Input: properties: kind: type: string enum: - Panel title: Kind spec: $ref: '#/components/schemas/DashboardPanelSpec-Input' type: object required: - kind - spec title: DashboardPanel DashboardPanel-Output: properties: kind: type: string enum: - Panel title: Kind spec: $ref: '#/components/schemas/DashboardPanelSpec-Output' 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-Input: 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-Input' type: array title: Variables type: object required: - display - plugin title: DashboardPanelSpec DashboardPanelSpec-Output: 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-Output' 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 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-Output' type: array title: Variables panels: anyOf: - additionalProperties: $ref: '#/components/schemas/DashboardPanel-Output' type: object - type: 'null' title: Panels layouts: items: $ref: '#/components/schemas/DashboardLayout-Output' 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-Input: properties: kind: type: string enum: - TextVariable title: Kind spec: $ref: '#/components/schemas/DashboardTextVariableSpec' type: object required: - kind - spec title: DashboardTextVariable DashboardTextVariable-Output: properties: kind: type: string enum: - 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-Input: oneOf: - $ref: '#/components/schemas/DashboardTextVariable-Input' - $ref: '#/components/schemas/DashboardListVariable-Input' discriminator: propertyName: kind mapping: ListVariable: '#/components/schemas/DashboardListVariable-Input' TextVariable: '#/components/schemas/DashboardTextVariable-Input' DashboardVariable-Output: oneOf: - $ref: '#/components/schemas/DashboardTextVariable-Output' - $ref: '#/components/schemas/DashboardListVariable-Output' discriminator: propertyName: kind mapping: ListVariable: '#/components/schemas/DashboardListVariable-Output' TextVariable: '#/components/schemas/DashboardTextVariable-Output' 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. 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 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. All fields are optional: an omitted or `null` spending limit means no limit for that window, and `cache_enabled=null` inherits the project default.' GatewayProxyClaims: properties: spending_limit_daily: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Spending Limit Daily spending_limit_weekly: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Spending Limit Weekly spending_limit_monthly: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Spending Limit Monthly spending_limit_total: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Spending Limit Total cache_enabled: anyOf: - type: boolean - type: 'null' title: Cache Enabled additionalProperties: false type: object title: GatewayProxyClaims description: Settings carried by the `project:gateway_proxy` scope. GetDashboardResponse: properties: dashboard: $ref: '#/components/schemas/DashboardDefinitionRead' type: object required: - dashboard title: GetDashboardResponse GrantableScopesResponse: properties: grantable_scopes: items: type: string type: array title: Grantable Scopes type: object required: - grantable_scopes title: GrantableScopesResponse description: Subset of `scopes` the authenticated user can grant in the given org/project. GroupOrganizationMapping-Input: 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 GroupOrganizationMapping-Output: 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-Output' type: array title: Group Organization Mapping type: object required: - group_organization_mapping title: GroupOrganizationMappingRead GroupOrganizationMappingUpdate: properties: group_organization_mapping: items: $ref: '#/components/schemas/GroupOrganizationMapping-Input' 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 - path - value title: GroupUpdateOperation GroupUpdateOperationValue: properties: value: type: string title: Value display: type: string title: Display type: object required: - value title: GroupUpdateOperationValue HTTPExceptionError: properties: detail: type: string title: Detail type: object required: - detail title: HTTPExceptionError HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError InstanceUsageReportRowV1: properties: date: type: string format: date title: Date organization_id: type: string format: uuid title: Organization Id organization_name: type: string title: Organization Name project_id: type: string format: uuid title: Project Id 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 - organization_name - 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 enum: - 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 enum: - 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 enum: - 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 enum: - 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 enum: - 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 - organization:admin - organization:read - organization:create_project - organization:write - organization:scim - organization:read_invitation - organization:write_invitation - organization:read_member - organization:write_member - organization:read_channel - organization:write_channel - organization:create_api_key - organization:read_api_key - organization:write_api_key - organization:auditlog - organization:payment - organization:read_trust_policy - organization:write_trust_policy - project:read - project:write - project:write_token - project:read_token - project:read_dashboard - project:write_dashboard - project:read_alert - project:write_alert - project:read_datasets - project:write_datasets - project:read_variables - project:write_variables - project:read_external_variables - project:gateway_proxy - project:read_otlp - project:write_otlp - project:read_api_key - project:write_api_key Opsgenie: properties: type: type: string enum: - 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 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 type: object required: - role title: OrganizationInvitationCreateV1 OrganizationInvitationReadV1: properties: id: type: string format: uuid title: Id organization_id: type: string format: uuid title: Organization Id invite_url: type: string title: Invite Url expiration: anyOf: - type: string format: date-time - type: 'null' title: Expiration max_usage_count: type: integer title: Max Usage Count role_id: type: string format: uuid title: Role Id usage_count: type: integer title: Usage Count created_at: type: string format: date-time title: Created At last_used_at: anyOf: - type: string format: date-time - type: 'null' title: Last Used At type: object required: - id - organization_id - invite_url - expiration - max_usage_count - role_id - usage_count - created_at - last_used_at title: OrganizationInvitationReadV1 OrganizationLink: properties: url: type: string title: Url icon: type: string title: Icon name: type: string title: Name type: object required: - url - icon - name title: OrganizationLink OrganizationMemberReadV1: properties: id: type: string format: uuid title: Id name: type: string title: Name email: type: string title: Email role_id: type: string format: uuid title: Role Id member_since: type: string format: date-time title: Member Since github_username: anyOf: - type: string - type: 'null' title: Github Username avatar: anyOf: - type: string - type: 'null' title: Avatar role: type: string title: Role type: object required: - id - name - email - role_id - member_since - github_username - avatar - role title: OrganizationMemberReadV1 OrganizationMemberUpdateV1: properties: role: type: string enum: - admin - member - guest - billing title: Role type: object required: - role title: OrganizationMemberUpdateV1 OrganizationReadV1: properties: id: type: string format: uuid title: Id organization_name: type: string title: Organization Name subscription_plan: anyOf: - $ref: '#/components/schemas/SubscriptionPlanId' - type: 'null' has_admin_panel: type: boolean title: Has Admin Panel created_at: type: string format: date-time title: Created At updated_at: type: string format: date-time title: Updated At billing_email: anyOf: - type: string - type: 'null' title: Billing Email organization_display_name: anyOf: - type: string - type: 'null' title: Organization Display Name github_handle: anyOf: - type: string - type: 'null' title: Github Handle location: anyOf: - type: string - type: 'null' title: Location avatar: anyOf: - type: string - type: 'null' title: Avatar links: anyOf: - items: $ref: '#/components/schemas/OrganizationLink' type: array - type: 'null' title: Links description: anyOf: - type: string - type: 'null' title: Description spending_cap: anyOf: - type: integer - type: 'null' title: Spending Cap spending_cap_reached_at: anyOf: - type: string format: date-time - type: 'null' title: Spending Cap Reached At planless_grace_period_ends_at: anyOf: - type: string format: date-time - type: 'null' title: Planless Grace Period Ends At gateway_enabled: type: boolean title: Gateway Enabled ai_enabled: type: boolean title: Ai Enabled ai_training_enabled: type: boolean title: Ai Training Enabled type: object required: - id - organization_name - subscription_plan - has_admin_panel - created_at - updated_at - billing_email - organization_display_name - github_handle - location - avatar - links - description - spending_cap - spending_cap_reached_at - planless_grace_period_ends_at - gateway_enabled - ai_enabled - ai_training_enabled title: OrganizationReadV1 OrganizationRoleDefinition: properties: organization_name: type: string title: Organization Name role: type: string title: Role project_roles: items: $ref: '#/components/schemas/ProjectRoleDefinition' type: array title: Project Roles default: [] type: object required: - organization_name - role title: OrganizationRoleDefinition OrganizationUpdate: properties: organization_name: type: string maxLength: 50 minLength: 2 pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$ title: Organization Name billing_email: type: string title: Billing Email organization_display_name: type: string title: Organization Display Name github_handle: type: string title: Github Handle location: type: string title: Location avatar: type: string title: Avatar links: items: $ref: '#/components/schemas/OrganizationLink' type: array title: Links description: type: string title: Description type: object title: OrganizationUpdate OverrideData: properties: name: anyOf: - type: string - type: 'null' title: Name description: anyOf: - type: string - type: 'null' title: Description conditions: items: $ref: '#/components/schemas/ConditionData' type: array title: Conditions rollout: $ref: '#/components/schemas/RolloutData' type: object required: - conditions - rollout title: OverrideData description: Override configuration stored as JSONB. PaginatedProjectsUsageResponseV1: properties: start_date: type: string format: date title: Start Date end_date: type: string format: date title: End Date total: type: integer title: Total usage: items: $ref: '#/components/schemas/ProjectUsageRowV1' type: array title: Usage type: object required: - start_date - end_date - total - usage title: PaginatedProjectsUsageResponseV1 PanelRef: properties: $ref: type: string type: object required: - $ref title: PanelRef ProjectCreate: properties: project_name: type: string maxLength: 50 minLength: 2 pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$ title: Project Name description: anyOf: - type: string maxLength: 500 - type: 'null' title: Description visibility: type: string enum: - private - public title: Visibility default: public type: object required: - project_name title: ProjectCreate ProjectListRead: properties: id: type: string format: uuid title: Id project_name: type: string title: Project Name created_at: type: string format: date-time title: Created At description: anyOf: - type: string - type: 'null' title: Description organization_name: type: string title: Organization Name visibility: type: string enum: - private - public title: Visibility updated_at: type: string format: date-time title: Updated At type: object required: - id - project_name - created_at - description - organization_name - visibility - updated_at title: ProjectListRead ProjectRead: properties: id: type: string format: uuid title: Id project_name: type: string title: Project Name created_at: type: string format: date-time title: Created At description: anyOf: - type: string - type: 'null' title: Description organization_name: type: string title: Organization Name visibility: type: string enum: - private - public title: Visibility type: object required: - id - project_name - created_at - description - organization_name - visibility title: ProjectRead ProjectRoleDefinition: properties: project_name: type: string title: Project Name role: type: string title: Role type: object required: - project_name - role title: ProjectRoleDefinition ProjectUpdate: properties: project_name: anyOf: - type: string maxLength: 50 minLength: 2 pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$ - type: 'null' title: Project Name description: anyOf: - type: string - type: 'null' title: Description visibility: anyOf: - type: string enum: - private - public - type: 'null' title: Visibility type: object title: ProjectUpdate ProjectUsage: properties: project_name: type: string title: Project Name project_id: type: string format: uuid title: Project Id observations: type: integer title: Observations type: object required: - project_name - project_id - observations title: ProjectUsage ProjectUsageRowV1: properties: date: type: string format: date title: Date project_id: type: string format: uuid title: Project Id project_name: type: string title: Project Name records_count: type: integer title: Records Count metrics_count: type: integer title: Metrics Count total_observations: type: integer title: Total Observations type: object required: - date - project_id - project_name - records_count - metrics_count - total_observations title: ProjectUsageRowV1 ProjectsUsageResponseV1: properties: start_date: type: string format: date title: Start Date end_date: type: string format: date title: End Date total_records_count: type: integer title: Total Records Count total_metrics_count: type: integer title: Total Metrics Count total_observations: type: integer title: Total Observations usage: items: $ref: '#/components/schemas/ProjectUsageRowV1' type: array title: Usage type: object required: - start_date - end_date - total_records_count - total_metrics_count - total_observations - usage title: ProjectsUsageResponseV1 ReadTokenPublicAPIRead: properties: id: type: string format: uuid title: Id project_id: type: string format: uuid title: Project Id created_at: type: string format: date-time title: Created At description: anyOf: - type: string - type: 'null' title: Description expires_at: anyOf: - type: string format: date-time - type: 'null' title: Expires At token: type: string title: Token type: object required: - id - project_id - created_at - description - expires_at - token title: ReadTokenPublicAPIRead ReadTokenRead: properties: id: type: string format: uuid title: Id project_id: type: string format: uuid title: Project Id created_at: type: string format: date-time title: Created At description: anyOf: - type: string - type: 'null' title: Description expires_at: anyOf: - type: string format: date-time - type: 'null' title: Expires At created_by_name: anyOf: - type: string - type: 'null' title: Created By Name project_name: type: string title: Project Name token_prefix: type: string title: Token Prefix active: type: boolean title: Active type: object required: - id - project_id - created_at - description - expires_at - created_by_name - project_name - token_prefix - active title: ReadTokenRead ResourceMetaRead: properties: resourceType: type: string title: Resourcetype type: object required: - resourceType title: ResourceMetaRead Rollout: properties: labels: additionalProperties: type: number propertyNames: maxLength: 200 minLength: 1 type: object title: Labels type: object required: - labels title: Rollout description: Configuration for label selection with weighted probabilities. RolloutData: properties: labels: additionalProperties: type: number type: object title: Labels latest_weight: type: number title: Latest Weight type: object required: - labels title: RolloutData description: Rollout configuration stored as JSONB. RolloutOverride: properties: conditions: items: oneOf: - $ref: '#/components/schemas/ValueEquals' - $ref: '#/components/schemas/ValueDoesNotEqual' - $ref: '#/components/schemas/ValueIsIn' - $ref: '#/components/schemas/ValueIsNotIn' - $ref: '#/components/schemas/ValueMatchesRegex' - $ref: '#/components/schemas/ValueDoesNotMatchRegex' - $ref: '#/components/schemas/KeyIsPresent' - $ref: '#/components/schemas/KeyIsNotPresent' discriminator: propertyName: kind mapping: key-is-not-present: '#/components/schemas/KeyIsNotPresent' key-is-present: '#/components/schemas/KeyIsPresent' value-does-not-equal: '#/components/schemas/ValueDoesNotEqual' value-does-not-match-regex: '#/components/schemas/ValueDoesNotMatchRegex' value-equals: '#/components/schemas/ValueEquals' value-is-in: '#/components/schemas/ValueIsIn' value-is-not-in: '#/components/schemas/ValueIsNotIn' value-matches-regex: '#/components/schemas/ValueMatchesRegex' type: array title: Conditions rollout: $ref: '#/components/schemas/Rollout' type: object required: - conditions - rollout title: RolloutOverride description: An override of the default rollout when specific conditions are met. ScopeClaims: properties: project:gateway_proxy: $ref: '#/components/schemas/GatewayProxyClaims' additionalProperties: false type: object title: ScopeClaims SubscriptionPlanId: type: string enum: - personal - team - growth - enterprise_cloud - non_stripe 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 type: object required: - access_token - issued_token_type - token_type - expires_in - scope title: TokenExchangeResponse description: 'RFC 8693 §2.2 successful token-exchange response. Distinct from the OAuth 2.0 token endpoint''s `TokenResponse` (RFC 6749 §5.1): `issued_token_type` is mandatory per §2.2.1, and there''s no `refresh_token` (workload tokens are short-lived and not re-issuable through this flow).' TokenResponse: properties: access_token: type: string title: Access Token token_type: type: string enum: - 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 enum: - 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 enum: - 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 enum: - 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 enum: - 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 enum: - 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 enum: - 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 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. Should 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 enum: - 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. Webhook: properties: type: type: string enum: - 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 enum: - 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 type: object required: - id - project_id - created_at - description - expires_at - project_name - created_by_name - token_prefix - active 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 organization:admin: Platform admin access to manage organizations across the instance (self-hosted only) organization:read: Read access to organizations organization:write: Write access to organizations 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: Read access to projects project:write: Write access to projects 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_alert: Read alerts within a project project:write_alert: Create or modify alerts within a project project:read_datasets: Read datasets within a project project:write_datasets: Create or modify datasets within a project project:read_variables: Read managed variables and prompts within a project project:write_variables: Create or modify managed variables and prompts within a project project:read_external_variables: Read external managed variables within a project via OFREP project:gateway_proxy: Proxy AI model requests through the project AI Gateway project:read_otlp: Query trace data submitted to the project via OTLP project:write_otlp: Send OTLP traces, logs, and metrics to the project project:read_api_key: Read API keys within a project project:write_api_key: Create, edit, or revoke API keys within a project organization:scim: SCIM access to organizations organization:auditlog: Read audit logs for the organization organization:payment: Read billing usage data for the organization organization:read_trust_policy: Read OIDC trust policies and their token exchange history organization:write_trust_policy: Create, modify, or delete OIDC trust policies and revoke issued workload tokens authorizationUrl: api/oauth/authorize tokenUrl: /api/oauth/token servers: - url: https://logfire-us.pydantic.dev/api description: Pydantic Logfire API (US) - url: https://logfire-eu.pydantic.dev/api description: Pydantic Logfire API (EU)