{"openapi":"3.1.0","info":{"title":"EUnifyer API Reference","description":"Public external surface of the EUnifyer platform API.\n\nAuthenticate with a **PAT** (Personal Access Token) or a **EUnifyer IDP user-delegated JWT**. Click **Authorize** to set your token — it will be sent automatically on every request.\n\nOnly endpoints in the stable v1 contract are listed here.","version":"1.210.0.1096"},"paths":{"/api/v1/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Endpoint","description":"Get team details.","operationId":"get_team_endpoint_api_v1_teams__team_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Teams"],"summary":"Update Team Endpoint","description":"Update a team.","operationId":"update_team_endpoint_api_v1_teams__team_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Teams"],"summary":"Delete Team Endpoint","description":"Delete a team.","operationId":"delete_team_endpoint_api_v1_teams__team_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/teams/{team_id}/members":{"get":{"tags":["Teams"],"summary":"List Team Members Endpoint","description":"List members of a team.","operationId":"list_team_members_endpoint_api_v1_teams__team_id__members_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TeamMemberResponse"},"title":"Response List Team Members Endpoint Api V1 Teams  Team Id  Members Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Teams"],"summary":"Add Team Member Endpoint","description":"Add a member to a team.","operationId":"add_team_member_endpoint_api_v1_teams__team_id__members_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamMemberAdd"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamMemberResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/teams/{team_id}/members/{user_id}":{"patch":{"tags":["Teams"],"summary":"Update Team Member Endpoint","description":"Update a team member's role.","operationId":"update_team_member_endpoint_api_v1_teams__team_id__members__user_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"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/TeamMemberUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamMemberResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Teams"],"summary":"Remove Team Member Endpoint","description":"Remove a member from a team.","operationId":"remove_team_member_endpoint_api_v1_teams__team_id__members__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/subscriptions":{"get":{"tags":["Webhooks","Webhooks"],"summary":"List Subscriptions Endpoint","description":"List webhook subscriptions for the organization.","operationId":"list_subscriptions_endpoint_api_v1_webhooks_subscriptions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_WebhookSubscriptionResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Webhooks","Webhooks"],"summary":"Create Subscription Endpoint","description":"Create a webhook subscription. Returns signing_secret once — store it securely.","operationId":"create_subscription_endpoint_api_v1_webhooks_subscriptions_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionCreatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/subscriptions/{subscription_id}":{"get":{"tags":["Webhooks","Webhooks"],"summary":"Get Subscription Endpoint","description":"Get a specific webhook subscription.","operationId":"get_subscription_endpoint_api_v1_webhooks_subscriptions__subscription_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Subscription Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Webhooks","Webhooks"],"summary":"Update Subscription Endpoint","description":"Update a webhook subscription (URL, events, active state).","operationId":"update_subscription_endpoint_api_v1_webhooks_subscriptions__subscription_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Subscription Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Webhooks","Webhooks"],"summary":"Delete Subscription Endpoint","description":"Delete a webhook subscription and all its delivery history.","operationId":"delete_subscription_endpoint_api_v1_webhooks_subscriptions__subscription_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Subscription Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/subscriptions/{subscription_id}/rotate-secret":{"post":{"tags":["Webhooks","Webhooks"],"summary":"Rotate Signing Secret Endpoint","description":"Rotate the signing secret. Returns new secret once — update your consumer immediately.","operationId":"rotate_signing_secret_endpoint_api_v1_webhooks_subscriptions__subscription_id__rotate_secret_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Subscription Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionCreatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/subscriptions/{subscription_id}/deliveries":{"get":{"tags":["Webhooks","Webhooks"],"summary":"List Deliveries Endpoint","description":"List delivery attempts for a subscription (most recent first).","operationId":"list_deliveries_endpoint_api_v1_webhooks_subscriptions__subscription_id__deliveries_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Subscription Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_WebhookDeliveryResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/subscriptions/{subscription_id}/deliveries/{delivery_id}/replay":{"post":{"tags":["Webhooks","Webhooks"],"summary":"Replay Delivery Endpoint","description":"Re-queue a failed or skipped delivery for immediate retry.","operationId":"replay_delivery_endpoint_api_v1_webhooks_subscriptions__subscription_id__deliveries__delivery_id__replay_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Subscription Id"}},{"name":"delivery_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Delivery Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDeliveryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/developer/service-principals":{"get":{"tags":["Developer"],"summary":"List Service Principals","operationId":"list_service_principals_api_v1_developer_service_principals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor from previous response","title":"Cursor"},"description":"Cursor from previous response"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_ServicePrincipalResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Developer"],"summary":"Create Service Principal","operationId":"create_service_principal_api_v1_developer_service_principals_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicePrincipalCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicePrincipalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/developer/service-principals/{sp_id}":{"patch":{"tags":["Developer"],"summary":"Update Service Principal","operationId":"update_service_principal_api_v1_developer_service_principals__sp_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"sp_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Sp Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicePrincipalUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicePrincipalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Developer"],"summary":"Delete Service Principal","operationId":"delete_service_principal_api_v1_developer_service_principals__sp_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"sp_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Sp Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/developer/service-principals/{sp_id}/tokens":{"get":{"tags":["Developer"],"summary":"List Api Tokens","operationId":"list_api_tokens_api_v1_developer_service_principals__sp_id__tokens_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"sp_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Sp Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor from previous response","title":"Cursor"},"description":"Cursor from previous response"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_ApiTokenResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Developer"],"summary":"Create Api Token","operationId":"create_api_token_api_v1_developer_service_principals__sp_id__tokens_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"sp_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Sp Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenCreatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/developer/service-principals/{sp_id}/tokens/{token_id}/revoke":{"post":{"tags":["Developer"],"summary":"Revoke Api Token","operationId":"revoke_api_token_api_v1_developer_service_principals__sp_id__tokens__token_id__revoke_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"sp_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Sp Id"}},{"name":"token_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Token Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/developer/service-principals/{sp_id}/tokens/{token_id}/rotate":{"post":{"tags":["Developer"],"summary":"Rotate Api Token","operationId":"rotate_api_token_api_v1_developer_service_principals__sp_id__tokens__token_id__rotate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"sp_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Sp Id"}},{"name":"token_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenCreatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/developer/principal":{"get":{"tags":["Developer"],"summary":"Get Principal","description":"Return the resolved principal context. Used to verify credentials.","operationId":"get_principal_api_v1_developer_principal_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Principal Api V1 Developer Principal Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/partner/orgs":{"get":{"tags":["Partner"],"summary":"List Orgs","description":"List customer organizations managed by this partner.","operationId":"list_orgs_api_v1_partner_orgs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pagination cursor","title":"Cursor"},"description":"Pagination cursor"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Q"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/OrganizationStatus"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_PartnerOrgResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Partner"],"summary":"Create Org","description":"Provision a new customer organization under this partner.","operationId":"create_org_api_v1_partner_orgs_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerOrgCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerOrgResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}":{"get":{"tags":["Partner"],"summary":"Get Org","description":"Get a single customer organization.","operationId":"get_org_api_v1_partner_orgs__org_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerOrgResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Partner"],"summary":"Update Org","description":"Update customer organization metadata.","operationId":"update_org_api_v1_partner_orgs__org_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerOrgUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerOrgResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/suspend":{"post":{"tags":["Partner"],"summary":"Suspend Org","description":"Suspend a customer organization.","operationId":"suspend_org_api_v1_partner_orgs__org_id__suspend_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerOrgResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/activate":{"post":{"tags":["Partner"],"summary":"Activate Org","description":"Activate a suspended customer organization.","operationId":"activate_org_api_v1_partner_orgs__org_id__activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerOrgResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/users":{"get":{"tags":["Partner"],"summary":"List Users","description":"List users and pending invitations in a customer organization.","operationId":"list_users_api_v1_partner_orgs__org_id__users_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_PartnerUserResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Partner"],"summary":"Create User","description":"Invite a user to a customer organization.","operationId":"create_user_api_v1_partner_orgs__org_id__users_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerUserCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerUserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/users/{user_id}":{"get":{"tags":["Partner"],"summary":"Get User","description":"Get a user or pending invitation in a customer organization.","operationId":"get_user_api_v1_partner_orgs__org_id__users__user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerUserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Partner"],"summary":"Update User","description":"Update a user in a customer organization.","operationId":"update_user_api_v1_partner_orgs__org_id__users__user_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"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/PartnerUserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerUserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Partner"],"summary":"Delete User","description":"Delete a user or revoke a pending invitation.","operationId":"delete_user_api_v1_partner_orgs__org_id__users__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/users/{user_id}/suspend":{"post":{"tags":["Partner"],"summary":"Suspend User","description":"Suspend a user in a customer organization.","operationId":"suspend_user_api_v1_partner_orgs__org_id__users__user_id__suspend_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerUserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/users/{user_id}/activate":{"post":{"tags":["Partner"],"summary":"Activate User","description":"Activate a suspended user in a customer organization.","operationId":"activate_user_api_v1_partner_orgs__org_id__users__user_id__activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerUserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/users/{user_id}/resend-invitation":{"post":{"tags":["Partner"],"summary":"Resend Invitation","description":"Resend invitation email for a pending user.","operationId":"resend_invitation_api_v1_partner_orgs__org_id__users__user_id__resend_invitation_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/users/{user_id}/reset-password":{"post":{"tags":["Partner"],"summary":"Reset Password","description":"Trigger a password reset email for a user.","operationId":"reset_password_api_v1_partner_orgs__org_id__users__user_id__reset_password_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Reset Password Api V1 Partner Orgs  Org Id  Users  User Id  Reset Password Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/teams":{"get":{"tags":["Partner"],"summary":"List Teams","description":"List teams in a customer organization.","operationId":"list_teams_api_v1_partner_orgs__org_id__teams_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_PartnerTeamResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Partner"],"summary":"Create Team","description":"Create a team in a customer organization.","operationId":"create_team_api_v1_partner_orgs__org_id__teams_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTeamCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTeamResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/teams/{team_id}":{"get":{"tags":["Partner"],"summary":"Get Team","description":"Get a team in a customer organization.","operationId":"get_team_api_v1_partner_orgs__org_id__teams__team_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTeamResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Partner"],"summary":"Update Team","description":"Update a team in a customer organization.","operationId":"update_team_api_v1_partner_orgs__org_id__teams__team_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTeamUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTeamResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Partner"],"summary":"Delete Team","description":"Delete a team in a customer organization.","operationId":"delete_team_api_v1_partner_orgs__org_id__teams__team_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/teams/{team_id}/members":{"get":{"tags":["Partner"],"summary":"List Members","description":"List members of a team.","operationId":"list_members_api_v1_partner_orgs__org_id__teams__team_id__members_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_PartnerTeamMemberResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Partner"],"summary":"Add Member","description":"Add a user to a team.","operationId":"add_member_api_v1_partner_orgs__org_id__teams__team_id__members_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTeamMemberAdd"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTeamMemberResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/teams/{team_id}/members/{user_id}":{"delete":{"tags":["Partner"],"summary":"Remove Member","description":"Remove a user from a team.","operationId":"remove_member_api_v1_partner_orgs__org_id__teams__team_id__members__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}},{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/plans":{"get":{"tags":["Partner"],"summary":"List Plans","description":"List plans published to this partner.","operationId":"list_plans_api_v1_partner_plans_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor from previous response","title":"Cursor"},"description":"Cursor from previous response"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_PartnerPlanResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/subscription":{"get":{"tags":["Partner"],"summary":"Get Subscription","description":"Get the subscription for a customer organization.","operationId":"get_subscription_api_v1_partner_orgs__org_id__subscription_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerSubscriptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/subscription/change-plan":{"post":{"tags":["Partner"],"summary":"Change Plan","description":"Change the plan for a customer organization.","operationId":"change_plan_api_v1_partner_orgs__org_id__subscription_change_plan_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerChangePlanRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerSubscriptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/orgs/{org_id}/subscription/change-seats":{"post":{"tags":["Partner"],"summary":"Change Seats","description":"Change seat count for a customer organization.","operationId":"change_seats_api_v1_partner_orgs__org_id__subscription_change_seats_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Org Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerChangeSeatsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerSubscriptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/recent":{"get":{"tags":["chat"],"summary":"Get Recent Conversations Endpoint","description":"Get recent conversations sorted by last activity.","operationId":"get_recent_conversations_endpoint_api_v1_chat_recent_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecentConversationsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/mentions":{"get":{"tags":["chat"],"summary":"Get Mentions Endpoint","description":"Get messages where the current user was mentioned.","operationId":"get_mentions_endpoint_api_v1_chat_mentions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MentionsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels":{"post":{"tags":["chat"],"summary":"Create Channel Endpoint","description":"Create a new channel.","operationId":"create_channel_endpoint_api_v1_chat_channels_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["chat"],"summary":"List Channels Endpoint","description":"List all channels accessible to the user.","operationId":"list_channels_endpoint_api_v1_chat_channels_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter channels by name","title":"Search"},"description":"Filter channels by name"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}":{"get":{"tags":["chat"],"summary":"Get Channel Endpoint","description":"Get channel details.","operationId":"get_channel_endpoint_api_v1_chat_channels__channel_id__get","security":[{"HTTPBearer":[]}],"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/ChannelResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["chat"],"summary":"Update Channel Endpoint","description":"Update channel details.","operationId":"update_channel_endpoint_api_v1_chat_channels__channel_id__patch","security":[{"HTTPBearer":[]}],"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/ChannelResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/site":{"get":{"tags":["chat"],"summary":"Get Channel Site Endpoint","description":"Return the ShareHub site linked to this channel, or null.\n\nLets the chat UI offer a one-click jump from a channel to its ShareHub site.","operationId":"get_channel_site_endpoint_api_v1_chat_channels__channel_id__site_get","security":[{"HTTPBearer":[]}],"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":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Get Channel Site Endpoint Api V1 Chat Channels  Channel Id  Site Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/archive":{"post":{"tags":["chat"],"summary":"Archive Channel Endpoint","description":"Archive a channel.","operationId":"archive_channel_endpoint_api_v1_chat_channels__channel_id__archive_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/hide":{"post":{"tags":["chat"],"summary":"Hide Channel Endpoint","description":"Hide a DM from sidebar.","operationId":"hide_channel_endpoint_api_v1_chat_channels__channel_id__hide_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["chat"],"summary":"Unhide Channel Endpoint","description":"Unhide a DM.","operationId":"unhide_channel_endpoint_api_v1_chat_channels__channel_id__hide_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/leave":{"post":{"tags":["chat"],"summary":"Leave Channel Endpoint","description":"Leave a channel.","operationId":"leave_channel_endpoint_api_v1_chat_channels__channel_id__leave_post","security":[{"HTTPBearer":[]}],"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/LeaveChannelRequest"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/delete-for-me":{"post":{"tags":["chat"],"summary":"Delete Dm For Me Endpoint","description":"Delete my side of a DM.","operationId":"delete_dm_for_me_endpoint_api_v1_chat_channels__channel_id__delete_for_me_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/delete-for-everyone":{"post":{"tags":["chat"],"summary":"Delete Channel For Everyone Endpoint","description":"Owner-only: archive channel for all members.","operationId":"delete_channel_for_everyone_endpoint_api_v1_chat_channels__channel_id__delete_for_everyone_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/dm":{"post":{"tags":["chat"],"summary":"Create Dm Endpoint","description":"Create or find existing DM channel with a user.","operationId":"create_dm_endpoint_api_v1_chat_dm_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DMCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/chat/start":{"post":{"tags":["chat"],"summary":"Start Chat Endpoint","description":"Start a 1:1 or group chat (find-or-create).","operationId":"start_chat_endpoint_api_v1_chat_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartChatCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/chat/channels/{channel_id}/members":{"post":{"tags":["chat"],"summary":"Add Member Endpoint","description":"Add a member to a channel.","operationId":"add_member_endpoint_api_v1_chat_channels__channel_id__members_post","security":[{"HTTPBearer":[]}],"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/MemberAdd"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["chat"],"summary":"List Members Endpoint","description":"List all members in a channel.","operationId":"list_members_endpoint_api_v1_chat_channels__channel_id__members_get","security":[{"HTTPBearer":[]}],"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":{"type":"array","items":{"$ref":"#/components/schemas/MemberResponse"},"title":"Response List Members Endpoint Api V1 Chat Channels  Channel Id  Members Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/members/{user_id}":{"delete":{"tags":["chat"],"summary":"Remove Member Endpoint","description":"Remove a member from a channel.","operationId":"remove_member_endpoint_api_v1_chat_channels__channel_id__members__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/members/me":{"patch":{"tags":["chat"],"summary":"Update Member Endpoint","description":"Update member preferences (mute, notification settings).","operationId":"update_member_endpoint_api_v1_chat_channels__channel_id__members_me_patch","security":[{"HTTPBearer":[]}],"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/MemberUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/messages":{"post":{"tags":["chat"],"summary":"Send Message Endpoint","description":"Send a message to a channel.","operationId":"send_message_endpoint_api_v1_chat_channels__channel_id__messages_post","security":[{"HTTPBearer":[]}],"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/MessageCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__v1__chat__schemas__MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["chat"],"summary":"List Messages Endpoint","description":"List messages in a channel (cursor-based pagination).","operationId":"list_messages_endpoint_api_v1_chat_channels__channel_id__messages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Page backwards into history","title":"Cursor"},"description":"Page backwards into history"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":50,"title":"Limit"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Page forwards from a cursor the client already holds. Used after a reconnect to fetch messages missed while the socket was down.","title":"Since"},"description":"Page forwards from a cursor the client already holds. Used after a reconnect to fetch messages missed while the socket was down."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__v1__chat__schemas__MessageListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/messages/{message_id}":{"patch":{"tags":["chat"],"summary":"Edit Message Endpoint","description":"Edit a message.","operationId":"edit_message_endpoint_api_v1_chat_messages__message_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__v1__chat__schemas__MessageUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__v1__chat__schemas__MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["chat"],"summary":"Delete Message Endpoint","description":"Delete a message.","operationId":"delete_message_endpoint_api_v1_chat_messages__message_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/messages/{message_id}/pin":{"post":{"tags":["chat"],"summary":"Pin Message Endpoint","description":"Pin a message to a channel.","operationId":"pin_message_endpoint_api_v1_chat_messages__message_id__pin_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["chat"],"summary":"Unpin Message Endpoint","description":"Unpin a message from a channel.","operationId":"unpin_message_endpoint_api_v1_chat_messages__message_id__pin_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/threads":{"get":{"tags":["chat"],"summary":"Get Thread Summary Endpoint","description":"Get summary of active threads in a channel.","operationId":"get_thread_summary_endpoint_api_v1_chat_channels__channel_id__threads_get","security":[{"HTTPBearer":[]}],"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":{"type":"array","items":{"$ref":"#/components/schemas/ThreadSummary"},"title":"Response Get Thread Summary Endpoint Api V1 Chat Channels  Channel Id  Threads Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/threads/{thread_id}/messages":{"get":{"tags":["chat"],"summary":"List Thread Messages Endpoint","description":"List messages in a thread.","operationId":"list_thread_messages_endpoint_api_v1_chat_threads__thread_id__messages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Thread Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__v1__chat__schemas__MessageListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/messages/{message_id}/reactions":{"post":{"tags":["chat"],"summary":"Add Reaction Endpoint","description":"Add a reaction to a message.","operationId":"add_reaction_endpoint_api_v1_chat_messages__message_id__reactions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReactionCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReactionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/messages/{message_id}/reactions/{emoji}":{"delete":{"tags":["chat"],"summary":"Remove Reaction Endpoint","description":"Remove a reaction from a message.","operationId":"remove_reaction_endpoint_api_v1_chat_messages__message_id__reactions__emoji__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}},{"name":"emoji","in":"path","required":true,"schema":{"type":"string","title":"Emoji"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/read":{"put":{"tags":["chat"],"summary":"Update Read Receipt Endpoint","description":"Update read receipt for a channel.","operationId":"update_read_receipt_endpoint_api_v1_chat_channels__channel_id__read_put","security":[{"HTTPBearer":[]}],"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/ReadReceiptUpdate"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/unread":{"post":{"tags":["chat"],"summary":"Mark Channel Unread Endpoint","description":"Mark a channel unread for the caller.\n\nMoves the read position backwards so the channel shows an unread badge in\nthe home view and sidebar again.","operationId":"mark_channel_unread_endpoint_api_v1_chat_channels__channel_id__unread_post","security":[{"HTTPBearer":[]}],"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/MarkUnreadRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarkUnreadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/read-receipts":{"get":{"tags":["chat"],"summary":"List Channel Read Receipts","description":"Return per-member read positions for a channel.\n\nUsed by the message list to render an avatar stack under each own\nmessage showing who has read up to which message.","operationId":"list_channel_read_receipts_api_v1_chat_channels__channel_id__read_receipts_get","security":[{"HTTPBearer":[]}],"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":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Channel Read Receipts Api V1 Chat Channels  Channel Id  Read Receipts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/delivery-receipts":{"get":{"tags":["chat"],"summary":"List Channel Delivery Receipts Endpoint","description":"Return per-member delivery positions for a channel.\n\nUsed by the message list to show a second tick on own messages once\nthey've reached another member's device.","operationId":"list_channel_delivery_receipts_endpoint_api_v1_chat_channels__channel_id__delivery_receipts_get","security":[{"HTTPBearer":[]}],"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":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Channel Delivery Receipts Endpoint Api V1 Chat Channels  Channel Id  Delivery Receipts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/unread":{"get":{"tags":["chat"],"summary":"Get Unread Counts Endpoint","description":"Get unread message counts for all channels.\n\nReturns empty counts if user doesn't have chat feature in their plan.","operationId":"get_unread_counts_endpoint_api_v1_chat_unread_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnreadCountsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/chat/bookmarks":{"get":{"tags":["chat"],"summary":"List Bookmarks Endpoint","description":"List all bookmarks for the user.","operationId":"list_bookmarks_endpoint_api_v1_chat_bookmarks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/BookmarkResponse"},"type":"array","title":"Response List Bookmarks Endpoint Api V1 Chat Bookmarks Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["chat"],"summary":"Add Bookmark Endpoint","description":"Bookmark a message.","operationId":"add_bookmark_endpoint_api_v1_chat_bookmarks_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookmarkCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookmarkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/chat/bookmarks/{message_id}":{"delete":{"tags":["chat"],"summary":"Remove Bookmark Endpoint","description":"Remove a bookmark.","operationId":"remove_bookmark_endpoint_api_v1_chat_bookmarks__message_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/search":{"get":{"tags":["chat"],"summary":"Search Messages Endpoint","description":"Search messages (metadata only for E2E encrypted content).","operationId":"search_messages_endpoint_api_v1_chat_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Q"}},{"name":"channel_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Channel Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/app__api__v1__chat__schemas__MessageResponse"},"title":"Response Search Messages Endpoint Api V1 Chat Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/upload":{"post":{"tags":["chat"],"summary":"Upload File Endpoint","description":"Upload a file to a channel.\n\n``encrypted`` marks *file* as already client-side ciphertext (AES-CTR,\nkeyed by a per-attachment key the client wraps into the message it sends\nnext). The server never sees that key — it only stores opaque bytes and\nflags them so recipients know to decrypt before rendering.","operationId":"upload_file_endpoint_api_v1_chat_channels__channel_id__upload_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_file_endpoint_api_v1_chat_channels__channel_id__upload_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/attachments/from-drive":{"post":{"tags":["chat"],"summary":"Attach From Drive Endpoint","description":"Attach existing Drive or ShareHub files to a channel.","operationId":"attach_from_drive_endpoint_api_v1_chat_channels__channel_id__attachments_from_drive_post","security":[{"HTTPBearer":[]}],"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/AttachFromDriveRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AttachmentResponse"},"title":"Response Attach From Drive Endpoint Api V1 Chat Channels  Channel Id  Attachments From Drive Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/attachments/{attachment_id}/download":{"get":{"tags":["chat"],"summary":"Download Attachment Endpoint","description":"Issue a fresh signed URL after checking channel membership.","operationId":"download_attachment_endpoint_api_v1_chat_attachments__attachment_id__download_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"attachment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Attachment Id"}},{"name":"thumbnail","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Thumbnail"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Download Attachment Endpoint Api V1 Chat Attachments  Attachment Id  Download Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/attachments/{attachment_id}/preview":{"get":{"tags":["chat"],"summary":"Preview Attachment Endpoint","description":"Render a chat attachment inline, converting office docs to PDF when needed.","operationId":"preview_attachment_endpoint_api_v1_chat_attachments__attachment_id__preview_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"attachment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Attachment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/call":{"post":{"tags":["chat"],"summary":"Start Call Endpoint","description":"Start a call in a channel (voice or video).","operationId":"start_call_endpoint_api_v1_chat_channels__channel_id__call_post","security":[{"HTTPBearer":[]}],"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/StartCallRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__v1__chat__schemas__MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["chat"],"summary":"End Call Endpoint","description":"End an active call in a channel.","operationId":"end_call_endpoint_api_v1_chat_channels__channel_id__call_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["chat"],"summary":"Get Active Call Endpoint","description":"Get active call information for a channel.","operationId":"get_active_call_endpoint_api_v1_chat_channels__channel_id__call_get","security":[{"HTTPBearer":[]}],"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":{"anyOf":[{"$ref":"#/components/schemas/CallInfo"},{"type":"null"}],"title":"Response Get Active Call Endpoint Api V1 Chat Channels  Channel Id  Call Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/call/leave":{"post":{"tags":["chat"],"summary":"Leave Call Endpoint","description":"Leave/end a call (POST for sendBeacon/pagehide compatibility).","operationId":"leave_call_endpoint_api_v1_chat_channels__channel_id__call_leave_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/channels/{channel_id}/schedule":{"post":{"tags":["chat"],"summary":"Schedule Meeting Endpoint","description":"Schedule a meeting from chat and post meeting card to channel.","operationId":"schedule_meeting_endpoint_api_v1_chat_channels__channel_id__schedule_post","security":[{"HTTPBearer":[]}],"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/ScheduleMeetingRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingScheduledResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/users":{"get":{"tags":["chat"],"summary":"List Chat Users Endpoint","description":"List organization users available for chat.","operationId":"list_chat_users_endpoint_api_v1_chat_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ChatUserEntry"},"type":"array","title":"Response List Chat Users Endpoint Api V1 Chat Users Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/chat/user-search":{"get":{"tags":["chat"],"summary":"Search Chat Users Endpoint","description":"Search organization users for chat.","operationId":"search_chat_users_endpoint_api_v1_chat_user_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ChatUserEntry"},"title":"Response Search Chat Users Endpoint Api V1 Chat User Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/contacts/books":{"get":{"tags":["Contacts"],"summary":"List Address Books Endpoint","description":"List address books accessible to the current user.","operationId":"list_address_books_endpoint_api_v1_contacts_books_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AddressBook"},"type":"array","title":"Response List Address Books Endpoint Api V1 Contacts Books Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/contacts/books/{book_id}":{"get":{"tags":["Contacts"],"summary":"List Contacts Endpoint","description":"List contacts in an address book.","operationId":"list_contacts_endpoint_api_v1_contacts_books__book_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"book_id","in":"path","required":true,"schema":{"type":"string","title":"Book Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ContactSummary"},"title":"Response List Contacts Endpoint Api V1 Contacts Books  Book Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Contacts"],"summary":"Create Contact Endpoint","description":"Create a new contact in an address book.","operationId":"create_contact_endpoint_api_v1_contacts_books__book_id__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"book_id","in":"path","required":true,"schema":{"type":"string","title":"Book Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/contacts/books/{book_id}/{contact_id}":{"get":{"tags":["Contacts"],"summary":"Get Contact Endpoint","description":"Get a single contact by ID.","operationId":"get_contact_endpoint_api_v1_contacts_books__book_id___contact_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"book_id","in":"path","required":true,"schema":{"type":"string","title":"Book Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Contacts"],"summary":"Update Contact Endpoint","description":"Update a contact. Supports optimistic concurrency via If-Match.","operationId":"update_contact_endpoint_api_v1_contacts_books__book_id___contact_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"book_id","in":"path","required":true,"schema":{"type":"string","title":"Book Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}},{"name":"If-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Contacts"],"summary":"Delete Contact Endpoint","description":"Delete a contact.","operationId":"delete_contact_endpoint_api_v1_contacts_books__book_id___contact_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"book_id","in":"path","required":true,"schema":{"type":"string","title":"Book Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/contacts/books/{book_id}/{contact_id}/clone":{"post":{"tags":["Contacts"],"summary":"Clone Contact Endpoint","description":"Duplicate a contact within the same address book.","operationId":"clone_contact_endpoint_api_v1_contacts_books__book_id___contact_id__clone_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"book_id","in":"path","required":true,"schema":{"type":"string","title":"Book Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/contacts/books/{book_id}/move":{"post":{"tags":["Contacts"],"summary":"Move Contacts Endpoint","description":"Move contacts from this book to another book the user owns.","operationId":"move_contacts_endpoint_api_v1_contacts_books__book_id__move_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"book_id","in":"path","required":true,"schema":{"type":"string","title":"Book Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveContactsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveContactsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/contacts/merge":{"post":{"tags":["Contacts"],"summary":"Merge Contacts Endpoint","description":"Merge duplicate contacts into one.\n\nNot book-scoped like move: the duplicates worth merging usually span books\n(the same person filed both privately and in the org book).","operationId":"merge_contacts_endpoint_api_v1_contacts_merge_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeContactsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeContactsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/contacts/books/{book_id}/{contact_id}/favorite":{"post":{"tags":["Contacts"],"summary":"Toggle Favorite Endpoint","description":"Toggle favorite status on a contact.","operationId":"toggle_favorite_endpoint_api_v1_contacts_books__book_id___contact_id__favorite_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"book_id","in":"path","required":true,"schema":{"type":"string","title":"Book Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/contacts/search":{"get":{"tags":["Contacts"],"summary":"Search Contacts Endpoint","description":"Search contacts across all address books.","operationId":"search_contacts_endpoint_api_v1_contacts_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ContactSummary"},"title":"Response Search Contacts Endpoint Api V1 Contacts Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/contacts/directory":{"get":{"tags":["Contacts"],"summary":"Get Directory Endpoint","description":"Get organization directory (all users in the organization).","operationId":"get_directory_endpoint_api_v1_contacts_directory_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DirectoryEntry"},"type":"array","title":"Response Get Directory Endpoint Api V1 Contacts Directory Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/contacts/directory/{user_id}/export":{"get":{"tags":["Contacts"],"summary":"Export Directory Vcard Endpoint","description":"Export a directory user as .vcf file.","operationId":"export_directory_vcard_endpoint_api_v1_contacts_directory__user_id__export_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/contacts/books/{book_id}/{contact_id}/export":{"get":{"tags":["Contacts"],"summary":"Export Contact Vcard Endpoint","description":"Export a single contact as .vcf file.","operationId":"export_contact_vcard_endpoint_api_v1_contacts_books__book_id___contact_id__export_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"book_id","in":"path","required":true,"schema":{"type":"string","title":"Book Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calendar/calendars":{"get":{"tags":["Calendar"],"summary":"List Calendars Endpoint","description":"List calendars accessible to the current user.","operationId":"list_calendars_endpoint_api_v1_calendar_calendars_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CalendarInfo"},"type":"array","title":"Response List Calendars Endpoint Api V1 Calendar Calendars Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/calendar/events":{"get":{"tags":["Calendar"],"summary":"Get Events Multi Endpoint","description":"Get events across all accessible calendars (or a filtered subset) in one request.","operationId":"get_events_multi_endpoint_api_v1_calendar_events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"start","in":"query","required":true,"schema":{"type":"string","format":"date-time","title":"Start"}},{"name":"end","in":"query","required":true,"schema":{"type":"string","format":"date-time","title":"End"}},{"name":"calendar_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Calendar Ids"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EventSummary"},"title":"Response Get Events Multi Endpoint Api V1 Calendar Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calendar/calendars/{cal_id}/events":{"get":{"tags":["Calendar"],"summary":"Get Events Endpoint","description":"Get events in a calendar for a date range.","operationId":"get_events_endpoint_api_v1_calendar_calendars__cal_id__events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cal_id","in":"path","required":true,"schema":{"type":"string","title":"Cal Id"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","format":"date-time","title":"Start"}},{"name":"end","in":"query","required":true,"schema":{"type":"string","format":"date-time","title":"End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EventSummary"},"title":"Response Get Events Endpoint Api V1 Calendar Calendars  Cal Id  Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Calendar"],"summary":"Create Event Endpoint","description":"Create a new event in a calendar.","operationId":"create_event_endpoint_api_v1_calendar_calendars__cal_id__events_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cal_id","in":"path","required":true,"schema":{"type":"string","title":"Cal Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calendar/calendars/{cal_id}/events/{uid}":{"get":{"tags":["Calendar"],"summary":"Get Event Endpoint","description":"Get a single event by UID.","operationId":"get_event_endpoint_api_v1_calendar_calendars__cal_id__events__uid__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cal_id","in":"path","required":true,"schema":{"type":"string","title":"Cal Id"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Calendar"],"summary":"Update Event Endpoint","description":"Update an existing event.","operationId":"update_event_endpoint_api_v1_calendar_calendars__cal_id__events__uid__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cal_id","in":"path","required":true,"schema":{"type":"string","title":"Cal Id"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Calendar"],"summary":"Delete Event Endpoint","description":"Delete an event.","operationId":"delete_event_endpoint_api_v1_calendar_calendars__cal_id__events__uid__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cal_id","in":"path","required":true,"schema":{"type":"string","title":"Cal Id"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calendar/calendars/{cal_id}/events/{uid}/occurrences/{occurrence_date}":{"put":{"tags":["Calendar"],"summary":"Update Recurring Event Endpoint","description":"Update a recurring event occurrence or series.","operationId":"update_recurring_event_endpoint_api_v1_calendar_calendars__cal_id__events__uid__occurrences__occurrence_date__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cal_id","in":"path","required":true,"schema":{"type":"string","title":"Cal Id"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}},{"name":"occurrence_date","in":"path","required":true,"schema":{"type":"string","title":"Occurrence Date"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Calendar"],"summary":"Delete Recurring Event Endpoint","description":"Delete a recurring event occurrence or series.","operationId":"delete_recurring_event_endpoint_api_v1_calendar_calendars__cal_id__events__uid__occurrences__occurrence_date__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cal_id","in":"path","required":true,"schema":{"type":"string","title":"Cal Id"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}},{"name":"occurrence_date","in":"path","required":true,"schema":{"type":"string","title":"Occurrence Date"}},{"name":"delete_scope","in":"query","required":false,"schema":{"type":"string","default":"this","title":"Delete Scope"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calendar/calendars/{cal_id}/export.ics":{"get":{"tags":["Calendar"],"summary":"Export Calendar Endpoint","description":"Export all events in a calendar as an .ics file.","operationId":"export_calendar_endpoint_api_v1_calendar_calendars__cal_id__export_ics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cal_id","in":"path","required":true,"schema":{"type":"string","title":"Cal Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calendar/calendars/{cal_id}/events/{uid}/event.ics":{"get":{"tags":["Calendar"],"summary":"Export Event Endpoint","description":"Export a single event as an .ics file.","operationId":"export_event_endpoint_api_v1_calendar_calendars__cal_id__events__uid__event_ics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cal_id","in":"path","required":true,"schema":{"type":"string","title":"Cal Id"}},{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calendar/calendars/{cal_id}/import":{"post":{"tags":["Calendar"],"summary":"Import Calendar Endpoint","description":"Import events from an .ics file.","operationId":"import_calendar_endpoint_api_v1_calendar_calendars__cal_id__import_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cal_id","in":"path","required":true,"schema":{"type":"string","title":"Cal Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_import_calendar_endpoint_api_v1_calendar_calendars__cal_id__import_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Import Calendar Endpoint Api V1 Calendar Calendars  Cal Id  Import Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calendar/freebusy":{"post":{"tags":["Calendar"],"summary":"Get Freebusy Endpoint","description":"Get free/busy information for a list of attendees.\n\nReturns busy time slots for each attendee within the specified time range.\nOnly returns data for users in the same organization.","operationId":"get_freebusy_endpoint_api_v1_calendar_freebusy_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeBusyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeBusyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/drive/tus/":{"options":{"tags":["Drive"],"summary":"Tus Options","operationId":"tus_options_api_v1_drive_tus__options","responses":{"204":{"description":"Successful Response"}},"security":[{"BearerAuth":[]}]},"post":{"tags":["Drive"],"summary":"Tus Create","operationId":"tus_create_api_v1_drive_tus__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"upload-metadata","in":"header","required":false,"schema":{"type":"string","title":"Upload-Metadata"}},{"name":"upload-length","in":"header","required":false,"schema":{"type":"integer","title":"Upload-Length"}},{"name":"upload-defer-length","in":"header","required":false,"schema":{"type":"integer","title":"Upload-Defer-Length"}},{"name":"tus-resumable","in":"header","required":false,"schema":{"type":"string","title":"Tus-Resumable"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/tus/{upload_id}":{"head":{"tags":["Drive"],"summary":"Tus Head","operationId":"tus_head_api_v1_drive_tus__upload_id__head","security":[{"HTTPBearer":[]}],"parameters":[{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","title":"Upload Id"}},{"name":"tus-resumable","in":"header","required":false,"schema":{"type":"string","title":"Tus-Resumable"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Drive"],"summary":"Tus Patch","operationId":"tus_patch_api_v1_drive_tus__upload_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","title":"Upload Id"}},{"name":"upload-offset","in":"header","required":true,"schema":{"type":"integer","title":"Upload-Offset"}},{"name":"upload-length","in":"header","required":false,"schema":{"type":"integer","title":"Upload-Length"}},{"name":"content-type","in":"header","required":false,"schema":{"type":"string","title":"Content-Type"}},{"name":"tus-resumable","in":"header","required":false,"schema":{"type":"string","title":"Tus-Resumable"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Drive"],"summary":"Tus Delete","operationId":"tus_delete_api_v1_drive_tus__upload_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","title":"Upload Id"}},{"name":"tus-resumable","in":"header","required":false,"schema":{"type":"string","title":"Tus-Resumable"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/tus/{upload_id}/resolve":{"post":{"tags":["Drive"],"summary":"Tus Resolve","description":"Resolve a duplicate-file conflict for a completed TUS upload.\n\nCalled by the frontend after the user picks Skip / Keep Both / Replace.","operationId":"tus_resolve_api_v1_drive_tus__upload_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","title":"Upload Id"}},{"name":"strategy","in":"query","required":true,"schema":{"type":"string","pattern":"^(skip|rename|overwrite)$","title":"Strategy"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Tus Resolve Api V1 Drive Tus  Upload Id  Resolve Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/browse":{"get":{"tags":["Drive"],"summary":"List Folder Root Endpoint","description":"List folder contents (root if folder_id not provided).","operationId":"list_folder_root_endpoint_api_v1_drive_browse_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"folder_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Id"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","default":"desc"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Per Page"}},{"name":"filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Filter"}},{"name":"or_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Or Filter"}},{"name":"mime_types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Mime Types"}},{"name":"mime_group","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mime Group"}},{"name":"is_folder","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Folder"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderContents"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/browse/{folder_id}":{"get":{"tags":["Drive"],"summary":"List Folder Endpoint","description":"List folder contents.","operationId":"list_folder_endpoint_api_v1_drive_browse__folder_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","title":"Folder Id"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","default":"desc"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Per Page"}},{"name":"filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Filter"}},{"name":"or_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Or Filter"}},{"name":"mime_types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Mime Types"}},{"name":"mime_group","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mime Group"}},{"name":"is_folder","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Folder"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderContents"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/folders":{"post":{"tags":["Drive"],"summary":"Create Folder Endpoint","description":"Create a new folder.","operationId":"create_folder_endpoint_api_v1_drive_folders_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/drive/upload":{"post":{"tags":["Drive"],"summary":"Request Upload Endpoint","description":"Request a presigned upload URL.","operationId":"request_upload_endpoint_api_v1_drive_upload_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/drive/{file_id}/confirm":{"post":{"tags":["Drive"],"summary":"Confirm Upload Endpoint","description":"Confirm file upload completion.","operationId":"confirm_upload_endpoint_api_v1_drive__file_id__confirm_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/download":{"get":{"tags":["Drive"],"summary":"Get Download Url Endpoint","description":"Get presigned download URL for a file.\n\nReturns 200 with {\"url\": \"...\"} for available files.\nReturns 202 with restore info for archived (Glacier) files.","operationId":"get_download_url_endpoint_api_v1_drive__file_id__download_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/proxy":{"get":{"tags":["Drive"],"summary":"Proxy Download Endpoint","description":"Stream an externally-hosted file's bytes through EUnifyer's auth.\n\nUsed for external storage providers (e.g. Nextcloud) that cannot mint\npresigned URLs. Bytes remain in the external store.","operationId":"proxy_download_endpoint_api_v1_drive__file_id__proxy_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/restore-status":{"get":{"tags":["Drive"],"summary":"Get Restore Status Endpoint","description":"Check if an archived file has been restored.","operationId":"get_restore_status_endpoint_api_v1_drive__file_id__restore_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Restore Status Endpoint Api V1 Drive  File Id  Restore Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/thumbnail":{"get":{"tags":["Drive"],"summary":"Get Thumbnail Endpoint","description":"Get presigned thumbnail URL for a file.","operationId":"get_thumbnail_endpoint_api_v1_drive__file_id__thumbnail_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":512,"minimum":64,"default":256,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThumbnailUrl"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/preview-token":{"post":{"tags":["Drive"],"summary":"Create Preview Token Endpoint","description":"Create a short-lived single-use token for loading a preview in <img src>.","operationId":"create_preview_token_endpoint_api_v1_drive__file_id__preview_token_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Preview Token Endpoint Api V1 Drive  File Id  Preview Token Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/preview":{"get":{"tags":["Drive"],"summary":"Get Preview Endpoint","description":"Redirect to a downsized WebP preview for direct <img src> embedding.\n\nAccepts auth via short-lived single-use ``?token=`` query param (not a\nfull JWT). Returns 302 → presigned S3 URL.","operationId":"get_preview_endpoint_api_v1_drive__file_id__preview_get","parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}},"/api/v1/drive/{file_id}/rename":{"patch":{"tags":["Drive"],"summary":"Rename File Endpoint","description":"Rename a file or folder.","operationId":"rename_file_endpoint_api_v1_drive__file_id__rename_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileRename"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/move":{"patch":{"tags":["Drive"],"summary":"Move File Endpoint","description":"Move a file or folder.","operationId":"move_file_endpoint_api_v1_drive__file_id__move_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileMove"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/copy":{"post":{"tags":["Drive"],"summary":"Copy File Endpoint","description":"Copy a file or folder.","operationId":"copy_file_endpoint_api_v1_drive__file_id__copy_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"target_folder_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Folder Id"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/save-as-odf":{"post":{"tags":["Drive"],"summary":"Save As Odf Endpoint","description":"Convert an MS Office document to its Open Document equivalent and save it to Drive.","operationId":"save_as_odf_endpoint_api_v1_drive__file_id__save_as_odf_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/favorite":{"post":{"tags":["Drive"],"summary":"Toggle Favorite Endpoint","description":"Toggle favorite status.","operationId":"toggle_favorite_endpoint_api_v1_drive__file_id__favorite_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/trash":{"post":{"tags":["Drive"],"summary":"Trash File Endpoint","description":"Move file or folder to trash.","operationId":"trash_file_endpoint_api_v1_drive__file_id__trash_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/restore":{"post":{"tags":["Drive"],"summary":"Restore File Endpoint","description":"Restore file or folder from trash.","operationId":"restore_file_endpoint_api_v1_drive__file_id__restore_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/trash":{"delete":{"tags":["Drive"],"summary":"Empty Trash Endpoint","description":"Empty trash for current user.","operationId":"empty_trash_endpoint_api_v1_drive_trash_delete","security":[{"HTTPBearer":[]}],"responses":{"204":{"description":"Successful Response"}}},"get":{"tags":["Drive"],"summary":"Get Trash Endpoint","description":"Get trashed files with filtering, sorting, and pagination.","operationId":"get_trash_endpoint_api_v1_drive_trash_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","default":"desc"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Per Page"}},{"name":"filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Filter"}},{"name":"or_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Or Filter"}},{"name":"mime_types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Mime Types"}},{"name":"mime_group","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mime Group"}},{"name":"is_folder","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Folder"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Paginated_FileItem_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}":{"delete":{"tags":["Drive"],"summary":"Delete Permanently Endpoint","description":"Permanently delete file or folder.","operationId":"delete_permanently_endpoint_api_v1_drive__file_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/shared":{"get":{"tags":["Drive"],"summary":"Get Shared Files Endpoint","description":"Get files shared with current user with filtering, sorting, and pagination.","operationId":"get_shared_files_endpoint_api_v1_drive_shared_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","default":"desc"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Per Page"}},{"name":"filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Filter"}},{"name":"or_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Or Filter"}},{"name":"mime_types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Mime Types"}},{"name":"mime_group","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mime Group"}},{"name":"is_folder","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Folder"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Paginated_FileItem_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/search":{"get":{"tags":["Drive"],"summary":"Search Files Endpoint","description":"Search files with optional advanced filters.\n\nReturns a Meilisearch-compatible response envelope with hits,\ntotal count, processing time, and optional facet distribution.","operationId":"search_files_endpoint_api_v1_drive_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"mime_types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Mime Types"}},{"name":"facets","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Facets"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created Before"}},{"name":"modified_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified After"}},{"name":"modified_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified Before"}},{"name":"owner_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Name"}},{"name":"is_folder","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Folder"}},{"name":"min_size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Min Size"}},{"name":"max_size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Max Size"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__v1__drive__schemas__SearchResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/shares":{"post":{"tags":["Drive"],"summary":"Create Share Endpoint","description":"Create a file share.","operationId":"create_share_endpoint_api_v1_drive__file_id__shares_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Drive"],"summary":"List Shares Endpoint","description":"List shares for a file.","operationId":"list_shares_endpoint_api_v1_drive__file_id__shares_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShareInfo"},"title":"Response List Shares Endpoint Api V1 Drive  File Id  Shares Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/shares/{share_id}":{"delete":{"tags":["Drive"],"summary":"Delete Share Endpoint","description":"Delete a file share.","operationId":"delete_share_endpoint_api_v1_drive__file_id__shares__share_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"share_id","in":"path","required":true,"schema":{"type":"string","title":"Share Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/shared-link/{token}":{"get":{"tags":["Drive"],"summary":"Access Shared Link Endpoint","description":"Access a file via public share link (no auth required).","operationId":"access_shared_link_endpoint_api_v1_drive_shared_link__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"X-Share-Password","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Share-Password"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedLinkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}},"/api/v1/drive/shared-link/{token}/download":{"get":{"tags":["Drive"],"summary":"Download Shared Link Endpoint","description":"Get download URL for a shared file (no auth required).","operationId":"download_shared_link_endpoint_api_v1_drive_shared_link__token__download_get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"X-Share-Password","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Share-Password"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}},"/api/v1/drive/shared-link/{token}/preview":{"get":{"tags":["Drive"],"summary":"Get Shared Link Preview Endpoint","description":"Get presigned inline URL for previewing a shared file (no auth required).","operationId":"get_shared_link_preview_endpoint_api_v1_drive_shared_link__token__preview_get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"X-Share-Password","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Share-Password"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Get Shared Link Preview Endpoint Api V1 Drive Shared Link  Token  Preview Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}},"/api/v1/drive/shared-link/{token}/content":{"get":{"tags":["Drive"],"summary":"Get Shared Link Content Endpoint","description":"Get raw text content for a shared file (text files only, no auth required).","operationId":"get_shared_link_content_endpoint_api_v1_drive_shared_link__token__content_get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"X-Share-Password","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Share-Password"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Get Shared Link Content Endpoint Api V1 Drive Shared Link  Token  Content Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]},"put":{"tags":["Drive"],"summary":"Save Shared Link Content Endpoint","description":"Save raw text content for a shared file (edit permission required, no auth).","operationId":"save_shared_link_content_endpoint_api_v1_drive_shared_link__token__content_put","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"X-Share-Password","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Share-Password"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"string","title":"Content"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}},"/api/v1/drive/shared-link/{token}/edit-url":{"get":{"tags":["Drive"],"summary":"Get Shared Link Edit Url Endpoint","description":"Get Collabora editor session for a shared file (no auth required).","operationId":"get_shared_link_edit_url_endpoint_api_v1_drive_shared_link__token__edit_url_get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Theme"}},{"name":"X-Share-Password","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Share-Password"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}},"/api/v1/drive/storage":{"get":{"tags":["Drive"],"summary":"Get Storage Usage Endpoint","description":"Get storage usage for user's organization.","operationId":"get_storage_usage_endpoint_api_v1_drive_storage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageUsage"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/drive/storage/breakdown":{"get":{"tags":["Drive"],"summary":"Get Storage Breakdown Endpoint","description":"Get detailed storage breakdown with categories and largest files.","operationId":"get_storage_breakdown_endpoint_api_v1_drive_storage_breakdown_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageBreakdown"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/drive/{file_id}/edit-url":{"get":{"tags":["Drive"],"summary":"Get Edit Session Endpoint","description":"Get Collabora editor session for a file.","operationId":"get_edit_session_endpoint_api_v1_drive__file_id__edit_url_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Theme"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/editors":{"get":{"tags":["Drive"],"summary":"Get File Editors Endpoint","description":"Get active editors for a file (users currently editing in Collabora).","operationId":"get_file_editors_endpoint_api_v1_drive__file_id__editors_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Get File Editors Endpoint Api V1 Drive  File Id  Editors Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/create-document":{"post":{"tags":["Drive"],"summary":"Create Document Endpoint","description":"Create a blank office document and return editor session.","operationId":"create_document_endpoint_api_v1_drive_create_document_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDocumentRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/drive/{file_id}/versions":{"get":{"tags":["Drive"],"summary":"List File Versions Endpoint","description":"List version history for a file.","operationId":"list_file_versions_endpoint_api_v1_drive__file_id__versions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FileVersionResponse"},"title":"Response List File Versions Endpoint Api V1 Drive  File Id  Versions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/versions/{version_id}/restore":{"post":{"tags":["Drive"],"summary":"Restore File Version Endpoint","description":"Restore a file to a previous version.","operationId":"restore_file_version_endpoint_api_v1_drive__file_id__versions__version_id__restore_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","title":"Version Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/versions/{version_id}/download":{"get":{"tags":["Drive"],"summary":"Download File Version Endpoint","description":"Get download URL for a specific file version.","operationId":"download_file_version_endpoint_api_v1_drive__file_id__versions__version_id__download_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","title":"Version Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/metadata":{"patch":{"tags":["Drive"],"summary":"Update File Metadata Endpoint","description":"Update file custom metadata.","operationId":"update_file_metadata_endpoint_api_v1_drive__file_id__metadata_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileMetadataUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/comments":{"get":{"tags":["Drive"],"summary":"Get File Comments Channel Endpoint","description":"Get or create the comments channel for a file.","operationId":"get_file_comments_channel_endpoint_api_v1_drive__file_id__comments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Get File Comments Channel Endpoint Api V1 Drive  File Id  Comments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/detail":{"get":{"tags":["Drive"],"summary":"Get File Detail Endpoint","description":"Get metadata for a single file.","operationId":"get_file_detail_endpoint_api_v1_drive__file_id__detail_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/external/connections":{"get":{"tags":["Drive"],"summary":"List External Connections Endpoint","description":"Storage providers this user can browse, for the attach/save picker.","operationId":"list_external_connections_endpoint_api_v1_drive_external_connections_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List External Connections Endpoint Api V1 Drive External Connections Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/drive/external/{connection_id}/browse":{"get":{"tags":["Drive"],"summary":"Browse External Endpoint","description":"List one level of an external provider's tree.","operationId":"browse_external_endpoint_api_v1_drive_external__connection_id__browse_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Browse External Endpoint Api V1 Drive External  Connection Id  Browse Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/external/{connection_id}/import":{"post":{"tags":["Drive"],"summary":"Import From External Endpoint","description":"Copy an external file into Drive, so it can be attached or shared.","operationId":"import_from_external_endpoint_api_v1_drive_external__connection_id__import_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalImportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/external/{connection_id}/export":{"post":{"tags":["Drive"],"summary":"Export To External Endpoint","description":"Save a Drive file out to an external provider.","operationId":"export_to_external_endpoint_api_v1_drive_external__connection_id__export_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalExportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Export To External Endpoint Api V1 Drive External  Connection Id  Export Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/{file_id}/editor-events":{"post":{"tags":["Drive"],"summary":"Log Editor Event Endpoint","description":"Record one step of opening a document in the server log.","operationId":"log_editor_event_endpoint_api_v1_drive__file_id__editor_events_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"File Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditorEventCreate"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/sync/files/{file_id}":{"get":{"tags":["Drive"],"summary":"Get Single Item Endpoint","description":"Single-file metadata in SyncDeltaItem shape — used by the macOS\nFileProvider extension's `item(for:)` so it can hydrate a placeholder\nwithout enumerating the whole delta. Owner-scoped: only the file's\nowner sees it (mirrors the per-user delta filter).","operationId":"get_single_item_endpoint_api_v1_drive_sync_files__file_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncDeltaItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/sync/delta":{"get":{"tags":["Drive"],"summary":"Get Delta Endpoint","description":"Get changes since cursor, or full initial sync if no cursor.","operationId":"get_delta_endpoint_api_v1_drive_sync_delta_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"device_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"description":"Client-generated stable device ID","title":"Device Id"},"description":"Client-generated stable device ID"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"description":"Cursor from previous delta call","title":"Cursor"},"description":"Cursor from previous delta call"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncDeltaResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/sync/children":{"get":{"tags":["Drive"],"summary":"List Children Endpoint","description":"Direct children of one folder, paginated.\n\nLets the macOS File Provider draw a folder without pulling the user's\nwhole drive through /delta first.","operationId":"list_children_endpoint_api_v1_drive_sync_children_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"parent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":36},{"type":"null"}],"description":"Folder to list; omit for the drive root","title":"Parent Id"},"description":"Folder to list; omit for the drive root"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":36},{"type":"null"}],"description":"next_cursor from the previous page of this folder","title":"Cursor"},"description":"next_cursor from the previous page of this folder"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncChildrenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/sync/search":{"get":{"tags":["Drive"],"summary":"Search Endpoint","description":"Name search over the user's files — backs Finder search on macOS,\nwhere cloud-only files have no local copy for Spotlight to index.","operationId":"search_endpoint_api_v1_drive_sync_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Name substring","title":"Q"},"description":"Name substring"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"description":"next_cursor from the previous page","title":"Cursor"},"description":"next_cursor from the previous page"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncSearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/sync/status":{"get":{"tags":["Drive"],"summary":"Get Status Endpoint","description":"Sync health check + server timestamp.","operationId":"get_status_endpoint_api_v1_drive_sync_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"device_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"description":"Device ID for cursor info","title":"Device Id"},"description":"Device ID for cursor info"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/sync/notifications":{"get":{"tags":["Drive"],"summary":"Get Notifications Endpoint","description":"File-share-received events since `since`, for the desktop toast poller.","operationId":"get_notifications_endpoint_api_v1_drive_sync_notifications_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Unix timestamp (seconds); return shares received after this","default":0,"title":"Since"},"description":"Unix timestamp (seconds); return shares received after this"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SyncShareNotification"},"title":"Response Get Notifications Endpoint Api V1 Drive Sync Notifications Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/drive/sync/devices":{"get":{"tags":["Drive"],"summary":"List Devices Endpoint","description":"List user's sync devices.","operationId":"list_devices_endpoint_api_v1_drive_sync_devices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SyncDeviceInfo"},"type":"array","title":"Response List Devices Endpoint Api V1 Drive Sync Devices Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/drive/sync/commit":{"post":{"tags":["Drive"],"summary":"Commit Endpoint","description":"Report local changes (batch create/update/delete).","operationId":"commit_endpoint_api_v1_drive_sync_commit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncCommitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncCommitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/drive/sync/resolve":{"post":{"tags":["Drive"],"summary":"Resolve Endpoint","description":"Resolve a sync conflict.","operationId":"resolve_endpoint_api_v1_drive_sync_resolve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncConflictResolve"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncCommitResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/drive/sync/devices/{device_id}":{"delete":{"tags":["Drive"],"summary":"Revoke Device Endpoint","description":"Revoke a sync device.","operationId":"revoke_device_endpoint_api_v1_drive_sync_devices__device_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"device_id","in":"path","required":true,"schema":{"type":"string","title":"Device Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sites/search":{"get":{"tags":["Sites"],"summary":"Search Sites Endpoint","description":"Search sites and pages.","operationId":"search_sites_endpoint_api_v1_sites_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Search query","title":"Q"},"description":"Search query"},{"name":"type","in":"query","required":false,"schema":{"type":"string","description":"Search type: site, page, or all","default":"all","title":"Type"},"description":"Search type: site, page, or all"},{"name":"site_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Scope to a specific site","title":"Site Id"},"description":"Scope to a specific site"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"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/SiteSearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sites/{site_id}":{"get":{"tags":["Sites"],"summary":"Get Site Endpoint","description":"Get site details.","operationId":"get_site_endpoint_api_v1_sites__site_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","title":"Site Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Sites"],"summary":"Update Site Endpoint","description":"Update site properties.","operationId":"update_site_endpoint_api_v1_sites__site_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","title":"Site Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Sites"],"summary":"Delete Site Endpoint","description":"Archive a site (soft delete).","operationId":"delete_site_endpoint_api_v1_sites__site_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","title":"Site Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sites/{site_id}/pages":{"get":{"tags":["Sites"],"summary":"List Pages Endpoint","description":"List all pages in a site.","operationId":"list_pages_endpoint_api_v1_sites__site_id__pages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","title":"Site Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PageResponse"},"title":"Response List Pages Endpoint Api V1 Sites  Site Id  Pages Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Sites"],"summary":"Create Page Endpoint","description":"Create a new page in a site.","operationId":"create_page_endpoint_api_v1_sites__site_id__pages_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","title":"Site Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sites/{site_id}/pages/tree":{"get":{"tags":["Sites"],"summary":"Get Page Tree Endpoint","description":"Get page tree for sidebar navigation.","operationId":"get_page_tree_endpoint_api_v1_sites__site_id__pages_tree_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","title":"Site Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PageTreeItem"},"title":"Response Get Page Tree Endpoint Api V1 Sites  Site Id  Pages Tree Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sites/{site_id}/pages/{page_id}":{"get":{"tags":["Sites"],"summary":"Get Page Endpoint","description":"Get a specific page.","operationId":"get_page_endpoint_api_v1_sites__site_id__pages__page_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","title":"Site Id"}},{"name":"page_id","in":"path","required":true,"schema":{"type":"string","title":"Page Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Sites"],"summary":"Update Page Endpoint","description":"Update a page. Supports optimistic concurrency via If-Match.","operationId":"update_page_endpoint_api_v1_sites__site_id__pages__page_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","title":"Site Id"}},{"name":"page_id","in":"path","required":true,"schema":{"type":"string","title":"Page Id"}},{"name":"If-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Sites"],"summary":"Delete Page Endpoint","description":"Delete a page.","operationId":"delete_page_endpoint_api_v1_sites__site_id__pages__page_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"site_id","in":"path","required":true,"schema":{"type":"string","title":"Site Id"}},{"name":"page_id","in":"path","required":true,"schema":{"type":"string","title":"Page Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/tus/{upload_id}":{"options":{"tags":["mail","Mail - TUS Upload"],"summary":"Tus Options","description":"TUS protocol discovery (non-CORS). CORS preflight is handled by CORSMiddleware.","operationId":"tus_options_api_v1_mail_tus__upload_id__options","responses":{"204":{"description":"Successful Response"}},"security":[{"BearerAuth":[]}]},"head":{"tags":["mail","Mail - TUS Upload"],"summary":"Tus Head","operationId":"tus_head_api_v1_mail_tus__upload_id__head","security":[{"HTTPBearer":[]}],"parameters":[{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","title":"Upload Id"}},{"name":"tus-resumable","in":"header","required":false,"schema":{"type":"string","title":"Tus-Resumable"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["mail","Mail - TUS Upload"],"summary":"Tus Patch","operationId":"tus_patch_api_v1_mail_tus__upload_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","title":"Upload Id"}},{"name":"upload-offset","in":"header","required":true,"schema":{"type":"integer","title":"Upload-Offset"}},{"name":"content-type","in":"header","required":false,"schema":{"type":"string","title":"Content-Type"}},{"name":"tus-resumable","in":"header","required":false,"schema":{"type":"string","title":"Tus-Resumable"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["mail","Mail - TUS Upload"],"summary":"Tus Delete","operationId":"tus_delete_api_v1_mail_tus__upload_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","title":"Upload Id"}},{"name":"tus-resumable","in":"header","required":false,"schema":{"type":"string","title":"Tus-Resumable"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/tus/":{"options":{"tags":["mail","Mail - TUS Upload"],"summary":"Tus Options","description":"TUS protocol discovery (non-CORS). CORS preflight is handled by CORSMiddleware.","operationId":"tus_options_api_v1_mail_tus__options","responses":{"204":{"description":"Successful Response"}},"security":[{"BearerAuth":[]}]},"post":{"tags":["mail","Mail - TUS Upload"],"summary":"Tus Create","operationId":"tus_create_api_v1_mail_tus__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"upload-metadata","in":"header","required":false,"schema":{"type":"string","title":"Upload-Metadata"}},{"name":"upload-length","in":"header","required":false,"schema":{"type":"integer","title":"Upload-Length"}},{"name":"tus-resumable","in":"header","required":false,"schema":{"type":"string","title":"Tus-Resumable"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/tus":{"post":{"tags":["mail","Mail - TUS Upload"],"summary":"Tus Create","operationId":"tus_create_api_v1_mail_tus_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"upload-metadata","in":"header","required":false,"schema":{"type":"string","title":"Upload-Metadata"}},{"name":"upload-length","in":"header","required":false,"schema":{"type":"integer","title":"Upload-Length"}},{"name":"tus-resumable","in":"header","required":false,"schema":{"type":"string","title":"Tus-Resumable"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/identity-sync":{"get":{"tags":["mail"],"summary":"Identity Sync Endpoint","description":"Return every personal sender identity permitted for an external client.","operationId":"identity_sync_endpoint_api_v1_mail_identity_sync_get","parameters":[{"name":"if-none-match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentitySyncResponse"}}}},"304":{"description":"Identity state unchanged"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}},"/api/v1/mail/init":{"get":{"tags":["mail"],"summary":"Mail Init Endpoint","description":"Return mailboxes and inbox messages in a single response.\n\nOptimized for initial mail page load — eliminates the frontend waterfall\nof fetching mailboxes first, then messages.","operationId":"mail_init_endpoint_api_v1_mail_init_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailInitResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/mailboxes":{"get":{"tags":["mail"],"summary":"List Mailboxes Endpoint","description":"List all mailboxes for the current user.\n\nReturns empty list if user doesn't have mail feature in their plan.","operationId":"list_mailboxes_endpoint_api_v1_mail_mailboxes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Mailbox"},"type":"array","title":"Response List Mailboxes Endpoint Api V1 Mail Mailboxes Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["mail"],"summary":"Create Mailbox Endpoint","description":"Create a custom mailbox (folder), optionally nested under a parent.","operationId":"create_mailbox_endpoint_api_v1_mail_mailboxes_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mailbox"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/mailboxes/{mailbox_id}":{"patch":{"tags":["mail"],"summary":"Update Mailbox Endpoint","description":"Rename and/or move a custom mailbox (folder).","operationId":"update_mailbox_endpoint_api_v1_mail_mailboxes__mailbox_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Mailbox Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mailbox"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["mail"],"summary":"Delete Mailbox Endpoint","description":"Delete a custom mailbox (folder).","operationId":"delete_mailbox_endpoint_api_v1_mail_mailboxes__mailbox_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Mailbox Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/quota":{"get":{"tags":["mail"],"summary":"Get Quota Endpoint","description":"Get mail storage quota for the current user.","operationId":"get_quota_endpoint_api_v1_mail_quota_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailQuota"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/messages":{"get":{"tags":["mail"],"summary":"List Messages Endpoint","description":"List messages in a mailbox.","operationId":"list_messages_endpoint_api_v1_mail_messages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"mailbox_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mailbox Id"}},{"name":"position","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Position"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"receivedAt desc","title":"Sort"}},{"name":"view_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(unread|starred|attachments|unanswered)$"},{"type":"null"}],"title":"View Filter"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__v1__mail__schemas__MessageListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/messages/{message_id}":{"get":{"tags":["mail"],"summary":"Get Message Endpoint","description":"Get full message details.","operationId":"get_message_endpoint_api_v1_mail_messages__message_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}},{"name":"proxy_remote_images","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Proxy Remote Images"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["mail"],"summary":"Update Message Endpoint","description":"Update message properties (read, starred, mailbox).","operationId":"update_message_endpoint_api_v1_mail_messages__message_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__v1__mail__schemas__MessageUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["mail"],"summary":"Delete Message Endpoint","description":"Delete a message (move to trash or permanent delete if already in trash).","operationId":"delete_message_endpoint_api_v1_mail_messages__message_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/messages/bulk":{"patch":{"tags":["mail"],"summary":"Bulk Update Messages Endpoint","description":"Bulk update multiple messages.","operationId":"bulk_update_messages_endpoint_api_v1_mail_messages_bulk_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkMessageUpdate"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/threads/{thread_id}":{"get":{"tags":["mail"],"summary":"Get Thread Endpoint","description":"Get all messages in a thread.\n\nIf *include_message_id* is provided and that email is not already part of\nthe thread (James threading mismatch), it will be fetched separately and\nmerged into the response so the user always sees the message they clicked.","operationId":"get_thread_endpoint_api_v1_mail_threads__thread_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"include_message_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Include Message Id"}},{"name":"proxy_remote_images","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Proxy Remote Images"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThreadDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/send":{"post":{"tags":["mail"],"summary":"Send Message Endpoint","description":"Send an email.","operationId":"send_message_endpoint_api_v1_mail_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComposeEmail"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/drafts":{"post":{"tags":["mail"],"summary":"Save Draft Endpoint","description":"Save an email as a draft.","operationId":"save_draft_endpoint_api_v1_mail_drafts_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComposeEmail"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/drafts/{draft_id}":{"put":{"tags":["mail"],"summary":"Update Draft Endpoint","description":"Update an existing draft (destroy old + create new atomically).","operationId":"update_draft_endpoint_api_v1_mail_drafts__draft_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"draft_id","in":"path","required":true,"schema":{"type":"string","title":"Draft Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComposeEmail"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/attachments":{"post":{"tags":["mail"],"summary":"Upload Attachment Endpoint","description":"Upload an attachment.","operationId":"upload_attachment_endpoint_api_v1_mail_attachments_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_attachment_endpoint_api_v1_mail_attachments_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/attachments/from-drive":{"post":{"tags":["mail"],"summary":"Attach From Drive Endpoint","description":"Attach files from Drive or ShareHub to an email draft.","operationId":"attach_from_drive_endpoint_api_v1_mail_attachments_from_drive_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriveAttachRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","title":"Response Attach From Drive Endpoint Api V1 Mail Attachments From Drive Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/attachments/save-to-drive":{"post":{"tags":["mail"],"summary":"Save Attachments To Drive Endpoint","description":"Save attachments to Drive/ShareHub instead of downloading them locally.","operationId":"save_attachments_to_drive_endpoint_api_v1_mail_attachments_save_to_drive_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveAttachmentsToDriveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/FileItem"},"type":"array","title":"Response Save Attachments To Drive Endpoint Api V1 Mail Attachments Save To Drive Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/attachments/save-to-external":{"post":{"tags":["mail"],"summary":"Save Attachments To External Endpoint","description":"Save attachments straight to a connected provider, bypassing Drive.","operationId":"save_attachments_to_external_endpoint_api_v1_mail_attachments_save_to_external_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveAttachmentsToExternalRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SavedExternalAttachment"},"type":"array","title":"Response Save Attachments To External Endpoint Api V1 Mail Attachments Save To External Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/attachments/{blob_id}":{"get":{"tags":["mail"],"summary":"Download Attachment Endpoint","description":"Download an attachment.","operationId":"download_attachment_endpoint_api_v1_mail_attachments__blob_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"blob_id","in":"path","required":true,"schema":{"type":"string","title":"Blob Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/attachments/{blob_id}/preview":{"get":{"tags":["mail"],"summary":"Preview Attachment Endpoint","description":"Render an attachment inline, converting office docs to PDF when needed.","operationId":"preview_attachment_endpoint_api_v1_mail_attachments__blob_id__preview_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"blob_id","in":"path","required":true,"schema":{"type":"string","title":"Blob Id"}},{"name":"filename","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/attachments/{blob_id}/download":{"get":{"tags":["mail"],"summary":"Download Attachment Force Endpoint","description":"Download an attachment (force download).","operationId":"download_attachment_force_endpoint_api_v1_mail_attachments__blob_id__download_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"blob_id","in":"path","required":true,"schema":{"type":"string","title":"Blob Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/attachments/download-zip":{"post":{"tags":["mail"],"summary":"Download Attachments Zip Endpoint","description":"Download multiple attachments as a zip archive.","operationId":"download_attachments_zip_endpoint_api_v1_mail_attachments_download_zip_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachmentZipRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/attachments/tus-blob/{upload_id}":{"get":{"tags":["mail"],"summary":"Get Tus Blob Endpoint","description":"Get attachment blob info for a completed TUS upload.","operationId":"get_tus_blob_endpoint_api_v1_mail_attachments_tus_blob__upload_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","title":"Upload Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Attachment"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/inline/{blob_id}":{"get":{"tags":["mail"],"summary":"Get Inline Blob Endpoint","description":"Serve an inline email blob (CID image) via a signed URL.\n\nNo Bearer auth required — the HMAC token in the query string proves\nthe URL was generated by the backend for a specific user + blob.","operationId":"get_inline_blob_endpoint_api_v1_mail_inline__blob_id__get","parameters":[{"name":"blob_id","in":"path","required":true,"schema":{"type":"string","title":"Blob Id"}},{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}},{"name":"exp","in":"query","required":true,"schema":{"type":"integer","title":"Exp"}},{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}},"/api/v1/mail/remote-image":{"get":{"tags":["mail"],"summary":"Get Remote Image Endpoint","description":"Serve a remote image through a signed backend proxy.","operationId":"get_remote_image_endpoint_api_v1_mail_remote_image_get","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","title":"Url"}},{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}},{"name":"exp","in":"query","required":true,"schema":{"type":"integer","title":"Exp"}},{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}},"/api/v1/mail/messages/{message_id}/spam":{"post":{"tags":["mail"],"summary":"Report Spam Endpoint","description":"Report a message as spam (trains rspamd + moves to Junk).","operationId":"report_spam_endpoint_api_v1_mail_messages__message_id__spam_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpamReportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/messages/{message_id}/not-spam":{"post":{"tags":["mail"],"summary":"Report Not Spam Endpoint","description":"Report a message as not spam (trains rspamd + moves to Inbox).","operationId":"report_not_spam_endpoint_api_v1_mail_messages__message_id__not_spam_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpamReportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/attachments/{blob_id}/parse-ics":{"get":{"tags":["mail"],"summary":"Parse Ics Attachment Endpoint","description":"Parse an ICS attachment and return event previews.","operationId":"parse_ics_attachment_endpoint_api_v1_mail_attachments__blob_id__parse_ics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"blob_id","in":"path","required":true,"schema":{"type":"string","title":"Blob Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IcsEventPreview"},"title":"Response Parse Ics Attachment Endpoint Api V1 Mail Attachments  Blob Id  Parse Ics Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/import-ics":{"post":{"tags":["mail"],"summary":"Import Ics Endpoint","description":"Import events from an ICS mail attachment into the user's calendar.","operationId":"import_ics_endpoint_api_v1_mail_import_ics_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcsImportRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IcsImportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/notify-new":{"post":{"tags":["mail"],"summary":"Notify New Emails Endpoint","description":"Create notifications for newly arrived emails (called by frontend SSE listener).","operationId":"notify_new_emails_endpoint_api_v1_mail_notify_new_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewEmailNotifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewEmailNotifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/filters":{"get":{"tags":["mail"],"summary":"List Filters Endpoint","description":"List all mail filters for the current user.","operationId":"list_filters_endpoint_api_v1_mail_filters_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SieveFilter"},"type":"array","title":"Response List Filters Endpoint Api V1 Mail Filters Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["mail"],"summary":"Create Filter Endpoint","description":"Create a new mail filter.","operationId":"create_filter_endpoint_api_v1_mail_filters_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SieveFilterCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SieveFilter"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/filters/reorder":{"patch":{"tags":["mail"],"summary":"Reorder Filters Endpoint","description":"Reorder mail filters.","operationId":"reorder_filters_endpoint_api_v1_mail_filters_reorder_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterReorderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SieveFilter"},"type":"array","title":"Response Reorder Filters Endpoint Api V1 Mail Filters Reorder Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/filters/{filter_id}":{"patch":{"tags":["mail"],"summary":"Update Filter Endpoint","description":"Update an existing mail filter.","operationId":"update_filter_endpoint_api_v1_mail_filters__filter_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"filter_id","in":"path","required":true,"schema":{"type":"string","title":"Filter Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SieveFilterUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SieveFilter"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["mail"],"summary":"Delete Filter Endpoint","description":"Delete a mail filter.","operationId":"delete_filter_endpoint_api_v1_mail_filters__filter_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"filter_id","in":"path","required":true,"schema":{"type":"string","title":"Filter Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/blocked-senders":{"get":{"tags":["mail"],"summary":"List Blocked Senders Endpoint","description":"List sender addresses whose mail is filed into Spam.","operationId":"list_blocked_senders_endpoint_api_v1_mail_blocked_senders_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockedSendersResponse"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["mail"],"summary":"Block Sender Endpoint","description":"Block a sender so future mail from that address is filed into Spam.","operationId":"block_sender_endpoint_api_v1_mail_blocked_senders_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockSenderRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockedSendersResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/blocked-senders/{address}":{"delete":{"tags":["mail"],"summary":"Unblock Sender Endpoint","description":"Unblock a sender so their mail is no longer auto-filed into Spam.","operationId":"unblock_sender_endpoint_api_v1_mail_blocked_senders__address__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockedSendersResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/labels":{"get":{"tags":["mail"],"summary":"List Labels Endpoint","description":"List all mail labels for the current user.","operationId":"list_labels_endpoint_api_v1_mail_labels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MailLabelResponse"},"type":"array","title":"Response List Labels Endpoint Api V1 Mail Labels Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["mail"],"summary":"Create Label Endpoint","description":"Create a new mail label.","operationId":"create_label_endpoint_api_v1_mail_labels_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailLabelCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailLabelResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/labels/{label_id}":{"patch":{"tags":["mail"],"summary":"Update Label Endpoint","description":"Update a mail label.","operationId":"update_label_endpoint_api_v1_mail_labels__label_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"label_id","in":"path","required":true,"schema":{"type":"string","title":"Label Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailLabelUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailLabelResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["mail"],"summary":"Delete Label Endpoint","description":"Delete a mail label.","operationId":"delete_label_endpoint_api_v1_mail_labels__label_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"label_id","in":"path","required":true,"schema":{"type":"string","title":"Label Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/smart-folders":{"get":{"tags":["mail"],"summary":"List Smart Folders Endpoint","description":"List all smart folders for the current user.","operationId":"list_smart_folders_endpoint_api_v1_mail_smart_folders_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SmartFolderResponse"},"type":"array","title":"Response List Smart Folders Endpoint Api V1 Mail Smart Folders Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["mail"],"summary":"Create Smart Folder Endpoint","description":"Create a new smart folder.","operationId":"create_smart_folder_endpoint_api_v1_mail_smart_folders_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartFolderCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartFolderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/smart-folders/{folder_id}":{"patch":{"tags":["mail"],"summary":"Update Smart Folder Endpoint","description":"Update a smart folder.","operationId":"update_smart_folder_endpoint_api_v1_mail_smart_folders__folder_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","title":"Folder Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartFolderUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartFolderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["mail"],"summary":"Delete Smart Folder Endpoint","description":"Delete a smart folder.","operationId":"delete_smart_folder_endpoint_api_v1_mail_smart_folders__folder_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","title":"Folder Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/smart-folders/{folder_id}/messages":{"get":{"tags":["mail"],"summary":"Get Smart Folder Messages Endpoint","description":"Get messages matching a smart folder's conditions.","operationId":"get_smart_folder_messages_endpoint_api_v1_mail_smart_folders__folder_id__messages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","title":"Folder Id"}},{"name":"position","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Position"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__v1__mail__schemas__MessageListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/forwarding":{"get":{"tags":["mail"],"summary":"List Forwarding Rules Endpoint","description":"List forwarding rules for the current user.","operationId":"list_forwarding_rules_endpoint_api_v1_mail_forwarding_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserForwardingRuleResponse"},"type":"array","title":"Response List Forwarding Rules Endpoint Api V1 Mail Forwarding Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["mail"],"summary":"Create Forwarding Rule Endpoint","description":"Create a forwarding rule for the current user.","operationId":"create_forwarding_rule_endpoint_api_v1_mail_forwarding_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserForwardingRuleCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserForwardingRuleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/forwarding/{rule_id}":{"patch":{"tags":["mail"],"summary":"Update Forwarding Rule Endpoint","description":"Update a forwarding rule.","operationId":"update_forwarding_rule_endpoint_api_v1_mail_forwarding__rule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserForwardingRuleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserForwardingRuleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["mail"],"summary":"Delete Forwarding Rule Endpoint","description":"Delete a forwarding rule.","operationId":"delete_forwarding_rule_endpoint_api_v1_mail_forwarding__rule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/signatures":{"get":{"tags":["mail"],"summary":"List Signatures Endpoint","description":"List all mail signatures for the current user.","operationId":"list_signatures_endpoint_api_v1_mail_signatures_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MailSignatureResponse"},"type":"array","title":"Response List Signatures Endpoint Api V1 Mail Signatures Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["mail"],"summary":"Create Signature Endpoint","description":"Create a new mail signature.","operationId":"create_signature_endpoint_api_v1_mail_signatures_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailSignatureCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailSignatureResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/signatures/{signature_id}":{"patch":{"tags":["mail"],"summary":"Update Signature Endpoint","description":"Update a mail signature.","operationId":"update_signature_endpoint_api_v1_mail_signatures__signature_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"signature_id","in":"path","required":true,"schema":{"type":"string","title":"Signature Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailSignatureUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailSignatureResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["mail"],"summary":"Delete Signature Endpoint","description":"Delete a mail signature.","operationId":"delete_signature_endpoint_api_v1_mail_signatures__signature_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"signature_id","in":"path","required":true,"schema":{"type":"string","title":"Signature Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/search":{"get":{"tags":["mail"],"summary":"Search Messages Endpoint","description":"Search messages.","operationId":"search_messages_endpoint_api_v1_mail_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}},{"name":"subject","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"}},{"name":"has_attachment","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Attachment"}},{"name":"has_keyword","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Has Keyword"}},{"name":"after","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"After"}},{"name":"before","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Before"}},{"name":"in_mailbox","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"In Mailbox"}},{"name":"not_in_mailboxes","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Not In Mailboxes"}},{"name":"min_size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Size"}},{"name":"max_size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Size"}},{"name":"not_text","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Not Text"}},{"name":"has_keywords","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Has Keywords"}},{"name":"position","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Position"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__v1__mail__schemas__MessageListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/identities":{"get":{"tags":["mail"],"summary":"List Identities Endpoint","description":"List user's email identities (personal + shared mailboxes).","operationId":"list_identities_endpoint_api_v1_mail_identities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MailIdentity"},"type":"array","title":"Response List Identities Endpoint Api V1 Mail Identities Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/shared":{"get":{"tags":["mail"],"summary":"List Shared Mailboxes Endpoint","description":"List shared mailboxes accessible by the current user.","operationId":"list_shared_mailboxes_endpoint_api_v1_mail_shared_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SharedMailboxSummary"},"type":"array","title":"Response List Shared Mailboxes Endpoint Api V1 Mail Shared Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/shared/assigned-to-me":{"get":{"tags":["mail"],"summary":"List Assigned To Me Endpoint","description":"Unresolved conversations assigned to the caller, across every shared inbox.","operationId":"list_assigned_to_me_endpoint_api_v1_mail_shared_assigned_to_me_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignedConversationList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/shared/{shared_mailbox_id}/presence":{"get":{"tags":["mail"],"summary":"Get Shared Presence Endpoint","description":"Who else has each conversation in this mailbox open, keyed by thread id.","operationId":"get_shared_presence_endpoint_api_v1_mail_shared__shared_mailbox_id__presence_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ThreadPresence"},"title":"Response Get Shared Presence Endpoint Api V1 Mail Shared  Shared Mailbox Id  Presence Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["mail"],"summary":"Post Shared Presence Endpoint","description":"Heartbeat that the caller still has a conversation open.","operationId":"post_shared_presence_endpoint_api_v1_mail_shared__shared_mailbox_id__presence_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresenceHeartbeat"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/shared/{shared_mailbox_id}/mailboxes":{"get":{"tags":["mail"],"summary":"List Shared Mailbox Folders Endpoint","description":"List folders belonging to one accessible shared mailbox.","operationId":"list_shared_mailbox_folders_endpoint_api_v1_mail_shared__shared_mailbox_id__mailboxes_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Mailbox"},"title":"Response List Shared Mailbox Folders Endpoint Api V1 Mail Shared  Shared Mailbox Id  Mailboxes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/shared/{shared_mailbox_id}/messages":{"get":{"tags":["mail"],"summary":"List Shared Inbox Messages Endpoint","description":"List messages in a shared inbox.","operationId":"list_shared_inbox_messages_endpoint_api_v1_mail_shared__shared_mailbox_id__messages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}},{"name":"mailbox_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mailbox Id"}},{"name":"position","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Position"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"filter_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter Status"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedInboxMessageList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/shared/{shared_mailbox_id}/threads/{thread_id}":{"get":{"tags":["mail"],"summary":"Get Shared Thread Endpoint","description":"Get all messages in a shared mailbox thread.","operationId":"get_shared_thread_endpoint_api_v1_mail_shared__shared_mailbox_id__threads__thread_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}},{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"include_message_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Include Message Id"}},{"name":"proxy_remote_images","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Proxy Remote Images"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThreadDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/shared/{shared_mailbox_id}/messages/mark-read":{"post":{"tags":["mail"],"summary":"Mark Shared Messages Read Endpoint","description":"Mark shared inbox messages as read.","operationId":"mark_shared_messages_read_endpoint_api_v1_mail_shared__shared_mailbox_id__messages_mark_read_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedMessagesMarkReadRequest"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/shared/{shared_mailbox_id}/messages/{message_id}":{"patch":{"tags":["mail"],"summary":"Update Shared Message Endpoint","description":"Update a message inside a shared mailbox (read, starred, mailbox, labels).","operationId":"update_shared_message_endpoint_api_v1_mail_shared__shared_mailbox_id__messages__message_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}},{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__v1__mail__schemas__MessageUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["mail"],"summary":"Delete Shared Message Endpoint","description":"Delete a message inside a shared mailbox (trash, or permanent if already there).","operationId":"delete_shared_message_endpoint_api_v1_mail_shared__shared_mailbox_id__messages__message_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}},{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/shared/{shared_mailbox_id}/reply":{"post":{"tags":["mail"],"summary":"Reply As Shared Mailbox Endpoint","description":"Reply to a message as the shared mailbox.","operationId":"reply_as_shared_mailbox_endpoint_api_v1_mail_shared__shared_mailbox_id__reply_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedReplyRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/shared/{shared_mailbox_id}/assign":{"post":{"tags":["mail"],"summary":"Assign Conversation Endpoint","description":"Assign or unassign a conversation to a user.","operationId":"assign_conversation_endpoint_api_v1_mail_shared__shared_mailbox_id__assign_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignConversationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/shared/{shared_mailbox_id}/conversations/{thread_id}":{"patch":{"tags":["mail"],"summary":"Update Conversation Status Endpoint","description":"Update conversation status and priority.","operationId":"update_conversation_status_endpoint_api_v1_mail_shared__shared_mailbox_id__conversations__thread_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}},{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConversationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/shared/{shared_mailbox_id}/internal-note":{"post":{"tags":["mail"],"summary":"Add Internal Note Endpoint","description":"Add an internal note to a conversation.","operationId":"add_internal_note_endpoint_api_v1_mail_shared__shared_mailbox_id__internal_note_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddInternalNoteRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/vacation":{"get":{"tags":["mail"],"summary":"Get Vacation Endpoint","description":"Get the current user's Out of Office responder settings.","operationId":"get_vacation_endpoint_api_v1_mail_vacation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VacationResponse"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["mail"],"summary":"Update Vacation Endpoint","description":"Update the current user's Out of Office responder settings.","operationId":"update_vacation_endpoint_api_v1_mail_vacation_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VacationUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VacationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/mail/shared/{shared_mailbox_id}/blocked-senders":{"get":{"tags":["mail"],"summary":"List Shared Blocked Senders Endpoint","description":"List senders blocked for this shared mailbox. Any member may read.","operationId":"list_shared_blocked_senders_endpoint_api_v1_mail_shared__shared_mailbox_id__blocked_senders_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response List Shared Blocked Senders Endpoint Api V1 Mail Shared  Shared Mailbox Id  Blocked Senders Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["mail"],"summary":"Block Shared Sender Endpoint","description":"Block a sender for everyone working this shared mailbox.","operationId":"block_shared_sender_endpoint_api_v1_mail_shared__shared_mailbox_id__blocked_senders_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockSenderRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Block Shared Sender Endpoint Api V1 Mail Shared  Shared Mailbox Id  Blocked Senders Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["mail"],"summary":"Unblock Shared Sender Endpoint","description":"Unblock a sender for this shared mailbox.","operationId":"unblock_shared_sender_endpoint_api_v1_mail_shared__shared_mailbox_id__blocked_senders_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}},{"name":"address","in":"query","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Unblock Shared Sender Endpoint Api V1 Mail Shared  Shared Mailbox Id  Blocked Senders Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/shared/{shared_mailbox_id}/messages/{message_id}/spam":{"post":{"tags":["mail"],"summary":"Report Shared Spam Endpoint","description":"Report a shared-mailbox message as spam (trains rspamd + blocks sender).","operationId":"report_shared_spam_endpoint_api_v1_mail_shared__shared_mailbox_id__messages__message_id__spam_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}},{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpamReportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/shared/{shared_mailbox_id}/messages/{message_id}/not-spam":{"post":{"tags":["mail"],"summary":"Report Shared Not Spam Endpoint","description":"Report a shared-mailbox message as not spam (trains ham + unblocks).","operationId":"report_shared_not_spam_endpoint_api_v1_mail_shared__shared_mailbox_id__messages__message_id__not_spam_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"shared_mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Shared Mailbox Id"}},{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpamReportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mail/provisioning":{"post":{"tags":["Mail provisioning"],"summary":"Provision Launch Mail","description":"Create or advance a launch domain and verification alias idempotently.","operationId":"provision_launch_mail_api_v1_mail_provisioning_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LaunchMailProvisionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LaunchMailProvisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/meetings/{meeting_code}/transcription/livekit-token":{"post":{"tags":["meetings","transcription"],"summary":"Issue Transcription Livekit Token","description":"Exchange a ``meet:transcription`` PAT for a subscribe-only LiveKit token.\n\nLets an external transcription agent (Scriptix) join the meeting room and\nlisten without ever holding EUnifyer's LiveKit API key/secret.","operationId":"issue_transcription_livekit_token_api_v1_meetings__meeting_code__transcription_livekit_token_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptionTokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/transcription/session":{"post":{"tags":["meetings","transcription"],"summary":"Register Agent Transcript Session Endpoint","description":"Let the transcription agent report the batch session it created.\n\nThe agent archives the meeting audio to the STT provider directly, so this\nis the only way the platform learns a transcript is on its way.","operationId":"register_agent_transcript_session_endpoint_api_v1_meetings__meeting_code__transcription_session_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentTranscriptSessionCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Register Agent Transcript Session Endpoint Api V1 Meetings  Meeting Code  Transcription Session Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/transcripts":{"get":{"tags":["meetings","transcription"],"summary":"List Org Transcripts Endpoint","description":"Every transcript in the organization, newest first.\n\nDeclared before the ``/{meeting_code}/transcripts`` route so \"transcripts\"\nis not swallowed as a meeting code.","operationId":"list_org_transcripts_endpoint_api_v1_meetings_transcripts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrgTranscriptListItem"},"title":"Response List Org Transcripts Endpoint Api V1 Meetings Transcripts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/transcripts":{"get":{"tags":["meetings","transcription"],"summary":"List Transcripts Endpoint","description":"List all transcripts for a meeting.","operationId":"list_transcripts_endpoint_api_v1_meetings__meeting_code__transcripts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptListResponse"},"title":"Response List Transcripts Endpoint Api V1 Meetings  Meeting Code  Transcripts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/transcripts/{transcript_id}":{"get":{"tags":["meetings","transcription"],"summary":"Get Transcript Endpoint","description":"Get a full transcript with segments.","operationId":"get_transcript_endpoint_api_v1_meetings__meeting_code__transcripts__transcript_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}},{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","title":"Transcript Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/transcripts/{transcript_id}/download":{"get":{"tags":["meetings","transcription"],"summary":"Download Transcript Endpoint","description":"Download transcript in specified format (json, srt, vtt, txt).","operationId":"download_transcript_endpoint_api_v1_meetings__meeting_code__transcripts__transcript_id__download_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}},{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","title":"Transcript Id"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/transcripts/request":{"post":{"tags":["meetings","transcription"],"summary":"Request Transcription Endpoint","description":"Manually request transcription for a meeting with an existing recording.","operationId":"request_transcription_endpoint_api_v1_meetings__meeting_code__transcripts_request_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptionRequestCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/recording":{"get":{"tags":["meetings","transcription"],"summary":"Get Recording Endpoint","description":"Get recording metadata for a meeting.","operationId":"get_recording_endpoint_api_v1_meetings__meeting_code__recording_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/info":{"get":{"tags":["meetings"],"summary":"Get Meeting Info Endpoint","description":"Get public meeting info (no auth required).","operationId":"get_meeting_info_endpoint_api_v1_meetings__meeting_code__info_get","parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingInfoResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}},"/api/v1/meetings/{meeting_code}/guest-join":{"post":{"tags":["meetings"],"summary":"Guest Join Meeting Endpoint","description":"Join a meeting as a guest — no auth required, just a display name.","operationId":"guest_join_meeting_endpoint_api_v1_meetings__meeting_code__guest_join_post","parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestJoinRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingJoinResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}},"/api/v1/meetings/{meeting_code}/chat":{"get":{"tags":["meetings"],"summary":"Get Meeting Chat Endpoint","description":"Load persisted in-meeting chat history.\n\nOpen to a member of the meeting's organisation, or to a guest the host has\nadmitted. The meeting code alone is not a read credential (F-003).","operationId":"get_meeting_chat_endpoint_api_v1_meetings__meeting_code__chat_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}},{"name":"X-Meeting-Admission","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Meeting-Admission"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MeetingChatMessageResponse"},"title":"Response Get Meeting Chat Endpoint Api V1 Meetings  Meeting Code  Chat Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["meetings"],"summary":"Post Meeting Chat Endpoint","description":"Persist an in-meeting chat message.\n\nSame gate as reading: organisation member or admitted guest, so nobody can\npost under an arbitrary sender name with only the meeting code (F-003).","operationId":"post_meeting_chat_endpoint_api_v1_meetings__meeting_code__chat_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}},{"name":"X-Meeting-Admission","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Meeting-Admission"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingChatMessageCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingChatMessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}":{"get":{"tags":["meetings"],"summary":"Get Meeting Endpoint","description":"Get a meeting by its code.","operationId":"get_meeting_endpoint_api_v1_meetings__meeting_code__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/join":{"post":{"tags":["meetings"],"summary":"Join Meeting Endpoint","description":"Join a meeting and return LiveKit connection credentials.","operationId":"join_meeting_endpoint_api_v1_meetings__meeting_code__join_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingJoinResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/leave":{"post":{"tags":["meetings"],"summary":"Leave Meeting Endpoint","description":"Leave a meeting.","operationId":"leave_meeting_endpoint_api_v1_meetings__meeting_code__leave_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/end":{"post":{"tags":["meetings"],"summary":"End Meeting Endpoint","description":"End a meeting (creator or admin).","operationId":"end_meeting_endpoint_api_v1_meetings__meeting_code__end_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/participants":{"get":{"tags":["meetings"],"summary":"Get Participants Endpoint","description":"List participants of a meeting.","operationId":"get_participants_endpoint_api_v1_meetings__meeting_code__participants_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MeetingParticipantResponse"},"title":"Response Get Participants Endpoint Api V1 Meetings  Meeting Code  Participants Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/recording/settings":{"get":{"tags":["meetings"],"summary":"Get Recording Settings Endpoint","description":"Get org-level recording settings for this meeting.","operationId":"get_recording_settings_endpoint_api_v1_meetings__meeting_code__recording_settings_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingRecordingSettingsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/recording/start":{"post":{"tags":["meetings"],"summary":"Start Recording Endpoint","description":"Start recording a meeting via the recording agent.","operationId":"start_recording_endpoint_api_v1_meetings__meeting_code__recording_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/StartRecordingRequest"},{"type":"null"}],"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingRecordingControlResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/recording/stop":{"post":{"tags":["meetings"],"summary":"Stop Recording Endpoint","description":"Stop the active recording for a meeting.","operationId":"stop_recording_endpoint_api_v1_meetings__meeting_code__recording_stop_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingRecordingControlResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/participants/{identity}/mute":{"post":{"tags":["meetings"],"summary":"Mute Participant Endpoint","description":"Mute a participant's published audio tracks.","operationId":"mute_participant_endpoint_api_v1_meetings__meeting_code__participants__identity__mute_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}},{"name":"identity","in":"path","required":true,"schema":{"type":"string","title":"Identity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingModerationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/participants/{identity}/kick":{"post":{"tags":["meetings"],"summary":"Kick Participant Endpoint","description":"Remove a participant from the meeting.","operationId":"kick_participant_endpoint_api_v1_meetings__meeting_code__participants__identity__kick_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}},{"name":"identity","in":"path","required":true,"schema":{"type":"string","title":"Identity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingModerationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/mute-all":{"post":{"tags":["meetings"],"summary":"Mute All Participants Endpoint","description":"Mute all non-moderator participants in the meeting.","operationId":"mute_all_participants_endpoint_api_v1_meetings__meeting_code__mute_all_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingModerationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/request-join":{"post":{"tags":["meetings"],"summary":"Request Join Endpoint","description":"Request to join a meeting (no auth required). Host must admit.","operationId":"request_join_endpoint_api_v1_meetings__meeting_code__request_join_post","parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdmissionRequestCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdmissionRequestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}},"/api/v1/meetings/{meeting_code}/request-join/auth":{"post":{"tags":["meetings"],"summary":"Request Join Authenticated Endpoint","description":"Request to join as an authenticated but uninvited participant.","operationId":"request_join_authenticated_endpoint_api_v1_meetings__meeting_code__request_join_auth_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdmissionRequestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/admission-status/{request_id}":{"get":{"tags":["meetings"],"summary":"Admission Status Endpoint","description":"Poll admission decision (no auth required).","operationId":"admission_status_endpoint_api_v1_meetings__meeting_code__admission_status__request_id__get","parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}},{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdmissionStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}},"/api/v1/meetings/{meeting_code}/admission-requests":{"get":{"tags":["meetings"],"summary":"List Admission Requests Endpoint","description":"List pending admission requests (moderator only).","operationId":"list_admission_requests_endpoint_api_v1_meetings__meeting_code__admission_requests_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PendingAdmissionEntry"},"title":"Response List Admission Requests Endpoint Api V1 Meetings  Meeting Code  Admission Requests Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/admit/{request_id}":{"post":{"tags":["meetings"],"summary":"Admit Request Endpoint","description":"Admit a pending join request (moderator only).","operationId":"admit_request_endpoint_api_v1_meetings__meeting_code__admit__request_id__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}},{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingJoinResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/deny/{request_id}":{"post":{"tags":["meetings"],"summary":"Deny Request Endpoint","description":"Deny a pending join request (moderator only).","operationId":"deny_request_endpoint_api_v1_meetings__meeting_code__deny__request_id__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}},{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/captions":{"get":{"tags":["meetings"],"summary":"Get Captions Status Endpoint","description":"Return live captions status for the meeting.","operationId":"get_captions_status_endpoint_api_v1_meetings__meeting_code__captions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingCaptionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/captions/start":{"post":{"tags":["meetings"],"summary":"Start Captions Endpoint","description":"Dispatch the live captions agent for the meeting.","operationId":"start_captions_endpoint_api_v1_meetings__meeting_code__captions_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingCaptionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/meetings/{meeting_code}/captions/stop":{"post":{"tags":["meetings"],"summary":"Stop Captions Endpoint","description":"Stop live captions for the meeting.","operationId":"stop_captions_endpoint_api_v1_meetings__meeting_code__captions_stop_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"meeting_code","in":"path","required":true,"schema":{"type":"string","title":"Meeting Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingCaptionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AddInternalNoteRequest":{"properties":{"thread_id":{"type":"string","title":"Thread Id"},"note":{"type":"string","title":"Note"}},"type":"object","required":["thread_id","note"],"title":"AddInternalNoteRequest","description":"Add internal note to a conversation."},"AddressBook":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url"},"writable":{"type":"boolean","title":"Writable"},"source":{"type":"string","title":"Source"}},"type":"object","required":["id","name","url","writable","source"],"title":"AddressBook","description":"Address book (contact group) response."},"AdmissionRequestCreate":{"properties":{"display_name":{"type":"string","title":"Display Name"}},"type":"object","required":["display_name"],"title":"AdmissionRequestCreate","description":"Request to join a meeting (guest or uninvited participant)."},"AdmissionRequestResponse":{"properties":{"request_id":{"type":"string","title":"Request Id"},"status":{"type":"string","title":"Status"}},"type":"object","required":["request_id","status"],"title":"AdmissionRequestResponse","description":"Returned when a join request is created."},"AdmissionStatusResponse":{"properties":{"status":{"type":"string","title":"Status"},"livekit_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Livekit Token"},"livekit_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Livekit Url"},"recording_enabled":{"type":"boolean","title":"Recording Enabled","default":false},"transcription_enabled":{"type":"boolean","title":"Transcription Enabled","default":false}},"type":"object","required":["status"],"title":"AdmissionStatusResponse","description":"Polled by the requester to check admission decision."},"AgentTranscriptSessionCreate":{"properties":{"provider_session_id":{"type":"string","title":"Provider Session Id"},"language":{"type":"string","title":"Language","default":"en"}},"type":"object","required":["provider_session_id"],"title":"AgentTranscriptSessionCreate","description":"Reported by the meeting agent once it has archived a meeting."},"ApiTokenCreate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"ip_allowlist":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ip Allowlist"},"user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"}},"type":"object","required":["name"],"title":"ApiTokenCreate"},"ApiTokenCreatedResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"service_principal_id":{"type":"string","format":"uuid","title":"Service Principal Id"},"name":{"type":"string","title":"Name"},"token_prefix":{"type":"string","title":"Token Prefix"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"ip_allowlist":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ip Allowlist"},"user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"},"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"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"secret":{"type":"string","title":"Secret"}},"type":"object","required":["id","service_principal_id","name","token_prefix","scopes","ip_allowlist","user_id","last_used_at","expires_at","revoked_at","created_at","secret"],"title":"ApiTokenCreatedResponse","description":"Returned once at token creation — includes the raw secret."},"ApiTokenResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"service_principal_id":{"type":"string","format":"uuid","title":"Service Principal Id"},"name":{"type":"string","title":"Name"},"token_prefix":{"type":"string","title":"Token Prefix"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"ip_allowlist":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ip Allowlist"},"user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"},"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"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","service_principal_id","name","token_prefix","scopes","ip_allowlist","user_id","last_used_at","expires_at","revoked_at","created_at"],"title":"ApiTokenResponse"},"AssignConversationRequest":{"properties":{"thread_id":{"type":"string","title":"Thread Id"},"assigned_to_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned To Id"}},"type":"object","required":["thread_id"],"title":"AssignConversationRequest","description":"Assign conversation to a user."},"AssignedConversation":{"properties":{"id":{"type":"string","title":"Id"},"thread_id":{"type":"string","title":"Thread Id"},"mailbox_ids":{"items":{"type":"string"},"type":"array","title":"Mailbox Ids"},"from_":{"anyOf":[{"items":{"$ref":"#/components/schemas/MessageAddress"},"type":"array"},{"type":"null"}],"title":"From"},"to":{"anyOf":[{"items":{"$ref":"#/components/schemas/MessageAddress"},"type":"array"},{"type":"null"}],"title":"To"},"subject":{"type":"string","title":"Subject"},"preview":{"type":"string","title":"Preview"},"received_at":{"type":"string","title":"Received At"},"size":{"type":"integer","title":"Size"},"is_read":{"type":"boolean","title":"Is Read","default":false},"is_starred":{"type":"boolean","title":"Is Starred","default":false},"is_answered":{"type":"boolean","title":"Is Answered","default":false},"has_attachment":{"type":"boolean","title":"Has Attachment","default":false},"thread_count":{"type":"integer","title":"Thread Count","default":1},"labels":{"items":{"type":"string"},"type":"array","title":"Labels","default":[]},"conversation_status":{"type":"string","title":"Conversation Status","default":"open"},"conversation_priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Priority"},"assigned_to_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned To Id"},"assigned_to_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned To Name"},"internal_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Notes"},"shared_mailbox_id":{"type":"string","title":"Shared Mailbox Id"},"shared_mailbox_name":{"type":"string","title":"Shared Mailbox Name"}},"type":"object","required":["id","thread_id","mailbox_ids","subject","preview","received_at","size","shared_mailbox_id","shared_mailbox_name"],"title":"AssignedConversation","description":"A conversation assigned to the caller, tagged with the inbox it came from.\n\nThe unified queue spans mailboxes, so a row is meaningless without saying\nwhich one it belongs to."},"AssignedConversationList":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/AssignedConversation"},"type":"array","title":"Messages"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["messages","total"],"title":"AssignedConversationList","description":"Everything assigned to the caller across every shared mailbox."},"AttachFromDriveRequest":{"properties":{"file_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":20,"minItems":1,"title":"File Ids"}},"type":"object","required":["file_ids"],"title":"AttachFromDriveRequest","description":"Attach existing Drive/ShareHub files to a channel."},"Attachment":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"type":{"type":"string","title":"Type"},"size":{"type":"integer","title":"Size"},"is_inline":{"type":"boolean","title":"Is Inline","default":false},"cid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cid"}},"type":"object","required":["id","type","size"],"title":"Attachment","description":"Email attachment."},"AttachmentResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"message_id":{"type":"string","format":"uuid","title":"Message Id"},"file_name":{"type":"string","title":"File Name"},"file_size":{"type":"integer","title":"File Size"},"mime_type":{"type":"string","title":"Mime Type"},"s3_key":{"type":"string","title":"S3 Key"},"thumbnail_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail S3 Key"},"encrypted":{"type":"boolean","title":"Encrypted"},"encryption_key_enc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryption Key Enc"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Url"},"archived":{"type":"boolean","title":"Archived","default":false}},"type":"object","required":["id","message_id","file_name","file_size","mime_type","s3_key","thumbnail_s3_key","encrypted","encryption_key_enc","created_at"],"title":"AttachmentResponse","description":"File attachment response."},"AttachmentZipItem":{"properties":{"blob_id":{"type":"string","title":"Blob Id"},"name":{"type":"string","title":"Name","default":"attachment"}},"type":"object","required":["blob_id"],"title":"AttachmentZipItem","description":"Single attachment for zip download."},"AttachmentZipRequest":{"properties":{"attachments":{"anyOf":[{"items":{"$ref":"#/components/schemas/AttachmentZipItem"},"type":"array","maxItems":50},{"type":"null"}],"title":"Attachments"},"blob_ids":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":50},{"type":"null"}],"title":"Blob Ids"}},"type":"object","title":"AttachmentZipRequest","description":"Request to download multiple attachments as a zip archive."},"AttendeeInfo":{"properties":{"email":{"type":"string","title":"Email"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"status":{"type":"string","title":"Status","default":"needs_action"},"role":{"type":"string","title":"Role","default":"required"},"is_organizer":{"type":"boolean","title":"Is Organizer","default":false}},"type":"object","required":["email"],"title":"AttendeeInfo","description":"Attendee information with RSVP status."},"BillingCycle":{"type":"string","enum":["monthly","annual","lifetime"],"title":"BillingCycle","description":"Billing cycle enum."},"BlockSenderRequest":{"properties":{"address":{"type":"string","title":"Address"}},"type":"object","required":["address"],"title":"BlockSenderRequest","description":"Block a sender so future mail is filed into Spam."},"BlockedSendersResponse":{"properties":{"senders":{"items":{"type":"string"},"type":"array","title":"Senders"}},"type":"object","required":["senders"],"title":"BlockedSendersResponse","description":"List of sender addresses routed to Spam via the managed filter."},"Body_import_calendar_endpoint_api_v1_calendar_calendars__cal_id__import_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_import_calendar_endpoint_api_v1_calendar_calendars__cal_id__import_post"},"Body_upload_attachment_endpoint_api_v1_mail_attachments_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_attachment_endpoint_api_v1_mail_attachments_post"},"Body_upload_file_endpoint_api_v1_chat_channels__channel_id__upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"encrypted":{"type":"boolean","title":"Encrypted","default":false}},"type":"object","required":["file"],"title":"Body_upload_file_endpoint_api_v1_chat_channels__channel_id__upload_post"},"BookmarkCreate":{"properties":{"message_id":{"type":"string","format":"uuid","title":"Message Id"}},"type":"object","required":["message_id"],"title":"BookmarkCreate","description":"Create a bookmark."},"BookmarkMessageResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"channel_id":{"type":"string","format":"uuid","title":"Channel Id"},"sender_id":{"type":"string","format":"uuid","title":"Sender Id"},"content_encrypted":{"type":"string","title":"Content Encrypted"},"content_type":{"$ref":"#/components/schemas/MessageContentType"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"edited_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Edited At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"sender":{"anyOf":[{"$ref":"#/components/schemas/MemberUserInfo"},{"type":"null"}]}},"type":"object","required":["id","channel_id","sender_id","content_encrypted","content_type","created_at"],"title":"BookmarkMessageResponse","description":"Nested message info in bookmark response."},"BookmarkResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"message_id":{"type":"string","format":"uuid","title":"Message Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"message":{"anyOf":[{"$ref":"#/components/schemas/BookmarkMessageResponse"},{"type":"null"}]}},"type":"object","required":["id","user_id","message_id","created_at"],"title":"BookmarkResponse","description":"Bookmark response."},"BulkMessageUpdate":{"properties":{"message_ids":{"items":{"type":"string"},"type":"array","title":"Message Ids"},"is_read":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Read"},"is_starred":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Starred"},"move_to_mailbox":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Move To Mailbox"},"delete":{"type":"boolean","title":"Delete","default":false},"destroy":{"type":"boolean","title":"Destroy","default":false},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"}},"type":"object","required":["message_ids"],"title":"BulkMessageUpdate","description":"Bulk message operations."},"BusySlot":{"properties":{"start":{"type":"string","title":"Start"},"end":{"type":"string","title":"End"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","required":["start","end"],"title":"BusySlot","description":"Represents a busy time slot for an attendee."},"CalendarInfo":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"color":{"type":"string","title":"Color"},"writable":{"type":"boolean","title":"Writable"},"source":{"type":"string","title":"Source"},"kind":{"type":"string","title":"Kind"},"is_published":{"type":"boolean","title":"Is Published","default":false},"publish_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publish Url"}},"type":"object","required":["id","name","color","writable","source","kind"],"title":"CalendarInfo","description":"Calendar information."},"CallInfo":{"properties":{"room":{"type":"string","title":"Room"},"started_by":{"type":"string","format":"uuid","title":"Started By"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"call_type":{"type":"string","title":"Call Type"},"join_url":{"type":"string","title":"Join Url"},"participants":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Participants"}},"type":"object","required":["room","started_by","started_at","call_type","join_url"],"title":"CallInfo","description":"Active call information."},"ChannelCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"type":{"$ref":"#/components/schemas/ChannelType","default":"channel"},"is_private":{"type":"boolean","title":"Is Private","default":false},"topic":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Topic"},"team_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Team Id"}},"type":"object","required":["name"],"title":"ChannelCreate","description":"Create a new channel."},"ChannelListResponse":{"properties":{"channels":{"items":{"$ref":"#/components/schemas/ChannelResponse"},"type":"array","title":"Channels"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["channels","total"],"title":"ChannelListResponse","description":"List of channels."},"ChannelMemberRole":{"type":"string","enum":["owner","admin","member"],"title":"ChannelMemberRole","description":"Channel member role."},"ChannelResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"type":{"$ref":"#/components/schemas/ChannelType"},"is_private":{"type":"boolean","title":"Is Private"},"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Topic"},"team_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Team Id"},"pinned_messages":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Pinned Messages"},"member_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Member Ids","default":[]},"created_by":{"type":"string","format":"uuid","title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"archived_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archived At"},"left_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Left At"},"dm_partner_avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dm Partner Avatar Url"}},"type":"object","required":["id","organization_id","name","slug","description","type","is_private","topic","team_id","pinned_messages","created_by","created_at","updated_at","archived_at"],"title":"ChannelResponse","description":"Channel response."},"ChannelType":{"type":"string","enum":["channel","dm","thread","file_comments"],"title":"ChannelType","description":"Channel type."},"ChannelUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"topic":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Topic"},"team_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Team Id"}},"type":"object","title":"ChannelUpdate","description":"Update channel details."},"ChatUserEntry":{"properties":{"user_id":{"type":"string","title":"User Id"},"display_name":{"type":"string","title":"Display Name"},"email":{"type":"string","title":"Email"},"platform_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Email"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"source":{"type":"string","title":"Source","default":"directory"}},"type":"object","required":["user_id","display_name","email"],"title":"ChatUserEntry","description":"A user available for starting a chat."},"ClientMailIdentity":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"mayDelete":{"type":"boolean","title":"Maydelete","default":false},"isDefault":{"type":"boolean","title":"Isdefault","default":false},"type":{"type":"string","title":"Type","default":"personal"}},"type":"object","required":["id","name","email"],"title":"ClientMailIdentity","description":"A JMAP Identity plus the EUnifyer fields needed by client bridges."},"ComposeAttachment":{"properties":{"blob_id":{"type":"string","title":"Blob Id"},"name":{"type":"string","title":"Name","default":"attachment"},"type":{"type":"string","title":"Type","default":"application/octet-stream"},"size":{"type":"integer","title":"Size","default":0}},"type":"object","required":["blob_id"],"title":"ComposeAttachment","description":"Attachment reference for composing emails."},"ComposeEmail":{"properties":{"to":{"items":{"$ref":"#/components/schemas/EmailAddress"},"type":"array","title":"To"},"cc":{"anyOf":[{"items":{"$ref":"#/components/schemas/EmailAddress"},"type":"array"},{"type":"null"}],"title":"Cc"},"bcc":{"anyOf":[{"items":{"$ref":"#/components/schemas/EmailAddress"},"type":"array"},{"type":"null"}],"title":"Bcc"},"subject":{"type":"string","title":"Subject","default":""},"body_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Text"},"body_html":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Html"},"attachments":{"anyOf":[{"items":{"$ref":"#/components/schemas/ComposeAttachment"},"type":"array"},{"type":"null"}],"title":"Attachments"},"in_reply_to_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"In Reply To Id"},"is_draft":{"type":"boolean","title":"Is Draft","default":false},"from_identity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Identity Id"},"draft_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Draft Session Id"},"send_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Send Id"}},"type":"object","required":["to"],"title":"ComposeEmail","description":"Email composition request."},"ContactCreate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"address":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Address"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"birthday":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birthday"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"nickname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nickname"},"middle_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Middle Name"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"secondary_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secondary Email"},"secondary_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secondary Phone"}},"type":"object","title":"ContactCreate","description":"Contact creation request."},"ContactDetail":{"properties":{"id":{"type":"string","title":"Id"},"book_id":{"type":"string","title":"Book Id"},"name":{"type":"string","title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"has_avatar":{"type":"boolean","title":"Has Avatar","default":false},"is_favorite":{"type":"boolean","title":"Is Favorite","default":false},"source":{"type":"string","title":"Source"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"address":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Address"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"vcard_raw":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vcard Raw"},"birthday":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birthday"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"nickname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nickname"},"middle_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Middle Name"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"secondary_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secondary Email"},"secondary_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secondary Phone"}},"type":"object","required":["id","book_id","name","source"],"title":"ContactDetail","description":"Full contact details."},"ContactSummary":{"properties":{"id":{"type":"string","title":"Id"},"book_id":{"type":"string","title":"Book Id"},"name":{"type":"string","title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"has_avatar":{"type":"boolean","title":"Has Avatar","default":false},"is_favorite":{"type":"boolean","title":"Is Favorite","default":false},"source":{"type":"string","title":"Source"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","book_id","name","source"],"title":"ContactSummary","description":"Contact summary for list views."},"ContactUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"address":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Address"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"birthday":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birthday"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"nickname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nickname"},"middle_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Middle Name"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"secondary_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secondary Email"},"secondary_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secondary Phone"}},"type":"object","title":"ContactUpdate","description":"Contact update request."},"CreateDocumentRequest":{"properties":{"type":{"type":"string","title":"Type"},"name":{"type":"string","title":"Name"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"}},"type":"object","required":["type","name"],"title":"CreateDocumentRequest","description":"Request to create a new blank document."},"CursorPage_ApiTokenResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ApiTokenResponse"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Cursor for the next page. Absent when no further pages exist."},"has_more":{"type":"boolean","title":"Has More","description":"True when additional pages are available beyond this response."}},"type":"object","required":["items","has_more"],"title":"CursorPage[ApiTokenResponse]"},"CursorPage_PartnerOrgResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PartnerOrgResponse"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Cursor for the next page. Absent when no further pages exist."},"has_more":{"type":"boolean","title":"Has More","description":"True when additional pages are available beyond this response."}},"type":"object","required":["items","has_more"],"title":"CursorPage[PartnerOrgResponse]"},"CursorPage_PartnerPlanResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PartnerPlanResponse"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Cursor for the next page. Absent when no further pages exist."},"has_more":{"type":"boolean","title":"Has More","description":"True when additional pages are available beyond this response."}},"type":"object","required":["items","has_more"],"title":"CursorPage[PartnerPlanResponse]"},"CursorPage_PartnerTeamMemberResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PartnerTeamMemberResponse"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Cursor for the next page. Absent when no further pages exist."},"has_more":{"type":"boolean","title":"Has More","description":"True when additional pages are available beyond this response."}},"type":"object","required":["items","has_more"],"title":"CursorPage[PartnerTeamMemberResponse]"},"CursorPage_PartnerTeamResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PartnerTeamResponse"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Cursor for the next page. Absent when no further pages exist."},"has_more":{"type":"boolean","title":"Has More","description":"True when additional pages are available beyond this response."}},"type":"object","required":["items","has_more"],"title":"CursorPage[PartnerTeamResponse]"},"CursorPage_PartnerUserResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PartnerUserResponse"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Cursor for the next page. Absent when no further pages exist."},"has_more":{"type":"boolean","title":"Has More","description":"True when additional pages are available beyond this response."}},"type":"object","required":["items","has_more"],"title":"CursorPage[PartnerUserResponse]"},"CursorPage_ServicePrincipalResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ServicePrincipalResponse"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Cursor for the next page. Absent when no further pages exist."},"has_more":{"type":"boolean","title":"Has More","description":"True when additional pages are available beyond this response."}},"type":"object","required":["items","has_more"],"title":"CursorPage[ServicePrincipalResponse]"},"CursorPage_WebhookDeliveryResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WebhookDeliveryResponse"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Cursor for the next page. Absent when no further pages exist."},"has_more":{"type":"boolean","title":"Has More","description":"True when additional pages are available beyond this response."}},"type":"object","required":["items","has_more"],"title":"CursorPage[WebhookDeliveryResponse]"},"CursorPage_WebhookSubscriptionResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WebhookSubscriptionResponse"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Cursor for the next page. Absent when no further pages exist."},"has_more":{"type":"boolean","title":"Has More","description":"True when additional pages are available beyond this response."}},"type":"object","required":["items","has_more"],"title":"CursorPage[WebhookSubscriptionResponse]"},"DMCreate":{"properties":{"user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"}},"type":"object","title":"DMCreate","description":"Create or find DM channel."},"DirectoryEntry":{"properties":{"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"user_id":{"type":"string","title":"User Id"},"source":{"type":"string","title":"Source","default":"directory"}},"type":"object","required":["name","email","user_id"],"title":"DirectoryEntry","description":"Organization directory entry."},"DnsConflict":{"properties":{"type":{"type":"string","title":"Type"},"name":{"type":"string","title":"Name"},"value":{"type":"string","title":"Value"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["type","name","value","reason"],"title":"DnsConflict","description":"A leftover record that interferes with a domain migrated to us."},"DnsHealthResponse":{"properties":{"mx":{"type":"boolean","title":"Mx"},"spf":{"type":"boolean","title":"Spf"},"dkim":{"type":"boolean","title":"Dkim"},"dmarc":{"type":"boolean","title":"Dmarc"},"dnssec":{"type":"boolean","title":"Dnssec","default":false}},"type":"object","required":["mx","spf","dkim","dmarc"],"title":"DnsHealthResponse","description":"DNS health check response.\n\n``mx``/``spf``/``dkim``/``dmarc`` are required for delivery and gate\nactivation. ``dnssec`` is advisory: mail works without it, but DANE\n(RFC 7672) only applies to a domain whose MX RRset is DNSSEC-secure, so an\nunsigned domain gets no benefit from our TLSA records."},"DnsRecordInstruction":{"properties":{"record_type":{"type":"string","title":"Record Type"},"name":{"type":"string","title":"Name"},"value":{"type":"string","title":"Value"},"priority":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Priority"},"purpose":{"type":"string","title":"Purpose"}},"type":"object","required":["record_type","name","value","purpose"],"title":"DnsRecordInstruction","description":"A single DNS record the user needs to add."},"DnsSetupResponse":{"properties":{"domain":{"type":"string","title":"Domain"},"records":{"items":{"$ref":"#/components/schemas/DnsRecordInstruction"},"type":"array","title":"Records"},"health":{"$ref":"#/components/schemas/DnsHealthResponse"},"other_senders":{"items":{"type":"string"},"type":"array","title":"Other Senders","default":[]},"conflicts":{"items":{"$ref":"#/components/schemas/DnsConflict"},"type":"array","title":"Conflicts","default":[]}},"type":"object","required":["domain","records","health"],"title":"DnsSetupResponse","description":"All DNS records needed for mail domain setup."},"DriveAttachRequest":{"properties":{"file_ids":{"items":{"type":"string"},"type":"array","maxItems":20,"minItems":1,"title":"File Ids"}},"type":"object","required":["file_ids"],"title":"DriveAttachRequest","description":"Request to attach files from Drive/ShareHub to an email."},"EditSessionResponse":{"properties":{"editor_url":{"type":"string","title":"Editor Url"},"access_token":{"type":"string","title":"Access Token"},"access_token_ttl":{"type":"integer","title":"Access Token Ttl"},"file":{"$ref":"#/components/schemas/FileItem"},"ui_defaults":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ui Defaults"}},"type":"object","required":["editor_url","access_token","access_token_ttl","file"],"title":"EditSessionResponse","description":"Response with editor session data for Collabora."},"EditorEventCreate":{"properties":{"open_id":{"type":"string","maxLength":64,"minLength":1,"title":"Open Id"},"event":{"type":"string","enum":["form_posted","post_refused","frame_loaded","document_loaded","load_timeout","reconnect","gave_up"],"title":"Event"},"elapsed_ms":{"type":"integer","maximum":86400000.0,"minimum":0.0,"title":"Elapsed Ms"},"attempt":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Attempt","default":0},"frame":{"type":"integer","maximum":1000.0,"minimum":0.0,"title":"Frame","default":0},"hidden":{"type":"boolean","title":"Hidden","default":false},"detail":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Detail"}},"type":"object","required":["open_id","event","elapsed_ms"],"title":"EditorEventCreate","description":"One step of a document open, reported by the browser for the server log."},"EmailAddress":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"EmailAddress","description":"Email address with optional name.\n\n``email`` was previously an unvalidated ``str``, so anything the client sent\nwent straight to James. A recipient pasted in the RFC 5322 bracketed form —\n``<user@example.com>`` — was stored, and JMAP then consumed the leading\n``<`` as a delimiter while the trailing ``>`` stayed glued to the domain.\n``EmailSubmission/set`` rejected the result and the endpoint surfaced it as\na 500, so a draft holding such a recipient failed on every retry, forever.\n\nNormalise first, then validate: stripping a matched pair of angle brackets\n(and any display name in front of them) is unambiguous, so accept that\nshape and repair it rather than rejecting a send the user reasonably\nexpects to work. Anything still malformed after that is a client error and\nis reported as one (422) instead of a server fault."},"EventCreate":{"properties":{"title":{"type":"string","title":"Title"},"start":{"type":"string","title":"Start"},"end":{"type":"string","title":"End"},"all_day":{"type":"boolean","title":"All Day","default":false},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"attendees":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Attendees"},"add_meet":{"type":"boolean","title":"Add Meet","default":false},"reminders":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Reminders"},"recurrence_rule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recurrence Rule"},"category_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Id"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"meeting_settings":{"anyOf":[{"$ref":"#/components/schemas/MeetingSettings"},{"type":"null"}]}},"type":"object","required":["title","start","end"],"title":"EventCreate","description":"Event creation schema."},"EventDetail":{"properties":{"uid":{"type":"string","title":"Uid"},"calendar_id":{"type":"string","title":"Calendar Id"},"title":{"type":"string","title":"Title"},"start":{"type":"string","title":"Start"},"end":{"type":"string","title":"End"},"all_day":{"type":"boolean","title":"All Day"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"has_meet":{"type":"boolean","title":"Has Meet","default":false},"meeting_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meeting Code"},"category_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Id"},"category_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Name"},"category_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Color"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"is_recurring":{"type":"boolean","title":"Is Recurring","default":false},"recurrence_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recurrence Id"},"master_event_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Master Event Id"},"meeting_settings":{"anyOf":[{"$ref":"#/components/schemas/MeetingSettings"},{"type":"null"}]},"rsvp_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rsvp Status"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"attendees":{"anyOf":[{"items":{"$ref":"#/components/schemas/AttendeeInfo"},"type":"array"},{"type":"null"}],"title":"Attendees"},"recurrence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recurrence"},"ical_raw":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ical Raw"},"reminders":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Reminders"},"organizer":{"anyOf":[{"$ref":"#/components/schemas/AttendeeInfo"},{"type":"null"}]}},"type":"object","required":["uid","calendar_id","title","start","end","all_day"],"title":"EventDetail","description":"Event detail with full information."},"EventSummary":{"properties":{"uid":{"type":"string","title":"Uid"},"calendar_id":{"type":"string","title":"Calendar Id"},"title":{"type":"string","title":"Title"},"start":{"type":"string","title":"Start"},"end":{"type":"string","title":"End"},"all_day":{"type":"boolean","title":"All Day"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"has_meet":{"type":"boolean","title":"Has Meet","default":false},"meeting_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meeting Code"},"category_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Id"},"category_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Name"},"category_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Color"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"is_recurring":{"type":"boolean","title":"Is Recurring","default":false},"recurrence_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recurrence Id"},"master_event_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Master Event Id"},"meeting_settings":{"anyOf":[{"$ref":"#/components/schemas/MeetingSettings"},{"type":"null"}]},"rsvp_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rsvp Status"}},"type":"object","required":["uid","calendar_id","title","start","end","all_day"],"title":"EventSummary","description":"Event summary for list views."},"EventUpdate":{"properties":{"title":{"type":"string","title":"Title"},"start":{"type":"string","title":"Start"},"end":{"type":"string","title":"End"},"all_day":{"type":"boolean","title":"All Day","default":false},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"attendees":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Attendees"},"add_meet":{"type":"boolean","title":"Add Meet","default":false},"reminders":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Reminders"},"recurrence_rule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recurrence Rule"},"category_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Id"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"meeting_settings":{"anyOf":[{"$ref":"#/components/schemas/MeetingSettings"},{"type":"null"}]},"edit_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Edit Scope"},"notify_attendees":{"type":"boolean","title":"Notify Attendees","default":true},"update_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Update Message"}},"type":"object","required":["title","start","end"],"title":"EventUpdate","description":"Event update schema."},"ExternalExportRequest":{"properties":{"file_id":{"type":"string","title":"File Id"},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path"}},"type":"object","required":["file_id"],"title":"ExternalExportRequest","description":"Save a Drive file out to an external provider."},"ExternalImportRequest":{"properties":{"path":{"type":"string","title":"Path"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"}},"type":"object","required":["path"],"title":"ExternalImportRequest","description":"Copy a file out of an external provider into Drive."},"FacetCounts":{"properties":{"mime_type":{"additionalProperties":{"type":"integer"},"type":"object","title":"Mime Type"},"type":{"additionalProperties":{"type":"integer"},"type":"object","title":"Type"},"owner_name":{"additionalProperties":{"type":"integer"},"type":"object","title":"Owner Name"}},"type":"object","title":"FacetCounts","description":"Facet distribution for search refinement.\n\nEach key is a facet name, value is a dict of {facet_value: count}.\nExample: {\"mime_type\": {\"application/pdf\": 12, \"image/png\": 5}}"},"FileItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"path":{"type":"string","title":"Path"},"type":{"type":"string","title":"Type"},"mime_type":{"type":"string","title":"Mime Type"},"size":{"type":"integer","title":"Size"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"is_favorited":{"type":"boolean","title":"Is Favorited"},"is_trashed":{"type":"boolean","title":"Is Trashed"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"owner_name":{"type":"string","title":"Owner Name"},"modified":{"type":"string","title":"Modified"},"created":{"type":"string","title":"Created"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Url"}},"type":"object","required":["id","name","path","type","mime_type","size","parent_id","is_favorited","is_trashed","owner_name","modified","created"],"title":"FileItem","description":"File or folder item summary."},"FileMetadataUpdate":{"properties":{"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["metadata"],"title":"FileMetadataUpdate","description":"Request to update file metadata."},"FileMove":{"properties":{"target_folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Folder Id"}},"type":"object","required":["target_folder_id"],"title":"FileMove","description":"Request to move a file or folder."},"FileRename":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"FileRename","description":"Request to rename a file or folder."},"FileVersionResponse":{"properties":{"id":{"type":"string","title":"Id"},"version_number":{"type":"integer","title":"Version Number"},"size":{"type":"integer","title":"Size"},"mime_type":{"type":"string","title":"Mime Type"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","version_number","size","mime_type","created_at"],"title":"FileVersionResponse","description":"File version snapshot."},"FilterReorderRequest":{"properties":{"filter_ids":{"items":{"type":"string"},"type":"array","title":"Filter Ids"}},"type":"object","required":["filter_ids"],"title":"FilterReorderRequest","description":"Reorder filters."},"FolderContents":{"properties":{"folder":{"anyOf":[{"$ref":"#/components/schemas/FileItem"},{"type":"null"}]},"items":{"items":{"$ref":"#/components/schemas/FileItem"},"type":"array","title":"Items"},"breadcrumbs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Breadcrumbs"},"total":{"type":"integer","title":"Total","default":0},"page":{"type":"integer","title":"Page","default":1},"per_page":{"type":"integer","title":"Per Page","default":50},"total_pages":{"type":"integer","title":"Total Pages","default":1}},"type":"object","required":["folder","items","breadcrumbs"],"title":"FolderContents","description":"Contents of a folder with breadcrumbs and pagination."},"FolderCreate":{"properties":{"name":{"type":"string","title":"Name"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"}},"type":"object","required":["name"],"title":"FolderCreate","description":"Request to create a folder."},"FreeBusyRequest":{"properties":{"attendee_emails":{"items":{"type":"string"},"type":"array","maxItems":100,"title":"Attendee Emails"},"start":{"type":"string","title":"Start"},"end":{"type":"string","title":"End"}},"type":"object","required":["attendee_emails","start","end"],"title":"FreeBusyRequest","description":"Request for free/busy information."},"FreeBusyResponse":{"properties":{"busy_slots":{"additionalProperties":{"items":{"$ref":"#/components/schemas/BusySlot"},"type":"array"},"type":"object","title":"Busy Slots"},"availability":{"additionalProperties":{"type":"string"},"type":"object","title":"Availability"}},"type":"object","required":["busy_slots"],"title":"FreeBusyResponse","description":"Free/busy information for attendees."},"GuestJoinRequest":{"properties":{"display_name":{"type":"string","title":"Display Name"}},"type":"object","required":["display_name"],"title":"GuestJoinRequest","description":"Guest join request — only requires a display name."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IcsEventPreview":{"properties":{"uid":{"type":"string","title":"Uid","default":""},"title":{"type":"string","title":"Title","default":"Untitled Event"},"description":{"type":"string","title":"Description","default":""},"start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start"},"end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End"},"location":{"type":"string","title":"Location","default":""},"attendees":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Attendees","default":[]},"method":{"type":"string","title":"Method","default":"request"},"sequence":{"type":"integer","title":"Sequence","default":0}},"type":"object","title":"IcsEventPreview","description":"Preview of a parsed ICS event."},"IcsImportRequest":{"properties":{"blob_id":{"type":"string","title":"Blob Id"},"calendar_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Calendar Id"}},"type":"object","required":["blob_id"],"title":"IcsImportRequest","description":"Request to import an ICS attachment into a calendar."},"IcsImportResponse":{"properties":{"imported":{"type":"integer","title":"Imported"},"removed":{"type":"integer","title":"Removed","default":0},"updated":{"type":"integer","title":"Updated","default":0},"calendar_id":{"type":"string","title":"Calendar Id"}},"type":"object","required":["imported","calendar_id"],"title":"IcsImportResponse","description":"Response from ICS import."},"IdentitySyncResponse":{"properties":{"accountId":{"type":"string","title":"Accountid"},"state":{"type":"string","title":"State"},"list":{"items":{"$ref":"#/components/schemas/ClientMailIdentity"},"type":"array","title":"List"},"pollIntervalSeconds":{"type":"integer","title":"Pollintervalseconds","default":300}},"type":"object","required":["accountId","state","list"],"title":"IdentitySyncResponse","description":"JMAP Identity/get-shaped response for an authenticated user."},"LargestFile":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"size":{"type":"integer","title":"Size"},"mime_type":{"type":"string","title":"Mime Type"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","size","mime_type","updated_at"],"title":"LargestFile","description":"A large file in the organization's storage."},"LaunchMailProvisionRequest":{"properties":{"domain":{"type":"string","title":"Domain"},"alias":{"type":"string","title":"Alias"},"owner_email":{"type":"string","title":"Owner Email"}},"type":"object","required":["domain","alias","owner_email"],"title":"LaunchMailProvisionRequest"},"LaunchMailProvisionResponse":{"properties":{"domain":{"$ref":"#/components/schemas/app__api__v1__admin__mail__schemas__MailDomainResponse"},"dns_setup":{"$ref":"#/components/schemas/DnsSetupResponse"},"owner_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Owner User Id"},"alias":{"type":"string","title":"Alias"},"alias_ready":{"type":"boolean","title":"Alias Ready"},"next_action":{"type":"string","title":"Next Action"}},"type":"object","required":["domain","dns_setup","alias","alias_ready","next_action"],"title":"LaunchMailProvisionResponse"},"LeaveChannelRequest":{"properties":{"delete_chat":{"type":"boolean","title":"Delete Chat","default":false}},"type":"object","title":"LeaveChannelRequest","description":"Leave channel request."},"MailDomainStatus":{"type":"string","enum":["pending","verifying","verified","active","suspended"],"title":"MailDomainStatus","description":"Domain verification and activation status."},"MailIdentity":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"is_default":{"type":"boolean","title":"Is Default","default":false},"type":{"type":"string","title":"Type","default":"personal"}},"type":"object","required":["id","name","email"],"title":"MailIdentity","description":"User's email identity."},"MailInitResponse":{"properties":{"mailboxes":{"items":{"$ref":"#/components/schemas/Mailbox"},"type":"array","title":"Mailboxes"},"messages":{"$ref":"#/components/schemas/app__api__v1__mail__schemas__MessageListResponse"}},"type":"object","required":["mailboxes","messages"],"title":"MailInitResponse","description":"Combined first-load payload: mailboxes + inbox messages."},"MailLabelCreate":{"properties":{"name":{"type":"string","title":"Name"},"color":{"type":"string","title":"Color","default":"#6b7280"}},"type":"object","required":["name"],"title":"MailLabelCreate","description":"Create a mail label."},"MailLabelResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"color":{"type":"string","title":"Color"},"order":{"type":"integer","title":"Order"}},"type":"object","required":["id","name","color","order"],"title":"MailLabelResponse","description":"Mail label response."},"MailLabelUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Order"}},"type":"object","title":"MailLabelUpdate","description":"Update a mail label."},"MailQuota":{"properties":{"used":{"type":"integer","title":"Used","default":0},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},"type":"object","title":"MailQuota","description":"Mail storage quota."},"MailSignatureCreate":{"properties":{"name":{"type":"string","title":"Name"},"content":{"type":"string","title":"Content","default":""},"is_default":{"type":"boolean","title":"Is Default","default":false},"is_default_reply":{"type":"boolean","title":"Is Default Reply","default":false},"is_default_forward":{"type":"boolean","title":"Is Default Forward","default":false},"identity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identity Id"}},"type":"object","required":["name"],"title":"MailSignatureCreate","description":"Create a mail signature."},"MailSignatureResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"content":{"type":"string","title":"Content"},"is_default":{"type":"boolean","title":"Is Default"},"is_default_reply":{"type":"boolean","title":"Is Default Reply","default":false},"is_default_forward":{"type":"boolean","title":"Is Default Forward","default":false},"identity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identity Id"},"order":{"type":"integer","title":"Order"}},"type":"object","required":["id","name","content","is_default","order"],"title":"MailSignatureResponse","description":"Mail signature response."},"MailSignatureUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"is_default":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Default"},"is_default_reply":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Default Reply"},"is_default_forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Default Forward"},"identity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identity Id"},"order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Order"}},"type":"object","title":"MailSignatureUpdate","description":"Update a mail signature."},"Mailbox":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"unread_count":{"type":"integer","title":"Unread Count","default":0},"total_count":{"type":"integer","title":"Total Count","default":0},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["id","name"],"title":"Mailbox","description":"Mailbox (folder) info."},"MailboxCreate":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"}},"type":"object","required":["name"],"title":"MailboxCreate","description":"Create a mailbox (folder), optionally nested under a parent."},"MailboxUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Name"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"move":{"type":"boolean","title":"Move","default":false}},"type":"object","title":"MailboxUpdate","description":"Rename and/or move a mailbox (folder).\n\n``parent_id`` alone can't express \"move to top level\" versus \"leave the\nparent where it is\", so moving is opt-in via ``move``; with it set,\n``parent_id=None`` means top level."},"MarkUnreadRequest":{"properties":{"message_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Message Id"}},"type":"object","title":"MarkUnreadRequest","description":"Move the caller's read position backwards for a channel.\n\nWhen ``message_id`` is given, that message and everything after it count as\nunread. When omitted, only the newest message from another member does."},"MarkUnreadResponse":{"properties":{"channel_id":{"type":"string","title":"Channel Id"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["channel_id","count"],"title":"MarkUnreadResponse","description":"Resulting unread state for a channel after marking it unread."},"MeetingCaptionsResponse":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"dispatch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dispatch Id"},"agent_name":{"type":"string","title":"Agent Name"}},"type":"object","required":["enabled","agent_name"],"title":"MeetingCaptionsResponse","description":"Response for live captions agent state."},"MeetingChatMessageCreate":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"text":{"type":"string","title":"Text"},"sender_name":{"type":"string","title":"Sender Name"},"sent_at":{"type":"string","format":"date-time","title":"Sent At"}},"type":"object","required":["id","text","sender_name","sent_at"],"title":"MeetingChatMessageCreate","description":"Append a chat message to a meeting's history."},"MeetingChatMessageResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"text":{"type":"string","title":"Text"},"sender_name":{"type":"string","title":"Sender Name"},"sent_at":{"type":"string","format":"date-time","title":"Sent At"}},"type":"object","required":["id","text","sender_name","sent_at"],"title":"MeetingChatMessageResponse","description":"A persisted meeting chat message."},"MeetingInfoResponse":{"properties":{"meeting_code":{"type":"string","title":"Meeting Code"},"title":{"type":"string","title":"Title"},"status":{"type":"string","title":"Status"},"scheduled_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled Start"},"requires_admission":{"type":"boolean","title":"Requires Admission","default":true},"host_brand_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Host Brand Name"},"host_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Host Logo Url"},"host_logo_dark_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Host Logo Dark Url"}},"type":"object","required":["meeting_code","title","status"],"title":"MeetingInfoResponse","description":"Public meeting info (no auth required)."},"MeetingJoinResponse":{"properties":{"meeting_code":{"type":"string","title":"Meeting Code"},"livekit_url":{"type":"string","title":"Livekit Url"},"livekit_token":{"type":"string","title":"Livekit Token"},"channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Id"},"recording_enabled":{"type":"boolean","title":"Recording Enabled","default":false},"transcription_enabled":{"type":"boolean","title":"Transcription Enabled","default":false}},"type":"object","required":["meeting_code","livekit_url","livekit_token"],"title":"MeetingJoinResponse","description":"Response when joining a meeting."},"MeetingModerationResponse":{"properties":{"status":{"type":"string","title":"Status"},"affected_tracks":{"type":"integer","title":"Affected Tracks","default":0}},"type":"object","required":["status"],"title":"MeetingModerationResponse","description":"Response for participant moderation actions."},"MeetingParticipantResponse":{"properties":{"user_id":{"type":"string","format":"uuid","title":"User Id"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"email":{"type":"string","title":"Email"},"joined_at":{"type":"string","format":"date-time","title":"Joined At"},"left_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Left At"}},"type":"object","required":["user_id","email","joined_at"],"title":"MeetingParticipantResponse","description":"Meeting participant response."},"MeetingRecordingControlResponse":{"properties":{"recording_id":{"type":"string","format":"uuid","title":"Recording Id"},"status":{"type":"string","title":"Status"}},"type":"object","required":["recording_id","status"],"title":"MeetingRecordingControlResponse","description":"Response for recording start/stop actions."},"MeetingRecordingSettingsResponse":{"properties":{"default_mode":{"type":"string","title":"Default Mode"},"allow_video_recording":{"type":"boolean","title":"Allow Video Recording"},"max_duration_minutes":{"type":"integer","title":"Max Duration Minutes"},"auto_save_to_drive":{"type":"boolean","title":"Auto Save To Drive"},"auto_record":{"type":"boolean","title":"Auto Record","default":false},"auto_transcribe":{"type":"boolean","title":"Auto Transcribe","default":false}},"type":"object","required":["default_mode","allow_video_recording","max_duration_minutes","auto_save_to_drive"],"title":"MeetingRecordingSettingsResponse","description":"Recording settings exposed to meeting participants (org + per-meeting)."},"MeetingResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"meeting_code":{"type":"string","title":"Meeting Code"},"title":{"type":"string","title":"Title"},"status":{"type":"string","title":"Status"},"scheduled_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled Start"},"scheduled_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled End"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"room_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Room Name"},"participant_count":{"type":"integer","title":"Participant Count","default":0},"has_joined":{"type":"boolean","title":"Has Joined","default":false},"has_recording":{"type":"boolean","title":"Has Recording","default":false},"has_transcript":{"type":"boolean","title":"Has Transcript","default":false},"recording_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recording Status"},"transcript_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcript Status"},"created_by_id":{"type":"string","format":"uuid","title":"Created By Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","meeting_code","title","status","created_by_id","created_at"],"title":"MeetingResponse","description":"Meeting response."},"MeetingScheduledResponse":{"properties":{"event_id":{"type":"string","format":"uuid","title":"Event Id"},"message_id":{"type":"string","format":"uuid","title":"Message Id"},"meet_url":{"type":"string","title":"Meet Url"}},"type":"object","required":["event_id","message_id","meet_url"],"title":"MeetingScheduledResponse","description":"Meeting scheduled response."},"MeetingSettings":{"properties":{"auto_record":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Record"},"auto_transcribe":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Transcribe"}},"type":"object","title":"MeetingSettings","description":"Per-meeting settings that override org defaults."},"MemberAdd":{"properties":{"user_id":{"type":"string","format":"uuid","title":"User Id"},"role":{"$ref":"#/components/schemas/ChannelMemberRole","default":"member"}},"type":"object","required":["user_id"],"title":"MemberAdd","description":"Add member to channel."},"MemberResponse":{"properties":{"user":{"$ref":"#/components/schemas/MemberUserInfo"},"role":{"$ref":"#/components/schemas/ChannelMemberRole"},"joined_at":{"type":"string","format":"date-time","title":"Joined At"},"last_read_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Read At"},"muted":{"type":"boolean","title":"Muted"},"muted_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Muted Until"},"notification_pref":{"type":"string","title":"Notification Pref"},"hidden_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Hidden At"},"left_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Left At"}},"type":"object","required":["user","role","joined_at","last_read_at","muted","notification_pref"],"title":"MemberResponse","description":"Channel member response."},"MemberUpdate":{"properties":{"muted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Muted"},"muted_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Muted Until"},"clear_muted_until":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Clear Muted Until"},"notification_pref":{"anyOf":[{"type":"string","pattern":"^(all|mentions|none)$"},{"type":"null"}],"title":"Notification Pref"}},"type":"object","title":"MemberUpdate","description":"Update member preferences."},"MemberUserInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"}},"type":"object","required":["id","email"],"title":"MemberUserInfo","description":"Nested user info in member response."},"MentionResponse":{"properties":{"message":{"$ref":"#/components/schemas/app__api__v1__chat__schemas__MessageResponse"},"channel_id":{"type":"string","format":"uuid","title":"Channel Id"},"channel_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Name"},"channel_type":{"$ref":"#/components/schemas/ChannelType"}},"type":"object","required":["message","channel_id","channel_name","channel_type"],"title":"MentionResponse","description":"A message where the user was mentioned."},"MentionsListResponse":{"properties":{"mentions":{"items":{"$ref":"#/components/schemas/MentionResponse"},"type":"array","title":"Mentions"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"}},"type":"object","required":["mentions","next_cursor","has_more"],"title":"MentionsListResponse","description":"Paginated list of mentions."},"MergeContactsRequest":{"properties":{"primary_contact_id":{"type":"string","title":"Primary Contact Id"},"duplicate_contact_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Duplicate Contact Ids"}},"type":"object","required":["primary_contact_id","duplicate_contact_ids"],"title":"MergeContactsRequest","description":"Request to merge duplicate contacts into one surviving contact.\n\nNot book-scoped: the duplicates this exists to clean up typically span\nbooks (the same person filed both privately and in the org book)."},"MergeContactsResponse":{"properties":{"contact":{"$ref":"#/components/schemas/ContactSummary"},"merged":{"type":"integer","title":"Merged"}},"type":"object","required":["contact","merged"],"title":"MergeContactsResponse","description":"Result of a merge."},"MessageAddress":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"MessageAddress","description":"Address as stored on a message, reported back unvalidated.\n\nHeaders on received mail are whatever the sending server wrote, and James\npasses through shapes no valid recipient has — a bare display name such as\n``Systeembeheerder`` with no address at all. Validating them here turned\none such message into a 500 on ``/mail/init`` and every list or thread\nthat included it, which locked the user out of their inbox. Reading mail\nmust never fail on a header we did not write; only input is validated\n(see :class:`EmailAddress`)."},"MessageContentType":{"type":"string","enum":["text","file","image","system","audio","system.call_started","system.call_ended","system.meeting_scheduled","system.transcript_ready","system.recording_started","system.recording_stopped","system.recording_available","system.transcription_started"],"title":"MessageContentType","description":"Message content type."},"MessageCreate":{"properties":{"content_encrypted":{"type":"string","title":"Content Encrypted"},"content_type":{"$ref":"#/components/schemas/MessageContentType","default":"text"},"thread_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Thread Id"},"reply_to_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Reply To Id"},"megolm_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Megolm Session Id"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"client_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Client Id"}},"type":"object","required":["content_encrypted"],"title":"MessageCreate","description":"Create a message."},"MessageDetail":{"properties":{"id":{"type":"string","title":"Id"},"thread_id":{"type":"string","title":"Thread Id"},"mailbox_ids":{"items":{"type":"string"},"type":"array","title":"Mailbox Ids"},"from_":{"anyOf":[{"items":{"$ref":"#/components/schemas/MessageAddress"},"type":"array"},{"type":"null"}],"title":"From"},"to":{"anyOf":[{"items":{"$ref":"#/components/schemas/MessageAddress"},"type":"array"},{"type":"null"}],"title":"To"},"subject":{"type":"string","title":"Subject"},"preview":{"type":"string","title":"Preview"},"received_at":{"type":"string","title":"Received At"},"size":{"type":"integer","title":"Size"},"is_read":{"type":"boolean","title":"Is Read","default":false},"is_starred":{"type":"boolean","title":"Is Starred","default":false},"is_answered":{"type":"boolean","title":"Is Answered","default":false},"has_attachment":{"type":"boolean","title":"Has Attachment","default":false},"thread_count":{"type":"integer","title":"Thread Count","default":1},"labels":{"items":{"type":"string"},"type":"array","title":"Labels","default":[]},"cc":{"anyOf":[{"items":{"$ref":"#/components/schemas/MessageAddress"},"type":"array"},{"type":"null"}],"title":"Cc"},"bcc":{"anyOf":[{"items":{"$ref":"#/components/schemas/MessageAddress"},"type":"array"},{"type":"null"}],"title":"Bcc"},"reply_to":{"anyOf":[{"items":{"$ref":"#/components/schemas/MessageAddress"},"type":"array"},{"type":"null"}],"title":"Reply To"},"sent_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sent At"},"body_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Text"},"body_html":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Html"},"attachments":{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","title":"Attachments","default":[]},"in_reply_to_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"In Reply To Id"}},"type":"object","required":["id","thread_id","mailbox_ids","subject","preview","received_at","size"],"title":"MessageDetail","description":"Full message with body and attachments."},"MessageSummary":{"properties":{"id":{"type":"string","title":"Id"},"thread_id":{"type":"string","title":"Thread Id"},"mailbox_ids":{"items":{"type":"string"},"type":"array","title":"Mailbox Ids"},"from_":{"anyOf":[{"items":{"$ref":"#/components/schemas/MessageAddress"},"type":"array"},{"type":"null"}],"title":"From"},"to":{"anyOf":[{"items":{"$ref":"#/components/schemas/MessageAddress"},"type":"array"},{"type":"null"}],"title":"To"},"subject":{"type":"string","title":"Subject"},"preview":{"type":"string","title":"Preview"},"received_at":{"type":"string","title":"Received At"},"size":{"type":"integer","title":"Size"},"is_read":{"type":"boolean","title":"Is Read","default":false},"is_starred":{"type":"boolean","title":"Is Starred","default":false},"is_answered":{"type":"boolean","title":"Is Answered","default":false},"has_attachment":{"type":"boolean","title":"Has Attachment","default":false},"thread_count":{"type":"integer","title":"Thread Count","default":1},"labels":{"items":{"type":"string"},"type":"array","title":"Labels","default":[]}},"type":"object","required":["id","thread_id","mailbox_ids","subject","preview","received_at","size"],"title":"MessageSummary","description":"Message list item (lightweight)."},"MoveContactsRequest":{"properties":{"contact_ids":{"items":{"type":"string"},"type":"array","title":"Contact Ids"},"target_book_id":{"type":"string","title":"Target Book Id"}},"type":"object","required":["contact_ids","target_book_id"],"title":"MoveContactsRequest","description":"Request to move contacts from one address book to another."},"MoveContactsResponse":{"properties":{"moved":{"type":"integer","title":"Moved"},"skipped":{"items":{"$ref":"#/components/schemas/MoveSkipped"},"type":"array","title":"Skipped"}},"type":"object","required":["moved","skipped"],"title":"MoveContactsResponse","description":"Result of a bulk move operation."},"MoveSkipped":{"properties":{"contact_id":{"type":"string","title":"Contact Id"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["contact_id","reason"],"title":"MoveSkipped","description":"A contact that was not moved, with a reason."},"NewEmailNotifyRequest":{"properties":{"email_ids":{"items":{"type":"string"},"type":"array","title":"Email Ids"},"shared_mailbox_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shared Mailbox Id"}},"type":"object","required":["email_ids"],"title":"NewEmailNotifyRequest","description":"Request to create notifications for new email IDs."},"NewEmailNotifyResponse":{"properties":{"notified":{"type":"integer","title":"Notified"}},"type":"object","required":["notified"],"title":"NewEmailNotifyResponse","description":"Response for new email notification creation."},"OrgTranscriptListItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"meeting_code":{"type":"string","title":"Meeting Code"},"meeting_title":{"type":"string","title":"Meeting Title"},"language":{"type":"string","title":"Language"},"status":{"type":"string","title":"Status"},"duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"},"word_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Word Count"},"requested_at":{"type":"string","format":"date-time","title":"Requested At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"meeting_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Meeting Started At"}},"type":"object","required":["id","meeting_code","meeting_title","language","status","requested_at"],"title":"OrgTranscriptListItem","description":"A transcript in the organization-wide list.\n\nCarries the meeting it belongs to, because that is how people look for one:\nby what the meeting was called or by its code, not by a transcript id."},"OrganizationStatus":{"type":"string","enum":["active","suspended","inactive"],"title":"OrganizationStatus","description":"Organization operational status."},"PageCreate":{"properties":{"title":{"type":"string","title":"Title"},"content":{"type":"string","title":"Content","default":""},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"position":{"type":"integer","title":"Position","default":0},"page_type":{"type":"string","title":"Page Type","default":"page"}},"type":"object","required":["title"],"title":"PageCreate","description":"Request to create a page."},"PageResponse":{"properties":{"id":{"type":"string","title":"Id"},"site_id":{"type":"string","title":"Site Id"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"title":{"type":"string","title":"Title"},"slug":{"type":"string","title":"Slug"},"content":{"type":"string","title":"Content"},"page_type":{"type":"string","title":"Page Type"},"position":{"type":"integer","title":"Position"},"is_published":{"type":"boolean","title":"Is Published"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["id","site_id","title","slug","content","page_type","position","is_published","created_at","updated_at"],"title":"PageResponse","description":"Page detail response."},"PageTreeItem":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"slug":{"type":"string","title":"Slug"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"page_type":{"type":"string","title":"Page Type"},"position":{"type":"integer","title":"Position"},"is_published":{"type":"boolean","title":"Is Published"},"children":{"items":{"$ref":"#/components/schemas/PageTreeItem"},"type":"array","title":"Children","default":[]}},"type":"object","required":["id","title","slug","page_type","position","is_published"],"title":"PageTreeItem","description":"Page summary for sidebar tree navigation."},"PageUpdate":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"position":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Position"},"is_published":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Published"},"page_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Type"}},"type":"object","title":"PageUpdate","description":"Request to update a page."},"Paginated_FileItem_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/FileItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"per_page":{"type":"integer","title":"Per Page"},"total_pages":{"type":"integer","title":"Total Pages"}},"type":"object","required":["items","total","page","per_page","total_pages"],"title":"Paginated[FileItem]"},"PartnerChangePlanRequest":{"properties":{"plan_slug":{"type":"string","maxLength":50,"minLength":2,"title":"Plan Slug"},"billing_cycle":{"anyOf":[{"$ref":"#/components/schemas/BillingCycle"},{"type":"null"}]}},"type":"object","required":["plan_slug"],"title":"PartnerChangePlanRequest"},"PartnerChangeSeatsRequest":{"properties":{"seat_count":{"type":"integer","minimum":1.0,"title":"Seat Count"}},"type":"object","required":["seat_count"],"title":"PartnerChangeSeatsRequest"},"PartnerOrgCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":2,"title":"Name"},"slug":{"type":"string","maxLength":100,"minLength":2,"pattern":"^[a-z0-9-]+$","title":"Slug"},"billing_email":{"type":"string","format":"email","title":"Billing Email"},"billing_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Billing Name"},"billing_country":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Billing Country"},"plan_slug":{"type":"string","maxLength":50,"minLength":2,"title":"Plan Slug"},"seat_count":{"type":"integer","minimum":1.0,"title":"Seat Count","default":1},"billing_cycle":{"$ref":"#/components/schemas/BillingCycle","default":"monthly"},"modules":{"items":{"type":"string"},"type":"array","title":"Modules"},"admin_email":{"type":"string","format":"email","title":"Admin Email"},"admin_notify_email":{"anyOf":[{"type":"string","maxLength":255,"minLength":3},{"type":"null"}],"title":"Admin Notify Email"},"admin_first_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Admin First Name"},"admin_last_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Admin Last Name"},"logo_url":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Logo Url"},"mail_domain":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Mail Domain"},"send_admin_invite":{"type":"boolean","title":"Send Admin Invite","default":true}},"type":"object","required":["name","slug","billing_email","plan_slug","admin_email"],"title":"PartnerOrgCreate"},"PartnerOrgResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"status":{"$ref":"#/components/schemas/OrganizationStatus"},"billing_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Email"},"billing_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Name"},"billing_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Country"},"mail_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mail Domain"},"mail_domain_status":{"anyOf":[{"$ref":"#/components/schemas/MailDomainStatus"},{"type":"null"}]},"member_count":{"type":"integer","title":"Member Count","default":0},"pending_invitations":{"type":"integer","title":"Pending Invitations","default":0},"subscription":{"anyOf":[{"$ref":"#/components/schemas/PartnerSubscriptionSummary"},{"type":"null"}]},"provisioned_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Provisioned At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","slug","status","created_at","updated_at"],"title":"PartnerOrgResponse"},"PartnerOrgUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":2},{"type":"null"}],"title":"Name"},"billing_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Billing Email"},"billing_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Billing Name"},"billing_country":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Billing Country"},"logo_url":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Logo Url"},"mail_domain":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Mail Domain"}},"type":"object","title":"PartnerOrgUpdate"},"PartnerPlanModuleResponse":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"included":{"type":"boolean","title":"Included"}},"type":"object","required":["slug","name","included"],"title":"PartnerPlanModuleResponse"},"PartnerPlanResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"monthly_price":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Monthly Price"},"annual_price":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Annual Price"},"seat_price_monthly":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seat Price Monthly"},"seat_price_annual":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seat Price Annual"},"min_seats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Seats"},"max_seats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Seats"},"storage_per_seat_mb":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Storage Per Seat Mb"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"modules":{"items":{"$ref":"#/components/schemas/PartnerPlanModuleResponse"},"type":"array","title":"Modules"},"reseller_price_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reseller Price Override"},"published_max_seats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Published Max Seats"}},"type":"object","required":["id","name","slug"],"title":"PartnerPlanResponse"},"PartnerSubscriptionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"plan_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Plan Id"},"plan_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Name"},"plan_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Slug"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"billing_cycle":{"anyOf":[{"$ref":"#/components/schemas/BillingCycle"},{"type":"null"}]},"seat_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seat Count"},"seat_unit_price":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seat Unit Price"},"current_period_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Current Period Start"},"current_period_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Current Period End"},"cancel_at_period_end":{"type":"boolean","title":"Cancel At Period End","default":false},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","organization_id","created_at"],"title":"PartnerSubscriptionResponse"},"PartnerSubscriptionSummary":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"plan_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Plan Id"},"plan_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Name"},"plan_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Slug"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"billing_cycle":{"anyOf":[{"$ref":"#/components/schemas/BillingCycle"},{"type":"null"}]},"seat_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seat Count"},"seat_unit_price":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seat Unit Price"}},"type":"object","title":"PartnerSubscriptionSummary"},"PartnerTeamCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"slug":{"type":"string","maxLength":255,"minLength":1,"pattern":"^[a-z0-9-]+$","title":"Slug"},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description"}},"type":"object","required":["name","slug"],"title":"PartnerTeamCreate"},"PartnerTeamMemberAdd":{"properties":{"user_id":{"type":"string","format":"uuid","title":"User Id"},"role":{"type":"string","pattern":"^(member|owner)$","title":"Role","default":"member"}},"type":"object","required":["user_id"],"title":"PartnerTeamMemberAdd"},"PartnerTeamMemberResponse":{"properties":{"user_id":{"type":"string","format":"uuid","title":"User Id"},"email":{"type":"string","title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"role":{"type":"string","title":"Role"},"joined_at":{"type":"string","format":"date-time","title":"Joined At"}},"type":"object","required":["user_id","email","role","joined_at"],"title":"PartnerTeamMemberResponse"},"PartnerTeamResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"member_count":{"type":"integer","title":"Member Count","default":0},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","slug","created_at","updated_at"],"title":"PartnerTeamResponse"},"PartnerTeamUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description"}},"type":"object","title":"PartnerTeamUpdate"},"PartnerUserCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"notify_email":{"anyOf":[{"type":"string","maxLength":255,"minLength":3},{"type":"null"}],"title":"Notify Email"},"first_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Last Name"},"role_slugs":{"items":{"type":"string"},"type":"array","title":"Role Slugs","default":["member"]},"send_invitation":{"type":"boolean","title":"Send Invitation","default":true}},"type":"object","required":["email"],"title":"PartnerUserCreate"},"PartnerUserResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"is_active":{"type":"boolean","title":"Is Active"},"is_verified":{"type":"boolean","title":"Is Verified"},"role_slugs":{"items":{"type":"string"},"type":"array","title":"Role Slugs","default":[]},"is_invitation":{"type":"boolean","title":"Is Invitation","default":false},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","email","is_active","is_verified","created_at","updated_at"],"title":"PartnerUserResponse"},"PartnerUserUpdate":{"properties":{"first_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Last Name"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"role_slugs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Role Slugs"}},"type":"object","title":"PartnerUserUpdate"},"PendingAdmissionEntry":{"properties":{"request_id":{"type":"string","title":"Request Id"},"display_name":{"type":"string","title":"Display Name"},"is_guest":{"type":"boolean","title":"Is Guest"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"requested_at":{"type":"string","title":"Requested At"}},"type":"object","required":["request_id","display_name","is_guest","requested_at"],"title":"PendingAdmissionEntry","description":"Single pending request visible to the moderator."},"PresenceHeartbeat":{"properties":{"thread_id":{"type":"string","title":"Thread Id"},"state":{"type":"string","enum":["viewing","replying"],"title":"State","default":"viewing"},"stopped":{"type":"boolean","title":"Stopped","default":false}},"type":"object","required":["thread_id"],"title":"PresenceHeartbeat","description":"Client heartbeat: 'I still have this conversation open'."},"ReactionCreate":{"properties":{"emoji":{"type":"string","maxLength":50,"title":"Emoji"}},"type":"object","required":["emoji"],"title":"ReactionCreate","description":"Add a reaction."},"ReactionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"message_id":{"type":"string","format":"uuid","title":"Message Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"emoji":{"type":"string","title":"Emoji"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","message_id","user_id","emoji","created_at"],"title":"ReactionResponse","description":"Reaction response."},"ReadReceiptUpdate":{"properties":{"message_id":{"type":"string","format":"uuid","title":"Message Id"}},"type":"object","required":["message_id"],"title":"ReadReceiptUpdate","description":"Update read receipt."},"RecentConversationResponse":{"properties":{"channel":{"$ref":"#/components/schemas/ChannelResponse"},"last_message":{"anyOf":[{"$ref":"#/components/schemas/app__api__v1__chat__schemas__MessageResponse"},{"type":"null"}]},"unread_count":{"type":"integer","title":"Unread Count","default":0}},"type":"object","required":["channel"],"title":"RecentConversationResponse","description":"A channel with its last message and unread count."},"RecentConversationsListResponse":{"properties":{"conversations":{"items":{"$ref":"#/components/schemas/RecentConversationResponse"},"type":"array","title":"Conversations"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["conversations","total"],"title":"RecentConversationsListResponse","description":"List of recent conversations."},"RecordingResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"meeting_id":{"type":"string","format":"uuid","title":"Meeting Id"},"status":{"type":"string","title":"Status"},"duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"},"file_size_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size Bytes"},"mime_type":{"type":"string","title":"Mime Type"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url"},"archived":{"type":"boolean","title":"Archived","default":false},"restore_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Restore Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","meeting_id","status","mime_type","created_at"],"title":"RecordingResponse","description":"Recording metadata."},"ReplyPreview":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"sender_id":{"type":"string","format":"uuid","title":"Sender Id"},"sender":{"anyOf":[{"$ref":"#/components/schemas/MemberUserInfo"},{"type":"null"}]},"content_encrypted":{"type":"string","title":"Content Encrypted"},"content_type":{"$ref":"#/components/schemas/MessageContentType"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"}},"type":"object","required":["id","sender_id","content_encrypted","content_type"],"title":"ReplyPreview","description":"Compact preview of a quoted message for inline replies."},"SaveAttachmentsToDriveItem":{"properties":{"blob_id":{"type":"string","title":"Blob Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["blob_id"],"title":"SaveAttachmentsToDriveItem","description":"Single attachment to save into Drive."},"SaveAttachmentsToDriveRequest":{"properties":{"attachments":{"items":{"$ref":"#/components/schemas/SaveAttachmentsToDriveItem"},"type":"array","maxItems":50,"minItems":1,"title":"Attachments"},"folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Id"}},"type":"object","required":["attachments"],"title":"SaveAttachmentsToDriveRequest","description":"Request to save one or more attachments into Drive/ShareHub."},"SaveAttachmentsToExternalRequest":{"properties":{"attachments":{"items":{"$ref":"#/components/schemas/SaveAttachmentsToDriveItem"},"type":"array","maxItems":50,"minItems":1,"title":"Attachments"},"connection_id":{"type":"string","title":"Connection Id"},"prefix":{"type":"string","title":"Prefix","default":""}},"type":"object","required":["attachments","connection_id"],"title":"SaveAttachmentsToExternalRequest","description":"Request to save one or more attachments to a connected provider."},"SavedExternalAttachment":{"properties":{"path":{"type":"string","title":"Path"},"size":{"type":"integer","title":"Size"}},"type":"object","required":["path","size"],"title":"SavedExternalAttachment","description":"Where one attachment ended up on the provider."},"ScheduleMeetingRequest":{"properties":{"title":{"type":"string","maxLength":255,"title":"Title"},"start":{"type":"string","format":"date-time","title":"Start"},"end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"calendar_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Calendar Id"}},"type":"object","required":["title","start"],"title":"ScheduleMeetingRequest","description":"Schedule a meeting from chat."},"SearchHit":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"path":{"type":"string","title":"Path"},"type":{"type":"string","title":"Type"},"mime_type":{"type":"string","title":"Mime Type"},"size":{"type":"integer","title":"Size"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"is_favorited":{"type":"boolean","title":"Is Favorited"},"is_trashed":{"type":"boolean","title":"Is Trashed"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"owner_name":{"type":"string","title":"Owner Name"},"modified":{"type":"string","title":"Modified"},"created":{"type":"string","title":"Created"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Url"},"_ranking_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ranking Score"},"_matches_position":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Matches Position"},"_formatted":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Formatted"}},"type":"object","required":["id","name","path","type","mime_type","size","parent_id","is_favorited","is_trashed","owner_name","modified","created"],"title":"SearchHit","description":"A single search result hit.\n\nExtends FileItem with search-specific metadata.\nWhen using Postgres ILIKE, ranking fields are populated with defaults.\nWhen using Meilisearch, these come directly from the engine."},"ServicePrincipalCreate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"oauth_client_id":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Oauth Client Id"}},"type":"object","required":["name"],"title":"ServicePrincipalCreate"},"ServicePrincipalResponse":{"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":{"type":"string"},"type":"array","title":"Scopes"},"is_active":{"type":"boolean","title":"Is Active"},"oauth_client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Oauth Client Id"},"token_count":{"type":"integer","title":"Token Count","default":0},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","name","description","scopes","is_active","oauth_client_id","created_at","updated_at"],"title":"ServicePrincipalResponse"},"ServicePrincipalUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":100,"minLength":1},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"oauth_client_id":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Oauth Client Id"}},"type":"object","title":"ServicePrincipalUpdate"},"ShareCreate":{"properties":{"user_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"},"contact_group_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Group Id"},"shared_with_org":{"type":"boolean","title":"Shared With Org","default":false},"create_link":{"type":"boolean","title":"Create Link","default":false},"permission":{"type":"string","title":"Permission","default":"view"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"password":{"anyOf":[{"type":"string","maxLength":128,"minLength":4},{"type":"null"}],"title":"Password"}},"type":"object","title":"ShareCreate","description":"Request to create a file share."},"ShareInfo":{"properties":{"id":{"type":"string","title":"Id"},"shared_with":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shared With"},"permission":{"type":"string","title":"Permission"},"share_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Share Link"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["id","shared_with","permission","share_link","expires_at"],"title":"ShareInfo","description":"File share information."},"SharedInboxMessage":{"properties":{"id":{"type":"string","title":"Id"},"thread_id":{"type":"string","title":"Thread Id"},"mailbox_ids":{"items":{"type":"string"},"type":"array","title":"Mailbox Ids"},"from_":{"anyOf":[{"items":{"$ref":"#/components/schemas/MessageAddress"},"type":"array"},{"type":"null"}],"title":"From"},"to":{"anyOf":[{"items":{"$ref":"#/components/schemas/MessageAddress"},"type":"array"},{"type":"null"}],"title":"To"},"subject":{"type":"string","title":"Subject"},"preview":{"type":"string","title":"Preview"},"received_at":{"type":"string","title":"Received At"},"size":{"type":"integer","title":"Size"},"is_read":{"type":"boolean","title":"Is Read","default":false},"is_starred":{"type":"boolean","title":"Is Starred","default":false},"is_answered":{"type":"boolean","title":"Is Answered","default":false},"has_attachment":{"type":"boolean","title":"Has Attachment","default":false},"thread_count":{"type":"integer","title":"Thread Count","default":1},"labels":{"items":{"type":"string"},"type":"array","title":"Labels","default":[]},"conversation_status":{"type":"string","title":"Conversation Status","default":"open"},"conversation_priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Priority"},"assigned_to_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned To Id"},"assigned_to_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned To Name"},"internal_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Notes"}},"type":"object","required":["id","thread_id","mailbox_ids","subject","preview","received_at","size"],"title":"SharedInboxMessage","description":"Message in a shared inbox with conversation status."},"SharedInboxMessageList":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/SharedInboxMessage"},"type":"array","title":"Messages"},"total":{"type":"integer","title":"Total"},"position":{"type":"integer","title":"Position"}},"type":"object","required":["messages","total","position"],"title":"SharedInboxMessageList","description":"Paginated shared inbox message list."},"SharedLinkResponse":{"properties":{"file":{"$ref":"#/components/schemas/FileItem"},"permission":{"type":"string","title":"Permission"}},"type":"object","required":["file","permission"],"title":"SharedLinkResponse","description":"Response for public share link access — wraps file with permission level."},"SharedMailboxSummary":{"properties":{"id":{"type":"string","title":"Id"},"email":{"type":"string","title":"Email"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"unread_count":{"type":"integer","title":"Unread Count","default":0},"open_conversations":{"type":"integer","title":"Open Conversations","default":0}},"type":"object","required":["id","email","name"],"title":"SharedMailboxSummary","description":"Shared mailbox summary for user's list."},"SharedMessagesMarkReadRequest":{"properties":{"message_ids":{"items":{"type":"string"},"type":"array","title":"Message Ids"}},"type":"object","required":["message_ids"],"title":"SharedMessagesMarkReadRequest","description":"Request to mark shared inbox messages as read."},"SharedReplyRequest":{"properties":{"to":{"items":{"$ref":"#/components/schemas/EmailAddress"},"type":"array","title":"To"},"cc":{"anyOf":[{"items":{"$ref":"#/components/schemas/EmailAddress"},"type":"array"},{"type":"null"}],"title":"Cc"},"bcc":{"anyOf":[{"items":{"$ref":"#/components/schemas/EmailAddress"},"type":"array"},{"type":"null"}],"title":"Bcc"},"subject":{"type":"string","title":"Subject","default":""},"body_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Text"},"body_html":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Html"},"attachments":{"anyOf":[{"items":{"$ref":"#/components/schemas/ComposeAttachment"},"type":"array"},{"type":"null"}],"title":"Attachments"},"in_reply_to_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"In Reply To Id"}},"type":"object","required":["to"],"title":"SharedReplyRequest","description":"Reply to a shared inbox message."},"SieveFilter":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"conditions":{"items":{"$ref":"#/components/schemas/SieveFilterCondition"},"type":"array","title":"Conditions"},"match_all":{"type":"boolean","title":"Match All","default":true},"actions":{"items":{"$ref":"#/components/schemas/SieveFilterAction"},"type":"array","title":"Actions"},"is_active":{"type":"boolean","title":"Is Active","default":true},"order":{"type":"integer","title":"Order","default":0}},"type":"object","required":["id","name","conditions","actions"],"title":"SieveFilter","description":"Full filter definition."},"SieveFilterAction":{"properties":{"type":{"type":"string","title":"Type"},"value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value"}},"type":"object","required":["type"],"title":"SieveFilterAction","description":"Visual filter action."},"SieveFilterCondition":{"properties":{"field":{"type":"string","title":"Field"},"operator":{"type":"string","title":"Operator"},"value":{"type":"string","title":"Value"}},"type":"object","required":["field","operator","value"],"title":"SieveFilterCondition","description":"Visual filter condition."},"SieveFilterCreate":{"properties":{"name":{"type":"string","title":"Name"},"conditions":{"items":{"$ref":"#/components/schemas/SieveFilterCondition"},"type":"array","title":"Conditions"},"match_all":{"type":"boolean","title":"Match All","default":true},"actions":{"items":{"$ref":"#/components/schemas/SieveFilterAction"},"type":"array","title":"Actions"}},"type":"object","required":["name","conditions","actions"],"title":"SieveFilterCreate","description":"Create a new filter."},"SieveFilterUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"conditions":{"anyOf":[{"items":{"$ref":"#/components/schemas/SieveFilterCondition"},"type":"array"},{"type":"null"}],"title":"Conditions"},"match_all":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Match All"},"actions":{"anyOf":[{"items":{"$ref":"#/components/schemas/SieveFilterAction"},"type":"array"},{"type":"null"}],"title":"Actions"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Order"}},"type":"object","title":"SieveFilterUpdate","description":"Update an existing filter."},"SiteResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"is_public":{"type":"boolean","title":"Is Public"},"root_folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Folder Id"},"chat_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Channel Id"},"calendar_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Calendar Id"},"member_count":{"type":"integer","title":"Member Count","default":0},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"can_edit":{"type":"boolean","title":"Can Edit","default":false}},"type":"object","required":["id","name","slug","is_public","created_at","updated_at"],"title":"SiteResponse","description":"Site detail response."},"SiteSearchResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/SiteSearchResult"},"type":"array","title":"Results"},"total":{"type":"integer","title":"Total"},"query":{"type":"string","title":"Query"}},"type":"object","required":["results","total","query"],"title":"SiteSearchResponse","description":"Search response."},"SiteSearchResult":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","title":"Type"},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"url":{"type":"string","title":"Url"},"site_id":{"type":"string","title":"Site Id"},"site_name":{"type":"string","title":"Site Name"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"timestamp":{"type":"string","title":"Timestamp"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["id","type","title","url","site_id","site_name","timestamp"],"title":"SiteSearchResult","description":"A single search result (site or page)."},"SiteUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"is_public":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Public"}},"type":"object","title":"SiteUpdate","description":"Request to update a site."},"SmartFolderCreate":{"properties":{"name":{"type":"string","title":"Name"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"conditions":{"additionalProperties":true,"type":"object","title":"Conditions"}},"type":"object","required":["name","conditions"],"title":"SmartFolderCreate","description":"Create a smart folder."},"SmartFolderResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"conditions":{"additionalProperties":true,"type":"object","title":"Conditions"},"order":{"type":"integer","title":"Order","default":0},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["id","name","conditions"],"title":"SmartFolderResponse","description":"Smart folder response."},"SmartFolderUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"conditions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Conditions"},"order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Order"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"SmartFolderUpdate","description":"Update a smart folder."},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder","description":"Sort order options."},"SpamReportResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"action":{"type":"string","title":"Action"}},"type":"object","required":["success","action"],"title":"SpamReportResponse","description":"Spam report result."},"StartCallRequest":{"properties":{"type":{"type":"string","pattern":"^(voice|video)$","title":"Type"}},"type":"object","required":["type"],"title":"StartCallRequest","description":"Start a call in a channel."},"StartChatCreate":{"properties":{"user_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":50,"minItems":1,"title":"User Ids"}},"type":"object","required":["user_ids"],"title":"StartChatCreate","description":"Start a 1:1 or group chat."},"StartRecordingRequest":{"properties":{"transcribe":{"type":"boolean","title":"Transcribe","default":false},"audio_only":{"type":"boolean","title":"Audio Only","default":true}},"type":"object","title":"StartRecordingRequest","description":"Request to start recording a meeting."},"StorageBreakdown":{"properties":{"used_bytes":{"type":"integer","title":"Used Bytes"},"mail_used_bytes":{"type":"integer","title":"Mail Used Bytes","default":0},"limit_bytes":{"type":"integer","title":"Limit Bytes"},"percentage":{"type":"number","title":"Percentage"},"categories":{"items":{"$ref":"#/components/schemas/StorageCategoryBreakdown"},"type":"array","title":"Categories"},"largest_files":{"items":{"$ref":"#/components/schemas/LargestFile"},"type":"array","title":"Largest Files"}},"type":"object","required":["used_bytes","limit_bytes","percentage","categories","largest_files"],"title":"StorageBreakdown","description":"Detailed storage breakdown with categories and largest files."},"StorageCategoryBreakdown":{"properties":{"category":{"type":"string","title":"Category"},"used_bytes":{"type":"integer","title":"Used Bytes"},"file_count":{"type":"integer","title":"File Count"}},"type":"object","required":["category","used_bytes","file_count"],"title":"StorageCategoryBreakdown","description":"Storage usage for a single file category."},"StorageUsage":{"properties":{"used_bytes":{"type":"integer","title":"Used Bytes"},"mail_used_bytes":{"type":"integer","title":"Mail Used Bytes","default":0},"limit_bytes":{"type":"integer","title":"Limit Bytes"},"percentage":{"type":"number","title":"Percentage"},"pool_used_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pool Used Bytes"},"pool_limit_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pool Limit Bytes"},"storage_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Storage Tier"}},"type":"object","required":["used_bytes","limit_bytes","percentage"],"title":"StorageUsage","description":"Organization storage usage information."},"SyncChildrenResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SyncDeltaItem"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More","default":false},"sync_cursor":{"type":"string","title":"Sync Cursor"}},"type":"object","required":["items","sync_cursor"],"title":"SyncChildrenResponse","description":"Response from GET /drive/sync/children.\n\nScoped listing of one folder, for clients that render a directory at a\ntime (macOS File Provider). Unlike the delta feed this never returns the\nwhole drive, so opening a folder costs one small page instead of a full\ninventory fetch."},"SyncCommitItem":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"type":"string","maxLength":500,"title":"Name"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"is_folder":{"type":"boolean","title":"Is Folder","default":false},"size":{"type":"integer","minimum":0.0,"title":"Size","default":0},"mime_type":{"type":"string","maxLength":255,"title":"Mime Type","default":"application/octet-stream"},"content_hash":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Content Hash"},"action":{"type":"string","enum":["create","update","delete","move","rename"],"title":"Action"},"deleted":{"type":"boolean","title":"Deleted","default":false}},"type":"object","required":["name","action"],"title":"SyncCommitItem","description":"A single local change reported by the client."},"SyncCommitRequest":{"properties":{"device_id":{"type":"string","maxLength":64,"minLength":1,"title":"Device Id"},"items":{"items":{"$ref":"#/components/schemas/SyncCommitItem"},"type":"array","maxItems":500,"title":"Items"}},"type":"object","required":["device_id","items"],"title":"SyncCommitRequest","description":"Request body for POST /drive/sync/commit."},"SyncCommitResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/SyncCommitResult"},"type":"array","title":"Results"},"cursor":{"type":"string","title":"Cursor"}},"type":"object","required":["results","cursor"],"title":"SyncCommitResponse","description":"Response from POST /drive/sync/commit."},"SyncCommitResult":{"properties":{"id":{"type":"string","title":"Id"},"status":{"type":"string","title":"Status"},"server_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Server Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"upload_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Upload Url"}},"type":"object","required":["id","status"],"title":"SyncCommitResult","description":"Result of a single committed item."},"SyncConflictResolve":{"properties":{"file_id":{"type":"string","title":"File Id"},"resolution":{"type":"string","enum":["keep_local","keep_server","keep_both"],"title":"Resolution"},"device_id":{"type":"string","maxLength":64,"minLength":1,"title":"Device Id"}},"type":"object","required":["file_id","resolution","device_id"],"title":"SyncConflictResolve","description":"Request body for POST /drive/sync/resolve."},"SyncDeltaItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"is_folder":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Folder"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size"},"mime_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mime Type"},"s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"S3 Key"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"deleted":{"type":"boolean","title":"Deleted","default":false},"content_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Hash"}},"type":"object","required":["id"],"title":"SyncDeltaItem","description":"A single changed file in the delta response."},"SyncDeltaResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SyncDeltaItem"},"type":"array","title":"Items"},"cursor":{"type":"string","title":"Cursor"},"has_more":{"type":"boolean","title":"Has More","default":false},"reset":{"type":"boolean","title":"Reset","default":false}},"type":"object","required":["items","cursor"],"title":"SyncDeltaResponse","description":"Response from GET /drive/sync/delta."},"SyncDeviceInfo":{"properties":{"device_id":{"type":"string","title":"Device Id"},"last_sync_at":{"type":"string","title":"Last Sync At"},"created_at":{"type":"string","title":"Created At"},"cursor_value":{"type":"integer","title":"Cursor Value"}},"type":"object","required":["device_id","last_sync_at","created_at","cursor_value"],"title":"SyncDeviceInfo","description":"Device info for the devices list."},"SyncSearchResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SyncDeltaItem"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More","default":false}},"type":"object","required":["items"],"title":"SyncSearchResponse","description":"Response from GET /drive/sync/search."},"SyncShareNotification":{"properties":{"id":{"type":"string","title":"Id"},"from_name":{"type":"string","title":"From Name"},"file_name":{"type":"string","title":"File Name"},"permission":{"type":"string","title":"Permission"},"received_at":{"type":"string","title":"Received At"}},"type":"object","required":["id","from_name","file_name","permission","received_at"],"title":"SyncShareNotification","description":"A file-share-received event for the desktop notification poller.\n\nShape matches the desktop client's `ShareNotification` struct\n(eunify-desktop src-tauri/src/sync/share.rs) — it polls\nGET /drive/sync/notifications?since=<unix_seconds> every 60s and toasts\neach entry."},"SyncStatusResponse":{"properties":{"ok":{"type":"boolean","title":"Ok","default":true},"server_time":{"type":"string","title":"Server Time"},"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"},"last_sync_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Sync At"}},"type":"object","required":["server_time"],"title":"SyncStatusResponse","description":"Response from GET /drive/sync/status."},"TeamMemberAdd":{"properties":{"user_id":{"type":"string","format":"uuid","title":"User Id"},"role":{"$ref":"#/components/schemas/TeamRole","default":"member"}},"type":"object","required":["user_id"],"title":"TeamMemberAdd","description":"Add team member request."},"TeamMemberResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"email":{"type":"string","title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"role":{"type":"string","title":"Role"},"joined_at":{"type":"string","format":"date-time","title":"Joined At"}},"type":"object","required":["id","user_id","email","role","joined_at"],"title":"TeamMemberResponse","description":"Team member response."},"TeamMemberUpdate":{"properties":{"role":{"$ref":"#/components/schemas/TeamRole"}},"type":"object","required":["role"],"title":"TeamMemberUpdate","description":"Update team member role."},"TeamResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"member_count":{"type":"integer","title":"Member Count","default":0},"my_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"My Role"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","slug","organization_id","created_at","updated_at"],"title":"TeamResponse","description":"Team response."},"TeamRole":{"type":"string","enum":["owner","manager","member"],"title":"TeamRole","description":"Team member roles."},"TeamUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":2},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"TeamUpdate","description":"Update team request."},"ThreadDetail":{"properties":{"id":{"type":"string","title":"Id"},"messages":{"items":{"$ref":"#/components/schemas/MessageDetail"},"type":"array","title":"Messages"}},"type":"object","required":["id","messages"],"title":"ThreadDetail","description":"Conversation thread with all messages."},"ThreadPresence":{"properties":{"viewing":{"items":{"type":"string"},"type":"array","title":"Viewing","default":[]},"replying":{"items":{"type":"string"},"type":"array","title":"Replying","default":[]}},"type":"object","title":"ThreadPresence","description":"Who else is on a conversation right now, excluding the caller."},"ThreadSummary":{"properties":{"thread_id":{"type":"string","format":"uuid","title":"Thread Id"},"channel_id":{"type":"string","format":"uuid","title":"Channel Id"},"reply_count":{"type":"integer","title":"Reply Count"},"last_reply_at":{"type":"string","format":"date-time","title":"Last Reply At"},"participants":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Participants"}},"type":"object","required":["thread_id","channel_id","reply_count","last_reply_at","participants"],"title":"ThreadSummary","description":"Thread summary for a channel."},"ThumbnailUrl":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"ThumbnailUrl","description":"Response with presigned thumbnail URL."},"TranscriptListResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"language":{"type":"string","title":"Language"},"status":{"type":"string","title":"Status"},"duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"},"word_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Word Count"},"requested_at":{"type":"string","format":"date-time","title":"Requested At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","language","status","requested_at"],"title":"TranscriptListResponse","description":"Transcript in list view (no segments)."},"TranscriptResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"meeting_id":{"type":"string","format":"uuid","title":"Meeting Id"},"language":{"type":"string","title":"Language"},"status":{"type":"string","title":"Status"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"},"word_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Word Count"},"requested_at":{"type":"string","format":"date-time","title":"Requested At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"segments":{"anyOf":[{"items":{"$ref":"#/components/schemas/TranscriptSegmentResponse"},"type":"array"},{"type":"null"}],"title":"Segments"}},"type":"object","required":["id","meeting_id","language","status","requested_at"],"title":"TranscriptResponse","description":"Full transcript with segments."},"TranscriptSegmentResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"speaker":{"type":"string","title":"Speaker"},"speaker_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker Name"},"text":{"type":"string","title":"Text"},"start_ms":{"type":"integer","title":"Start Ms"},"end_ms":{"type":"integer","title":"End Ms"},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence"},"sequence":{"type":"integer","title":"Sequence"}},"type":"object","required":["id","speaker","text","start_ms","end_ms","sequence"],"title":"TranscriptSegmentResponse","description":"Single segment of a transcript."},"TranscriptionRequestCreate":{"properties":{"language":{"type":"string","title":"Language","default":"en-US"}},"type":"object","title":"TranscriptionRequestCreate","description":"Request transcription for a meeting."},"TranscriptionTokenResponse":{"properties":{"token":{"type":"string","title":"Token"},"url":{"type":"string","title":"Url"},"room":{"type":"string","title":"Room"},"expires_in_seconds":{"type":"integer","title":"Expires In Seconds"},"transcript_webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcript Webhook Url"}},"type":"object","required":["token","url","room","expires_in_seconds"],"title":"TranscriptionTokenResponse","description":"Subscribe-only LiveKit token handed to an external transcription agent.\n\nExchanged for a ``meet:transcription`` PAT so the agent never holds the\nLiveKit API key/secret. Scoped to a single room and short-lived."},"UnreadCountsResponse":{"properties":{"counts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Counts"}},"type":"object","required":["counts"],"title":"UnreadCountsResponse","description":"Unread message counts per channel."},"UpdateConversationRequest":{"properties":{"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority"}},"type":"object","title":"UpdateConversationRequest","description":"Update conversation status."},"UploadRequest":{"properties":{"name":{"type":"string","title":"Name"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"mime_type":{"type":"string","title":"Mime Type","default":"application/octet-stream"},"size":{"type":"integer","title":"Size"},"site_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site Id"}},"type":"object","required":["name","size"],"title":"UploadRequest","description":"Request to upload a file."},"UploadResponse":{"properties":{"file":{"$ref":"#/components/schemas/FileItem"},"upload_url":{"type":"string","title":"Upload Url"}},"type":"object","required":["file","upload_url"],"title":"UploadResponse","description":"Response with presigned upload URL."},"UserForwardingRuleCreate":{"properties":{"destinations":{"items":{"type":"string"},"type":"array","title":"Destinations"},"keep_copy":{"type":"boolean","title":"Keep Copy","default":true}},"type":"object","required":["destinations"],"title":"UserForwardingRuleCreate","description":"Create a forwarding rule for the current user."},"UserForwardingRuleResponse":{"properties":{"id":{"type":"string","title":"Id"},"source_address":{"type":"string","title":"Source Address"},"destinations":{"items":{"type":"string"},"type":"array","title":"Destinations"},"keep_copy":{"type":"boolean","title":"Keep Copy"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["id","source_address","destinations","keep_copy","is_active","created_at","updated_at"],"title":"UserForwardingRuleResponse","description":"Forwarding rule response."},"UserForwardingRuleUpdate":{"properties":{"destinations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Destinations"},"keep_copy":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Keep Copy"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"UserForwardingRuleUpdate","description":"Update a forwarding rule."},"VacationResponse":{"properties":{"is_enabled":{"type":"boolean","title":"Is Enabled"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"text_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Body"},"html_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Html Body"},"from_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"},"to_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Date"}},"type":"object","required":["is_enabled"],"title":"VacationResponse","description":"Out of Office (vacation responder) state."},"VacationUpdate":{"properties":{"is_enabled":{"type":"boolean","title":"Is Enabled"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"text_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Body"},"html_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Html Body"},"from_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"},"to_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Date"}},"type":"object","required":["is_enabled"],"title":"VacationUpdate","description":"Update the Out of Office responder."},"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"},"WebhookDeliveryResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"subscription_id":{"type":"string","format":"uuid","title":"Subscription Id"},"event_type":{"type":"string","title":"Event Type"},"event_id":{"type":"string","format":"uuid","title":"Event Id"},"status":{"type":"string","title":"Status"},"attempt_count":{"type":"integer","title":"Attempt Count"},"next_attempt_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Attempt At"},"last_response_status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Response Status"},"last_response_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Response Body"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"delivered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivered At"}},"type":"object","required":["id","subscription_id","event_type","event_id","status","attempt_count","next_attempt_at","last_response_status","last_response_body","created_at","delivered_at"],"title":"WebhookDeliveryResponse"},"WebhookSubscriptionCreate":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"},"events":{"items":{"type":"string"},"type":"array","title":"Events","description":"Event types to subscribe to. Empty list = all events."},"service_principal_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Service Principal Id"}},"type":"object","required":["url"],"title":"WebhookSubscriptionCreate"},"WebhookSubscriptionCreatedResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"service_principal_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Service Principal Id"},"url":{"type":"string","title":"Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"events":{"items":{"type":"string"},"type":"array","title":"Events"},"is_active":{"type":"boolean","title":"Is Active"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"signing_secret":{"type":"string","title":"Signing Secret"}},"type":"object","required":["id","organization_id","service_principal_id","url","description","events","is_active","created_by_id","created_at","updated_at","signing_secret"],"title":"WebhookSubscriptionCreatedResponse","description":"Returned once at creation — includes the raw signing secret."},"WebhookSubscriptionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"service_principal_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Service Principal Id"},"url":{"type":"string","title":"Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"events":{"items":{"type":"string"},"type":"array","title":"Events"},"is_active":{"type":"boolean","title":"Is Active"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","service_principal_id","url","description","events","is_active","created_by_id","created_at","updated_at"],"title":"WebhookSubscriptionResponse"},"WebhookSubscriptionUpdate":{"properties":{"url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Url"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"},"events":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Events"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"WebhookSubscriptionUpdate"},"app__api__v1__admin__mail__schemas__MailDomainResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","format":"uuid","title":"Organization Id"},"domain":{"type":"string","title":"Domain"},"is_primary":{"type":"boolean","title":"Is Primary"},"status":{"$ref":"#/components/schemas/MailDomainStatus"},"verification_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Token"},"verification_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Method"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"dns_health":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Dns Health"},"dkim_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dkim Selector"},"dkim_public_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dkim Public Key"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","domain","is_primary","status","created_at","updated_at"],"title":"MailDomainResponse","description":"Mail domain response."},"app__api__v1__chat__schemas__MessageListResponse":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/app__api__v1__chat__schemas__MessageResponse"},"type":"array","title":"Messages"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More"},"latest_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Cursor"}},"type":"object","required":["messages","next_cursor","has_more"],"title":"MessageListResponse","description":"Paginated message list."},"app__api__v1__chat__schemas__MessageResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"channel_id":{"type":"string","format":"uuid","title":"Channel Id"},"sender_id":{"type":"string","format":"uuid","title":"Sender Id"},"thread_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Thread Id"},"reply_to_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Reply To Id"},"reply_to":{"anyOf":[{"$ref":"#/components/schemas/ReplyPreview"},{"type":"null"}]},"content_encrypted":{"type":"string","title":"Content Encrypted"},"content_type":{"$ref":"#/components/schemas/MessageContentType"},"megolm_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Megolm Session Id"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"edited_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Edited At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"sender":{"anyOf":[{"$ref":"#/components/schemas/MemberUserInfo"},{"type":"null"}]},"attachments":{"items":{"$ref":"#/components/schemas/AttachmentResponse"},"type":"array","title":"Attachments","default":[]},"reactions":{"items":{"$ref":"#/components/schemas/ReactionResponse"},"type":"array","title":"Reactions","default":[]},"thread_count":{"type":"integer","title":"Thread Count","default":0}},"type":"object","required":["id","channel_id","sender_id","thread_id","content_encrypted","content_type","megolm_session_id","device_id","edited_at","deleted_at","created_at","metadata"],"title":"MessageResponse","description":"Message response."},"app__api__v1__chat__schemas__MessageUpdate":{"properties":{"content_encrypted":{"type":"string","title":"Content Encrypted"}},"type":"object","required":["content_encrypted"],"title":"MessageUpdate","description":"Update message content."},"app__api__v1__drive__schemas__SearchResult":{"properties":{"hits":{"items":{"$ref":"#/components/schemas/SearchHit"},"type":"array","title":"Hits"},"query":{"type":"string","title":"Query"},"processing_time_ms":{"type":"integer","title":"Processing Time Ms"},"estimated_total_hits":{"type":"integer","title":"Estimated Total Hits"},"offset":{"type":"integer","title":"Offset","default":0},"limit":{"type":"integer","title":"Limit","default":50},"facet_distribution":{"anyOf":[{"$ref":"#/components/schemas/FacetCounts"},{"type":"null"}]}},"type":"object","required":["hits","query","processing_time_ms","estimated_total_hits"],"title":"SearchResult","description":"Meilisearch-compatible search response envelope.\n\nThis response shape is designed to be identical whether the backend\nuses Postgres ILIKE (current) or Meilisearch (future). The frontend\nalways consumes this shape — the search engine is an implementation detail.\n\nMirrors: https://www.meilisearch.com/docs/reference/api/search#response"},"app__api__v1__mail__schemas__MessageListResponse":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/MessageSummary"},"type":"array","title":"Messages"},"total":{"type":"integer","title":"Total"},"position":{"type":"integer","title":"Position"}},"type":"object","required":["messages","total","position"],"title":"MessageListResponse","description":"Paginated message list."},"app__api__v1__mail__schemas__MessageUpdate":{"properties":{"is_read":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Read"},"is_starred":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Starred"},"mailbox_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Mailbox Ids"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"}},"type":"object","title":"MessageUpdate","description":"Partial message update."}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"PAT or Keycloak JWT","description":"Authenticate with a **Personal Access Token (PAT)** or a **EUnifyer IDP user-delegated JWT**.\n\n**PAT** — create one in *Admin → Developer → API Access*. Paste the token value directly:\n```\nAuthorization: Bearer eu_sk_…\n```\n\nCalendar, Drive, and Sites PATs must be bound to an active user in the service principal's organization.\n\n**OAuth / Keycloak JWT** — exchange an authorisation code for an access token via the `/auth/token` endpoint and use it here.\n\nAll tokens are scoped — only endpoints covered by the token's granted scopes will succeed."}}},"servers":[{"url":"https://api.eunifyer.com","description":"API"}],"security":[{"BearerAuth":[]}],"tags":[{"name":"Drive","description":"Browse, upload, download, share, version, and delta-sync files."},{"name":"Calendar","description":"Manage calendars, events, attendees, free/busy, and ICS import."},{"name":"Contacts","description":"Create and manage contact books and individual contacts."},{"name":"Sites","description":"Create and manage ShareHub sites and their wiki pages."},{"name":"Teams","description":"Create and manage teams and team membership."},{"name":"Partner","description":"MSP/reseller automation — provision orgs, users, teams, and subscriptions."},{"name":"Developer","description":"Manage service principals and API tokens for programmatic access."},{"name":"Webhooks","description":"Subscribe to platform events and manage webhook deliveries."}]}