{"components":{"headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}},"responses":{"PhotonAuthorization401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"PhotonAuthorization403":{"content":{"application/problem+json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]}}},"description":"FORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"PhotonAuthorization500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"PhotonAuthorization503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}}},"schemas":{"AcceptedEmailMessage":{"additionalProperties":false,"properties":{"acceptance":{"$ref":"#/components/schemas/MessageAcceptance"},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/EmailMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"email","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"accepted","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/AcceptedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","acceptance","status","timestamps"],"type":"object"},"AcceptedImessageMessage":{"additionalProperties":false,"properties":{"acceptance":{"$ref":"#/components/schemas/MessageAcceptance"},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/ImessageMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"imessage","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"accepted","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/AcceptedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","acceptance","status","timestamps"],"type":"object"},"AcceptedMessageTimestamps":{"additionalProperties":false,"properties":{"acceptedAt":{"description":"When Photon finalized terminal acceptance.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"deliveredAt":{"not":{}},"dispatchedAt":{"description":"When the emitting service established the public dispatch/send milestone.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failedAt":{"not":{}},"receivedAt":{"not":{}}},"required":["dispatchedAt","acceptedAt"],"type":"object"},"AcceptedSmsMessage":{"additionalProperties":false,"properties":{"acceptance":{"$ref":"#/components/schemas/MessageAcceptance"},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/SmsMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"sms","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"accepted","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/AcceptedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","acceptance","status","timestamps"],"type":"object"},"AcceptedTelegramMessage":{"additionalProperties":false,"properties":{"acceptance":{"$ref":"#/components/schemas/MessageAcceptance"},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/TelegramMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"telegram","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"accepted","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/AcceptedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","acceptance","status","timestamps"],"type":"object"},"AcceptedUnknownMessage":{"additionalProperties":false,"properties":{"acceptance":{"$ref":"#/components/schemas/MessageAcceptance"},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/Content"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"$ref":"#/components/schemas/PlatformIdentifier"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"accepted","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/AcceptedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","acceptance","status","timestamps"],"type":"object"},"AcceptedWhatsappBusinessMessage":{"additionalProperties":false,"properties":{"acceptance":{"$ref":"#/components/schemas/MessageAcceptance"},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/WhatsappBusinessMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"whatsapp_business","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"accepted","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/AcceptedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","acceptance","status","timestamps"],"type":"object"},"AcceptedWhatsappMessage":{"additionalProperties":false,"properties":{"acceptance":{"$ref":"#/components/schemas/MessageAcceptance"},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/WhatsappMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"whatsapp","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"accepted","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/AcceptedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","acceptance","status","timestamps"],"type":"object"},"Account":{"additionalProperties":{},"properties":{"accountId":{"type":"string"},"createdAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}]},"deletedAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}]},"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"phoneNumber":{"anyOf":[{"type":"string"},{"type":"null"}]},"phoneVerifiedAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}]},"pictureUrl":{"format":"uri","type":"string"},"updatedAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}]}},"required":["accountId","createdAt","deletedAt","email","firstName","lastName","phoneNumber","phoneVerifiedAt","pictureUrl","updatedAt"],"type":"object"},"AccountDeletedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ACCOUNT_DELETED","status":410,"title":"Account Deleted","type":"https://photon.codes/docs/problems/account-deleted"},"properties":{"code":{"const":"ACCOUNT_DELETED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":410,"type":"number"},"title":{"const":"Account Deleted","type":"string"},"type":{"const":"https://photon.codes/docs/problems/account-deleted","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AccountNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ACCOUNT_NOT_FOUND","status":404,"title":"Account Not Found","type":"https://photon.codes/docs/problems/account-not-found"},"properties":{"code":{"const":"ACCOUNT_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Account Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/account-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AccountOwnsOrganizationsProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ACCOUNT_OWNS_ORGANIZATIONS","status":409,"title":"Account Owns Organizations","type":"https://photon.codes/docs/problems/account-owns-organizations"},"properties":{"code":{"const":"ACCOUNT_OWNS_ORGANIZATIONS","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Account Owns Organizations","type":"string"},"type":{"const":"https://photon.codes/docs/problems/account-owns-organizations","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AccountServiceKey":{"additionalProperties":false,"properties":{"accountId":{"type":"string"},"createdAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"expiresAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}]},"name":{"type":"string"},"revokedAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}]},"serviceKeyId":{"type":"string"}},"required":["accountId","createdAt","expiresAt","name","revokedAt","serviceKeyId"],"type":"object"},"AccountServiceKeyLimitReachedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ACCOUNT_SERVICE_KEY_LIMIT_REACHED","status":409,"title":"Account Service Key Limit Reached","type":"https://photon.codes/docs/problems/account-service-key-limit-reached"},"properties":{"code":{"const":"ACCOUNT_SERVICE_KEY_LIMIT_REACHED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Account Service Key Limit Reached","type":"string"},"type":{"const":"https://photon.codes/docs/problems/account-service-key-limit-reached","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AccountServiceKeyNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ACCOUNT_SERVICE_KEY_NOT_FOUND","status":404,"title":"Account Service Key Not Found","type":"https://photon.codes/docs/problems/account-service-key-not-found"},"properties":{"code":{"const":"ACCOUNT_SERVICE_KEY_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Account Service Key Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/account-service-key-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AgentProfile":{"additionalProperties":false,"properties":{"avatarUrl":{"format":"uri","type":"string"},"firstName":{"minLength":1,"type":"string"},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["avatarUrl","firstName","lastName"],"type":"object"},"AgentProfileAvatarContentType":{"enum":["image/jpeg","image/png","image/webp"],"type":"string"},"AgentProfileAvatarUpload":{"additionalProperties":false,"properties":{"expiresAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"formFields":{"$ref":"#/components/schemas/AgentProfileAvatarUploadFormFields"},"uploadId":{"type":"string"},"uploadUrl":{"format":"uri","type":"string"}},"required":["expiresAt","formFields","uploadId","uploadUrl"],"type":"object"},"AgentProfileAvatarUploadFormFields":{"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"AllWebhookEvents":{"prefixItems":[{"$ref":"#/components/schemas/WebhookEventWildcard"}],"type":"array"},"AnsweredCall":{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"answered","type":"string"},"timestamps":{"$ref":"#/components/schemas/AnsweredCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},"AnsweredCallTimestamps":{"additionalProperties":false,"properties":{"answeredAt":{"description":"When the destination accepted the Call.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"connectedAt":{"not":{}},"endedAt":{"not":{}},"ringingAt":{"description":"When authoritative destination alerting was observed. Ringing may be absent.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"startedAt":{"description":"When Voice admitted the attempt.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["startedAt","answeredAt"],"type":"object"},"AnyExternalWebhookReceivedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/AnyExternalWebhookReceivedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"$ref":"#/components/schemas/AnyExternalWebhookReceivedEventSource"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"external-webhook.received","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"AnyExternalWebhookReceivedEventData":{"additionalProperties":false,"properties":{"rawRequestBase64":{"contentEncoding":"base64","format":"base64","minLength":1,"pattern":"^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$","type":"string"}},"required":["rawRequestBase64"],"type":"object"},"AnyExternalWebhookReceivedEventSource":{"pattern":"^[a-z0-9_-]{1,64}\\.external-webhook\\.photon$","type":"string"},"ApiKey":{"additionalProperties":false,"properties":{"apiKeyId":{"type":"string"},"createdAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"createdByAccountId":{"type":"string"},"expiresAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}]},"name":{"type":"string"},"permissions":{"items":{"description":"Permission wire value. Known values: events:read, events:write, platforms:read, platforms:write, project:read, project:write. Additional values may be returned; preserve unrecognized values.","type":"string"},"type":"array"},"permissionsUpdatedAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}]},"projectId":{"type":"string"},"revokedAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}]}},"required":["apiKeyId","createdAt","createdByAccountId","expiresAt","name","permissions","permissionsUpdatedAt","projectId","revokedAt"],"type":"object"},"ApiKeyLimitReachedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"API_KEY_LIMIT_REACHED","status":409,"title":"API Key Limit Reached","type":"https://photon.codes/docs/problems/api-key-limit-reached"},"properties":{"code":{"const":"API_KEY_LIMIT_REACHED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"API Key Limit Reached","type":"string"},"type":{"const":"https://photon.codes/docs/problems/api-key-limit-reached","type":"string"}},"required":["code","status","title","type"],"type":"object"},"ApiKeyNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"API_KEY_NOT_FOUND","status":404,"title":"API Key Not Found","type":"https://photon.codes/docs/problems/api-key-not-found"},"properties":{"code":{"const":"API_KEY_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"API Key Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/api-key-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"ApiKeyPermission":{"enum":["events:read","events:write","platforms:read","platforms:write","project:read","project:write"],"type":"string"},"ApiKeyRevokedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"API_KEY_REVOKED","status":409,"title":"API Key Revoked","type":"https://photon.codes/docs/problems/api-key-revoked"},"properties":{"code":{"const":"API_KEY_REVOKED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"API Key Revoked","type":"string"},"type":{"const":"https://photon.codes/docs/problems/api-key-revoked","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AppInstallationAssertionInvalidProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"APP_INSTALLATION_ASSERTION_INVALID","status":401,"title":"Invalid Installation Client Assertion","type":"https://photon.codes/docs/problems/app-installation-assertion-invalid"},"properties":{"code":{"const":"APP_INSTALLATION_ASSERTION_INVALID","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":401,"type":"number"},"title":{"const":"Invalid Installation Client Assertion","type":"string"},"type":{"const":"https://photon.codes/docs/problems/app-installation-assertion-invalid","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AppInstallationAssertionReplayedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"APP_INSTALLATION_ASSERTION_REPLAYED","status":409,"title":"Installation Assertion Already Used","type":"https://photon.codes/docs/problems/app-installation-assertion-replayed"},"properties":{"code":{"const":"APP_INSTALLATION_ASSERTION_REPLAYED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Installation Assertion Already Used","type":"string"},"type":{"const":"https://photon.codes/docs/problems/app-installation-assertion-replayed","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AppInstallationConfigChangedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"APP_INSTALLATION_CONFIG_CHANGED","status":409,"title":"Installation App Configuration Changed","type":"https://photon.codes/docs/problems/app-installation-config-changed"},"properties":{"code":{"const":"APP_INSTALLATION_CONFIG_CHANGED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Installation App Configuration Changed","type":"string"},"type":{"const":"https://photon.codes/docs/problems/app-installation-config-changed","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AppInstallationDeliveryUnavailableProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"APP_INSTALLATION_DELIVERY_UNAVAILABLE","status":409,"title":"Installation Delivery Unavailable","type":"https://photon.codes/docs/problems/app-installation-delivery-unavailable"},"properties":{"code":{"const":"APP_INSTALLATION_DELIVERY_UNAVAILABLE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Installation Delivery Unavailable","type":"string"},"type":{"const":"https://photon.codes/docs/problems/app-installation-delivery-unavailable","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AssignSmsLineCampaignBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/SmsCampaignInvalidRequestProblem"},{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"AssignSmsLineCampaignConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/SmsLineUnsupportedProblem"},{"$ref":"#/components/schemas/SmsCampaignNotReadyProblem"},{"$ref":"#/components/schemas/SmsCampaignVersionConflictProblem"},{"$ref":"#/components/schemas/SmsCampaignCapacityExceededProblem"},{"$ref":"#/components/schemas/SmsCampaignReconciliationRequiredProblem"},{"$ref":"#/components/schemas/SmsCampaignMutationInProgressProblem"}]},"AssignSmsLineCampaignForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"},{"$ref":"#/components/schemas/SmsCampaignOrganizationMismatchProblem"}]},"AssignSmsLineCampaignGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"AssignSmsLineCampaignInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"AssignSmsLineCampaignNotFoundProblem":{"oneOf":[{"$ref":"#/components/schemas/SmsCampaignNotFoundProblem"},{"$ref":"#/components/schemas/SmsLineNotFoundProblem"}]},"AssignSmsLineCampaignRequest":{"additionalProperties":false,"properties":{"campaignId":{"type":"string"},"expectedVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["campaignId","expectedVersion"],"type":"object"},"AssignSmsLineCampaignServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/SmsCampaignContextUnavailableProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"AssignVoiceLineProfileConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/VoiceDefaultProfileAssignmentForbiddenProblem"},{"$ref":"#/components/schemas/VoiceProfileVersionConflictProblem"}]},"AssignVoiceLineProfileForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"AssignVoiceLineProfileGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"AssignVoiceLineProfileInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"AssignVoiceLineProfileNotFoundProblem":{"oneOf":[{"$ref":"#/components/schemas/ResourceNotFoundProblem"},{"$ref":"#/components/schemas/VoiceProfileNotFoundProblem"}]},"AssignVoiceLineProfileRequest":{"additionalProperties":false,"properties":{"expectedVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"profileId":{"type":"string"}},"required":["expectedVersion","profileId"],"type":"object"},"AssignmentExistsProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ASSIGNMENT_EXISTS","status":409,"title":"Assignment Exists","type":"https://photon.codes/docs/problems/assignment-exists"},"properties":{"code":{"const":"ASSIGNMENT_EXISTS","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Assignment Exists","type":"string"},"type":{"const":"https://photon.codes/docs/problems/assignment-exists","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AssignmentNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ASSIGNMENT_NOT_FOUND","status":404,"title":"Assignment Not Found","type":"https://photon.codes/docs/problems/assignment-not-found"},"properties":{"code":{"const":"ASSIGNMENT_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Assignment Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/assignment-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"Attachment":{"additionalProperties":false,"properties":{"contentType":{"pattern":"^[A-Za-z0-9!#$&^_.+-]+\\/[A-Za-z0-9!#$&^_.+-]+$","type":"string"},"createdAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","type":"string"},"filename":{"minLength":1,"type":"string"},"id":{"pattern":"^pho_att_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"metadata":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"projectId":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"sizeBytes":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"updatedAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","type":"string"}},"required":["contentType","createdAt","id","projectId","sizeBytes","updatedAt"],"type":"object"},"AttachmentConflictProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ATTACHMENT_CONFLICT","status":409,"title":"Attachment Conflict","type":"https://photon.codes/docs/problems/attachment-conflict"},"properties":{"code":{"const":"ATTACHMENT_CONFLICT","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Attachment Conflict","type":"string"},"type":{"const":"https://photon.codes/docs/problems/attachment-conflict","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AttachmentContent":{"additionalProperties":false,"properties":{"attachmentId":{"$ref":"#/components/schemas/AttachmentId"},"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"type":{"const":"attachment","type":"string"}},"required":["type","attachmentId"],"type":"object"},"AttachmentId":{"pattern":"^pho_att_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"AttachmentNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ATTACHMENT_NOT_FOUND","status":404,"title":"Attachment Not Found","type":"https://photon.codes/docs/problems/attachment-not-found"},"properties":{"code":{"const":"ATTACHMENT_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Attachment Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/attachment-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AttachmentNotReadyProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ATTACHMENT_NOT_READY","status":409,"title":"Attachment Not Ready","type":"https://photon.codes/docs/problems/attachment-not-ready"},"properties":{"code":{"const":"ATTACHMENT_NOT_READY","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Attachment Not Ready","type":"string"},"type":{"const":"https://photon.codes/docs/problems/attachment-not-ready","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AttachmentNotReadyRetryAfter":{"enum":["5"],"type":"string"},"AttachmentPage":{"additionalProperties":false,"properties":{"items":{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array"},"nextPageToken":{"description":"Continue with this token, even if items is empty. Omitted when no more pages remain.","maxLength":4096,"minLength":1,"pattern":"^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$","type":"string"}},"required":["items"],"type":"object"},"AttachmentUploadNotReadyProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ATTACHMENT_UPLOAD_NOT_READY","status":409,"title":"Attachment Upload Not Ready","type":"https://photon.codes/docs/problems/attachment-upload-not-ready"},"properties":{"code":{"const":"ATTACHMENT_UPLOAD_NOT_READY","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Attachment Upload Not Ready","type":"string"},"type":{"const":"https://photon.codes/docs/problems/attachment-upload-not-ready","type":"string"}},"required":["code","status","title","type"],"type":"object"},"AuthorizedApplication":{"additionalProperties":{},"properties":{"application":{"$ref":"#/components/schemas/AuthorizedOAuthApplication"},"authorizationId":{"description":"Identifier of the user's authorization grant for this application.","type":"string"},"grantedScopes":{"description":"OAuth scope slugs the user has granted to this application.","items":{"description":"Granted OAuth scope slug.","type":"string"},"type":"array"},"oauthResource":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"OAuth resource associated with the grant, or null when no resource is specified."}},"required":["application","authorizationId","grantedScopes","oauthResource"],"type":"object"},"AuthorizedOAuthApplication":{"additionalProperties":{},"description":"The OAuth application authorized by the authenticated user.","properties":{"applicationType":{"description":"OAuth application type reported by the authorization server.","type":"string"},"clientId":{"description":"OAuth client identifier used by the application in authorization requests.","type":"string"},"createdAt":{"description":"UTC timestamp when the application was created, in RFC 3339 format.","example":"2026-01-01T00:00:00.000Z","format":"date-time","type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Application description, or null when no description is set."},"id":{"description":"Application identifier to pass as applicationId when revoking this application's grant.","type":"string"},"isFirstParty":{"description":"Whether the application is classified as first-party by the authorization server.","type":"boolean"},"name":{"description":"Display name of the authorized application.","type":"string"},"redirectUris":{"description":"Registered OAuth callback URLs for the application.","items":{"$ref":"#/components/schemas/AuthorizedOAuthApplicationRedirectUri"},"type":"array"},"scopes":{"description":"OAuth scope slugs configured for the application; grantedScopes records what the user authorized.","items":{"description":"OAuth scope slug.","type":"string"},"type":"array"},"updatedAt":{"description":"UTC timestamp when the application was last updated, in RFC 3339 format.","example":"2026-01-01T00:00:00.000Z","format":"date-time","type":"string"},"usesPkce":{"description":"Whether the application uses Proof Key for Code Exchange (PKCE).","type":"boolean"}},"required":["applicationType","clientId","createdAt","description","id","isFirstParty","name","redirectUris","scopes","updatedAt","usesPkce"],"type":"object"},"AuthorizedOAuthApplicationRedirectUri":{"additionalProperties":{},"properties":{"default":{"description":"Whether this is the application's default redirect URI.","type":"boolean"},"uri":{"description":"Registered OAuth callback URL for the application.","type":"string"}},"required":["default","uri"],"type":"object"},"AvailableProjectSlug":{"additionalProperties":false,"properties":{"available":{"const":true,"type":"boolean"},"slug":{"type":"string"}},"required":["available","slug"],"type":"object"},"BatchUpdateVoiceLineProfileAssignmentsConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/VoiceDefaultProfileAssignmentForbiddenProblem"},{"$ref":"#/components/schemas/VoiceProfileVersionConflictProblem"}]},"BatchUpdateVoiceLineProfileAssignmentsForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"BatchUpdateVoiceLineProfileAssignmentsGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"BatchUpdateVoiceLineProfileAssignmentsInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"BatchUpdateVoiceLineProfileAssignmentsNotFoundProblem":{"oneOf":[{"$ref":"#/components/schemas/ResourceNotFoundProblem"},{"$ref":"#/components/schemas/VoiceProfileNotFoundProblem"}]},"BatchUpdateVoiceLineProfileAssignmentsRequest":{"additionalProperties":false,"properties":{"updates":{"items":{"$ref":"#/components/schemas/VoiceLineProfileAssignmentUpdate"},"maxItems":100,"minItems":1,"type":"array"}},"required":["updates"],"type":"object"},"BatchUpdateVoiceLineProfileAssignmentsResponse":{"additionalProperties":false,"properties":{"assignments":{"items":{"$ref":"#/components/schemas/VoiceLineProfileAssignment"},"type":"array"}},"required":["assignments"],"type":"object"},"BeginInvitationSsoBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidReturnToProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"BeginInvitationSsoForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"BeginInvitationSsoGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"BeginInvitationSsoInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"BeginInvitationSsoPreconditionFailedProblem":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSsoPreconditionFailedProblem"},{"$ref":"#/components/schemas/SsoSubscriptionRequiredProblem"}]},"BeginInvitationSsoRequest":{"additionalProperties":false,"properties":{"returnTo":{"minLength":1,"type":"string"},"token":{"pattern":"^[A-Za-z0-9_-]{43}$","type":"string"}},"required":["token","returnTo"],"type":"object"},"BeginOrganizationAuthenticationBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidReturnToProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"BeginOrganizationAuthenticationForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"BeginOrganizationAuthenticationGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"BeginOrganizationAuthenticationInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"BeginOrganizationAuthenticationPreconditionFailedProblem":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSsoPreconditionFailedProblem"},{"$ref":"#/components/schemas/SsoSubscriptionRequiredProblem"}]},"BeginOrganizationClosureAuthenticationBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidReturnToProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"BeginOrganizationClosureAuthenticationForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"BeginOrganizationClosureAuthenticationGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"BeginOrganizationClosureAuthenticationInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"BeginOrganizationClosureAuthenticationPreconditionFailedProblem":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSsoPreconditionFailedProblem"},{"$ref":"#/components/schemas/SsoSubscriptionRequiredProblem"}]},"BeginOrganizationSsoAdmissionBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidReturnToProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"BeginOrganizationSsoAdmissionForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"BeginOrganizationSsoAdmissionGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"BeginOrganizationSsoAdmissionInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"BeginOrganizationSsoAdmissionPreconditionFailedProblem":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSsoPreconditionFailedProblem"},{"$ref":"#/components/schemas/SsoSubscriptionRequiredProblem"}]},"BeginTotpEnrollmentForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"BeginTotpEnrollmentGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"BeginTotpEnrollmentInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"BeginTotpEnrollmentRequest":{"additionalProperties":false,"description":"Empty object. Enrollment uses the authenticated Account and accepts no additional fields.","properties":{},"type":"object"},"BeginTotpEnrollmentResponse":{"additionalProperties":false,"properties":{"enrollmentToken":{"description":"Opaque, short-lived MFA enrollment continuation token.","maxLength":4096,"type":"string"},"expiresAt":{"description":"UTC expiry time of the enrollment token, in RFC 3339 format. Complete verification before this time.","example":"2026-01-01T00:00:00.000Z","format":"date-time","type":"string"},"factorId":{"description":"Identifier of a TOTP authentication factor, prefixed with auth_factor_.","maxLength":128,"pattern":"^auth_factor_[A-Za-z0-9]+$","type":"string"},"secret":{"description":"One-time TOTP secret. Never log, cache, or persist it.","maxLength":256,"minLength":1,"type":"string"},"uri":{"description":"One-time authenticator setup URI containing the TOTP secret.","maxLength":4096,"minLength":1,"pattern":"^otpauth:\\/\\/.*","type":"string"}},"required":["enrollmentToken","expiresAt","factorId","secret","uri"],"type":"object"},"BillingEntitlementsPendingProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"BILLING_ENTITLEMENTS_PENDING","status":503,"title":"Billing Entitlements Pending","type":"https://photon.codes/docs/problems/billing-entitlements-pending"},"properties":{"code":{"const":"BILLING_ENTITLEMENTS_PENDING","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":503,"type":"number"},"title":{"const":"Billing Entitlements Pending","type":"string"},"type":{"const":"https://photon.codes/docs/problems/billing-entitlements-pending","type":"string"}},"required":["code","status","title","type"],"type":"object"},"BillingHeldFixedCharge":{"additionalProperties":false,"properties":{"fixedChargeCode":{"type":"string"},"quantity":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["fixedChargeCode","quantity"],"type":"object"},"BillingNextCharge":{"additionalProperties":false,"properties":{"amountCents":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"at":{"description":"ISO 8601.","type":"string"},"currency":{"type":"string"}},"required":["amountCents","at","currency"],"type":"object"},"BillingNotProvisionedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"BILLING_NOT_PROVISIONED","status":503,"title":"Billing Not Provisioned","type":"https://photon.codes/docs/problems/billing-not-provisioned"},"properties":{"code":{"const":"BILLING_NOT_PROVISIONED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":503,"type":"number"},"title":{"const":"Billing Not Provisioned","type":"string"},"type":{"const":"https://photon.codes/docs/problems/billing-not-provisioned","type":"string"}},"required":["code","status","title","type"],"type":"object"},"BillingOperation":{"description":"Authoritative provisioning state. Poll the operation route while pending.","oneOf":[{"$ref":"#/components/schemas/PendingBillingOperation"},{"$ref":"#/components/schemas/SucceededBillingOperation"},{"$ref":"#/components/schemas/FailedBillingOperation"}]},"BillingOperationFailure":{"additionalProperties":false,"properties":{"code":{"$ref":"#/components/schemas/BillingOperationFailureCode"},"detail":{"anyOf":[{"$ref":"#/components/schemas/BillingOperationFailureDetail"},{"type":"null"}]},"retryable":{"type":"boolean"},"unsoldFixedCharges":{"items":{"$ref":"#/components/schemas/BillingHeldFixedCharge"},"type":"array"}},"required":["code","detail","retryable","unsoldFixedCharges"],"type":"object"},"BillingOperationFailureCode":{"description":"Stable provider-neutral failure category.","enum":["payment_method_required","payment_failed","not_provisioned","invalid_target","internal"],"type":"string"},"BillingOperationFailureDetail":{"enum":["cancellation_scheduled","feature_not_sold_by_plan","feature_not_found","payment_timeout","plan_activation_timeout","plan_not_found","quantity_out_of_range","reconciliation_required","release_required","target_rejected"],"type":"string"},"BillingOperationKind":{"enum":["change_plan","adjust_fixed_charge_quantity"],"type":"string"},"BillingOperationResult":{"additionalProperties":false,"properties":{"effectiveAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"const":"version","type":"string"},"version":{"type":"string"}},"required":["effectiveAt","type","version"],"type":"object"},"BillingPlan":{"additionalProperties":false,"properties":{"baseAmountCents":{"description":"Recurring base price in whole cents.","maximum":9007199254740991,"minimum":0,"type":"integer"},"categoryDisplayName":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"description":"Display name for the subscription category; absent or null when unconfigured."},"currency":{"description":"ISO currency code.","type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"entitlements":{"items":{"$ref":"#/components/schemas/BillingPlanEntitlement"},"type":"array"},"fixedCharges":{"items":{"$ref":"#/components/schemas/FixedCharge"},"type":"array"},"interval":{"$ref":"#/components/schemas/BillingPlanInterval"},"isDefault":{"description":"The category's default plan: the one a project holds when it pays for none, and moves to at the period end when it leaves a paid plan. At most one per category.","type":"boolean"},"minimumCommitment":{"anyOf":[{"$ref":"#/components/schemas/BillingPlanMinimumCommitment"},{"type":"null"}]},"name":{"type":"string"},"payInAdvance":{"type":"boolean"},"planCode":{"maxLength":64,"minLength":1,"type":"string"},"tier":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"Rank within the category: moving to a higher tier is an upgrade and applies now, to a lower one a downgrade scheduled for the period end. Null when the plan has none."},"tierDisplayName":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"description":"The plan's tier as customers see it, e.g. Pro for Messaging Pro, where the category is already clear. Null when unconfigured."},"usageCharges":{"items":{"$ref":"#/components/schemas/UsageCharge"},"type":"array"},"usageThresholds":{"description":"Progressive-billing thresholds, ordered by amount.","items":{"$ref":"#/components/schemas/BillingPlanUsageThreshold"},"type":"array"}},"required":["baseAmountCents","currency","description","entitlements","fixedCharges","interval","isDefault","minimumCommitment","name","payInAdvance","planCode","tier","tierDisplayName","usageCharges","usageThresholds"],"type":"object"},"BillingPlanChangeEffect":{"additionalProperties":false,"properties":{"additions":{"description":"One line per requested addition: what adding it bills on the target plan, prorated as if added now. Billed when it is added, not with dueNow; the balance left after dueNow applies to it first. nextCharge already includes it.","items":{"$ref":"#/components/schemas/BillingPreviewLine"},"type":"array"},"effectiveAt":{"anyOf":[{"description":"ISO 8601.","type":"string"},{"type":"null"}],"description":"When a period_end change applies. Null otherwise."},"minimumCommitment":{"anyOf":[{"$ref":"#/components/schemas/BillingPreviewMinimumCommitment"},{"type":"null"}],"description":"The target plan's minimum commitment: when a period's charges fall short of it, the difference is billed at the period end. Set for an upgrade to a plan with one, null otherwise."},"timing":{"$ref":"#/components/schemas/BillingPlanChangeTiming"},"unsoldFixedCharges":{"description":"Held fixed charges the target plan does not sell; the preview prices the change without them. With period_end they stay until it applies and are released with it. Otherwise the change is refused (release_required) until they are released.","items":{"$ref":"#/components/schemas/BillingHeldFixedCharge"},"type":"array"},"unusedTimeCredit":{"anyOf":[{"$ref":"#/components/schemas/BillingPreviewCredit"},{"type":"null"}],"description":"The replaced plan's unused time, which an upgrade credits to the payer: applied to dueNow first, the rest kept as balance. Set for an upgrade from a plan paid in advance, null otherwise."}},"required":["additions","effectiveAt","minimumCommitment","timing","unsoldFixedCharges","unusedTimeCredit"],"type":"object"},"BillingPlanChangeTiming":{"description":"immediate applies now and charges dueNow with it. on_payment applies once dueNow is paid; the current plan stays until then. period_end is a downgrade: it applies at the period end and charges nothing now.","enum":["immediate","on_payment","period_end"],"type":"string"},"BillingPlanEntitlement":{"additionalProperties":false,"properties":{"featureKey":{"type":"string"},"value":{"type":"string"}},"required":["featureKey","value"],"type":"object"},"BillingPlanInterval":{"enum":["weekly","monthly","quarterly","semiannual","yearly"],"type":"string"},"BillingPlanMinimumCommitment":{"additionalProperties":false,"description":"When the plan's fees for an interval come to less than amountCents, the difference is invoiced at the end of the period.","properties":{"amountCents":{"description":"Least the plan bills each interval, in whole cents.","maximum":9007199254740991,"minimum":0,"type":"integer"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["amountCents","displayName"],"type":"object"},"BillingPlanUsageThreshold":{"additionalProperties":false,"properties":{"amountCents":{"description":"Usage amount, in whole cents, at which usage is invoiced before the period ends.","maximum":9007199254740991,"minimum":0,"type":"integer"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"recurring":{"description":"Whether usage is invoiced again every further amountCents.","type":"boolean"}},"required":["amountCents","displayName","recurring"],"type":"object"},"BillingPreviewCredit":{"additionalProperties":false,"properties":{"amountCents":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"code":{"description":"The replaced plan's code.","type":"string"},"name":{"description":"The replaced plan's name.","type":"string"},"periodEnd":{"anyOf":[{"description":"ISO 8601.","type":"string"},{"type":"null"}],"description":"The end of the period the plan was paid for."},"periodStart":{"anyOf":[{"description":"ISO 8601.","type":"string"},{"type":"null"}],"description":"When the change is made."}},"required":["amountCents","code","name","periodEnd","periodStart"],"type":"object"},"BillingPreviewFixedChargeChange":{"additionalProperties":false,"properties":{"category":{"description":"Category slug, e.g. analytics or messaging.","pattern":"^[a-z][a-z0-9_]{0,63}$","type":"string"},"fixedCharge":{"$ref":"#/components/schemas/FixedChargeChange"}},"required":["category","fixedCharge"],"type":"object"},"BillingPreviewInvoice":{"additionalProperties":false,"description":"Charged when the change is made, priced as the change bills it. No lines when it charges nothing now.","properties":{"creditsCents":{"description":"Credit notes and prepaid credit applied, in cents.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"currency":{"type":"string"},"discountCents":{"description":"Coupons applied, in cents.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"feesCents":{"description":"Sum of the lines, in cents.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"lines":{"items":{"$ref":"#/components/schemas/BillingPreviewLine"},"type":"array"},"taxesCents":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"totalCents":{"description":"What the payer is charged, in cents.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["creditsCents","currency","discountCents","feesCents","lines","taxesCents","totalCents"],"type":"object"},"BillingPreviewLine":{"additionalProperties":false,"properties":{"amountCents":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"code":{"description":"The fixed-charge code for a fixed charge, the metric code for usage, and the plan code otherwise.","type":"string"},"kind":{"$ref":"#/components/schemas/BillingPreviewLineKind"},"name":{"type":"string"},"periodEnd":{"anyOf":[{"description":"ISO 8601.","type":"string"},{"type":"null"}]},"periodStart":{"anyOf":[{"description":"ISO 8601.","type":"string"},{"type":"null"}]},"units":{"description":"Units billed, as a decimal. Units already paid this period are not billed again, so a purchase can bill fewer units than it adds.","type":"string"}},"required":["amountCents","code","kind","name","periodEnd","periodStart","units"],"type":"object"},"BillingPreviewLineKind":{"description":"subscription is a plan's base fee. usage is the replaced plan's usage to date, billed as it stands when the change is made, so it is an estimate. commitment is the replaced plan's minimum commitment less what its fees cover.","enum":["fixed_charge","subscription","usage","commitment"],"type":"string"},"BillingPreviewMinimumCommitment":{"additionalProperties":false,"properties":{"amountCents":{"description":"For each full period.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"currentPeriodAmountCents":{"description":"For the rest of the current period, prorated as its true-up bills it.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"currentPeriodEnd":{"description":"ISO 8601.","type":"string"},"currentPeriodStart":{"description":"ISO 8601.","type":"string"}},"required":["amountCents","currentPeriodAmountCents","currentPeriodEnd","currentPeriodStart"],"type":"object"},"BillingPreviewPlanChange":{"additionalProperties":false,"properties":{"additions":{"description":"Fixed charges added once an upgrade applies, each billed when it is added rather than with the upgrade. Priced as if added now on the target plan and returned in planChange.additions, outside dueNow. Each must be sold by the target plan and named once.","items":{"$ref":"#/components/schemas/FixedChargeAddition"},"maxItems":10,"type":"array"},"category":{"description":"Category slug, e.g. analytics or messaging.","pattern":"^[a-z][a-z0-9_]{0,63}$","type":"string"},"planCode":{"description":"Plan to change to, as a purchase of it changes it.","maxLength":64,"minLength":1,"type":"string"}},"required":["category","planCode"],"type":"object"},"BillingSuspendedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"BILLING_SUSPENDED","status":402,"title":"Billing Suspended","type":"https://photon.codes/docs/problems/billing-suspended"},"properties":{"code":{"const":"BILLING_SUSPENDED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":402,"type":"number"},"title":{"const":"Billing Suspended","type":"string"},"type":{"const":"https://photon.codes/docs/problems/billing-suspended","type":"string"}},"required":["code","status","title","type"],"type":"object"},"BusyCall":{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"busy","type":"string"},"timestamps":{"$ref":"#/components/schemas/EndedCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},"Call":{"oneOf":[{"$ref":"#/components/schemas/StartedCall"},{"$ref":"#/components/schemas/RingingCall"},{"$ref":"#/components/schemas/AnsweredCall"},{"$ref":"#/components/schemas/ConnectedCall"},{"$ref":"#/components/schemas/CompletedCall"},{"$ref":"#/components/schemas/BusyCall"},{"$ref":"#/components/schemas/NoAnswerCall"},{"$ref":"#/components/schemas/RejectedCall"},{"$ref":"#/components/schemas/CanceledCall"},{"$ref":"#/components/schemas/FailedCall"}]},"CallAnsweredEvent":{"anyOf":[{"$ref":"#/components/schemas/VoiceCallAnsweredEvent"}]},"CallConnectedEvent":{"anyOf":[{"$ref":"#/components/schemas/VoiceCallConnectedEvent"}]},"CallDirection":{"description":"Inbound when the peer called a managed line (the managed line is the callee); outbound when a managed line called the peer (the managed line is the caller).","enum":["inbound","outbound"],"type":"string"},"CallDtmfDigit":{"enum":["0","1","2","3","4","5","6","7","8","9","*","#"],"type":"string"},"CallDtmfInput":{"additionalProperties":false,"properties":{"actorId":{"$ref":"#/components/schemas/UserId"},"digit":{"$ref":"#/components/schemas/CallDtmfDigit"},"timestamp":{"description":"Authoritative key-press time; equals the outer timestamp of that press's call.dtmf.received Event.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["digit","timestamp","actorId"],"type":"object"},"CallDtmfReceivedEvent":{"anyOf":[{"$ref":"#/components/schemas/VoiceCallDtmfReceivedEvent"}]},"CallEndedEvent":{"anyOf":[{"$ref":"#/components/schemas/VoiceCallEndedEvent"}]},"CallEndpoint":{"additionalProperties":false,"properties":{"type":{"const":"sip","type":"string"}},"required":["type"],"type":"object"},"CallId":{"pattern":"^pho_call_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"CallRingingEvent":{"anyOf":[{"$ref":"#/components/schemas/VoiceCallRingingEvent"}]},"CallStartedEvent":{"anyOf":[{"$ref":"#/components/schemas/VoiceCallStartedEvent"}]},"CallVoiceProfile":{"additionalProperties":false,"properties":{"endpoint":{"$ref":"#/components/schemas/CallEndpoint"},"id":{"$ref":"#/components/schemas/VoiceProfileId"}},"required":["id","endpoint"],"type":"object"},"CancelOperationForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CancelOperationGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"CancelOperationInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CanceledCall":{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"canceled","type":"string"},"timestamps":{"$ref":"#/components/schemas/EndedBeforeAnswerCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},"CaptchaProvider":{"enum":["turnstile","hcaptcha"],"type":"string"},"CaptchaRequiredProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"challengeContext":"example-challenge-context","code":"CAPTCHA_REQUIRED","provider":"turnstile","siteKey":"example-site-key","status":403,"title":"Captcha Required","type":"https://photon.codes/docs/problems/captcha-required"},"properties":{"challengeContext":{"type":"string"},"code":{"const":"CAPTCHA_REQUIRED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"provider":{"$ref":"#/components/schemas/CaptchaProvider"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"siteKey":{"type":"string"},"status":{"const":403,"type":"number"},"title":{"const":"Captcha Required","type":"string"},"type":{"const":"https://photon.codes/docs/problems/captcha-required","type":"string"}},"required":["challengeContext","provider","siteKey","code","status","title","type"],"type":"object"},"ChangePlanBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidArgumentProblem"},{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"ChangePlanConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/FailedPreconditionProblem"},{"$ref":"#/components/schemas/IdempotencyRequestInProgressProblem"}]},"ChangePlanForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ChangePlanGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ChangePlanInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ChangePlanRequest":{"additionalProperties":false,"properties":{"category":{"description":"Category slug, e.g. analytics or messaging.","pattern":"^[a-z][a-z0-9_]{0,63}$","type":"string"},"planCode":{"description":"Plan to subscribe to, e.g. analytics_pro.","maxLength":64,"minLength":1,"type":"string"}},"required":["category","planCode"],"type":"object"},"ChangePlanServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyUnavailableProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"ChangePlanUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"CheckProjectSlugAvailabilityForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CheckProjectSlugAvailabilityGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CheckProjectSlugAvailabilityResponse":{"oneOf":[{"$ref":"#/components/schemas/AvailableProjectSlug"},{"$ref":"#/components/schemas/UnavailableProjectSlug"}]},"ClickHouseSqlQueryRequest":{"additionalProperties":false,"properties":{"parameters":{"additionalProperties":{"maxLength":16384,"type":"string"},"propertyNames":{"pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","type":"string"},"type":"object"},"sql":{"maxLength":65536,"minLength":1,"type":"string"}},"required":["sql"],"type":"object"},"CommitAccountProfilePictureBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidArgumentProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"},{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"}]},"CommitAccountProfilePictureForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CommitAccountProfilePictureGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CommitAccountProfilePictureInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CommitAccountProfilePictureRequest":{"additionalProperties":false,"properties":{"uploadId":{"pattern":"^pho_upl_[0-9a-z]{26}$","type":"string"}},"required":["uploadId"],"type":"object"},"CommitAccountProfilePictureUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"},{"$ref":"#/components/schemas/ValidationFailedProblem"}]},"CommitAgentProfileAvatarBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"CommitAgentProfileAvatarForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CommitAgentProfileAvatarGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CommitAgentProfileAvatarRequest":{"additionalProperties":false,"properties":{"uploadId":{"type":"string"}},"required":["uploadId"],"type":"object"},"CommitAgentProfileAvatarUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"CompletedCall":{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"completed","type":"string"},"timestamps":{"$ref":"#/components/schemas/EndedAfterConnectCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},"ConfigureVoiceProfileOutboundBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"ConfigureVoiceProfileOutboundConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/VoiceProfileVersionConflictProblem"},{"$ref":"#/components/schemas/VoiceOutboundOperationPendingProblem"},{"$ref":"#/components/schemas/VoiceOutboundConfiguredProblem"}]},"ConfigureVoiceProfileOutboundForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ConfigureVoiceProfileOutboundGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ConfigureVoiceProfileOutboundInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ConfigureVoiceProfileOutboundRequest":{"additionalProperties":false,"properties":{"authentication":{"$ref":"#/components/schemas/SipOutboundAuthenticationPolicy"},"expectedVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["authentication","expectedVersion"],"type":"object"},"ConfigureVoiceProfileOutboundResponse":{"additionalProperties":false,"properties":{"outbound":{"$ref":"#/components/schemas/SipOutboundConfiguration"},"password":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"profileVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["outbound","password","profileVersion"],"type":"object"},"ConfigureVoiceProfileOutboundUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"ConfirmAccountPhoneVerificationForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ConfirmAccountPhoneVerificationGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"ConfirmAccountPhoneVerificationInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ConfirmAccountPhoneVerificationRequest":{"additionalProperties":false,"properties":{"code":{"pattern":"^\\d{6}$","type":"string"},"phoneNumber":{"pattern":"^[+\\d][\\d\\s().-]{6,24}$","type":"string"}},"required":["code","phoneNumber"],"type":"object"},"ConfirmedRecipient":{"additionalProperties":false,"properties":{"handle":{"description":"Recipient handle from the original send: an email address for email, or the corresponding address on another platform.","minLength":1,"type":"string"},"userId":{"$ref":"#/components/schemas/UserId","description":"Photon User ID of the confirmed recipient."}},"required":["userId","handle"],"type":"object"},"ConnectEmailDomainBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"ConnectEmailDomainConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/EmailDomainAlreadyConnectedProblem"},{"$ref":"#/components/schemas/EmailDomainCapExceededProblem"}]},"ConnectEmailDomainForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ConnectEmailDomainGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ConnectEmailDomainInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ConnectEmailDomainRequest":{"additionalProperties":false,"properties":{"domain":{"type":"string"}},"required":["domain"],"type":"object"},"ConnectEmailDomainServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/BillingEntitlementsPendingProblem"},{"$ref":"#/components/schemas/BillingNotProvisionedProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"ConnectEmailDomainUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"ConnectTelegramBotBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"ConnectTelegramBotConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/TelegramProjectDeletedProblem"},{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/TelegramProvisionInProgressProblem"}]},"ConnectTelegramBotForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ConnectTelegramBotGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ConnectTelegramBotInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ConnectTelegramBotRequest":{"additionalProperties":false,"properties":{},"type":"object"},"ConnectTelegramBotUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"ConnectWhatsappBusinessBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"ConnectWhatsappBusinessForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ConnectWhatsappBusinessGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ConnectWhatsappBusinessInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ConnectWhatsappBusinessRequest":{"additionalProperties":false,"properties":{"code":{"maxLength":1024,"minLength":1,"type":"string"},"phoneNumberId":{"maxLength":64,"minLength":1,"type":"string"},"wabaId":{"maxLength":64,"minLength":1,"type":"string"}},"required":["code","phoneNumberId","wabaId"],"type":"object"},"ConnectWhatsappBusinessServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/BillingEntitlementsPendingProblem"},{"$ref":"#/components/schemas/BillingNotProvisionedProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"ConnectWhatsappBusinessUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"ConnectedCall":{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"connected","type":"string"},"timestamps":{"$ref":"#/components/schemas/ConnectedCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},"ConnectedCallTimestamps":{"additionalProperties":false,"properties":{"answeredAt":{"description":"When the destination accepted the Call.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"connectedAt":{"description":"When the initial required parties established usable media.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"endedAt":{"not":{}},"ringingAt":{"description":"When authoritative destination alerting was observed. Ringing may be absent.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"startedAt":{"description":"When Voice admitted the attempt.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["startedAt","answeredAt","connectedAt"],"type":"object"},"Content":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/TextUpdateContent"},{"$ref":"#/components/schemas/AttachmentContent"},{"$ref":"#/components/schemas/VoiceContent"},{"$ref":"#/components/schemas/ReactionContent"},{"$ref":"#/components/schemas/MessageDeleteContent"},{"$ref":"#/components/schemas/MessageReadContent"},{"$ref":"#/components/schemas/SpaceParticipantsUpdateContent"},{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},{"$ref":"#/components/schemas/PollContent"},{"$ref":"#/components/schemas/PollVoteContent"},{"$ref":"#/components/schemas/PollUpdateContent"},{"$ref":"#/components/schemas/GroupContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"ContentIssue":{"additionalProperties":false,"properties":{"code":{"$ref":"#/components/schemas/ContentIssueCode"},"location":{"const":"json","type":"string"},"message":{"type":"string"},"path":{"type":"string"}},"required":["code","location","message","path"],"type":"object"},"ContentIssueCode":{"enum":["metadata_server_owned","markdown_html_forbidden","voice_requires_audio","attachment_mime_type_mismatch","attachment_size_mismatch"],"type":"string"},"ContentMetadata":{"additionalProperties":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"propertyNames":{"type":"string"},"type":"object"},"properties":{"email":{"$ref":"#/components/schemas/EmailMetadata"},"voice":{"$ref":"#/components/schemas/VoiceMetadata"}},"type":"object"},"CountFilteredVerificationCodesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CountFilteredVerificationCodesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"CountFilteredVerificationCodesInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CountMessagesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CountMessagesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CountMessagesInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CountMessagesResponse":{"anyOf":[{"$ref":"#/components/schemas/MessageCount"},{"$ref":"#/components/schemas/DailyMessageCount"}]},"CountProjectsForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CountProjectsGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CountResourceFilteredVerificationCodesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CountResourceFilteredVerificationCodesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"CountResourceFilteredVerificationCodesInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CountSpacesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CountSpacesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CountSpacesInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CountUsersForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CountUsersGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CountUsersInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CreateAccountProfilePictureUploadForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateAccountProfilePictureUploadGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CreateAccountProfilePictureUploadInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CreateAccountServiceKeyBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidArgumentProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"},{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"}]},"CreateAccountServiceKeyForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateAccountServiceKeyGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CreateAccountServiceKeyInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CreateAccountServiceKeyRequest":{"additionalProperties":false,"properties":{"expiresAt":{"example":"2030-01-01T00:00:00Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"name":{"maxLength":128,"minLength":1,"type":"string"}},"required":["name"],"type":"object"},"CreateAccountServiceKeyResponse":{"additionalProperties":false,"properties":{"secret":{"type":"string"},"serviceKey":{"$ref":"#/components/schemas/AccountServiceKey"}},"required":["secret","serviceKey"],"type":"object"},"CreateAccountServiceKeyUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"},{"$ref":"#/components/schemas/ValidationFailedProblem"}]},"CreateAgentProfileAvatarUploadForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateAgentProfileAvatarUploadGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CreateAgentProfileAvatarUploadRequest":{"additionalProperties":false,"properties":{"contentType":{"$ref":"#/components/schemas/AgentProfileAvatarContentType"}},"required":["contentType"],"type":"object"},"CreateAppInstallationRequestConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/AppInstallationAssertionReplayedProblem"},{"$ref":"#/components/schemas/AppInstallationConfigChangedProblem"}]},"CreateAppInstallationRequestGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CreateAppInstallationRequestRequest":{"additionalProperties":false,"properties":{"appId":{"pattern":"^pho_app_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"clientAssertion":{"maxLength":16384,"minLength":1,"type":"string"},"redirectUri":{"maxLength":4096,"type":"string"},"state":{"maxLength":4096,"type":"string"}},"required":["appId","clientAssertion","redirectUri","state"],"type":"object"},"CreateAppInstallationRequestResponse":{"additionalProperties":{},"properties":{"appId":{"pattern":"^pho_app_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"appVersion":{"pattern":"^[1-9][0-9]*$","type":"string"},"createdAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","type":"string"},"redirectUri":{"maxLength":4096,"type":"string"},"requestId":{"pattern":"^pho_air_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"state":{"maxLength":4096,"type":"string"}},"required":["requestId","appId","appVersion","redirectUri","state","createdAt"],"type":"object"},"CreateDefaultVoiceProfileConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/VoiceDefaultProfileExistsProblem"}]},"CreateDefaultVoiceProfileForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateDefaultVoiceProfileGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"CreateDefaultVoiceProfileInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CreateDefaultVoiceProfileRequest":{"additionalProperties":false,"properties":{"mediaEncryption":{"$ref":"#/components/schemas/VoiceProfileMediaEncryption"},"protocol":{"const":"sip","type":"string"}},"required":["protocol"],"type":"object"},"CreateOrGetSpaceBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/HttpErrorProblem"},{"$ref":"#/components/schemas/InvalidRequestProblem"},{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"CreateOrGetSpaceForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateOrGetSpaceGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CreateOrGetSpaceInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CreateOrGetSpaceRequest":{"additionalProperties":false,"properties":{"participantIds":{"description":"Canonical Photon User IDs from this project and platform. iMessage uses the first participant as creator when a new chat is needed; remaining order is ignored. Other platforms ignore all participant order. Counts: iMessage 2-1000; both WhatsApp platforms exactly 2; email 1-51; SMS 2-9. Every Space requires a currently project-owned Agent.","items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"$ref":"#/components/schemas/Platform"}},"required":["participantIds","platform"],"type":"object"},"CreateOrGetSpaceServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyUnavailableProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"CreateOrGetSpaceUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/SpaceRequiresOwnedAgentProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"},{"$ref":"#/components/schemas/OperationUnavailableProblem"},{"$ref":"#/components/schemas/ValidationFailedProblem"}]},"CreateOrGetUserForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateOrGetUserGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CreateOrGetUserInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CreateOrGetUserRequest":{"additionalProperties":false,"properties":{"handle":{"maxLength":512,"minLength":1,"type":"string"},"platform":{"$ref":"#/components/schemas/Platform"}},"required":["handle","platform"],"type":"object"},"CreateOrGetUserUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/OperationUnavailableProblem"},{"$ref":"#/components/schemas/ValidationFailedProblem"}]},"CreateOrganizationPaymentMethodCheckoutBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidArgumentProblem"},{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"CreateOrganizationPaymentMethodCheckoutForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateOrganizationPaymentMethodCheckoutGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"CreateOrganizationPaymentMethodCheckoutInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CreateOrganizationPaymentMethodCheckoutResponse":{"additionalProperties":false,"properties":{"checkoutUrl":{"description":"Hosted Stripe page; send the user here.","format":"uri","type":"string"}},"required":["checkoutUrl"],"type":"object"},"CreateOrganizationPaymentMethodCheckoutServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/PaymentProviderNotReadyProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"CreateOrganizationPaymentMethodCheckoutUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"CreateOrganizationSetupIntentBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidArgumentProblem"},{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"CreateOrganizationSetupIntentForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateOrganizationSetupIntentGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"CreateOrganizationSetupIntentInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CreateOrganizationSetupIntentResponse":{"additionalProperties":false,"properties":{"clientSecret":{"description":"Stripe SetupIntent client secret.","minLength":1,"type":"string"},"publishableKey":{"description":"Publishable key for the Stripe account backing billing.","pattern":"^pk_.*","type":"string"}},"required":["clientSecret","publishableKey"],"type":"object"},"CreateOrganizationSetupIntentUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"CreateOrganizationSsoPortalLinkBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidReturnToProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"CreateOrganizationSsoPortalLinkForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"CreateOrganizationSsoPortalLinkGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CreateOrganizationSsoPortalLinkInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CreateOrganizationSsoPortalLinkPreconditionFailedProblem":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSsoPreconditionFailedProblem"},{"$ref":"#/components/schemas/SsoSubscriptionRequiredProblem"}]},"CreateOrganizationSsoPortalLinkRequest":{"additionalProperties":false,"properties":{"intent":{"$ref":"#/components/schemas/CreateOrganizationSsoPortalLinkRequestIntent"},"returnTo":{"minLength":1,"type":"string"}},"required":["returnTo"],"type":"object"},"CreateOrganizationSsoPortalLinkRequestIntent":{"default":"sso","enum":["sso","domain_verification"],"type":"string"},"CreateOrganizationSsoPortalLinkResponse":{"additionalProperties":{},"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"},"CreateProjectApiKeyBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"CreateProjectApiKeyForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateProjectApiKeyRequest":{"additionalProperties":false,"example":{"name":"Example key","permissions":["project:read"]},"properties":{"expiresAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"name":{"maxLength":128,"minLength":1,"type":"string"},"permissions":{"items":{"$ref":"#/components/schemas/ApiKeyPermission"},"minItems":1,"type":"array"}},"required":["name","permissions"],"type":"object"},"CreateProjectApiKeyResponse":{"additionalProperties":false,"properties":{"apiKey":{"$ref":"#/components/schemas/ApiKey"},"secret":{"type":"string"}},"required":["apiKey","secret"],"type":"object"},"CreateProjectApiKeyUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"CreateProjectBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"CreateProjectForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateProjectGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"CreateProjectRequest":{"additionalProperties":false,"properties":{"name":{"maxLength":256,"minLength":1,"type":"string"},"slug":{"maxLength":63,"minLength":3,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"}},"required":["name","slug"],"type":"object"},"CreateProjectUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"CreateSharedLineAssignmentBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"CreateSharedLineAssignmentConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/ImessageModeDedicatedProblem"},{"$ref":"#/components/schemas/SharedLineCapExceededProblem"},{"$ref":"#/components/schemas/AssignmentExistsProblem"}]},"CreateSharedLineAssignmentForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateSharedLineAssignmentGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"CreateSharedLineAssignmentInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CreateSharedLineAssignmentRequest":{"additionalProperties":false,"properties":{"email":{"format":"email","maxLength":254,"pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},"firstName":{"maxLength":100,"minLength":1,"type":"string"},"handle":{"$ref":"#/components/schemas/ImessageHandle"},"lastName":{"maxLength":100,"minLength":1,"type":"string"}},"required":["handle"],"type":"object"},"CreateSharedLineAssignmentServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/BillingEntitlementsPendingProblem"},{"$ref":"#/components/schemas/BillingNotProvisionedProblem"},{"$ref":"#/components/schemas/SharedLinePoolExhaustedProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"CreateSharedLineAssignmentUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"CreateVoiceProfileConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/VoiceDefaultProfileRequiredProblem"}]},"CreateVoiceProfileForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateVoiceProfileGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"CreateVoiceProfileInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CreateVoiceProfileRequest":{"additionalProperties":false,"properties":{"mediaEncryption":{"$ref":"#/components/schemas/VoiceProfileMediaEncryption"},"name":{"maxLength":100,"minLength":1,"type":"string"},"protocol":{"const":"sip","type":"string"}},"required":["name","protocol"],"type":"object"},"CreateWebhookDestinationBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"CreateWebhookDestinationForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateWebhookDestinationGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"CreateWebhookDestinationRequest":{"additionalProperties":false,"properties":{"apiVersion":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"description":{"maxLength":1000,"type":"string"},"enabledEvents":{"$ref":"#/components/schemas/WebhookEventSelection"},"name":{"maxLength":256,"minLength":1,"type":"string"},"status":{"$ref":"#/components/schemas/WebhookDestinationStatus","default":"enabled"},"url":{"description":"HTTPS URL without credentials or a fragment.","format":"uri","maxLength":2048,"minLength":1,"type":"string"}},"required":["apiVersion","enabledEvents","name","url"],"type":"object"},"CreateWebhookDestinationResponse":{"additionalProperties":false,"properties":{"destination":{"$ref":"#/components/schemas/WebhookDestination"},"signingSecret":{"pattern":"^whsec_.*","type":"string"}},"required":["destination","signingSecret"],"type":"object"},"CreateWebhookDestinationUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"CreateWhatsappSharedLineAssignmentBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"CreateWhatsappSharedLineAssignmentConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/WhatsappModeDedicatedProblem"},{"$ref":"#/components/schemas/SharedLineCapExceededProblem"},{"$ref":"#/components/schemas/AssignmentExistsProblem"}]},"CreateWhatsappSharedLineAssignmentForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateWhatsappSharedLineAssignmentGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"CreateWhatsappSharedLineAssignmentInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CreateWhatsappSharedLineAssignmentRequest":{"additionalProperties":false,"properties":{"email":{"format":"email","maxLength":254,"pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},"firstName":{"maxLength":100,"minLength":1,"type":"string"},"handle":{"pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"lastName":{"maxLength":100,"minLength":1,"type":"string"}},"required":["handle"],"type":"object"},"CreateWhatsappSharedLineAssignmentServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/BillingEntitlementsPendingProblem"},{"$ref":"#/components/schemas/BillingNotProvisionedProblem"},{"$ref":"#/components/schemas/SharedLinePoolExhaustedProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"CreateWhatsappSharedLineAssignmentUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"CreateWhatsappVoipSenderBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"CreateWhatsappVoipSenderConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/WhatsappAccountDisconnectingProblem"},{"$ref":"#/components/schemas/WhatsappAccountProvisioningProblem"},{"$ref":"#/components/schemas/WhatsappSenderConnectedProblem"},{"$ref":"#/components/schemas/WhatsappSenderProvisioningProblem"},{"$ref":"#/components/schemas/WhatsappVoipSourceReleasingProblem"}]},"CreateWhatsappVoipSenderForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"CreateWhatsappVoipSenderGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"CreateWhatsappVoipSenderInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"CreateWhatsappVoipSenderNotFoundProblem":{"oneOf":[{"$ref":"#/components/schemas/WhatsappWabaNotConnectedProblem"},{"$ref":"#/components/schemas/WhatsappVoipSourceNotEligibleProblem"}]},"CreateWhatsappVoipSenderRequest":{"additionalProperties":false,"properties":{"displayName":{"type":"string"},"voipResourceId":{"type":"string"}},"required":["voipResourceId"],"type":"object"},"CreateWhatsappVoipSenderServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/BillingEntitlementsPendingProblem"},{"$ref":"#/components/schemas/BillingNotProvisionedProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"CreateWhatsappVoipSenderUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/WhatsappDisplayNameUnavailableProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"CreatedAppInstallationDelivery":{"additionalProperties":false,"properties":{"clientId":{"maxLength":256,"pattern":"^client_[A-Za-z0-9]+$","type":"string"},"clientSecret":{"maxLength":8192,"minLength":1,"type":"string"},"installationId":{"pattern":"^pho_ain_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"status":{"const":"created","type":"string"}},"required":["installationId","status","clientId","clientSecret"],"type":"object"},"CreditBalance":{"additionalProperties":false,"properties":{"balanceCents":{"description":"Credit left to offset the next invoices, in cents.","exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"currency":{"description":"ISO currency code.","type":"string"}},"required":["balanceCents","currency"],"type":"object"},"DailyMessageCount":{"additionalProperties":false,"properties":{"buckets":{"items":{"$ref":"#/components/schemas/MessageCountBucket"},"type":"array"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"groups":{"items":{"$ref":"#/components/schemas/MessageStatusCount"},"type":"array"},"interval":{"const":"day","type":"string"},"timeZone":{"type":"string"}},"required":["count","groups","buckets","interval","timeZone"],"type":"object"},"DedicatedProjectPlatformSettings":{"additionalProperties":false,"properties":{"dedicatedLineAvailableNow":{"type":"boolean"},"mode":{"const":"dedicated","type":"string"}},"required":["dedicatedLineAvailableNow","mode"],"type":"object"},"DeleteAccountForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"DeleteAccountGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"DeleteAccountInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"DeleteProjectBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"DeleteProjectForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"DeleteProjectGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"DeleteProjectUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"DeleteTotpFactorForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"DeleteTotpFactorGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"DeleteTotpFactorInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"DeleteVoiceProfileConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/VoiceProfileInUseProblem"},{"$ref":"#/components/schemas/VoiceDefaultProfileDeletionForbiddenProblem"},{"$ref":"#/components/schemas/VoiceProfileVersionConflictProblem"}]},"DeleteVoiceProfileForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"DeleteVoiceProfileForceInput":{"enum":["true","false"],"type":"string"},"DeleteVoiceProfileGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"DeleteVoiceProfileInboundConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/VoiceProfileVersionConflictProblem"},{"$ref":"#/components/schemas/VoiceOutboundOperationPendingProblem"}]},"DeleteVoiceProfileInboundForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"DeleteVoiceProfileInboundGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"DeleteVoiceProfileInboundInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"DeleteVoiceProfileInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"DeleteVoiceProfileOutboundConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/VoiceProfileVersionConflictProblem"},{"$ref":"#/components/schemas/VoiceOutboundNotConfiguredProblem"}]},"DeleteVoiceProfileOutboundForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"DeleteVoiceProfileOutboundGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"DeleteVoiceProfileOutboundInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"DeleteVoiceProfileOutboundResponse":{"additionalProperties":false,"properties":{"outbound":{"type":"null"},"profileVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["outbound","profileVersion"],"type":"object"},"DeleteWebhookDestinationForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"DeleteWebhookDestinationGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"DeliveredEmailMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/EmailMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"email","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"delivered","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/DeliveredMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"DeliveredImessageMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/ImessageMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"imessage","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"delivered","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/DeliveredMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"DeliveredMessageTimestamps":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"deliveredAt":{"description":"When Photon finalized delivery based on authoritative confirmation.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"dispatchedAt":{"description":"When the emitting service established the public dispatch/send milestone.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failedAt":{"not":{}},"receivedAt":{"not":{}}},"required":["dispatchedAt","deliveredAt"],"type":"object"},"DeliveredSmsMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/SmsMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"sms","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"delivered","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/DeliveredMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"DeliveredTelegramMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/TelegramMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"telegram","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"delivered","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/DeliveredMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"DeliveredUnknownMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/Content"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"$ref":"#/components/schemas/PlatformIdentifier"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"delivered","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/DeliveredMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"DeliveredWhatsappBusinessMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/WhatsappBusinessMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"whatsapp_business","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"delivered","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/DeliveredMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"DeliveredWhatsappMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/WhatsappMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"whatsapp","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"delivered","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/DeliveredMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"DeliveryConfirmationNotApplicableAcceptance":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"delivery_confirmation_not_applicable","type":"string"},"confirmedRecipientCount":{"not":{}},"confirmedRecipients":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"DeliveryConfirmationTimedOutAcceptance":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"delivery_confirmation_timed_out","type":"string"},"confirmedRecipientCount":{"not":{}},"confirmedRecipients":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"DeliveryConfirmationUnavailableAcceptance":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"delivery_confirmation_unavailable","type":"string"},"confirmedRecipientCount":{"not":{}},"confirmedRecipients":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"DeliveryPartiallyConfirmedAcceptance":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"delivery_partially_confirmed","type":"string"},"confirmedRecipientCount":{"description":"Unique recipients with authoritative delivery confirmation for the original send.","maximum":9007199254740991,"minimum":1,"type":"integer"},"confirmedRecipients":{"description":"Optional complete list of confirmed recipient snapshots, each with a Photon userId and the handle used for the original send. User IDs must be unique, and both fields must be visible to the caller. The list length must equal confirmedRecipientCount. Persist the snapshots with the terminal outcome. Omit when the full confirmed set cannot be identified or disclosed; omission does not mean zero deliveries.","items":{"$ref":"#/components/schemas/ConfirmedRecipient"},"minItems":1,"type":"array"},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message","confirmedRecipientCount"],"type":"object"},"DeprecatedWebhookApiVersion":{"additionalProperties":false,"properties":{"retirement":{"$ref":"#/components/schemas/WebhookApiVersionRetirement"},"selectable":{"const":false,"type":"boolean"},"status":{"const":"deprecated","type":"string"},"successor":{"anyOf":[{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},{"type":"null"}]},"version":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"}},"required":["retirement","successor","selectable","status","version"],"type":"object"},"DeprecatedWebhookEventCatalog":{"additionalProperties":false,"properties":{"apiVersion":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"contractNamespace":{"const":"@photon-hq/contracts","type":"string"},"events":{"items":{"$ref":"#/components/schemas/WebhookEventType"},"type":"array"},"packageVersion":{"minLength":1,"type":"string"},"retirement":{"$ref":"#/components/schemas/WebhookApiVersionRetirement"},"selectable":{"const":false,"type":"boolean"},"status":{"const":"deprecated","type":"string"},"successor":{"anyOf":[{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},{"type":"null"}]}},"required":["retirement","successor","selectable","status","contractNamespace","packageVersion","apiVersion","events"],"type":"object"},"DeviceAuthorizeResponse":{"additionalProperties":{},"properties":{"device_code":{"description":"Opaque device code to exchange at POST /v1/auth/device/token while waiting for the user to authorize.","type":"string"},"expires_in":{"description":"Lifetime of the device code and user code, in seconds.","type":"number"},"interval":{"description":"Minimum number of seconds to wait between token polling requests.","type":"number"},"user_code":{"description":"Code the user enters at verification_uri to authorize this device.","type":"string"},"verification_uri":{"description":"Browser URL where the user enters user_code and authorizes the device.","type":"string"},"verification_uri_complete":{"description":"Browser URL with user_code included, ready to open or encode as a QR code.","type":"string"}},"required":["device_code","expires_in","interval","user_code","verification_uri","verification_uri_complete"],"type":"object"},"DeviceCodeGrantRequest":{"properties":{"device_code":{"description":"device_code returned by POST /v1/auth/device/code. Required for a device-code grant.","minLength":1,"type":"string"},"grant_type":{"const":"urn:ietf:params:oauth:grant-type:device_code","description":"Selects the device authorization grant to poll or exchange a device code.","type":"string"}},"required":["device_code","grant_type"],"type":"object"},"DeviceTokenBadRequestResponse":{"additionalProperties":{},"properties":{"error":{"description":"OAuth error code. During device polling, authorization_pending means authorization is incomplete and slow_down requests a longer polling interval.","type":"string"},"error_description":{"description":"Optional human-readable explanation of the OAuth error.","type":"string"}},"required":["error"],"type":"object"},"DeviceTokenRequest":{"oneOf":[{"$ref":"#/components/schemas/DeviceCodeGrantRequest"},{"$ref":"#/components/schemas/RefreshTokenGrantRequest"}]},"DeviceTokenResponse":{"additionalProperties":{},"properties":{"access_token":{"description":"Bearer access token for authenticated Photon API requests.","type":"string"},"authentication_method":{"description":"Authentication method used for the device login, when returned. Omitted for refresh grants.","type":"string"},"expires_in":{"description":"Access-token validity in seconds, derived from its expiry and issue times; defaults to 300 when unavailable.","type":"number"},"refresh_token":{"description":"Refresh token for the next refresh grant. Tokens rotate on every grant; replace the stored value with this one.","type":"string"},"user":{"$ref":"#/components/schemas/DeviceTokenResponseUser"}},"required":["access_token","expires_in","refresh_token","user"],"type":"object"},"DeviceTokenResponseUser":{"additionalProperties":{},"description":"Profile of the authenticated user.","properties":{"email":{"description":"Authenticated user's email address.","type":"string"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User's first name, or null when not set."},"id":{"description":"Authenticated user's identity identifier; distinct from the Photon Account ID.","type":"string"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User's last name, or null when not set."}},"required":["id","email","first_name","last_name"],"type":"object"},"DisableOrganizationSsoBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidReturnToProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"},{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"DisableOrganizationSsoForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"DisableOrganizationSsoGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"DisableOrganizationSsoInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"DisableOrganizationSsoPreconditionFailedProblem":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSsoPreconditionFailedProblem"},{"$ref":"#/components/schemas/SsoSubscriptionRequiredProblem"}]},"DisableOrganizationSsoRequest":{"additionalProperties":false,"properties":{"domains":{"default":[],"items":{"maxLength":253,"minLength":1,"type":"string"},"maxItems":100,"type":"array"},"expectedVersion":{"pattern":"^(0|[1-9][0-9]{0,19})$","type":"string"}},"required":["expectedVersion"],"type":"object"},"DisableOrganizationSsoUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"DisconnectWhatsappBusinessAccountBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"},{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"}]},"DisconnectWhatsappBusinessAccountConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/WhatsappAccountDisconnectingProblem"},{"$ref":"#/components/schemas/WhatsappAccountProvisioningProblem"}]},"DisconnectWhatsappBusinessAccountForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"DisconnectWhatsappBusinessAccountGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"DisconnectWhatsappBusinessAccountInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"DisconnectWhatsappBusinessAccountUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"DispatchedEmailMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/EmailMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"email","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"dispatched","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/DispatchedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"DispatchedImessageMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/ImessageMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"imessage","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"dispatched","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/DispatchedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"DispatchedMessageTimestamps":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"deliveredAt":{"not":{}},"dispatchedAt":{"description":"When the emitting service established the public dispatch/send milestone.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failedAt":{"not":{}},"receivedAt":{"not":{}}},"required":["dispatchedAt"],"type":"object"},"DispatchedSmsMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/SmsMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"sms","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"dispatched","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/DispatchedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"DispatchedTelegramMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/TelegramMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"telegram","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"dispatched","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/DispatchedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"DispatchedUnknownMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/Content"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"$ref":"#/components/schemas/PlatformIdentifier"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"dispatched","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/DispatchedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"DispatchedWhatsappBusinessMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/WhatsappBusinessMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"whatsapp_business","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"dispatched","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/DispatchedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"DispatchedWhatsappMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/WhatsappMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"whatsapp","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"dispatched","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/DispatchedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"DownloadAttachmentForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"DownloadAttachmentGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"DownloadAttachmentInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"DownloadAttachmentResponse":{},"EmailAddressing":{"additionalProperties":false,"properties":{"bcc":{"description":"Omitted means unavailable or undisclosed; an empty array means known empty. Never infer hidden recipients from another observation.","items":{"$ref":"#/components/schemas/EmailMailbox"},"type":"array"},"cc":{"description":"Omitted means unavailable or undisclosed; an empty array means known empty. Never infer hidden recipients from another observation.","items":{"$ref":"#/components/schemas/EmailMailbox"},"type":"array"},"from":{"$ref":"#/components/schemas/EmailMailbox","description":"The captured sender mailbox. Its address and resolved User ID must agree with the source Message's sentBy."},"replyTo":{"description":"Omitted means unavailable or undisclosed; an empty array means known empty. Never infer hidden recipients from another observation.","items":{"$ref":"#/components/schemas/EmailMailbox"},"type":"array"},"sourceMessageId":{"$ref":"#/components/schemas/MessageId","description":"The Message that supplied this observation. In a Message Space snapshot this is the containing Message's own ID, not its parent ID."},"to":{"description":"Omitted means unavailable or undisclosed; an empty array means known empty. Never infer hidden recipients from another observation.","items":{"$ref":"#/components/schemas/EmailMailbox"},"type":"array"}},"required":["sourceMessageId","from"],"type":"object"},"EmailContentDisposition":{"enum":["inline","attachment"],"type":"string"},"EmailDomainAlreadyConnectedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"EMAIL_DOMAIN_ALREADY_CONNECTED","status":409,"title":"Email Domain Already Connected","type":"https://photon.codes/docs/problems/email-domain-already-connected"},"properties":{"code":{"const":"EMAIL_DOMAIN_ALREADY_CONNECTED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Email Domain Already Connected","type":"string"},"type":{"const":"https://photon.codes/docs/problems/email-domain-already-connected","type":"string"}},"required":["code","status","title","type"],"type":"object"},"EmailDomainCapExceededProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"EMAIL_DOMAIN_CAP_EXCEEDED","status":409,"title":"Email Domain Cap Exceeded","type":"https://photon.codes/docs/problems/email-domain-cap-exceeded"},"properties":{"code":{"const":"EMAIL_DOMAIN_CAP_EXCEEDED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Email Domain Cap Exceeded","type":"string"},"type":{"const":"https://photon.codes/docs/problems/email-domain-cap-exceeded","type":"string"}},"required":["code","status","title","type"],"type":"object"},"EmailGroupContent":{"additionalProperties":false,"properties":{"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"parts":{"items":{"$ref":"#/components/schemas/EmailGroupContentPart"},"minItems":1,"type":"array"},"type":{"const":"group","type":"string"}},"required":["type","parts"],"type":"object"},"EmailGroupContentPart":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/TextUpdateContent"},{"$ref":"#/components/schemas/AttachmentContent"},{"$ref":"#/components/schemas/VoiceContent"},{"$ref":"#/components/schemas/ReactionContent"},{"$ref":"#/components/schemas/MessageDeleteContent"},{"$ref":"#/components/schemas/MessageReadContent"},{"$ref":"#/components/schemas/SpaceParticipantsUpdateContent"},{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},{"$ref":"#/components/schemas/PollContent"},{"$ref":"#/components/schemas/PollVoteContent"},{"$ref":"#/components/schemas/PollUpdateContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"EmailMailbox":{"additionalProperties":false,"properties":{"address":{"$ref":"#/components/schemas/EmailMailboxAddress"},"name":{"description":"The captured display name, when known.","minLength":1,"type":"string"},"userId":{"$ref":"#/components/schemas/UserId","description":"The resolved Photon User ID, when available. Outbound admission must resolve every mailbox before capture."}},"required":["address"],"type":"object"},"EmailMailboxAddress":{"description":"The captured mailbox address. Preserve local-part case; admission services own normalization and sending restrictions.","minLength":1,"oneOf":[{"type":"string"},{"pattern":"[\\s\\x00-\\x1f\\x7f]","type":"string"}],"pattern":"^[^\\s@\\x00-\\x1f\\x7f]+@[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?)*$","type":"string"},"EmailMessage":{"oneOf":[{"$ref":"#/components/schemas/ReceivedEmailMessage"},{"$ref":"#/components/schemas/DispatchedEmailMessage"},{"$ref":"#/components/schemas/AcceptedEmailMessage"},{"$ref":"#/components/schemas/DeliveredEmailMessage"},{"$ref":"#/components/schemas/FailedEmailMessage"}]},"EmailMessageAcceptedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/EmailMessageAcceptedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"email.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.accepted","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"EmailMessageAcceptedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"email","type":"string"},"status":{"const":"accepted","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"EmailMessageContent":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/TextUpdateContent"},{"$ref":"#/components/schemas/AttachmentContent"},{"$ref":"#/components/schemas/VoiceContent"},{"$ref":"#/components/schemas/ReactionContent"},{"$ref":"#/components/schemas/MessageDeleteContent"},{"$ref":"#/components/schemas/MessageReadContent"},{"$ref":"#/components/schemas/SpaceParticipantsUpdateContent"},{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},{"$ref":"#/components/schemas/PollContent"},{"$ref":"#/components/schemas/PollVoteContent"},{"$ref":"#/components/schemas/PollUpdateContent"},{"$ref":"#/components/schemas/EmailGroupContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"EmailMessageDeliveredEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/EmailMessageDeliveredEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"email.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.delivered","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"EmailMessageDeliveredEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"email","type":"string"},"status":{"const":"delivered","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"EmailMessageDispatchedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/EmailMessageDispatchedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"email.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.dispatched","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"EmailMessageDispatchedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"email","type":"string"},"status":{"const":"dispatched","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"EmailMessageFailedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/EmailMessageFailedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"email.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.failed","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"EmailMessageFailedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"email","type":"string"},"status":{"const":"failed","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"EmailMessageReceivedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/EmailMessageReceivedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"email.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.received","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"EmailMessageReceivedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"email","type":"string"},"status":{"const":"received","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"EmailMetadata":{"additionalProperties":false,"properties":{"contentDisposition":{"$ref":"#/components/schemas/EmailContentDisposition"},"contentId":{"minLength":1,"type":"string"},"originalHtml":{"type":"string"},"related":{"type":"boolean"},"sourceMediaType":{"minLength":1,"type":"string"},"subject":{"type":"string"}},"type":"object"},"EmailSpace":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"$ref":"#/components/schemas/EmailSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"const":"email","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","kind","participantIds","details","metadata","createdAt","updatedAt"],"type":"object"},"EmailSpaceDetails":{"additionalProperties":false,"properties":{"latestAddressing":{"$ref":"#/components/schemas/EmailAddressing","description":"The latest eligible whole observation on a canonical Space, or this Message's immutable capture in an embedded Space. Absent when no observation is available."}},"type":"object"},"EmailSpaceSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/EmailSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"const":"email","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","kind","participantIds","details","metadata"],"type":"object"},"EmailSpaceTypingUpdatedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/EmailSpaceTypingUpdatedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"email.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"space.typing.updated","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"EmailSpaceTypingUpdatedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"content":{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},"parentMessageId":{"not":{}},"platform":{"const":"email","type":"string"},"status":{"const":"received","type":"string"}},"required":["platform","status","content"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"EmailSpaceUpdatedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/EmailSpaceUpdatedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"email.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"space.updated","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"EmailSpaceUpdatedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"content":{"additionalProperties":{},"properties":{"type":{"const":"space.participants.update","type":"string"}},"required":["type"],"type":"object"},"platform":{"const":"email","type":"string"},"status":{"enum":["received","delivered"],"type":"string"}},"required":["platform","status","content"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"EmailUser":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"$ref":"#/components/schemas/EmailUserDetails"},"handle":{"minLength":1,"type":"string"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"email","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","handle","kind","details","metadata","createdAt","updatedAt"],"type":"object"},"EmailUserDetails":{"additionalProperties":false,"properties":{"managedBy":{"$ref":"#/components/schemas/ManagerId"},"resourceId":{"$ref":"#/components/schemas/ResourceId"}},"type":"object"},"EmailUserSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/EmailUserDetails"},"handle":{"minLength":1,"type":"string"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"email","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","handle","kind","details","metadata"],"type":"object"},"EndedAfterAnswerCallTimestamps":{"additionalProperties":false,"properties":{"answeredAt":{"description":"When the destination accepted the Call.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"connectedAt":{"not":{}},"endedAt":{"description":"When the aggregate Call was confirmed terminal.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"ringingAt":{"description":"When authoritative destination alerting was observed. Ringing may be absent.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"startedAt":{"description":"When Voice admitted the attempt.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["startedAt","answeredAt","endedAt"],"type":"object"},"EndedAfterConnectCallTimestamps":{"additionalProperties":false,"properties":{"answeredAt":{"description":"When the destination accepted the Call.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"connectedAt":{"description":"When the initial required parties established usable media.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"endedAt":{"description":"When the aggregate Call was confirmed terminal.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"ringingAt":{"description":"When authoritative destination alerting was observed. Ringing may be absent.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"startedAt":{"description":"When Voice admitted the attempt.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["startedAt","answeredAt","connectedAt","endedAt"],"type":"object"},"EndedBeforeAnswerCallTimestamps":{"additionalProperties":false,"properties":{"answeredAt":{"not":{}},"connectedAt":{"not":{}},"endedAt":{"description":"When the aggregate Call was confirmed terminal.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"ringingAt":{"description":"When authoritative destination alerting was observed. Ringing may be absent.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"startedAt":{"description":"When Voice admitted the attempt.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["startedAt","endedAt"],"type":"object"},"EndedCall":{"oneOf":[{"$ref":"#/components/schemas/CompletedCall"},{"$ref":"#/components/schemas/BusyCall"},{"$ref":"#/components/schemas/NoAnswerCall"},{"$ref":"#/components/schemas/RejectedCall"},{"$ref":"#/components/schemas/CanceledCall"},{"$ref":"#/components/schemas/FailedCall"}]},"EndedCallTimestamps":{"anyOf":[{"$ref":"#/components/schemas/EndedBeforeAnswerCallTimestamps"},{"$ref":"#/components/schemas/EndedAfterAnswerCallTimestamps"},{"$ref":"#/components/schemas/EndedAfterConnectCallTimestamps"}]},"EntitlementRejectionReason":{"enum":["billing_restricted","business_plan_required","card_required","email_required","plan_change_scheduled","subscription_not_billable"],"type":"string"},"EntitlementRequiredProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ENTITLEMENT_REQUIRED","reason":"card_required","status":402,"title":"Entitlement Required","type":"https://photon.codes/docs/problems/entitlement-required"},"properties":{"code":{"const":"ENTITLEMENT_REQUIRED","type":"string"},"detail":{"minLength":1,"type":"string"},"effectiveAt":{"format":"date-time","type":"string"},"instance":{"minLength":1,"type":"string"},"reason":{"$ref":"#/components/schemas/EntitlementRejectionReason"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":402,"type":"number"},"title":{"const":"Entitlement Required","type":"string"},"type":{"const":"https://photon.codes/docs/problems/entitlement-required","type":"string"}},"required":["reason","code","status","title","type"],"type":"object"},"Envelope":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"propertyNames":{"type":"string"},"type":"object"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"$ref":"#/components/schemas/EventSource"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"$ref":"#/components/schemas/EventType"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"EventId":{"pattern":"^pho_evt_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"EventSource":{"pattern":"^[a-z0-9_-]+(?:\\.[a-z0-9_-]+)+$","type":"string"},"EventType":{"pattern":"^[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9_-]*)+$","type":"string"},"ExistingAppInstallationDelivery":{"additionalProperties":false,"properties":{"installationId":{"pattern":"^pho_ain_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"status":{"$ref":"#/components/schemas/ExistingAppInstallationDeliveryStatus"}},"required":["installationId","status"],"type":"object"},"ExistingAppInstallationDeliveryStatus":{"enum":["delivery_consumed","recovery_required","revocation_pending","revoked"],"type":"string"},"ExternalWebhookReceivedEvent":{"anyOf":[{"$ref":"#/components/schemas/AnyExternalWebhookReceivedEvent"}]},"FailedBillingOperation":{"additionalProperties":false,"properties":{"failure":{"$ref":"#/components/schemas/BillingOperationFailure"},"kind":{"$ref":"#/components/schemas/BillingOperationKind"},"operationId":{"description":"Stable handle for this provisioning action.","type":"string"},"resolvedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"result":{"type":"null"},"status":{"const":"failed","description":"Terminal. Failure contains a stable code and retryability.","type":"string"},"submittedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["failure","kind","operationId","submittedAt","resolvedAt","result","status"],"type":"object"},"FailedCall":{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"failed","type":"string"},"timestamps":{"$ref":"#/components/schemas/EndedCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},"FailedEmailMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/EmailMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"$ref":"#/components/schemas/MessageFailure"},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"email","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"failed","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/FailedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","failure","status","timestamps"],"type":"object"},"FailedImessageMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/ImessageMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"$ref":"#/components/schemas/MessageFailure"},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"imessage","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"failed","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/FailedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","failure","status","timestamps"],"type":"object"},"FailedMessageTimestamps":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"deliveredAt":{"not":{}},"dispatchedAt":{"description":"When the emitting service established the public dispatch/send milestone.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failedAt":{"description":"When Photon finalized terminal failure.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"receivedAt":{"not":{}}},"required":["failedAt"],"type":"object"},"FailedPreconditionProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"FAILED_PRECONDITION","status":409,"title":"Failed Precondition","type":"https://photon.codes/docs/problems/failed-precondition"},"properties":{"code":{"const":"FAILED_PRECONDITION","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Failed Precondition","type":"string"},"type":{"const":"https://photon.codes/docs/problems/failed-precondition","type":"string"}},"required":["code","status","title","type"],"type":"object"},"FailedSmsMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/SmsMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"$ref":"#/components/schemas/MessageFailure"},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"sms","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"failed","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/FailedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","failure","status","timestamps"],"type":"object"},"FailedTelegramMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/TelegramMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"$ref":"#/components/schemas/MessageFailure"},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"telegram","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"failed","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/FailedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","failure","status","timestamps"],"type":"object"},"FailedUnknownMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/Content"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"$ref":"#/components/schemas/MessageFailure"},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"$ref":"#/components/schemas/PlatformIdentifier"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"failed","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/FailedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","failure","status","timestamps"],"type":"object"},"FailedWhatsappBusinessMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/WhatsappBusinessMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"$ref":"#/components/schemas/MessageFailure"},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"whatsapp_business","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"failed","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/FailedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","failure","status","timestamps"],"type":"object"},"FailedWhatsappMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/WhatsappMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"$ref":"#/components/schemas/MessageFailure"},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"whatsapp","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"failed","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/FailedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","failure","status","timestamps"],"type":"object"},"FilteredVerificationCode":{"additionalProperties":false,"properties":{"handle":{"type":"string"},"platform":{"example":"sms","type":"string"},"receivedAt":{"example":"2026-10-01T12:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"resourceId":{"type":"string"}},"required":["handle","platform","receivedAt","resourceId"],"type":"object"},"FilteredVerificationCodeCount":{"additionalProperties":false,"properties":{"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"receivedAfter":{"example":"2026-09-02T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"receivedBefore":{"example":"2026-10-02T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["count","receivedAfter","receivedBefore"],"type":"object"},"FilteredVerificationCodePage":{"additionalProperties":false,"properties":{"filteredVerificationCodes":{"items":{"$ref":"#/components/schemas/FilteredVerificationCode"},"type":"array"},"nextPageToken":{"type":"string"}},"required":["filteredVerificationCodes"],"type":"object"},"FilteredVerificationCodePlatform":{"enum":["imessage","sms","whatsapp"],"type":"string"},"FixedCharge":{"additionalProperties":false,"properties":{"chargeModel":{"$ref":"#/components/schemas/FixedChargeModel"},"displayName":{"type":"string"},"fixedChargeCode":{"type":"string"},"payInAdvance":{"type":"boolean"},"pricing":{"$ref":"#/components/schemas/FixedChargePricing"},"prorated":{"type":"boolean"},"quantity":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["chargeModel","displayName","fixedChargeCode","payInAdvance","pricing","prorated","quantity"],"type":"object"},"FixedChargeAddition":{"additionalProperties":false,"description":"Units of a fixed charge added once a plan change applies.","properties":{"fixedChargeCode":{"description":"Fixed charge to change, e.g. sms_local_us_number.","pattern":"^[a-z][a-z0-9_]{0,63}$","type":"string"},"increment":{"description":"Units added.","maximum":10000,"minimum":1,"type":"integer"}},"required":["fixedChargeCode","increment"],"type":"object"},"FixedChargeChange":{"additionalProperties":false,"description":"A quantity change made now, as a purchase or release makes it.","properties":{"fixedChargeCode":{"description":"Fixed charge to change, e.g. sms_local_us_number.","pattern":"^[a-z][a-z0-9_]{0,63}$","type":"string"},"increment":{"description":"Signed change to the current quantity. The resulting quantity must stay between 0 and 10,000.","maximum":10000,"minimum":-10000,"type":"integer"}},"required":["fixedChargeCode","increment"],"type":"object"},"FixedChargeModel":{"enum":["graduated","standard","volume"],"type":"string"},"FixedChargePricing":{"additionalProperties":false,"properties":{"amount":{"anyOf":[{"description":"Decimal amount in the plan currency. Kept as text so sub-cent unit prices remain exact.","pattern":"^\\d+(?:\\.\\d+)?$","type":"string"},{"type":"null"}]},"tiers":{"items":{"$ref":"#/components/schemas/FixedChargeTier"},"type":"array"}},"required":["amount","tiers"],"type":"object"},"FixedChargeQuote":{"additionalProperties":false,"properties":{"amount":{"description":"Decimal amount in the plan currency. Kept as text so sub-cent unit prices remain exact.","pattern":"^\\d+(?:\\.\\d+)?$","type":"string"},"currency":{"type":"string"},"currentPeriodEnd":{"description":"ISO 8601.","type":"string"}},"required":["amount","currency","currentPeriodEnd"],"type":"object"},"FixedChargeTier":{"additionalProperties":false,"properties":{"flatAmount":{"anyOf":[{"description":"Decimal amount in the plan currency. Kept as text so sub-cent unit prices remain exact.","pattern":"^\\d+(?:\\.\\d+)?$","type":"string"},{"type":"null"}]},"fromUnit":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"perUnitAmount":{"anyOf":[{"description":"Decimal amount in the plan currency. Kept as text so sub-cent unit prices remain exact.","pattern":"^\\d+(?:\\.\\d+)?$","type":"string"},{"type":"null"}]},"toUnit":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]}},"required":["flatAmount","fromUnit","perUnitAmount","toUnit"],"type":"object"},"ForbiddenProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"FORBIDDEN","status":403,"title":"Forbidden","type":"https://photon.codes/docs/problems/forbidden"},"properties":{"code":{"const":"FORBIDDEN","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":403,"type":"number"},"title":{"const":"Forbidden","type":"string"},"type":{"const":"https://photon.codes/docs/problems/forbidden","type":"string"}},"required":["code","status","title","type"],"type":"object"},"GetAccountForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetAccountGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"GetAccountInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetAgentProfileForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetAgentProfileGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"GetAttachmentForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetAttachmentGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"GetAttachmentInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetBillingOperationForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetBillingOperationGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetBillingOperationInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetBillingOverviewForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetBillingOverviewGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetBillingOverviewInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetBillingOverviewResponse":{"additionalProperties":false,"properties":{"entitlementsVersion":{"description":"Bumps on every entitlement change in any category.","maximum":9007199254740991,"minimum":0,"type":"integer"},"subscriptions":{"description":"One entry per category that currently holds a subscription. Empty means none do — cancelled, or never opened.","items":{"$ref":"#/components/schemas/ProjectSubscription"},"type":"array"},"usage":{"description":"Current-period metered usage, priced.","items":{"$ref":"#/components/schemas/MeteredUsage"},"type":"array"}},"required":["entitlementsVersion","subscriptions","usage"],"type":"object"},"GetDefaultVoiceProfileForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetDefaultVoiceProfileGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetDefaultVoiceProfileInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetEffectiveTermsForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetEffectiveTermsGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetEffectiveTermsInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetEffectiveTermsResponse":{"additionalProperties":false,"properties":{"creditBalance":{"anyOf":[{"$ref":"#/components/schemas/CreditBalance"},{"type":"null"}],"description":"Credit the paying organization holds on credit notes, such as the unused time of a plan an upgrade replaced. It offsets that organization's next invoices of any kind except one-off invoices. Prepaid wallet credit is separate. Null when it holds none."},"subscriptions":{"description":"One entry per category the project holds, by category. Empty means it holds none.","items":{"$ref":"#/components/schemas/SubscriptionTerms"},"type":"array"},"timeZone":{"description":"The IANA time zone the payer is billed in, e.g. America/Los_Angeles. Billing periods start and end at its midnights, so read their calendar dates in it.","type":"string"}},"required":["creditBalance","subscriptions","timeZone"],"type":"object"},"GetMessageForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetMessageGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"GetMessageInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetMessageMetricsBackfillForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetMessageMetricsBackfillResponse":{"additionalProperties":{},"properties":{"failedWrites":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"lastVerifiedAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"processedWrites":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"state":{"$ref":"#/components/schemas/MessageMetricsBackfillState"},"version":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"}},"required":["failedWrites","lastVerifiedAt","processedWrites","state","version"],"type":"object"},"GetMessageMetricsSqlSchemaForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetMessageMetricsSqlSchemaResponse":{"additionalProperties":false,"properties":{"capabilities":{"$ref":"#/components/schemas/MessageMetricsSqlCapabilities"},"dialect":{"type":"string"},"limits":{"$ref":"#/components/schemas/MessageMetricsSqlLimits"},"projectScoped":{"const":true,"type":"boolean"},"tables":{"items":{"$ref":"#/components/schemas/MessageMetricsSqlTable"},"type":"array"},"version":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"}},"required":["capabilities","dialect","limits","projectScoped","tables","version"],"type":"object"},"GetMfaStatusForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"GetMfaStatusGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"GetMfaStatusInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetMfaStatusResponse":{"additionalProperties":false,"properties":{"totp":{"$ref":"#/components/schemas/MfaTotpStatus"}},"required":["totp"],"type":"object"},"GetOperationForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetOperationGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetOperationInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetOperationResponse":{"additionalProperties":false,"properties":{"operation":{"$ref":"#/components/schemas/Operation"},"resource":{"$ref":"#/components/schemas/Resource"}},"required":["operation"],"type":"object"},"GetOrganizationBillingOverviewForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetOrganizationBillingOverviewGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetOrganizationBillingOverviewInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetOrganizationBillingOverviewResponse":{"additionalProperties":false,"properties":{"entitlementsVersion":{"description":"Bumps on every entitlement change for the organization.","maximum":9007199254740991,"minimum":0,"type":"integer"},"subscription":{"anyOf":[{"$ref":"#/components/schemas/OrganizationSubscription"},{"type":"null"}],"description":"The organization-owned subscription, or null when billing was never opened or has ended."}},"required":["entitlementsVersion","subscription"],"type":"object"},"GetOrganizationConnectionStatusForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"GetOrganizationConnectionStatusGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"GetOrganizationConnectionStatusInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetOrganizationPaymentMethodForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetOrganizationPaymentMethodGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetOrganizationPaymentMethodInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetOrganizationPaymentMethodResponse":{"additionalProperties":false,"properties":{"cardOnFile":{"description":"True once a card is captured for the payer.","type":"boolean"},"paymentMethod":{"anyOf":[{"$ref":"#/components/schemas/PaymentMethod"},{"type":"null"}],"description":"Metadata for the default card, or null."}},"required":["cardOnFile","paymentMethod"],"type":"object"},"GetOrganizationSsoConfigurationBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidReturnToProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"GetOrganizationSsoConfigurationForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"GetOrganizationSsoConfigurationGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"GetOrganizationSsoConfigurationInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetOrganizationSsoConfigurationPreconditionFailedProblem":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSsoPreconditionFailedProblem"},{"$ref":"#/components/schemas/SsoSubscriptionRequiredProblem"}]},"GetProjectClosureStatusForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetProjectClosureStatusGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"GetProjectClosureStatusResponse":{"additionalProperties":{},"properties":{"deletionOperationId":{"anyOf":[{"pattern":"^pho_opr_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},{"type":"null"}]},"domains":{"items":{"$ref":"#/components/schemas/ProjectClosureDomainStatus"},"type":"array"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"ready":{"type":"boolean"}},"required":["deletionOperationId","domains","organizationId","projectId","ready"],"type":"object"},"GetProjectForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetProjectGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"GetProjectImessagePlatformForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetProjectImessagePlatformGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetProjectImessagePlatformInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetProjectImessagePlatformServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/BillingEntitlementsPendingProblem"},{"$ref":"#/components/schemas/BillingNotProvisionedProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"GetProjectWhatsappPlatformForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetProjectWhatsappPlatformGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetProjectWhatsappPlatformInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetProjectWhatsappPlatformServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/BillingEntitlementsPendingProblem"},{"$ref":"#/components/schemas/BillingNotProvisionedProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"GetResourceForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetResourceGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetResourceInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetSharedLineAssignmentForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetSharedLineAssignmentGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetSharedLineAssignmentInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetSmsLineCampaignAssignmentConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/SmsLineUnsupportedProblem"},{"$ref":"#/components/schemas/SmsCampaignNotReadyProblem"},{"$ref":"#/components/schemas/SmsCampaignVersionConflictProblem"},{"$ref":"#/components/schemas/SmsCampaignCapacityExceededProblem"},{"$ref":"#/components/schemas/SmsCampaignReconciliationRequiredProblem"},{"$ref":"#/components/schemas/SmsCampaignMutationInProgressProblem"}]},"GetSmsLineCampaignAssignmentForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"},{"$ref":"#/components/schemas/SmsCampaignOrganizationMismatchProblem"}]},"GetSmsLineCampaignAssignmentGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetSmsLineCampaignAssignmentInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetSmsLineCampaignAssignmentNotFoundProblem":{"oneOf":[{"$ref":"#/components/schemas/SmsCampaignNotFoundProblem"},{"$ref":"#/components/schemas/SmsLineNotFoundProblem"}]},"GetSmsLineCampaignAssignmentResponse":{"additionalProperties":{},"properties":{"campaign":{"anyOf":[{"$ref":"#/components/schemas/SmsLineCampaign"},{"type":"null"}]},"eligibility":{"$ref":"#/components/schemas/SmsLineCampaignEligibility"},"reasonCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"resourceId":{"type":"string"},"version":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["campaign","eligibility","reasonCode","resourceId","version"],"type":"object"},"GetSmsLineCampaignAssignmentServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/SmsCampaignContextUnavailableProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"GetSpaceForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetSpaceGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"GetSpaceInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetSpaceUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/OperationUnavailableProblem"},{"$ref":"#/components/schemas/ValidationFailedProblem"}]},"GetStatusResponse":{"additionalProperties":false,"properties":{"environment":{"description":"Deployment environment serving the request.","type":"string"},"service":{"description":"Name of the authentication service handling the request.","type":"string"}},"required":["service","environment"],"type":"object"},"GetUserForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetUserGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"GetUserInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetUserUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/OperationUnavailableProblem"},{"$ref":"#/components/schemas/ValidationFailedProblem"}]},"GetVoiceLineProfileAssignmentForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetVoiceLineProfileAssignmentGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetVoiceLineProfileAssignmentInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetVoiceProfileForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetVoiceProfileGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetVoiceProfileInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetWebhookDestinationForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetWebhookDestinationGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetWebhookEventSchemaForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetWebhookEventSchemaGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetWhatsappBusinessAccountForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetWhatsappBusinessAccountGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetWhatsappBusinessAccountInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetWhatsappBusinessVerificationCodeForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetWhatsappBusinessVerificationCodeGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetWhatsappBusinessVerificationCodeInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetWhatsappBusinessVerificationCodeNotFoundProblem":{"oneOf":[{"$ref":"#/components/schemas/ResourceNotFoundProblem"},{"$ref":"#/components/schemas/WhatsappVerificationCodeNotFoundProblem"}]},"GetWhatsappBusinessVerificationCodeResponse":{"additionalProperties":false,"properties":{"code":{"pattern":"^\\d{6}$","type":"string"},"receivedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["code","receivedAt"],"type":"object"},"GetWhatsappBusinessVerificationCodeUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/WhatsappVerificationWindowExpiredProblem"}]},"GetWhatsappSharedLineAssignmentForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetWhatsappSharedLineAssignmentGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"GetWhatsappSharedLineAssignmentInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetWhatsappSignupConfigForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"GetWhatsappSignupConfigInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"GetWhatsappSignupConfigResponse":{"additionalProperties":false,"properties":{"configId":{"type":"string"},"graphVersion":{"type":"string"},"scopes":{"items":{"type":"string"},"type":"array"}},"required":["configId","graphVersion","scopes"],"type":"object"},"GroupContent":{"additionalProperties":false,"properties":{"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"parts":{"items":{"$ref":"#/components/schemas/GroupContentPart"},"minItems":1,"type":"array"},"type":{"const":"group","type":"string"}},"required":["type","parts"],"type":"object"},"GroupContentPart":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/TextUpdateContent"},{"$ref":"#/components/schemas/AttachmentContent"},{"$ref":"#/components/schemas/VoiceContent"},{"$ref":"#/components/schemas/ReactionContent"},{"$ref":"#/components/schemas/MessageDeleteContent"},{"$ref":"#/components/schemas/MessageReadContent"},{"$ref":"#/components/schemas/SpaceParticipantsUpdateContent"},{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},{"$ref":"#/components/schemas/PollContent"},{"$ref":"#/components/schemas/PollVoteContent"},{"$ref":"#/components/schemas/PollUpdateContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"HttpErrorProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"HTTP_ERROR","status":400,"title":"Request Failed","type":"https://photon.codes/docs/problems/http-error"},"properties":{"code":{"const":"HTTP_ERROR","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":400,"type":"number"},"title":{"const":"Request Failed","type":"string"},"type":{"const":"https://photon.codes/docs/problems/http-error","type":"string"}},"required":["code","status","title","type"],"type":"object"},"IdempotencyKeyInvalidProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"IDEMPOTENCY_KEY_INVALID","status":400,"title":"Idempotency Key Invalid","type":"https://photon.codes/docs/problems/idempotency-key-invalid"},"properties":{"code":{"const":"IDEMPOTENCY_KEY_INVALID","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":400,"type":"number"},"title":{"const":"Idempotency Key Invalid","type":"string"},"type":{"const":"https://photon.codes/docs/problems/idempotency-key-invalid","type":"string"}},"required":["code","status","title","type"],"type":"object"},"IdempotencyKeyRequiredProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"IDEMPOTENCY_KEY_REQUIRED","status":400,"title":"Idempotency Key Required","type":"https://photon.codes/docs/problems/idempotency-key-required"},"properties":{"code":{"const":"IDEMPOTENCY_KEY_REQUIRED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":400,"type":"number"},"title":{"const":"Idempotency Key Required","type":"string"},"type":{"const":"https://photon.codes/docs/problems/idempotency-key-required","type":"string"}},"required":["code","status","title","type"],"type":"object"},"IdempotencyKeyReusedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"IDEMPOTENCY_KEY_REUSED","status":422,"title":"Idempotency Key Reused","type":"https://photon.codes/docs/problems/idempotency-key-reused"},"properties":{"code":{"const":"IDEMPOTENCY_KEY_REUSED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":422,"type":"number"},"title":{"const":"Idempotency Key Reused","type":"string"},"type":{"const":"https://photon.codes/docs/problems/idempotency-key-reused","type":"string"}},"required":["code","status","title","type"],"type":"object"},"IdempotencyRequestInProgressProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"IDEMPOTENCY_REQUEST_IN_PROGRESS","status":409,"title":"Idempotency Request In Progress","type":"https://photon.codes/docs/problems/idempotency-request-in-progress"},"properties":{"code":{"const":"IDEMPOTENCY_REQUEST_IN_PROGRESS","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Idempotency Request In Progress","type":"string"},"type":{"const":"https://photon.codes/docs/problems/idempotency-request-in-progress","type":"string"}},"required":["code","status","title","type"],"type":"object"},"IdempotencyUnavailableProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"IDEMPOTENCY_UNAVAILABLE","status":503,"title":"Idempotency Unavailable","type":"https://photon.codes/docs/problems/idempotency-unavailable"},"properties":{"code":{"const":"IDEMPOTENCY_UNAVAILABLE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":503,"type":"number"},"title":{"const":"Idempotency Unavailable","type":"string"},"type":{"const":"https://photon.codes/docs/problems/idempotency-unavailable","type":"string"}},"required":["code","status","title","type"],"type":"object"},"IdempotentReplayedValue":{"enum":["true","false"],"type":"string"},"ImessageGroupContent":{"additionalProperties":false,"properties":{"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"parts":{"items":{"$ref":"#/components/schemas/ImessageGroupContentPart"},"minItems":1,"type":"array"},"type":{"const":"group","type":"string"}},"required":["type","parts"],"type":"object"},"ImessageGroupContentPart":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/AttachmentContent"},{"$ref":"#/components/schemas/MessageReadContent"},{"$ref":"#/components/schemas/SpaceTypingUpdateContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"ImessageHandle":{"anyOf":[{"pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},{"format":"email","maxLength":254,"pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"}]},"ImessageMessage":{"oneOf":[{"$ref":"#/components/schemas/ReceivedImessageMessage"},{"$ref":"#/components/schemas/DispatchedImessageMessage"},{"$ref":"#/components/schemas/AcceptedImessageMessage"},{"$ref":"#/components/schemas/DeliveredImessageMessage"},{"$ref":"#/components/schemas/FailedImessageMessage"}]},"ImessageMessageAcceptedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/ImessageMessageAcceptedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"imessage.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.accepted","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"ImessageMessageAcceptedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"imessage","type":"string"},"status":{"const":"accepted","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"ImessageMessageContent":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/AttachmentContent"},{"$ref":"#/components/schemas/MessageReadContent"},{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},{"$ref":"#/components/schemas/ImessageGroupContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"ImessageMessageDeliveredEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/ImessageMessageDeliveredEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"imessage.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.delivered","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"ImessageMessageDeliveredEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"imessage","type":"string"},"status":{"const":"delivered","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"ImessageMessageDispatchedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/ImessageMessageDispatchedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"imessage.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.dispatched","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"ImessageMessageDispatchedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"imessage","type":"string"},"status":{"const":"dispatched","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"ImessageMessageFailedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/ImessageMessageFailedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"imessage.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.failed","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"ImessageMessageFailedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"imessage","type":"string"},"status":{"const":"failed","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"ImessageMessageReceivedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/ImessageMessageReceivedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"imessage.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.received","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"ImessageMessageReceivedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"imessage","type":"string"},"status":{"const":"received","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"ImessageModeDedicatedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"IMESSAGE_MODE_DEDICATED","status":409,"title":"iMessage Mode Is Dedicated","type":"https://photon.codes/docs/problems/imessage-mode-dedicated"},"properties":{"code":{"const":"IMESSAGE_MODE_DEDICATED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"iMessage Mode Is Dedicated","type":"string"},"type":{"const":"https://photon.codes/docs/problems/imessage-mode-dedicated","type":"string"}},"required":["code","status","title","type"],"type":"object"},"ImessageSpace":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"$ref":"#/components/schemas/ImessageSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"const":"imessage","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","kind","participantIds","details","metadata","createdAt","updatedAt"],"type":"object"},"ImessageSpaceDetails":{"additionalProperties":false,"properties":{},"type":"object"},"ImessageSpaceSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/ImessageSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"const":"imessage","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","kind","participantIds","details","metadata"],"type":"object"},"ImessageSpaceTypingUpdatedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/ImessageSpaceTypingUpdatedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"imessage.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"space.typing.updated","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"ImessageSpaceTypingUpdatedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"content":{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},"parentMessageId":{"not":{}},"platform":{"const":"imessage","type":"string"},"status":{"const":"received","type":"string"}},"required":["platform","status","content"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"ImessageUser":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"$ref":"#/components/schemas/ImessageUserDetails"},"handle":{"minLength":1,"type":"string"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"imessage","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","handle","kind","details","metadata","createdAt","updatedAt"],"type":"object"},"ImessageUserDetails":{"additionalProperties":false,"properties":{"managedBy":{"$ref":"#/components/schemas/ManagerId"},"resourceId":{"$ref":"#/components/schemas/ResourceId"},"type":{"$ref":"#/components/schemas/UserLineType"}},"type":"object"},"ImessageUserSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/ImessageUserDetails"},"handle":{"minLength":1,"type":"string"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"imessage","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","handle","kind","details","metadata"],"type":"object"},"InsufficientScopeProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"INSUFFICIENT_SCOPE","status":403,"title":"Insufficient Scope","type":"https://photon.codes/docs/problems/insufficient-scope"},"properties":{"code":{"const":"INSUFFICIENT_SCOPE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":403,"type":"number"},"title":{"const":"Insufficient Scope","type":"string"},"type":{"const":"https://photon.codes/docs/problems/insufficient-scope","type":"string"}},"required":["code","status","title","type"],"type":"object"},"InternalErrorProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"INTERNAL_ERROR","status":500,"title":"Internal Server Error","type":"https://photon.codes/docs/problems/internal-error"},"properties":{"code":{"const":"INTERNAL_ERROR","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":500,"type":"number"},"title":{"const":"Internal Server Error","type":"string"},"type":{"const":"https://photon.codes/docs/problems/internal-error","type":"string"}},"required":["code","status","title","type"],"type":"object"},"InvalidArgumentProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"INVALID_ARGUMENT","status":400,"title":"Invalid Argument","type":"https://photon.codes/docs/problems/invalid-argument"},"properties":{"code":{"const":"INVALID_ARGUMENT","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":400,"type":"number"},"title":{"const":"Invalid Argument","type":"string"},"type":{"const":"https://photon.codes/docs/problems/invalid-argument","type":"string"}},"required":["code","status","title","type"],"type":"object"},"InvalidAttachmentRequestProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"INVALID_ATTACHMENT_REQUEST","status":400,"title":"Invalid Attachment Request","type":"https://photon.codes/docs/problems/invalid-attachment-request"},"properties":{"code":{"const":"INVALID_ATTACHMENT_REQUEST","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":400,"type":"number"},"title":{"const":"Invalid Attachment Request","type":"string"},"type":{"const":"https://photon.codes/docs/problems/invalid-attachment-request","type":"string"}},"required":["code","status","title","type"],"type":"object"},"InvalidAuthContextProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"INVALID_AUTH_CONTEXT","status":500,"title":"Invalid Authentication Context","type":"https://photon.codes/docs/problems/invalid-auth-context"},"properties":{"code":{"const":"INVALID_AUTH_CONTEXT","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":500,"type":"number"},"title":{"const":"Invalid Authentication Context","type":"string"},"type":{"const":"https://photon.codes/docs/problems/invalid-auth-context","type":"string"}},"required":["code","status","title","type"],"type":"object"},"InvalidContentProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"INVALID_CONTENT","issues":[{"code":"markdown_html_forbidden","location":"json","message":"HTML is not allowed in Markdown content.","path":"/content/text"}],"status":422,"title":"Invalid Content","type":"https://photon.codes/docs/problems/invalid-content"},"properties":{"code":{"const":"INVALID_CONTENT","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"issues":{"items":{"$ref":"#/components/schemas/ContentIssue"},"maxItems":32,"minItems":1,"type":"array"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":422,"type":"number"},"title":{"const":"Invalid Content","type":"string"},"type":{"const":"https://photon.codes/docs/problems/invalid-content","type":"string"}},"required":["issues","code","status","title","type"],"type":"object"},"InvalidPageTokenProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"INVALID_PAGE_TOKEN","status":400,"title":"Invalid Page Token","type":"https://photon.codes/docs/problems/invalid-page-token"},"properties":{"code":{"const":"INVALID_PAGE_TOKEN","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":400,"type":"number"},"title":{"const":"Invalid Page Token","type":"string"},"type":{"const":"https://photon.codes/docs/problems/invalid-page-token","type":"string"}},"required":["code","status","title","type"],"type":"object"},"InvalidRequestProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"INVALID_REQUEST","status":400,"title":"Invalid Request","type":"https://photon.codes/docs/problems/invalid-request"},"properties":{"code":{"const":"INVALID_REQUEST","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":400,"type":"number"},"title":{"const":"Invalid Request","type":"string"},"type":{"const":"https://photon.codes/docs/problems/invalid-request","type":"string"}},"required":["code","status","title","type"],"type":"object"},"InvalidReturnToProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"INVALID_RETURN_TO","status":400,"title":"Invalid Return To","type":"https://photon.codes/docs/problems/invalid-return-to"},"properties":{"code":{"const":"INVALID_RETURN_TO","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":400,"type":"number"},"title":{"const":"Invalid Return To","type":"string"},"type":{"const":"https://photon.codes/docs/problems/invalid-return-to","type":"string"}},"required":["code","status","title","type"],"type":"object"},"InvitationEnterpriseLoginRequest":{"additionalProperties":false,"properties":{"invitationToken":{"pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"returnTo":{"maxLength":2048,"minLength":1,"type":"string"}},"required":["invitationToken","returnTo"],"type":"object"},"Invoice":{"additionalProperties":false,"properties":{"currency":{"description":"ISO currency code.","type":"string"},"invoiceId":{"description":"Invoice id.","type":"string"},"issuedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issue date, ISO 8601."},"kind":{"$ref":"#/components/schemas/InvoiceKind"},"number":{"description":"Human invoice number.","type":"string"},"paymentStatus":{"$ref":"#/components/schemas/InvoicePaymentStatus"},"pdfUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Downloadable PDF link."},"subjects":{"description":"Known associated billing subjects, deduplicated. Empty means no known association, not organization-level charges.","items":{"$ref":"#/components/schemas/InvoiceSubject"},"type":"array"},"totalCents":{"description":"Invoice total in cents.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["currency","invoiceId","issuedAt","kind","number","paymentStatus","pdfUrl","subjects","totalCents"],"type":"object"},"InvoiceKind":{"description":"What produced the invoice.","enum":["subscription","one_off","credit"],"type":"string"},"InvoicePaymentStatus":{"description":"Provider-neutral payment status.","enum":["pending","succeeded","failed"],"type":"string"},"InvoiceSubject":{"oneOf":[{"$ref":"#/components/schemas/ProjectInvoiceSubject"},{"$ref":"#/components/schemas/OrganizationInvoiceSubject"}]},"JsonValue":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"items":{"$ref":"#/components/schemas/JsonValue"},"type":"array"},{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"propertyNames":{"type":"string"},"type":"object"}]},"ListAccountServiceKeysForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListAccountServiceKeysGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"ListAccountServiceKeysInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListAccountServiceKeysResponse":{"additionalProperties":false,"properties":{"serviceKeys":{"items":{"$ref":"#/components/schemas/AccountServiceKey"},"type":"array"}},"required":["serviceKeys"],"type":"object"},"ListAttachmentsForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListAttachmentsGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"ListAttachmentsInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListAuthorizedApplicationsForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"ListAuthorizedApplicationsGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"ListAuthorizedApplicationsInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListAuthorizedApplicationsOrder":{"enum":["normal","desc","asc"],"type":"string"},"ListAuthorizedApplicationsResponse":{"additionalProperties":{},"properties":{"authorizedApplications":{"description":"One page of applications authorized by the authenticated user.","items":{"$ref":"#/components/schemas/AuthorizedApplication"},"type":"array"},"listMetadata":{"$ref":"#/components/schemas/ListAuthorizedApplicationsResponseListMetadata"}},"required":["authorizedApplications","listMetadata"],"type":"object"},"ListAuthorizedApplicationsResponseListMetadata":{"additionalProperties":{},"description":"Pagination cursors to pass as after or before in the next list request.","properties":{"after":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor for the next page, or null when there is no next page."},"before":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor for the previous page, or null when there is no previous page."}},"required":["after","before"],"type":"object"},"ListBillingPlansForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListBillingPlansGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListBillingPlansInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListBillingPlansResponse":{"additionalProperties":false,"properties":{"plans":{"additionalProperties":{"items":{"$ref":"#/components/schemas/BillingPlan"},"type":"array"},"description":"Plans grouped by valid metadata type and explicitly published with visible=\"true\". Each group is in display order: by tier, plans without one last, then by planCode.","propertyNames":{"description":"Category slug, e.g. analytics or messaging.","pattern":"^[a-z][a-z0-9_]{0,63}$","type":"string"},"type":"object"}},"required":["plans"],"type":"object"},"ListFilteredVerificationCodesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListFilteredVerificationCodesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListFilteredVerificationCodesInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListInvoicesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListInvoicesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListInvoicesInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListInvoicesResponse":{"additionalProperties":false,"properties":{"invoices":{"items":{"$ref":"#/components/schemas/Invoice"},"type":"array"}},"required":["invoices"],"type":"object"},"ListMessagesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListMessagesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"ListMessagesInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListNumberAreaCodesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListNumberAreaCodesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListNumberAreaCodesInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListNumberAreaCodesResponse":{"additionalProperties":false,"properties":{"areaCodes":{"items":{"pattern":"^[2-9][0-9]{2}$","type":"string"},"type":"array"},"countryCode":{"const":"US","type":"string"}},"required":["areaCodes","countryCode"],"type":"object"},"ListNumberCountriesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListNumberCountriesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListNumberCountriesInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListNumberCountriesResponse":{"additionalProperties":false,"properties":{"countries":{"items":{"$ref":"#/components/schemas/NumberCountry"},"type":"array"}},"required":["countries"],"type":"object"},"ListOauthScopesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"ListOauthScopesResponse":{"additionalProperties":{},"properties":{"scopes":{"description":"Business permissions an OAuth application can be configured with. Client creation and scope updates accept only these values. OIDC protocol scopes (openid, profile, email, offline_access) are not included.","items":{"description":"OAuth business permission slug.","type":"string"},"type":"array"}},"required":["scopes"],"type":"object"},"ListOperationsForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListOperationsGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListOperationsInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListProjectApiKeysForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListProjectApiKeysResponse":{"additionalProperties":false,"properties":{"apiKeys":{"items":{"$ref":"#/components/schemas/ApiKey"},"type":"array"}},"required":["apiKeys"],"type":"object"},"ListProjectPlatformsForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListProjectPlatformsInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListProjectPlatformsResponse":{"additionalProperties":false,"properties":{"platforms":{"items":{"$ref":"#/components/schemas/SupportedPlatform"},"type":"array"}},"required":["platforms"],"type":"object"},"ListProjectsForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListProjectsGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"ListResourceFilteredVerificationCodesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListResourceFilteredVerificationCodesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListResourceFilteredVerificationCodesInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListResourcesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListResourcesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListResourcesInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListSharedLineAssignmentsForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListSharedLineAssignmentsGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListSharedLineAssignmentsInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListSpacesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListSpacesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"ListSpacesInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListUsersForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListUsersGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"ListUsersInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListVoiceProfilesDefaultInput":{"enum":["true","false"],"type":"string"},"ListVoiceProfilesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListVoiceProfilesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListVoiceProfilesInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListWebhookApiVersionsForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListWebhookApiVersionsGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListWebhookApiVersionsResponse":{"additionalProperties":false,"properties":{"apiVersions":{"items":{"$ref":"#/components/schemas/WebhookApiVersion"},"type":"array"},"contractNamespace":{"const":"@photon-hq/contracts","type":"string"},"packageVersion":{"minLength":1,"type":"string"}},"required":["contractNamespace","packageVersion","apiVersions"],"type":"object"},"ListWebhookDestinationsForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListWebhookDestinationsGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListWebhookEgressAddressesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListWebhookEgressAddressesResponse":{"additionalProperties":false,"properties":{"ipAddresses":{"description":"Every public IPv4 address webhook deliveries can originate from. Allow-list all of them; deliveries are spread across every address.","items":{"$ref":"#/components/schemas/WebhookEgressAddress"},"minItems":1,"type":"array","uniqueItems":true}},"required":["ipAddresses"],"type":"object"},"ListWebhookEventTypesForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListWebhookEventTypesGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListWebhookEventTypesResponse":{"oneOf":[{"$ref":"#/components/schemas/SelectableWebhookEventCatalog"},{"$ref":"#/components/schemas/DeprecatedWebhookEventCatalog"}]},"ListWhatsappAccountPhoneNumbersForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListWhatsappAccountPhoneNumbersGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListWhatsappAccountPhoneNumbersInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ListWhatsappAccountPhoneNumbersResponse":{"additionalProperties":false,"properties":{"phoneNumbers":{"items":{"$ref":"#/components/schemas/WhatsappAccountPhoneNumber"},"type":"array"},"wabaId":{"minLength":1,"type":"string"}},"required":["phoneNumbers","wabaId"],"type":"object"},"ListWhatsappSharedLineAssignmentsForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ListWhatsappSharedLineAssignmentsGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ListWhatsappSharedLineAssignmentsInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ManagerId":{"pattern":"^pho_mgr_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"MarkMessageReadConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/SenderNotSendableProblem"},{"$ref":"#/components/schemas/SpaceNotSendableProblem"},{"$ref":"#/components/schemas/MessageNotReadableProblem"}]},"MarkMessageReadForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"MarkMessageReadGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"MarkMessageReadInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"MarkMessageReadNotFoundProblem":{"oneOf":[{"$ref":"#/components/schemas/SenderNotFoundProblem"},{"$ref":"#/components/schemas/SpaceNotFoundProblem"},{"$ref":"#/components/schemas/MessageNotFoundProblem"}]},"MarkMessageReadResponse":{"allOf":[{"$ref":"#/components/schemas/Message"},{"$ref":"#/components/schemas/SupportedPlatformConstraint"},{"$ref":"#/components/schemas/SentMessageConstraint"}],"example":{"content":{"type":"message.read"},"createdAt":"2026-01-01T00:00:00.000Z","id":"pho_msg_00000000000000000000000001","metadata":{},"parentMessageId":"pho_msg_00000000000000000000000002","platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001","sentBy":{"details":{"resourceId":"pho_res_00000000000000000000000001","type":"dedicated"},"handle":"+14155550123","id":"pho_usr_00000000000000000000000001","kind":"agent","metadata":{},"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001"},"space":{"details":{},"id":"pho_spc_00000000000000000000000001","kind":"direct","metadata":{},"participantIds":["pho_usr_00000000000000000000000001","pho_usr_00000000000000000000000002"],"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001"},"status":"dispatched","timestamps":{"dispatchedAt":"2026-01-01T00:00:00.000Z"},"updatedAt":"2026-01-01T00:00:00.000Z"}},"MarkMessageReadUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"},{"$ref":"#/components/schemas/OperationUnavailableProblem"},{"$ref":"#/components/schemas/ValidationFailedProblem"}]},"Message":{"anyOf":[{"$ref":"#/components/schemas/SmsMessage"},{"$ref":"#/components/schemas/WhatsappMessage"},{"$ref":"#/components/schemas/WhatsappBusinessMessage"},{"$ref":"#/components/schemas/EmailMessage"},{"$ref":"#/components/schemas/ImessageMessage"},{"$ref":"#/components/schemas/TelegramMessage"}],"x-photon-extension":{"discriminator":"platform","fallback":"#/$defs/UnknownMessage","reserved":["sms","whatsapp","whatsapp_business","email","voice","imessage","telegram"]}},"MessageAcceptance":{"oneOf":[{"$ref":"#/components/schemas/DeliveryConfirmationUnavailableAcceptance"},{"$ref":"#/components/schemas/DeliveryConfirmationNotApplicableAcceptance"},{"$ref":"#/components/schemas/DeliveryConfirmationTimedOutAcceptance"},{"$ref":"#/components/schemas/DeliveryPartiallyConfirmedAcceptance"}]},"MessageAcceptedEvent":{"anyOf":[{"$ref":"#/components/schemas/SmsMessageAcceptedEvent"},{"$ref":"#/components/schemas/WhatsappMessageAcceptedEvent"},{"$ref":"#/components/schemas/WhatsappBusinessMessageAcceptedEvent"},{"$ref":"#/components/schemas/EmailMessageAcceptedEvent"},{"$ref":"#/components/schemas/ImessageMessageAcceptedEvent"},{"$ref":"#/components/schemas/TelegramMessageAcceptedEvent"}]},"MessageBlockedByCarrierFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"message_blocked_by_carrier","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"MessageBlockedFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"message_blocked","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"MessageContent":{"additionalProperties":false,"properties":{"message":{"$ref":"#/components/schemas/Message"},"type":{"const":"message","type":"string"}},"required":["type","message"],"type":"object"},"MessageContentInvalidFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"message_content_invalid","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"MessageCount":{"additionalProperties":false,"properties":{"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"groups":{"items":{"$ref":"#/components/schemas/MessageStatusCount"},"type":"array"}},"required":["count","groups"],"type":"object"},"MessageCountBucket":{"additionalProperties":false,"properties":{"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"end":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"groups":{"items":{"$ref":"#/components/schemas/MessageStatusCount"},"type":"array"},"start":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["count","groups","end","start"],"type":"object"},"MessageDeleteContent":{"additionalProperties":false,"properties":{"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"reason":{"minLength":1,"type":"string"},"scope":{"minLength":1,"type":"string"},"type":{"const":"message.delete","type":"string"}},"required":["type"],"type":"object"},"MessageDeliveredEvent":{"anyOf":[{"$ref":"#/components/schemas/SmsMessageDeliveredEvent"},{"$ref":"#/components/schemas/WhatsappMessageDeliveredEvent"},{"$ref":"#/components/schemas/WhatsappBusinessMessageDeliveredEvent"},{"$ref":"#/components/schemas/EmailMessageDeliveredEvent"},{"$ref":"#/components/schemas/ImessageMessageDeliveredEvent"},{"$ref":"#/components/schemas/TelegramMessageDeliveredEvent"}]},"MessageDeliveryFailedFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"message_delivery_failed","type":"string"},"confirmedRecipientCount":{"description":"Unique recipients with authoritative delivery confirmation for the original send; omission means evidence is not supplied.","maximum":9007199254740991,"minimum":0,"type":"integer"},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"MessageDirection":{"enum":["received","sent"],"type":"string"},"MessageDispatchedEvent":{"anyOf":[{"$ref":"#/components/schemas/SmsMessageDispatchedEvent"},{"$ref":"#/components/schemas/WhatsappMessageDispatchedEvent"},{"$ref":"#/components/schemas/WhatsappBusinessMessageDispatchedEvent"},{"$ref":"#/components/schemas/EmailMessageDispatchedEvent"},{"$ref":"#/components/schemas/ImessageMessageDispatchedEvent"},{"$ref":"#/components/schemas/TelegramMessageDispatchedEvent"}]},"MessageExpiredFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"message_expired","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"MessageFailedEvent":{"anyOf":[{"$ref":"#/components/schemas/SmsMessageFailedEvent"},{"$ref":"#/components/schemas/WhatsappMessageFailedEvent"},{"$ref":"#/components/schemas/WhatsappBusinessMessageFailedEvent"},{"$ref":"#/components/schemas/EmailMessageFailedEvent"},{"$ref":"#/components/schemas/ImessageMessageFailedEvent"},{"$ref":"#/components/schemas/TelegramMessageFailedEvent"}]},"MessageFailedFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"message_failed","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"MessageFailure":{"oneOf":[{"$ref":"#/components/schemas/SenderNotAuthorizedFailure"},{"$ref":"#/components/schemas/SenderUnavailableFailure"},{"$ref":"#/components/schemas/SenderRegistrationRequiredFailure"},{"$ref":"#/components/schemas/RecipientInvalidFailure"},{"$ref":"#/components/schemas/RecipientUnreachableFailure"},{"$ref":"#/components/schemas/RecipientOptedOutFailure"},{"$ref":"#/components/schemas/MessageTypeUnsupportedFailure"},{"$ref":"#/components/schemas/MessageContentInvalidFailure"},{"$ref":"#/components/schemas/MessageTooLargeFailure"},{"$ref":"#/components/schemas/MessageBlockedFailure"},{"$ref":"#/components/schemas/MessageBlockedByCarrierFailure"},{"$ref":"#/components/schemas/MessageRateLimitedFailure"},{"$ref":"#/components/schemas/MessageRejectedFailure"},{"$ref":"#/components/schemas/MessageExpiredFailure"},{"$ref":"#/components/schemas/MessageDeliveryFailedFailure"},{"$ref":"#/components/schemas/MessageSubmissionUnknownFailure"},{"$ref":"#/components/schemas/MessagingUnavailableFailure"},{"$ref":"#/components/schemas/MessageFailedFailure"}]},"MessageGroup":{"additionalProperties":false,"properties":{"id":{"$ref":"#/components/schemas/MessageGroupId"},"parts":{"items":{"$ref":"#/components/schemas/MessageContent"},"minItems":1,"type":"array"},"type":{"const":"group","type":"string"}},"required":["id","type","parts"],"type":"object"},"MessageGroupId":{"pattern":"^pho_grp_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"MessageId":{"pattern":"^pho_msg_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"MessageMetricsBackfillState":{"enum":["disabled","pending","running","verifying","completed","paused","failed"],"type":"string"},"MessageMetricsDirection":{"enum":["addressed","received"],"type":"string"},"MessageMetricsJsonCatalog":{"additionalProperties":false,"properties":{"commonPaths":{"items":{"$ref":"#/components/schemas/MessageMetricsJsonPath"},"readOnly":true,"type":"array"},"discriminators":{"items":{"$ref":"#/components/schemas/MessageMetricsJsonDiscriminator"},"readOnly":true,"type":"array"},"platforms":{"items":{"$ref":"#/components/schemas/MessageMetricsPlatformJsonPaths"},"readOnly":true,"type":"array"},"resource":{"$ref":"#/components/schemas/MessageMetricsJsonResource"}},"required":["commonPaths","discriminators","platforms","resource"],"type":"object"},"MessageMetricsJsonDiscriminator":{"anyOf":[{"$ref":"#/components/schemas/MessageMetricsJsonPathDiscriminator"},{"$ref":"#/components/schemas/MessageMetricsJsonOneOfPathsDiscriminator"}]},"MessageMetricsJsonOneOfPathsDiscriminator":{"additionalProperties":false,"properties":{"oneOfPaths":{"items":{"type":"string"},"readOnly":true,"type":"array"}},"required":["oneOfPaths"],"type":"object"},"MessageMetricsJsonPath":{"additionalProperties":false,"properties":{"additionalProperties":{"const":true,"type":"boolean"},"contentTypes":{"items":{"type":"string"},"readOnly":true,"type":"array"},"directions":{"items":{"$ref":"#/components/schemas/MessageMetricsDirection"},"readOnly":true,"type":"array"},"expression":{"type":"string"},"itemTypes":{"items":{"type":"string"},"readOnly":true,"type":"array"},"path":{"type":"string"},"required":{"type":"boolean"},"type":{"type":"string"},"values":{"items":{"$ref":"#/components/schemas/MessageMetricsJsonPathValue"},"readOnly":true,"type":"array"}},"required":["expression","path","required","type"],"type":"object"},"MessageMetricsJsonPathDiscriminator":{"additionalProperties":false,"properties":{"path":{"type":"string"},"values":{"items":{"type":"string"},"readOnly":true,"type":"array"}},"required":["path","values"],"type":"object"},"MessageMetricsJsonPathValue":{"type":["boolean","number","string"]},"MessageMetricsJsonResource":{"additionalProperties":false,"properties":{"contractsVersion":{"type":"string"},"type":{"$ref":"#/components/schemas/MessageMetricsJsonResourceType"}},"required":["contractsVersion","type"],"type":"object"},"MessageMetricsJsonResourceType":{"enum":["call","message"],"type":"string"},"MessageMetricsPlatform":{"enum":["email","imessage","sms","telegram","voice","whatsapp","whatsapp_business"],"type":"string"},"MessageMetricsPlatformJsonPaths":{"additionalProperties":false,"properties":{"name":{"$ref":"#/components/schemas/MessageMetricsPlatform"},"paths":{"items":{"$ref":"#/components/schemas/MessageMetricsJsonPath"},"readOnly":true,"type":"array"}},"required":["name","paths"],"type":"object"},"MessageMetricsQueryColumn":{"additionalProperties":false,"properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"type":"object"},"MessageMetricsQueryStatistics":{"additionalProperties":false,"properties":{"bytesRead":{"minimum":0,"type":"number"},"elapsedSeconds":{"minimum":0,"type":"number"},"rowsRead":{"minimum":0,"type":"number"}},"required":["bytesRead","elapsedSeconds","rowsRead"],"type":"object"},"MessageMetricsSqlCapabilities":{"additionalProperties":false,"properties":{"arrayJoin":{"type":"boolean"},"ctes":{"type":"boolean"},"joins":{"type":"boolean"},"parameters":{"type":"boolean"},"selectWithoutFrom":{"type":"boolean"},"subqueries":{"type":"boolean"},"unions":{"type":"boolean"}},"required":["arrayJoin","ctes","joins","parameters","selectWithoutFrom","subqueries","unions"],"type":"object"},"MessageMetricsSqlColumn":{"additionalProperties":false,"properties":{"description":{"type":"string"},"json":{"$ref":"#/components/schemas/MessageMetricsJsonCatalog"},"name":{"type":"string"},"type":{"type":"string"}},"required":["description","name","type"],"type":"object"},"MessageMetricsSqlLimits":{"additionalProperties":false,"properties":{"maximumParameterValueBytes":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"maximumParameters":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"maximumSqlBytes":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"maximumTotalParameterBytes":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["maximumParameters","maximumParameterValueBytes","maximumSqlBytes","maximumTotalParameterBytes"],"type":"object"},"MessageMetricsSqlTable":{"additionalProperties":false,"properties":{"columns":{"items":{"$ref":"#/components/schemas/MessageMetricsSqlColumn"},"type":"array"},"currentState":{"type":"string"},"description":{"type":"string"},"name":{"$ref":"#/components/schemas/MessageMetricsSqlTableName"}},"required":["columns","currentState","description","name"],"type":"object"},"MessageMetricsSqlTableName":{"enum":["message_events","call_events"],"type":"string"},"MessageNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"MESSAGE_NOT_FOUND","status":404,"title":"Message Not Found","type":"https://photon.codes/docs/problems/message-not-found"},"properties":{"code":{"const":"MESSAGE_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Message Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/message-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"MessageNotReadableProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"MESSAGE_NOT_READABLE","status":409,"title":"Message Not Readable","type":"https://photon.codes/docs/problems/message-not-readable"},"properties":{"code":{"const":"MESSAGE_NOT_READABLE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Message Not Readable","type":"string"},"type":{"const":"https://photon.codes/docs/problems/message-not-readable","type":"string"}},"required":["code","status","title","type"],"type":"object"},"MessagePage":{"additionalProperties":false,"example":{"items":[{"content":{"format":"plain","text":"Hello from Photon.","type":"text"},"createdAt":"2026-01-01T00:00:00.000Z","id":"pho_msg_00000000000000000000000001","metadata":{},"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001","sentBy":{"details":{"resourceId":"pho_res_00000000000000000000000001","type":"dedicated"},"handle":"+14155550123","id":"pho_usr_00000000000000000000000001","kind":"agent","metadata":{},"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001"},"space":{"details":{},"id":"pho_spc_00000000000000000000000001","kind":"direct","metadata":{},"participantIds":["pho_usr_00000000000000000000000001","pho_usr_00000000000000000000000002"],"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001"},"status":"dispatched","timestamps":{"dispatchedAt":"2026-01-01T00:00:00.000Z"},"updatedAt":"2026-01-01T00:00:00.000Z"}]},"properties":{"items":{"description":"Unsupported platforms and records with unsupported data are omitted.","items":{"$ref":"#/components/schemas/PlatformMessage"},"type":"array"},"nextPageToken":{"description":"Continue with this token, even if items is empty. Omitted when no more pages remain.","maxLength":4096,"minLength":1,"pattern":"^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$","type":"string"}},"required":["items"],"type":"object"},"MessageRateLimitedFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"message_rate_limited","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"MessageReadContent":{"additionalProperties":false,"properties":{"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"type":{"const":"message.read","type":"string"}},"required":["type"],"type":"object"},"MessageReceivedEvent":{"anyOf":[{"$ref":"#/components/schemas/SmsMessageReceivedEvent"},{"$ref":"#/components/schemas/WhatsappMessageReceivedEvent"},{"$ref":"#/components/schemas/WhatsappBusinessMessageReceivedEvent"},{"$ref":"#/components/schemas/EmailMessageReceivedEvent"},{"$ref":"#/components/schemas/ImessageMessageReceivedEvent"},{"$ref":"#/components/schemas/TelegramMessageReceivedEvent"}]},"MessageRejectedFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"message_rejected","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"MessageStatus":{"enum":["received","dispatched","accepted","delivered","failed"],"type":"string"},"MessageStatusCount":{"additionalProperties":false,"properties":{"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"status":{"$ref":"#/components/schemas/MessageStatus"}},"required":["count","status"],"type":"object"},"MessageSubmissionUnknownFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"message_submission_unknown","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"MessageTooLargeFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"message_too_large","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"MessageTooLongProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"MESSAGE_TOO_LONG","status":422,"title":"Message Too Long","type":"https://photon.codes/docs/problems/message-too-long"},"properties":{"code":{"const":"MESSAGE_TOO_LONG","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":422,"type":"number"},"title":{"const":"Message Too Long","type":"string"},"type":{"const":"https://photon.codes/docs/problems/message-too-long","type":"string"}},"required":["code","status","title","type"],"type":"object"},"MessageTypeUnsupportedFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"message_type_unsupported","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"MessagingUnavailableFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"messaging_unavailable","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"MeteredUsage":{"additionalProperties":false,"properties":{"amountCents":{"description":"Cost accrued so far.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"category":{"description":"Category slug, e.g. analytics or messaging.","pattern":"^[a-z][a-z0-9_]{0,63}$","type":"string"},"categoryDisplayName":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"description":"Display name for the subscription category; absent or null when unconfigured."},"currency":{"description":"ISO currency code.","type":"string"},"displayName":{"description":"Display name for this usage item.","type":"string"},"metricCode":{"description":"Metered thing, e.g. imessage_message.","type":"string"},"units":{"description":"Units consumed this period.","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["amountCents","category","currency","displayName","metricCode","units"],"type":"object"},"MfaAlreadyEnrolledProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"MFA_ALREADY_ENROLLED","status":409,"title":"MFA Already Enrolled","type":"https://photon.codes/docs/problems/mfa-already-enrolled"},"properties":{"code":{"const":"MFA_ALREADY_ENROLLED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"MFA Already Enrolled","type":"string"},"type":{"const":"https://photon.codes/docs/problems/mfa-already-enrolled","type":"string"}},"required":["code","status","title","type"],"type":"object"},"MfaEnrollmentExpiredProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"MFA_ENROLLMENT_EXPIRED","status":410,"title":"MFA Enrollment Expired","type":"https://photon.codes/docs/problems/mfa-enrollment-expired"},"properties":{"code":{"const":"MFA_ENROLLMENT_EXPIRED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":410,"type":"number"},"title":{"const":"MFA Enrollment Expired","type":"string"},"type":{"const":"https://photon.codes/docs/problems/mfa-enrollment-expired","type":"string"}},"required":["code","status","title","type"],"type":"object"},"MfaEnrollmentInvalidProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"MFA_ENROLLMENT_INVALID","status":400,"title":"MFA Enrollment Invalid","type":"https://photon.codes/docs/problems/mfa-enrollment-invalid"},"properties":{"code":{"const":"MFA_ENROLLMENT_INVALID","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":400,"type":"number"},"title":{"const":"MFA Enrollment Invalid","type":"string"},"type":{"const":"https://photon.codes/docs/problems/mfa-enrollment-invalid","type":"string"}},"required":["code","status","title","type"],"type":"object"},"MfaFactor":{"additionalProperties":false,"properties":{"createdAt":{"description":"UTC timestamp when the factor was created, in RFC 3339 format.","example":"2026-01-01T00:00:00.000Z","format":"date-time","type":"string"},"id":{"description":"Identifier of a TOTP authentication factor, prefixed with auth_factor_.","maxLength":128,"pattern":"^auth_factor_[A-Za-z0-9]+$","type":"string"},"updatedAt":{"description":"UTC timestamp when the factor was last updated, in RFC 3339 format.","example":"2026-01-01T00:00:00.000Z","format":"date-time","type":"string"}},"required":["createdAt","id","updatedAt"],"type":"object"},"MfaFactorNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"MFA_FACTOR_NOT_FOUND","status":404,"title":"MFA Factor Not Found","type":"https://photon.codes/docs/problems/mfa-factor-not-found"},"properties":{"code":{"const":"MFA_FACTOR_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"MFA Factor Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/mfa-factor-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"MfaTotpStatus":{"additionalProperties":false,"description":"TOTP enrollment status for the authenticated Account.","properties":{"enrolled":{"description":"Whether the Account has at least one enrolled TOTP factor.","type":"boolean"},"factors":{"description":"Enrolled TOTP factors. Empty when TOTP is not enrolled; contains no setup secrets.","items":{"$ref":"#/components/schemas/MfaFactor"},"type":"array"}},"required":["enrolled","factors"],"type":"object"},"MfaVerificationFailedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"MFA_VERIFICATION_FAILED","status":422,"title":"MFA Verification Failed","type":"https://photon.codes/docs/problems/mfa-verification-failed"},"properties":{"code":{"const":"MFA_VERIFICATION_FAILED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":422,"type":"number"},"title":{"const":"MFA Verification Failed","type":"string"},"type":{"const":"https://photon.codes/docs/problems/mfa-verification-failed","type":"string"}},"required":["code","status","title","type"],"type":"object"},"NoAnswerCall":{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"no_answer","type":"string"},"timestamps":{"$ref":"#/components/schemas/EndedBeforeAnswerCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},"NotAuthenticatedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"NOT_AUTHENTICATED","status":401,"title":"Not Authenticated","type":"https://photon.codes/docs/problems/not-authenticated"},"properties":{"code":{"const":"NOT_AUTHENTICATED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":401,"type":"number"},"title":{"const":"Not Authenticated","type":"string"},"type":{"const":"https://photon.codes/docs/problems/not-authenticated","type":"string"}},"required":["code","status","title","type"],"type":"object"},"NumberCountry":{"additionalProperties":false,"properties":{"callingCode":{"pattern":"^\\+[1-9][0-9]{0,2}$","type":"string"},"countryCode":{"pattern":"^[A-Z]{2}$","type":"string"},"displayName":{"type":"string"}},"required":["callingCode","countryCode","displayName"],"type":"object"},"Operation":{"additionalProperties":false,"properties":{"cancellable":{"type":"boolean"},"createdAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"detail":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"endedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"error":{"$ref":"#/components/schemas/OperationError"},"operationId":{"type":"string"},"projectId":{"type":"string"},"reason":{"$ref":"#/components/schemas/OperationReason"},"resourceId":{"type":"string"},"resourceType":{"type":"string"},"startedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"state":{"$ref":"#/components/schemas/OperationState"},"type":{"$ref":"#/components/schemas/OperationType"},"updatedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["cancellable","createdAt","operationId","projectId","resourceType","state","type","updatedAt"],"type":"object"},"OperationError":{"additionalProperties":false,"properties":{"code":{"type":"string"},"detail":{"type":"string"}},"required":["code","detail"],"type":"object"},"OperationNotCancellableProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"OPERATION_NOT_CANCELLABLE","status":409,"title":"Operation Not Cancellable","type":"https://photon.codes/docs/problems/operation-not-cancellable"},"properties":{"code":{"const":"OPERATION_NOT_CANCELLABLE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Operation Not Cancellable","type":"string"},"type":{"const":"https://photon.codes/docs/problems/operation-not-cancellable","type":"string"}},"required":["code","status","title","type"],"type":"object"},"OperationNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"OPERATION_NOT_FOUND","status":404,"title":"Operation Not Found","type":"https://photon.codes/docs/problems/operation-not-found"},"properties":{"code":{"const":"OPERATION_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Operation Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/operation-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"OperationPage":{"additionalProperties":false,"properties":{"nextPageToken":{"type":"string"},"operations":{"items":{"$ref":"#/components/schemas/Operation"},"type":"array"}},"required":["operations"],"type":"object"},"OperationReason":{"enum":["charge_refused","entitlement_lost","project_deleted"],"type":"string"},"OperationState":{"enum":["pending","running","succeeded","failed","cancelled"],"type":"string"},"OperationType":{"enum":["resource.provision","resource.release","whatsapp.account.disconnect","sms.campaign.assign","sms.campaign.unassign"],"type":"string"},"OperationUnavailableProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"OPERATION_UNAVAILABLE","status":422,"title":"Operation Unavailable","type":"https://photon.codes/docs/problems/operation-unavailable"},"properties":{"code":{"const":"OPERATION_UNAVAILABLE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":422,"type":"number"},"title":{"const":"Operation Unavailable","type":"string"},"type":{"const":"https://photon.codes/docs/problems/operation-unavailable","type":"string"}},"required":["code","status","title","type"],"type":"object"},"OrganizationAuthenticationRedirect":{"additionalProperties":false,"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"},"OrganizationAuthenticationRequest":{"additionalProperties":false,"properties":{"returnTo":{"minLength":1,"type":"string"}},"required":["returnTo"],"type":"object"},"OrganizationConnectionNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ORGANIZATION_CONNECTION_NOT_FOUND","status":404,"title":"Organization Connection Not Found","type":"https://photon.codes/docs/problems/organization-connection-not-found"},"properties":{"code":{"const":"ORGANIZATION_CONNECTION_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Organization Connection Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/organization-connection-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"OrganizationConnectionStatus":{"additionalProperties":{},"properties":{"membership":{"$ref":"#/components/schemas/OrganizationConnectionStatusMembership"},"organization":{"$ref":"#/components/schemas/OrganizationConnectionStatusOrganization"},"organizationId":{"type":"string"},"synchronized":{"type":"boolean"}},"required":["organizationId","organization","membership","synchronized"],"type":"object"},"OrganizationConnectionStatusMembership":{"additionalProperties":{},"properties":{"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"retryAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","type":"string"},{"type":"null"}]},"status":{"$ref":"#/components/schemas/OrganizationConnectionSyncStatus"}},"required":["status","errorCode","retryAt"],"type":"object"},"OrganizationConnectionStatusOrganization":{"additionalProperties":{},"properties":{"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"$ref":"#/components/schemas/OrganizationConnectionSyncStatus"}},"required":["status","errorCode"],"type":"object"},"OrganizationConnectionSyncStatus":{"enum":["pending","syncing","ready","error","blocked"],"type":"string"},"OrganizationEnterpriseLoginRequest":{"additionalProperties":false,"properties":{"invitationToken":{"pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"organizationId":{"pattern":"^pho_org_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"returnTo":{"maxLength":2048,"minLength":1,"type":"string"}},"required":["organizationId","returnTo"],"type":"object"},"OrganizationInvoiceSubject":{"additionalProperties":false,"properties":{"organizationId":{"type":"string"},"type":{"const":"organization","type":"string"}},"required":["organizationId","type"],"type":"object"},"OrganizationSsoConfiguration":{"additionalProperties":{},"properties":{"connectionChangedAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","type":"string"},{"type":"null"}]},"connectionGeneration":{"pattern":"^(0|[1-9][0-9]{0,19})$","type":"string"},"connectionState":{"$ref":"#/components/schemas/OrganizationSsoConfigurationConnectionState"},"connectionType":{"type":"string"},"desiredSsoEnforced":{"type":"boolean"},"domains":{"items":{"$ref":"#/components/schemas/OrganizationSsoDomain"},"type":"array"},"organizationId":{"type":"string"},"policySyncStatus":{"$ref":"#/components/schemas/OrganizationSsoConfigurationPolicySyncStatus"},"providerAvailable":{"type":"boolean"},"ssoEnforced":{"type":"boolean"},"ssoJitEnabled":{"type":"boolean"},"version":{"pattern":"^(0|[1-9][0-9]{0,19})$","type":"string"}},"required":["organizationId","connectionState","connectionGeneration","connectionChangedAt","version","ssoEnforced","desiredSsoEnforced","ssoJitEnabled","policySyncStatus"],"type":"object"},"OrganizationSsoConfigurationConnectionState":{"enum":["not_configured","configuring","ready","error"],"type":"string"},"OrganizationSsoConfigurationPolicySyncStatus":{"enum":["synced","manual_required"],"type":"string"},"OrganizationSsoConflictProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ORGANIZATION_SSO_CONFLICT","status":409,"title":"Organization SSO Conflict","type":"https://photon.codes/docs/problems/organization-sso-conflict"},"properties":{"code":{"const":"ORGANIZATION_SSO_CONFLICT","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Organization SSO Conflict","type":"string"},"type":{"const":"https://photon.codes/docs/problems/organization-sso-conflict","type":"string"}},"required":["code","status","title","type"],"type":"object"},"OrganizationSsoDomain":{"additionalProperties":{},"properties":{"domain":{"type":"string"},"state":{"$ref":"#/components/schemas/OrganizationSsoDomainState"}},"required":["domain","state"],"type":"object"},"OrganizationSsoDomainState":{"enum":["verified","pending","failed"],"type":"string"},"OrganizationSsoNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ORGANIZATION_SSO_NOT_FOUND","status":404,"title":"Organization SSO Not Found","type":"https://photon.codes/docs/problems/organization-sso-not-found"},"properties":{"code":{"const":"ORGANIZATION_SSO_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Organization SSO Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/organization-sso-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"OrganizationSsoPreconditionFailedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ORGANIZATION_SSO_PRECONDITION_FAILED","status":412,"title":"Organization SSO Precondition Failed","type":"https://photon.codes/docs/problems/organization-sso-precondition-failed"},"properties":{"code":{"const":"ORGANIZATION_SSO_PRECONDITION_FAILED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":412,"type":"number"},"title":{"const":"Organization SSO Precondition Failed","type":"string"},"type":{"const":"https://photon.codes/docs/problems/organization-sso-precondition-failed","type":"string"}},"required":["code","status","title","type"],"type":"object"},"OrganizationSsoRequiredProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ORGANIZATION_SSO_REQUIRED","status":403,"title":"Organization SSO Required","type":"https://photon.codes/docs/problems/organization-sso-required"},"properties":{"code":{"const":"ORGANIZATION_SSO_REQUIRED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":403,"type":"number"},"title":{"const":"Organization SSO Required","type":"string"},"type":{"const":"https://photon.codes/docs/problems/organization-sso-required","type":"string"}},"required":["code","status","title","type"],"type":"object"},"OrganizationSubscription":{"additionalProperties":false,"properties":{"baseAmountCents":{"description":"The plan's recurring base fee in whole cents.","maximum":9007199254740991,"minimum":0,"type":"integer"},"cancelsAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}],"description":"When the subscription will end, ISO 8601."},"currency":{"description":"ISO currency code.","type":"string"},"currentPeriodEnd":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}],"description":"End of the current billing period, ISO 8601."},"entitlements":{"items":{"$ref":"#/components/schemas/OrganizationSubscriptionEntitlement"},"type":"array"},"fixedCharges":{"description":"Fixed charges defined by the organization's current plan. Quantity is the plan default.","items":{"$ref":"#/components/schemas/FixedCharge"},"type":"array"},"minimumCommitment":{"anyOf":[{"$ref":"#/components/schemas/BillingPlanMinimumCommitment"},{"type":"null"}]},"planCode":{"description":"The organization's plan.","type":"string"},"planName":{"description":"The plan's customer-facing name, e.g. Messaging Pro.","type":"string"},"status":{"$ref":"#/components/schemas/SubscriptionStatus"}},"required":["cancelsAt","currentPeriodEnd","entitlements","fixedCharges","baseAmountCents","currency","minimumCommitment","planCode","planName","status"],"type":"object"},"OrganizationSubscriptionEntitlement":{"additionalProperties":false,"properties":{"featureKey":{"description":"Feature gate key.","type":"string"},"value":{"description":"Gate value as a string.","type":"string"}},"required":["featureKey","value"],"type":"object"},"OrganizationSyncUnavailableProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"ORGANIZATION_SYNC_UNAVAILABLE","status":409,"title":"Organization Synchronization Unavailable","type":"https://photon.codes/docs/problems/organization-sync-unavailable"},"properties":{"code":{"const":"ORGANIZATION_SYNC_UNAVAILABLE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Organization Synchronization Unavailable","type":"string"},"type":{"const":"https://photon.codes/docs/problems/organization-sync-unavailable","type":"string"}},"required":["code","status","title","type"],"type":"object"},"PayloadTooLargeProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"PAYLOAD_TOO_LARGE","status":413,"title":"Payload Too Large","type":"https://photon.codes/docs/problems/payload-too-large"},"properties":{"code":{"const":"PAYLOAD_TOO_LARGE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":413,"type":"number"},"title":{"const":"Payload Too Large","type":"string"},"type":{"const":"https://photon.codes/docs/problems/payload-too-large","type":"string"}},"required":["code","status","title","type"],"type":"object"},"PaymentMethod":{"additionalProperties":false,"properties":{"brand":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Card network brand, e.g. visa."},"expiresMonth":{"anyOf":[{"maximum":12,"minimum":1,"type":"integer"},{"type":"null"}],"description":"Card expiration month."},"expiresYear":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"Four-digit card expiration year."},"last4":{"anyOf":[{"pattern":"^\\d{4}$","type":"string"},{"type":"null"}],"description":"Last four card digits."}},"required":["brand","expiresMonth","expiresYear","last4"],"type":"object"},"PaymentMode":{"enum":["automatic","manual"],"type":"string","x-enumDescriptions":{"automatic":"Charged to the payer's payment method when issued.","manual":"Paid outside the payment provider."}},"PaymentProviderNotReadyProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"PAYMENT_PROVIDER_NOT_READY","status":503,"title":"Payment Provider Not Ready","type":"https://photon.codes/docs/problems/payment-provider-not-ready"},"properties":{"code":{"const":"PAYMENT_PROVIDER_NOT_READY","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":503,"type":"number"},"title":{"const":"Payment Provider Not Ready","type":"string"},"type":{"const":"https://photon.codes/docs/problems/payment-provider-not-ready","type":"string"}},"required":["code","status","title","type"],"type":"object"},"PendingBillingOperation":{"additionalProperties":false,"properties":{"failure":{"type":"null"},"kind":{"$ref":"#/components/schemas/BillingOperationKind"},"operationId":{"description":"Stable handle for this provisioning action.","type":"string"},"resolvedAt":{"type":"null"},"result":{"type":"null"},"status":{"const":"pending","description":"Accepted and still executing. Poll the operation route.","type":"string"},"submittedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["failure","kind","operationId","submittedAt","resolvedAt","result","status"],"type":"object"},"PhoneCarrier":{"additionalProperties":false,"minProperties":1,"properties":{"lineType":{"minLength":1,"type":"string"},"mobileCountryCode":{"pattern":"^[0-9]{3}$","type":"string"},"mobileNetworkCode":{"pattern":"^[0-9]{2,3}$","type":"string"},"name":{"minLength":1,"type":"string"},"normalizedName":{"minLength":1,"type":"string"}},"type":"object"},"PhoneVerificationCaptcha":{"additionalProperties":false,"properties":{"challengeContext":{"maxLength":1024,"minLength":1,"type":"string"},"token":{"maxLength":4096,"minLength":1,"type":"string"}},"required":["challengeContext","token"],"type":"object"},"PlanSource":{"enum":["catalog","override"],"type":"string","x-enumDescriptions":{"catalog":"A plan published in the catalog, unchanged.","override":"Terms of its own: a plan override on the subscription, or a plan outside the published catalog."}},"Platform":{"enum":["sms","email","whatsapp","whatsapp_business","imessage","telegram"],"type":"string"},"PlatformIdentifier":{"pattern":"^[a-z][a-z0-9_-]*$","type":"string"},"PlatformMessage":{"allOf":[{"$ref":"#/components/schemas/Message"},{"$ref":"#/components/schemas/SupportedPlatformConstraint"}],"example":{"content":{"format":"plain","text":"Hello from Photon.","type":"text"},"createdAt":"2026-01-01T00:00:00.000Z","id":"pho_msg_00000000000000000000000001","metadata":{},"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001","sentBy":{"details":{"resourceId":"pho_res_00000000000000000000000001","type":"dedicated"},"handle":"+14155550123","id":"pho_usr_00000000000000000000000001","kind":"agent","metadata":{},"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001"},"space":{"details":{},"id":"pho_spc_00000000000000000000000001","kind":"direct","metadata":{},"participantIds":["pho_usr_00000000000000000000000001","pho_usr_00000000000000000000000002"],"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001"},"status":"dispatched","timestamps":{"dispatchedAt":"2026-01-01T00:00:00.000Z"},"updatedAt":"2026-01-01T00:00:00.000Z"}},"PlatformSpace":{"allOf":[{"$ref":"#/components/schemas/Space"},{"$ref":"#/components/schemas/SupportedPlatformConstraint"}],"example":{"createdAt":"2026-01-01T00:00:00.000Z","details":{},"id":"pho_spc_00000000000000000000000001","kind":"direct","metadata":{},"participantIds":["pho_usr_00000000000000000000000001","pho_usr_00000000000000000000000002"],"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001","updatedAt":"2026-01-01T00:00:00.000Z"}},"PlatformUser":{"allOf":[{"$ref":"#/components/schemas/User"},{"$ref":"#/components/schemas/SupportedPlatformConstraint"}],"example":{"createdAt":"2026-01-01T00:00:00.000Z","details":{"resourceId":"pho_res_00000000000000000000000001","type":"dedicated"},"handle":"+14155550123","id":"pho_usr_00000000000000000000000001","kind":"agent","metadata":{},"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001","updatedAt":"2026-01-01T00:00:00.000Z"}},"PollContent":{"additionalProperties":false,"properties":{"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"options":{"items":{"$ref":"#/components/schemas/PollOption"},"minItems":1,"type":"array"},"question":{"minLength":1,"type":"string"},"selectionMode":{"$ref":"#/components/schemas/PollSelectionMode"},"type":{"const":"poll","type":"string"}},"required":["type","question","options","selectionMode"],"type":"object"},"PollOption":{"additionalProperties":false,"properties":{"id":{"minLength":1,"type":"string"},"text":{"minLength":1,"type":"string"}},"required":["id","text"],"type":"object"},"PollSelectionMode":{"enum":["single","multiple"],"type":"string"},"PollUpdateContent":{"additionalProperties":false,"properties":{"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"options":{"items":{"$ref":"#/components/schemas/PollOption"},"minItems":1,"type":"array"},"question":{"minLength":1,"type":"string"},"selectionMode":{"$ref":"#/components/schemas/PollSelectionMode"},"type":{"const":"poll.update","type":"string"}},"required":["type","question","options","selectionMode"],"type":"object"},"PollVoteContent":{"additionalProperties":false,"properties":{"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"selectedOptions":{"items":{"$ref":"#/components/schemas/PollOption"},"type":"array"},"type":{"const":"poll.vote","type":"string"}},"required":["type","selectedOptions"],"type":"object"},"PreviewOrganizationChangeForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"PreviewOrganizationChangeGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"PreviewOrganizationChangeInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"PreviewOrganizationChangeRequest":{"additionalProperties":false,"properties":{"fixedCharge":{"$ref":"#/components/schemas/FixedChargeChange"}},"required":["fixedCharge"],"type":"object"},"PreviewOrganizationChangeResponse":{"additionalProperties":false,"properties":{"balanceAfterCents":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"The payer's credit balance once dueNow is charged: the credit the change issues included, less what dueNow uses. In dueNow's currency. Null when the change charges nothing now (a downgrade)."},"dueNow":{"$ref":"#/components/schemas/BillingPreviewInvoice"},"nextCharge":{"anyOf":[{"$ref":"#/components/schemas/BillingNextCharge"},{"type":"null"}],"description":"What is charged in advance at the next period start for what is held after the change. Usage and a minimum commitment are billed after the period. Null when nothing is, or the subscription ends first."},"planChange":{"anyOf":[{"$ref":"#/components/schemas/BillingPlanChangeEffect"},{"type":"null"}],"description":"Set for a plan change, null otherwise."},"quote":{"anyOf":[{"$ref":"#/components/schemas/FixedChargeQuote"},{"type":"null"}],"description":"Set for a fixed-charge change, null otherwise: the unit price, currency and period the preview was priced on. Pass them on with the purchase so it is refused if they no longer hold."},"timeZone":{"description":"The IANA time zone the payer is billed in, e.g. America/Los_Angeles. Billing periods start and end at its midnights, so read their calendar dates in it.","type":"string"}},"required":["balanceAfterCents","dueNow","nextCharge","planChange","quote","timeZone"],"type":"object"},"PreviewProjectChangeForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"PreviewProjectChangeGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"PreviewProjectChangeInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"PreviewProjectChangeRequest":{"anyOf":[{"$ref":"#/components/schemas/BillingPreviewFixedChargeChange"},{"$ref":"#/components/schemas/BillingPreviewPlanChange"}]},"PreviewProjectChangeResponse":{"additionalProperties":false,"properties":{"balanceAfterCents":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"The payer's credit balance once dueNow is charged: the credit the change issues included, less what dueNow uses. In dueNow's currency. Null when the change charges nothing now (a downgrade)."},"dueNow":{"$ref":"#/components/schemas/BillingPreviewInvoice"},"nextCharge":{"anyOf":[{"$ref":"#/components/schemas/BillingNextCharge"},{"type":"null"}],"description":"What is charged in advance at the next period start for what is held after the change. Usage and a minimum commitment are billed after the period. Null when nothing is, or the subscription ends first."},"planChange":{"anyOf":[{"$ref":"#/components/schemas/BillingPlanChangeEffect"},{"type":"null"}],"description":"Set for a plan change, null otherwise."},"quote":{"anyOf":[{"$ref":"#/components/schemas/FixedChargeQuote"},{"type":"null"}],"description":"Set for a fixed-charge change, null otherwise: the unit price, currency and period the preview was priced on. Pass them on with the purchase so it is refused if they no longer hold."},"timeZone":{"description":"The IANA time zone the payer is billed in, e.g. America/Los_Angeles. Billing periods start and end at its midnights, so read their calendar dates in it.","type":"string"}},"required":["balanceAfterCents","dueNow","nextCharge","planChange","quote","timeZone"],"type":"object"},"ProfilePictureContentType":{"enum":["image/jpeg","image/png","image/webp"],"type":"string"},"ProfilePictureUpload":{"additionalProperties":false,"properties":{"expiresAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"formFields":{"$ref":"#/components/schemas/ProfilePictureUploadFormFields"},"uploadId":{"type":"string"},"uploadUrl":{"format":"uri","type":"string"}},"required":["expiresAt","formFields","uploadId","uploadUrl"],"type":"object"},"ProfilePictureUploadFormFields":{"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"ProfilePictureUploadRequest":{"additionalProperties":false,"properties":{"contentType":{"$ref":"#/components/schemas/ProfilePictureContentType"}},"required":["contentType"],"type":"object"},"Project":{"additionalProperties":false,"properties":{"agentProfile":{"$ref":"#/components/schemas/AgentProfile"},"billingInitialization":{"$ref":"#/components/schemas/ProjectBillingInitialization"},"createdAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"createdByAccountId":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdByActorId":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdByActorKind":{"anyOf":[{"$ref":"#/components/schemas/ProjectCreatedByActorKind"},{"type":"null"}]},"deletedAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}]},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"slug":{"type":"string"},"updatedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["agentProfile","createdAt","createdByAccountId","createdByActorId","createdByActorKind","deletedAt","name","organizationId","projectId","slug","updatedAt"],"type":"object"},"ProjectApiKeyResponse":{"additionalProperties":false,"properties":{"apiKey":{"$ref":"#/components/schemas/ApiKey"}},"required":["apiKey"],"type":"object"},"ProjectBillingInitialization":{"enum":["pending","retry_required","completed","unknown"],"type":"string"},"ProjectClosingProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"PROJECT_CLOSING","status":409,"title":"Project Is Closing","type":"https://photon.codes/docs/problems/project-closing"},"properties":{"code":{"const":"PROJECT_CLOSING","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Project Is Closing","type":"string"},"type":{"const":"https://photon.codes/docs/problems/project-closing","type":"string"}},"required":["code","status","title","type"],"type":"object"},"ProjectClosureDomain":{"enum":["projects","billing","platforms","call_registry"],"type":"string"},"ProjectClosureDomainStatus":{"additionalProperties":{},"properties":{"blockers":{"items":{"type":"string"},"type":"array"},"domain":{"$ref":"#/components/schemas/ProjectClosureDomain"},"ready":{"type":"boolean"}},"required":["blockers","domain","ready"],"type":"object"},"ProjectCount":{"additionalProperties":false,"properties":{"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["count"],"type":"object"},"ProjectCreatedByActorKind":{"enum":["account","service_identity"],"type":"string"},"ProjectDeletedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"PROJECT_DELETED","status":410,"title":"Project Deleted","type":"https://photon.codes/docs/problems/project-deleted"},"properties":{"code":{"const":"PROJECT_DELETED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":410,"type":"number"},"title":{"const":"Project Deleted","type":"string"},"type":{"const":"https://photon.codes/docs/problems/project-deleted","type":"string"}},"required":["code","status","title","type"],"type":"object"},"ProjectId":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"ProjectInvoiceSubject":{"additionalProperties":false,"properties":{"projectId":{"type":"string"},"type":{"const":"project","type":"string"}},"required":["projectId","type"],"type":"object"},"ProjectNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"PROJECT_NOT_FOUND","status":404,"title":"Project Not Found","type":"https://photon.codes/docs/problems/project-not-found"},"properties":{"code":{"const":"PROJECT_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Project Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/project-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"ProjectPage":{"additionalProperties":false,"properties":{"nextPageToken":{"type":"string"},"projects":{"items":{"$ref":"#/components/schemas/Project"},"type":"array"}},"required":["projects"],"type":"object"},"ProjectPlatformSettings":{"oneOf":[{"$ref":"#/components/schemas/SharedProjectPlatformSettings"},{"$ref":"#/components/schemas/DedicatedProjectPlatformSettings"}]},"ProjectSubscription":{"additionalProperties":false,"properties":{"baseAmountCents":{"description":"The plan's recurring base fee in whole cents.","maximum":9007199254740991,"minimum":0,"type":"integer"},"cancelsAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"When the subscription will end instead of renewing, ISO 8601."},"category":{"description":"Category slug, e.g. analytics or messaging.","pattern":"^[a-z][a-z0-9_]{0,63}$","type":"string"},"categoryDisplayName":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"description":"Display name for the subscription category; absent or null when unconfigured."},"currency":{"description":"ISO currency code.","type":"string"},"currentPeriodEnd":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End of the current billing period, ISO 8601."},"entitlements":{"description":"Feature gates granted by this category's plan.","items":{"$ref":"#/components/schemas/ProjectSubscriptionEntitlement"},"type":"array"},"fixedCharges":{"description":"Fixed charges defined by this category's current plan. Quantity is the plan default.","items":{"$ref":"#/components/schemas/FixedCharge"},"type":"array"},"minimumCommitment":{"anyOf":[{"$ref":"#/components/schemas/BillingPlanMinimumCommitment"},{"type":"null"}]},"planCode":{"description":"This category's plan.","type":"string"},"planName":{"description":"The plan's customer-facing name, e.g. Messaging Pro.","type":"string"},"status":{"$ref":"#/components/schemas/SubscriptionStatus"},"tierDisplayName":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"description":"The plan's tier as customers see it, e.g. Pro for Messaging Pro, where the category is already clear. Null when unconfigured."}},"required":["cancelsAt","category","currentPeriodEnd","entitlements","fixedCharges","baseAmountCents","currency","minimumCommitment","planCode","planName","status","tierDisplayName"],"type":"object"},"ProjectSubscriptionEntitlement":{"additionalProperties":false,"properties":{"featureKey":{"description":"Feature gate key, e.g. imessage_shared_lines.max_user_assignments.","type":"string"},"value":{"description":"Gate value as a string.","type":"string"}},"required":["featureKey","value"],"type":"object"},"ProvisionImessageDedicatedLineBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"ProvisionImessageDedicatedLineForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ProvisionImessageDedicatedLineGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ProvisionImessageDedicatedLineInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ProvisionImessageDedicatedLineServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/BillingEntitlementsPendingProblem"},{"$ref":"#/components/schemas/BillingNotProvisionedProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"ProvisionImessageDedicatedLineUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"ProvisionWhatsappDedicatedLineBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"ProvisionWhatsappDedicatedLineForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ProvisionWhatsappDedicatedLineGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ProvisionWhatsappDedicatedLineInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ProvisionWhatsappDedicatedLineServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/BillingEntitlementsPendingProblem"},{"$ref":"#/components/schemas/BillingNotProvisionedProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"ProvisionWhatsappDedicatedLineUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"PurchaseSmsNumberBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"PurchaseSmsNumberForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"PurchaseSmsNumberGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"PurchaseSmsNumberInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"PurchaseSmsNumberRequest":{"additionalProperties":false,"properties":{"areaCode":{"pattern":"^[2-9][0-9]{2}$","type":"string"},"countryCode":{"const":"US","type":"string"}},"required":["countryCode"],"type":"object"},"PurchaseSmsNumberServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/BillingEntitlementsPendingProblem"},{"$ref":"#/components/schemas/BillingNotProvisionedProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"PurchaseSmsNumberUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"QueryConcurrencyLimitProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"QUERY_CONCURRENCY_LIMIT","status":429,"title":"Query Concurrency Limit","type":"https://photon.codes/docs/problems/query-concurrency-limit"},"properties":{"code":{"const":"QUERY_CONCURRENCY_LIMIT","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":429,"type":"number"},"title":{"const":"Query Concurrency Limit","type":"string"},"type":{"const":"https://photon.codes/docs/problems/query-concurrency-limit","type":"string"}},"required":["code","status","title","type"],"type":"object"},"QueryMessageMetricsForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"QueryMessageMetricsGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"QueryMessageMetricsResponse":{"additionalProperties":false,"properties":{"columns":{"items":{"$ref":"#/components/schemas/MessageMetricsQueryColumn"},"type":"array"},"rows":{"items":{"items":{},"type":"array"},"type":"array"},"statistics":{"$ref":"#/components/schemas/MessageMetricsQueryStatistics"}},"required":["columns","rows","statistics"],"type":"object"},"QueryMessageMetricsUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/QueryResourceLimitProblem"},{"$ref":"#/components/schemas/ValidationFailedProblem"}]},"QueryResourceLimitProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"QUERY_RESOURCE_LIMIT","status":422,"title":"Query Resource Limit","type":"https://photon.codes/docs/problems/query-resource-limit"},"properties":{"code":{"const":"QUERY_RESOURCE_LIMIT","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":422,"type":"number"},"title":{"const":"Query Resource Limit","type":"string"},"type":{"const":"https://photon.codes/docs/problems/query-resource-limit","type":"string"}},"required":["code","status","title","type"],"type":"object"},"RateLimitedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"RATE_LIMITED","status":429,"title":"Too Many Requests","type":"https://photon.codes/docs/problems/rate-limited"},"properties":{"code":{"const":"RATE_LIMITED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":429,"type":"number"},"title":{"const":"Too Many Requests","type":"string"},"type":{"const":"https://photon.codes/docs/problems/rate-limited","type":"string"}},"required":["code","status","title","type"],"type":"object"},"ReactionAction":{"enum":["add","remove"],"type":"string"},"ReactionContent":{"additionalProperties":false,"properties":{"action":{"$ref":"#/components/schemas/ReactionAction"},"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"reaction":{"minLength":1,"type":"string"},"type":{"const":"reaction","type":"string"}},"required":["type","reaction","action"],"type":"object"},"ReceivedEmailMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/EmailMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"email","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"received","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/ReceivedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"ReceivedImessageMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/ImessageMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"imessage","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"received","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/ReceivedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"ReceivedMessageTimestamps":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"deliveredAt":{"not":{}},"dispatchedAt":{"not":{}},"failedAt":{"not":{}},"receivedAt":{"description":"Authoritative source receipt or observation time, preserved across replay.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["receivedAt"],"type":"object"},"ReceivedSmsMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/SmsMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"sms","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"received","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/ReceivedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"ReceivedTelegramMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/TelegramMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"telegram","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"received","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/ReceivedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"ReceivedUnknownMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/Content"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"$ref":"#/components/schemas/PlatformIdentifier"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"received","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/ReceivedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"ReceivedWhatsappBusinessMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/WhatsappBusinessMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"whatsapp_business","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"received","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/ReceivedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"ReceivedWhatsappMessage":{"additionalProperties":false,"properties":{"acceptance":{"not":{}},"addressedTo":{"$ref":"#/components/schemas/UserSnapshot"},"content":{"$ref":"#/components/schemas/WhatsappMessageContent"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"failure":{"not":{}},"id":{"$ref":"#/components/schemas/MessageId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"parentMessageId":{"$ref":"#/components/schemas/MessageId"},"platform":{"const":"whatsapp","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"receivedBy":{"$ref":"#/components/schemas/UserSnapshot"},"sentBy":{"$ref":"#/components/schemas/UserSnapshot"},"space":{"$ref":"#/components/schemas/SpaceSnapshot"},"status":{"const":"received","type":"string"},"timestamp":{"not":{}},"timestamps":{"$ref":"#/components/schemas/ReceivedMessageTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","space","sentBy","content","metadata","createdAt","updatedAt","status","timestamps"],"type":"object"},"RecipientInvalidFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"recipient_invalid","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"RecipientOptedOutFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"recipient_opted_out","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"RecipientUnreachableFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"recipient_unreachable","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"RedeemAppInstallationDeliveryGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"RedeemAppInstallationDeliveryRequest":{"additionalProperties":false,"properties":{"appId":{"pattern":"^pho_app_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"clientAssertion":{"maxLength":16384,"minLength":1,"type":"string"},"code":{"pattern":"^[A-Za-z0-9_-]{43}$","type":"string"}},"required":["appId","clientAssertion","code"],"type":"object"},"RedeemAppInstallationDeliveryResponse":{"oneOf":[{"$ref":"#/components/schemas/CreatedAppInstallationDelivery"},{"$ref":"#/components/schemas/ExistingAppInstallationDelivery"}]},"RefreshOrganizationSsoConnectionBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidReturnToProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"RefreshOrganizationSsoConnectionForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"RefreshOrganizationSsoConnectionGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"RefreshOrganizationSsoConnectionInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"RefreshOrganizationSsoConnectionPreconditionFailedProblem":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSsoPreconditionFailedProblem"},{"$ref":"#/components/schemas/SsoSubscriptionRequiredProblem"}]},"RefreshTokenGrantRequest":{"properties":{"grant_type":{"const":"refresh_token","description":"Selects the refresh-token grant to obtain a new token pair.","type":"string"},"refresh_token":{"description":"Most recently issued refresh token. Required for a refresh grant; replace it with the returned refresh_token after success.","minLength":1,"type":"string"}},"required":["grant_type","refresh_token"],"type":"object"},"RejectedCall":{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"rejected","type":"string"},"timestamps":{"$ref":"#/components/schemas/EndedCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},"ReleaseImessageDedicatedLineForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ReleaseImessageDedicatedLineGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ReleaseImessageDedicatedLineInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ReleaseResourceConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/WhatsappSenderConnectedProblem"},{"$ref":"#/components/schemas/WhatsappSenderProvisioningProblem"}]},"ReleaseResourceForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ReleaseResourceGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ReleaseResourceInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ReleaseSharedLineAssignmentForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ReleaseSharedLineAssignmentGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ReleaseSharedLineAssignmentInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ReleaseWhatsappDedicatedLineForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ReleaseWhatsappDedicatedLineGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ReleaseWhatsappDedicatedLineInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ReleaseWhatsappSharedLineAssignmentForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ReleaseWhatsappSharedLineAssignmentGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ReleaseWhatsappSharedLineAssignmentInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ReplaceVoiceProfileInboundConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/VoiceProfileVersionConflictProblem"},{"$ref":"#/components/schemas/VoiceOutboundOperationPendingProblem"}]},"ReplaceVoiceProfileInboundForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ReplaceVoiceProfileInboundGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"ReplaceVoiceProfileInboundInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ReplaceVoiceProfileInboundRequest":{"additionalProperties":false,"properties":{"credentials":{"anyOf":[{"$ref":"#/components/schemas/SipInboundCredentialsWithPassword"},{"type":"null"}]},"destinationUri":{"maxLength":2048,"minLength":1,"type":"string"},"expectedVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["credentials","destinationUri","expectedVersion"],"type":"object"},"RequestTimeoutProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"REQUEST_TIMEOUT","status":504,"title":"Request Timeout","type":"https://photon.codes/docs/problems/request-timeout"},"properties":{"code":{"const":"REQUEST_TIMEOUT","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":504,"type":"number"},"title":{"const":"Request Timeout","type":"string"},"type":{"const":"https://photon.codes/docs/problems/request-timeout","type":"string"}},"required":["code","status","title","type"],"type":"object"},"ResetAccountProfilePictureBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidArgumentProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"},{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"}]},"ResetAccountProfilePictureForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ResetAccountProfilePictureGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"ResetAccountProfilePictureInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"ResetAccountProfilePictureUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"},{"$ref":"#/components/schemas/ValidationFailedProblem"}]},"ResetAgentProfileAvatarBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"ResetAgentProfileAvatarForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"ResetAgentProfileAvatarGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"ResetAgentProfileAvatarUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"Resource":{"additionalProperties":false,"properties":{"abilities":{"items":{"type":"string"},"type":"array"},"createdAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"detail":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"projectId":{"type":"string"},"resourceId":{"type":"string"},"retiredAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"state":{"$ref":"#/components/schemas/ResourceState"},"type":{"type":"string"},"updatedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["abilities","createdAt","detail","projectId","resourceId","state","type","updatedAt"],"type":"object"},"ResourceId":{"pattern":"^pho_res_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"ResourceMetadata":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"properties":{"displayName":{"minLength":1,"type":"string"},"email":{"$ref":"#/components/schemas/EmailMetadata"},"spam":{"$ref":"#/components/schemas/SpamClassification"}},"type":"object"},"ResourceMismatchProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"RESOURCE_MISMATCH","status":403,"title":"Resource Mismatch","type":"https://photon.codes/docs/problems/resource-mismatch"},"properties":{"code":{"const":"RESOURCE_MISMATCH","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":403,"type":"number"},"title":{"const":"Resource Mismatch","type":"string"},"type":{"const":"https://photon.codes/docs/problems/resource-mismatch","type":"string"}},"required":["code","status","title","type"],"type":"object"},"ResourceNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"RESOURCE_NOT_FOUND","status":404,"title":"Resource Not Found","type":"https://photon.codes/docs/problems/resource-not-found"},"properties":{"code":{"const":"RESOURCE_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Resource Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/resource-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"ResourcePage":{"additionalProperties":false,"properties":{"nextPageToken":{"type":"string"},"resources":{"items":{"$ref":"#/components/schemas/Resource"},"type":"array"}},"required":["resources"],"type":"object"},"ResourceState":{"enum":["unallocated","active","retired"],"type":"string"},"RetryEnterpriseLoginRequest":{"additionalProperties":false,"properties":{"retryToken":{"pattern":"^enroll_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"}},"required":["retryToken"],"type":"object"},"RetryOrganizationConnectionSyncForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"RetryOrganizationConnectionSyncGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"RetryOrganizationConnectionSyncInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"RetryWebhookDeliveryBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"RetryWebhookDeliveryForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"RetryWebhookDeliveryRequest":{"additionalProperties":false,"properties":{"eventId":{"type":"string"},"eventType":{"pattern":"^[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9_-]*)+$","type":"string"},"expectedAttemptCount":{"maximum":4294967295,"minimum":0,"type":"integer"}},"required":["eventId","eventType","expectedAttemptCount"],"type":"object"},"RetryWebhookDeliveryResponse":{"additionalProperties":false,"properties":{"status":{"const":"accepted","type":"string"}},"required":["status"],"type":"object"},"RevokeAccountServiceKeyBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidArgumentProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"},{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"}]},"RevokeAccountServiceKeyForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"RevokeAccountServiceKeyGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"RevokeAccountServiceKeyInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"RevokeAccountServiceKeyNotFoundProblem":{"oneOf":[{"$ref":"#/components/schemas/AccountNotFoundProblem"},{"$ref":"#/components/schemas/AccountServiceKeyNotFoundProblem"}]},"RevokeAccountServiceKeyResponse":{"additionalProperties":false,"properties":{"serviceKey":{"$ref":"#/components/schemas/AccountServiceKey"}},"required":["serviceKey"],"type":"object"},"RevokeAccountServiceKeyUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"},{"$ref":"#/components/schemas/ValidationFailedProblem"}]},"RevokeAuthorizedApplicationForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"RevokeAuthorizedApplicationGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"RevokeAuthorizedApplicationInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"RevokeProjectApiKeyBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"RevokeProjectApiKeyForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"RevokeProjectApiKeyNotFoundProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectNotFoundProblem"},{"$ref":"#/components/schemas/ApiKeyNotFoundProblem"}]},"RevokeProjectApiKeyUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"RingingCall":{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"ringing","type":"string"},"timestamps":{"$ref":"#/components/schemas/RingingCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},"RingingCallTimestamps":{"additionalProperties":false,"properties":{"answeredAt":{"not":{}},"connectedAt":{"not":{}},"endedAt":{"not":{}},"ringingAt":{"description":"When authoritative destination alerting was observed. Ringing may be absent.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"startedAt":{"description":"When Voice admitted the attempt.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["startedAt","ringingAt"],"type":"object"},"RotateVoiceProfileOutboundCredentialBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"RotateVoiceProfileOutboundCredentialConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/VoiceProfileVersionConflictProblem"},{"$ref":"#/components/schemas/VoiceOutboundOperationPendingProblem"},{"$ref":"#/components/schemas/VoiceOutboundNotConfiguredProblem"}]},"RotateVoiceProfileOutboundCredentialForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"RotateVoiceProfileOutboundCredentialGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"RotateVoiceProfileOutboundCredentialInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"RotateVoiceProfileOutboundCredentialRequest":{"additionalProperties":false,"properties":{"expectedVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"mode":{"$ref":"#/components/schemas/VoiceOutboundCredentialRotationMode"}},"required":["expectedVersion","mode"],"type":"object"},"RotateVoiceProfileOutboundCredentialResponse":{"additionalProperties":false,"properties":{"password":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"previousPasswordValidUntil":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}]},"profileVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["password","previousPasswordValidUntil","profileVersion"],"type":"object"},"RotateVoiceProfileOutboundCredentialUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"RotateWebhookSigningSecretBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"RotateWebhookSigningSecretForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"RotateWebhookSigningSecretGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"RotateWebhookSigningSecretRequest":{"additionalProperties":false,"properties":{"overlapSeconds":{"default":86400,"maximum":604800,"minimum":0,"type":"integer"}},"type":"object"},"RotateWebhookSigningSecretResponse":{"additionalProperties":false,"properties":{"previousSecretExpiresAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}]},"signingSecret":{"pattern":"^whsec_.*","type":"string"}},"required":["previousSecretExpiresAt","signingSecret"],"type":"object"},"RotateWebhookSigningSecretUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"ScheduledPlanChange":{"additionalProperties":false,"properties":{"effectiveAt":{"description":"ISO 8601.","type":"string"},"planCode":{"maxLength":64,"minLength":1,"type":"string"}},"required":["effectiveAt","planCode"],"type":"object"},"SelectableWebhookApiVersion":{"additionalProperties":false,"properties":{"retirement":{"anyOf":[{"$ref":"#/components/schemas/WebhookApiVersionRetirement"},{"type":"null"}]},"selectable":{"const":true,"type":"boolean"},"status":{"$ref":"#/components/schemas/SelectableWebhookApiVersionStatus"},"successor":{"anyOf":[{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},{"type":"null"}]},"version":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"}},"required":["retirement","successor","selectable","status","version"],"type":"object"},"SelectableWebhookApiVersionStatus":{"enum":["preview","latest","maintain"],"type":"string"},"SelectableWebhookEventCatalog":{"additionalProperties":false,"properties":{"apiVersion":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"contractNamespace":{"const":"@photon-hq/contracts","type":"string"},"events":{"items":{"$ref":"#/components/schemas/WebhookEventType"},"type":"array"},"packageVersion":{"minLength":1,"type":"string"},"retirement":{"anyOf":[{"$ref":"#/components/schemas/WebhookApiVersionRetirement"},{"type":"null"}]},"selectable":{"const":true,"type":"boolean"},"status":{"$ref":"#/components/schemas/SelectableWebhookApiVersionStatus"},"successor":{"anyOf":[{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},{"type":"null"}]}},"required":["retirement","successor","selectable","status","contractNamespace","packageVersion","apiVersion","events"],"type":"object"},"SendAttachmentCaption":{"additionalProperties":false,"description":"Text shown with the attachment. Accepted on: telegram.","properties":{"format":{"minLength":1,"type":"string"},"text":{"minLength":1,"type":"string"}},"required":["format","text"],"type":"object"},"SendAttachmentContent":{"additionalProperties":false,"properties":{"attachmentId":{"$ref":"#/components/schemas/AttachmentId"},"metadata":{"additionalProperties":false,"properties":{"caption":{"$ref":"#/components/schemas/SendAttachmentCaption"}},"type":"object"},"type":{"const":"attachment","type":"string"}},"required":["type","attachmentId"],"type":"object"},"SendContent":{"anyOf":[{"$ref":"#/components/schemas/SendTextContent"},{"$ref":"#/components/schemas/SendTextUpdateContent"},{"$ref":"#/components/schemas/SendAttachmentContent"},{"$ref":"#/components/schemas/SendVoiceContent"},{"$ref":"#/components/schemas/SendReactionContent"},{"$ref":"#/components/schemas/SendMessageDeleteContent"},{"$ref":"#/components/schemas/SendMessageReadContent"},{"$ref":"#/components/schemas/SendSpaceParticipantsUpdateContent"},{"$ref":"#/components/schemas/SendSpaceTypingUpdateContent"},{"$ref":"#/components/schemas/SendPollContent"},{"$ref":"#/components/schemas/SendPollVoteContent"},{"$ref":"#/components/schemas/SendPollUpdateContent"},{"$ref":"#/components/schemas/SendGroupContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"SendContentPart":{"anyOf":[{"$ref":"#/components/schemas/SendTextContent"},{"$ref":"#/components/schemas/SendTextUpdateContent"},{"$ref":"#/components/schemas/SendAttachmentContent"},{"$ref":"#/components/schemas/SendVoiceContent"},{"$ref":"#/components/schemas/SendReactionContent"},{"$ref":"#/components/schemas/SendMessageDeleteContent"},{"$ref":"#/components/schemas/SendMessageReadContent"},{"$ref":"#/components/schemas/SendSpaceParticipantsUpdateContent"},{"$ref":"#/components/schemas/SendSpaceTypingUpdateContent"},{"$ref":"#/components/schemas/SendPollContent"},{"$ref":"#/components/schemas/SendPollVoteContent"},{"$ref":"#/components/schemas/SendPollUpdateContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"SendEmailMailbox":{"additionalProperties":false,"properties":{"address":{"maxLength":320,"minLength":3,"type":"string"},"name":{"maxLength":512,"minLength":1,"type":"string"}},"required":["address"],"type":"object"},"SendEmailOptions":{"additionalProperties":false,"properties":{"bcc":{"items":{"$ref":"#/components/schemas/SendEmailMailbox"},"maxItems":50,"type":"array"},"cc":{"items":{"$ref":"#/components/schemas/SendEmailMailbox"},"maxItems":50,"type":"array"},"replyTo":{"items":{"$ref":"#/components/schemas/SendEmailMailbox"},"maxItems":50,"type":"array"},"subject":{"maxLength":4096,"type":"string"},"to":{"items":{"$ref":"#/components/schemas/SendEmailMailbox"},"maxItems":50,"type":"array"}},"type":"object"},"SendGroupContent":{"additionalProperties":false,"properties":{"parts":{"items":{"$ref":"#/components/schemas/SendContentPart"},"minItems":1,"type":"array"},"type":{"const":"group","type":"string"}},"required":["type","parts"],"type":"object"},"SendMessageConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/AttachmentNotReadyProblem"},{"$ref":"#/components/schemas/SenderNotSendableProblem"},{"$ref":"#/components/schemas/SmsCampaignNotEligibleProblem"},{"$ref":"#/components/schemas/SpaceNotSendableProblem"}]},"SendMessageDeleteContent":{"additionalProperties":false,"properties":{"reason":{"minLength":1,"type":"string"},"scope":{"minLength":1,"type":"string"},"type":{"const":"message.delete","type":"string"}},"required":["type"],"type":"object"},"SendMessageForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"},{"$ref":"#/components/schemas/SharedLineInboundRequiredProblem"},{"$ref":"#/components/schemas/SharedLineNotAssignedProblem"}]},"SendMessageGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"SendMessageInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"SendMessageNotFoundProblem":{"oneOf":[{"$ref":"#/components/schemas/SpaceNotFoundProblem"},{"$ref":"#/components/schemas/MessageNotFoundProblem"},{"$ref":"#/components/schemas/AttachmentNotFoundProblem"},{"$ref":"#/components/schemas/SenderNotFoundProblem"}]},"SendMessageReadContent":{"additionalProperties":false,"properties":{"type":{"const":"message.read","type":"string"}},"required":["type"],"type":"object"},"SendMessageRequest":{"additionalProperties":false,"properties":{"content":{"$ref":"#/components/schemas/SendContent"},"email":{"$ref":"#/components/schemas/SendEmailOptions"},"parentMessageId":{"pattern":"^pho_msg_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"senderId":{"pattern":"^pho_usr_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"spaceId":{"pattern":"^pho_spc_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"telegram":{"$ref":"#/components/schemas/SendTelegramOptions"}},"required":["content","senderId","spaceId"],"type":"object"},"SendMessageUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/SharedLineGroupUnsupportedProblem"},{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/InvalidContentProblem"},{"$ref":"#/components/schemas/UnsupportedContentProblem"},{"$ref":"#/components/schemas/MessageTooLongProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"SendPollContent":{"additionalProperties":false,"properties":{"options":{"items":{"$ref":"#/components/schemas/PollOption"},"minItems":1,"type":"array"},"question":{"minLength":1,"type":"string"},"selectionMode":{"$ref":"#/components/schemas/PollSelectionMode"},"type":{"const":"poll","type":"string"}},"required":["type","question","options","selectionMode"],"type":"object"},"SendPollUpdateContent":{"additionalProperties":false,"properties":{"options":{"items":{"$ref":"#/components/schemas/PollOption"},"minItems":1,"type":"array"},"question":{"minLength":1,"type":"string"},"selectionMode":{"$ref":"#/components/schemas/PollSelectionMode"},"type":{"const":"poll.update","type":"string"}},"required":["type","question","options","selectionMode"],"type":"object"},"SendPollVoteContent":{"additionalProperties":false,"properties":{"selectedOptions":{"items":{"$ref":"#/components/schemas/PollOption"},"type":"array"},"type":{"const":"poll.vote","type":"string"}},"required":["type","selectedOptions"],"type":"object"},"SendReactionContent":{"additionalProperties":false,"properties":{"action":{"$ref":"#/components/schemas/ReactionAction"},"reaction":{"minLength":1,"type":"string"},"type":{"const":"reaction","type":"string"}},"required":["type","reaction","action"],"type":"object"},"SendSpaceParticipantsUpdateContent":{"additionalProperties":false,"properties":{"added":{"items":{"$ref":"#/components/schemas/UserSnapshot"},"type":"array"},"removed":{"items":{"$ref":"#/components/schemas/UserSnapshot"},"type":"array"},"type":{"const":"space.participants.update","type":"string"}},"required":["type","added","removed"],"type":"object"},"SendSpaceTypingUpdateContent":{"additionalProperties":false,"properties":{"type":{"const":"space.typing.update","type":"string"},"typing":{"description":"True starts or refreshes typing; false stops it or reports a stop.","type":"boolean"}},"required":["type","typing"],"type":"object"},"SendTelegramOptions":{"additionalProperties":false,"properties":{"richMessage":{"description":"Whether standalone text is sent as a Telegram rich message. Defaults to true; false sends a regular message. Not accepted with attachments.","type":"boolean"}},"type":"object"},"SendTextContent":{"additionalProperties":false,"properties":{"format":{"minLength":1,"type":"string"},"text":{"minLength":1,"type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format","text"],"type":"object"},"SendTextUpdateContent":{"additionalProperties":false,"properties":{"format":{"minLength":1,"type":"string"},"text":{"minLength":1,"type":"string"},"type":{"const":"text.update","type":"string"}},"required":["type","format","text"],"type":"object"},"SendVoiceContent":{"additionalProperties":false,"properties":{"attachmentId":{"$ref":"#/components/schemas/AttachmentId"},"type":{"const":"voice","type":"string"}},"required":["type","attachmentId"],"type":"object"},"SenderNotAuthorizedFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"sender_not_authorized","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"SenderNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SENDER_NOT_FOUND","status":404,"title":"Sender Not Found","type":"https://photon.codes/docs/problems/sender-not-found"},"properties":{"code":{"const":"SENDER_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Sender Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sender-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SenderNotSendableProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SENDER_NOT_SENDABLE","status":409,"title":"Sender Not Sendable","type":"https://photon.codes/docs/problems/sender-not-sendable"},"properties":{"code":{"const":"SENDER_NOT_SENDABLE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Sender Not Sendable","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sender-not-sendable","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SenderRegistrationRequiredFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"sender_registration_required","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"SenderUnavailableFailure":{"additionalProperties":false,"properties":{"acceptedAt":{"not":{}},"code":{"const":"sender_unavailable","type":"string"},"confirmedRecipientCount":{"not":{}},"failedAt":{"not":{}},"message":{"minLength":1,"type":"string"}},"required":["code","message"],"type":"object"},"SentMessage":{"allOf":[{"$ref":"#/components/schemas/Message"},{"$ref":"#/components/schemas/SupportedPlatformConstraint"},{"$ref":"#/components/schemas/SentMessageConstraint"}],"example":{"content":{"format":"plain","text":"Hello from Photon.","type":"text"},"createdAt":"2026-01-01T00:00:00.000Z","id":"pho_msg_00000000000000000000000001","metadata":{},"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001","sentBy":{"details":{"resourceId":"pho_res_00000000000000000000000001","type":"dedicated"},"handle":"+14155550123","id":"pho_usr_00000000000000000000000001","kind":"agent","metadata":{},"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001"},"space":{"details":{},"id":"pho_spc_00000000000000000000000001","kind":"direct","metadata":{},"participantIds":["pho_usr_00000000000000000000000001","pho_usr_00000000000000000000000002"],"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001"},"status":"dispatched","timestamps":{"dispatchedAt":"2026-01-01T00:00:00.000Z"},"updatedAt":"2026-01-01T00:00:00.000Z"}},"SentMessageConstraint":{"additionalProperties":true,"properties":{"status":{"$ref":"#/components/schemas/SentMessageStatus"}},"required":["status"],"type":"object"},"SentMessageStatus":{"enum":["dispatched","accepted","delivered","failed"],"type":"string"},"SetSpaceTypingConstraint":{"additionalProperties":true,"properties":{"content":{"$ref":"#/components/schemas/SetSpaceTypingContent"},"status":{"const":"dispatched","type":"string"}},"required":["content","status"],"type":"object"},"SetSpaceTypingContent":{"additionalProperties":false,"properties":{"type":{"const":"space.typing.update","type":"string"},"typing":{"type":"boolean"}},"required":["type","typing"],"type":"object"},"SetSpaceTypingForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"SetSpaceTypingGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"SetSpaceTypingInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"SetSpaceTypingNotFoundProblem":{"oneOf":[{"$ref":"#/components/schemas/SpaceNotFoundProblem"},{"$ref":"#/components/schemas/UserNotFoundProblem"}]},"SetSpaceTypingRequest":{"additionalProperties":false,"properties":{"senderId":{"pattern":"^pho_usr_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"typing":{"description":"True starts or refreshes typing; false stops it.","type":"boolean"}},"required":["senderId","typing"],"type":"object"},"SetSpaceTypingResponse":{"allOf":[{"$ref":"#/components/schemas/Message"},{"$ref":"#/components/schemas/SetSpaceTypingConstraint"}],"example":{"content":{"type":"space.typing.update","typing":true},"createdAt":"2026-01-01T00:00:00.000Z","id":"pho_msg_00000000000000000000000001","metadata":{},"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001","sentBy":{"details":{"resourceId":"pho_res_00000000000000000000000001","type":"dedicated"},"handle":"+14155550123","id":"pho_usr_00000000000000000000000001","kind":"agent","metadata":{},"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001"},"space":{"details":{},"id":"pho_spc_00000000000000000000000001","kind":"direct","metadata":{},"participantIds":["pho_usr_00000000000000000000000001","pho_usr_00000000000000000000000002"],"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001"},"status":"dispatched","timestamps":{"dispatchedAt":"2026-01-01T00:00:00.000Z"},"updatedAt":"2026-01-01T00:00:00.000Z"}},"SetSpaceTypingUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/OperationUnavailableProblem"},{"$ref":"#/components/schemas/ValidationFailedProblem"}]},"SharedLineAssignment":{"additionalProperties":false,"properties":{"assignedPhoneNumber":{"type":"string"},"assignmentId":{"type":"string"},"createdAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"email":{"type":"string"},"firstName":{"type":"string"},"handle":{"type":"string"},"lastName":{"type":"string"},"platform":{"$ref":"#/components/schemas/SharedLineAssignmentPlatform"},"projectId":{"type":"string"},"releasedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"updatedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["assignedPhoneNumber","assignmentId","createdAt","handle","platform","projectId","updatedAt"],"type":"object"},"SharedLineAssignmentPage":{"additionalProperties":false,"properties":{"assignments":{"items":{"$ref":"#/components/schemas/SharedLineAssignment"},"type":"array"},"nextPageToken":{"type":"string"}},"required":["assignments"],"type":"object"},"SharedLineAssignmentPlatform":{"enum":["imessage","whatsapp"],"type":"string"},"SharedLineCapExceededProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SHARED_LINE_CAP_EXCEEDED","status":409,"title":"Shared Line Cap Exceeded","type":"https://photon.codes/docs/problems/shared-line-cap-exceeded"},"properties":{"code":{"const":"SHARED_LINE_CAP_EXCEEDED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Shared Line Cap Exceeded","type":"string"},"type":{"const":"https://photon.codes/docs/problems/shared-line-cap-exceeded","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SharedLineGroupUnsupportedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SHARED_LINE_GROUP_UNSUPPORTED","status":422,"title":"Shared Line Group Unsupported","type":"https://photon.codes/docs/problems/shared-line-group-unsupported"},"properties":{"code":{"const":"SHARED_LINE_GROUP_UNSUPPORTED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":422,"type":"number"},"title":{"const":"Shared Line Group Unsupported","type":"string"},"type":{"const":"https://photon.codes/docs/problems/shared-line-group-unsupported","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SharedLineInboundRequiredProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SHARED_LINE_INBOUND_REQUIRED","status":403,"title":"Shared Line Inbound Required","type":"https://photon.codes/docs/problems/shared-line-inbound-required"},"properties":{"code":{"const":"SHARED_LINE_INBOUND_REQUIRED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":403,"type":"number"},"title":{"const":"Shared Line Inbound Required","type":"string"},"type":{"const":"https://photon.codes/docs/problems/shared-line-inbound-required","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SharedLineNotAssignedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SHARED_LINE_NOT_ASSIGNED","status":403,"title":"Shared Line Not Assigned","type":"https://photon.codes/docs/problems/shared-line-not-assigned"},"properties":{"code":{"const":"SHARED_LINE_NOT_ASSIGNED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":403,"type":"number"},"title":{"const":"Shared Line Not Assigned","type":"string"},"type":{"const":"https://photon.codes/docs/problems/shared-line-not-assigned","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SharedLinePoolExhaustedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SHARED_LINE_POOL_EXHAUSTED","status":503,"title":"Shared Line Pool Exhausted","type":"https://photon.codes/docs/problems/shared-line-pool-exhausted"},"properties":{"code":{"const":"SHARED_LINE_POOL_EXHAUSTED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":503,"type":"number"},"title":{"const":"Shared Line Pool Exhausted","type":"string"},"type":{"const":"https://photon.codes/docs/problems/shared-line-pool-exhausted","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SharedProjectPlatformSettings":{"additionalProperties":false,"properties":{"dedicatedLineAvailableNow":{"type":"boolean"},"maxUserAssignments":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"mode":{"const":"shared","type":"string"}},"required":["dedicatedLineAvailableNow","maxUserAssignments","mode"],"type":"object"},"SipAuthenticationAlgorithm":{"enum":["sha-256","md5"],"type":"string"},"SipEndpoint":{"additionalProperties":false,"properties":{"host":{"type":"string"},"port":{"maximum":65535,"minimum":1,"type":"integer"},"transport":{"$ref":"#/components/schemas/SipTransport"}},"required":["host","port","transport"],"type":"object"},"SipInboundConfiguration":{"additionalProperties":false,"properties":{"credentials":{"anyOf":[{"$ref":"#/components/schemas/SipInboundCredentials"},{"type":"null"}]},"destinationUri":{"type":"string"}},"required":["credentials","destinationUri"],"type":"object"},"SipInboundCredentials":{"additionalProperties":false,"properties":{"username":{"type":"string"}},"required":["username"],"type":"object"},"SipInboundCredentialsWithPassword":{"additionalProperties":false,"properties":{"password":{"minLength":1,"type":"string"},"username":{"maxLength":256,"minLength":1,"type":"string"}},"required":["password","username"],"type":"object"},"SipOutboundAuthentication":{"additionalProperties":false,"properties":{"algorithm":{"$ref":"#/components/schemas/SipAuthenticationAlgorithm"},"previousPasswordValidUntil":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}]},"username":{"type":"string"},"validFrom":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["algorithm","previousPasswordValidUntil","username","validFrom"],"type":"object"},"SipOutboundAuthenticationPolicy":{"additionalProperties":false,"properties":{"algorithm":{"$ref":"#/components/schemas/SipAuthenticationAlgorithm"}},"required":["algorithm"],"type":"object"},"SipOutboundConfiguration":{"additionalProperties":false,"properties":{"authentication":{"$ref":"#/components/schemas/SipOutboundAuthentication"},"connection":{"$ref":"#/components/schemas/SipOutboundConnection"}},"required":["authentication","connection"],"type":"object"},"SipOutboundConnection":{"additionalProperties":false,"properties":{"endpoints":{"items":{"$ref":"#/components/schemas/SipEndpoint"},"minItems":1,"type":"array"},"realm":{"type":"string"}},"required":["endpoints","realm"],"type":"object"},"SipTransport":{"enum":["udp","tcp","tls"],"type":"string"},"SlugTakenProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SLUG_TAKEN","status":409,"suggestion":"example-project-2","title":"Slug Already Taken","type":"https://photon.codes/docs/problems/slug-taken"},"properties":{"code":{"const":"SLUG_TAKEN","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"suggestion":{"type":"string"},"title":{"const":"Slug Already Taken","type":"string"},"type":{"const":"https://photon.codes/docs/problems/slug-taken","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SmsCampaignCapacityExceededProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SMS_CAMPAIGN_CAPACITY_EXCEEDED","status":409,"title":"Campaign number capacity exhausted","type":"https://photon.codes/docs/problems/sms-campaign-capacity-exceeded"},"properties":{"code":{"const":"SMS_CAMPAIGN_CAPACITY_EXCEEDED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Campaign number capacity exhausted","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sms-campaign-capacity-exceeded","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SmsCampaignContextUnavailableProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SMS_CAMPAIGN_CONTEXT_UNAVAILABLE","status":503,"title":"Campaign context unavailable","type":"https://photon.codes/docs/problems/sms-campaign-context-unavailable"},"properties":{"code":{"const":"SMS_CAMPAIGN_CONTEXT_UNAVAILABLE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":503,"type":"number"},"title":{"const":"Campaign context unavailable","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sms-campaign-context-unavailable","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SmsCampaignInvalidRequestProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SMS_CAMPAIGN_INVALID_REQUEST","status":400,"title":"Invalid SMS campaign request","type":"https://photon.codes/docs/problems/sms-campaign-invalid-request"},"properties":{"code":{"const":"SMS_CAMPAIGN_INVALID_REQUEST","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":400,"type":"number"},"title":{"const":"Invalid SMS campaign request","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sms-campaign-invalid-request","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SmsCampaignMutationInProgressProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"properties":{"code":{"const":"SMS_CAMPAIGN_MUTATION_IN_PROGRESS","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"operationId":{"type":"string"},"operationUrl":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Assignment mutation in progress","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sms-campaign-mutation-in-progress","type":"string"}},"required":["operationId","operationUrl","code","status","title","type"],"type":"object"},"SmsCampaignNotEligibleProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SMS_CAMPAIGN_NOT_ELIGIBLE","status":409,"title":"SMS Campaign Not Eligible","type":"https://photon.codes/docs/problems/sms-campaign-not-eligible"},"properties":{"code":{"const":"SMS_CAMPAIGN_NOT_ELIGIBLE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"SMS Campaign Not Eligible","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sms-campaign-not-eligible","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SmsCampaignNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SMS_CAMPAIGN_NOT_FOUND","status":404,"title":"Campaign not found","type":"https://photon.codes/docs/problems/sms-campaign-not-found"},"properties":{"code":{"const":"SMS_CAMPAIGN_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Campaign not found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sms-campaign-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SmsCampaignNotReadyProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SMS_CAMPAIGN_NOT_READY","status":409,"title":"Campaign not ready","type":"https://photon.codes/docs/problems/sms-campaign-not-ready"},"properties":{"code":{"const":"SMS_CAMPAIGN_NOT_READY","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Campaign not ready","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sms-campaign-not-ready","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SmsCampaignOrganizationMismatchProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SMS_CAMPAIGN_ORGANIZATION_MISMATCH","status":403,"title":"Campaign belongs to another organization","type":"https://photon.codes/docs/problems/sms-campaign-organization-mismatch"},"properties":{"code":{"const":"SMS_CAMPAIGN_ORGANIZATION_MISMATCH","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":403,"type":"number"},"title":{"const":"Campaign belongs to another organization","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sms-campaign-organization-mismatch","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SmsCampaignReconciliationRequiredProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SMS_CAMPAIGN_RECONCILIATION_REQUIRED","status":409,"title":"Campaign reconciliation required","type":"https://photon.codes/docs/problems/sms-campaign-reconciliation-required"},"properties":{"code":{"const":"SMS_CAMPAIGN_RECONCILIATION_REQUIRED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Campaign reconciliation required","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sms-campaign-reconciliation-required","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SmsCampaignVersionConflictProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SMS_CAMPAIGN_VERSION_CONFLICT","status":409,"title":"Assignment version conflict","type":"https://photon.codes/docs/problems/sms-campaign-version-conflict"},"properties":{"code":{"const":"SMS_CAMPAIGN_VERSION_CONFLICT","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Assignment version conflict","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sms-campaign-version-conflict","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SmsGroupContent":{"additionalProperties":false,"properties":{"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"parts":{"items":{"$ref":"#/components/schemas/SmsGroupContentPart"},"minItems":1,"type":"array"},"type":{"const":"group","type":"string"}},"required":["type","parts"],"type":"object"},"SmsGroupContentPart":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/TextUpdateContent"},{"$ref":"#/components/schemas/AttachmentContent"},{"$ref":"#/components/schemas/VoiceContent"},{"$ref":"#/components/schemas/ReactionContent"},{"$ref":"#/components/schemas/MessageDeleteContent"},{"$ref":"#/components/schemas/MessageReadContent"},{"$ref":"#/components/schemas/SpaceParticipantsUpdateContent"},{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},{"$ref":"#/components/schemas/PollContent"},{"$ref":"#/components/schemas/PollVoteContent"},{"$ref":"#/components/schemas/PollUpdateContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"SmsLineCampaign":{"additionalProperties":{},"properties":{"id":{"type":"string"},"organizationId":{"type":"string"}},"required":["id","organizationId"],"type":"object"},"SmsLineCampaignEligibility":{"enum":["eligible","blocked","unknown"],"type":"string"},"SmsLineNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SMS_LINE_NOT_FOUND","status":404,"title":"SMS line not found","type":"https://photon.codes/docs/problems/sms-line-not-found"},"properties":{"code":{"const":"SMS_LINE_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"SMS line not found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sms-line-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SmsLineUnsupportedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SMS_LINE_UNSUPPORTED","status":409,"title":"SMS line unsupported","type":"https://photon.codes/docs/problems/sms-line-unsupported"},"properties":{"code":{"const":"SMS_LINE_UNSUPPORTED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"SMS line unsupported","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sms-line-unsupported","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SmsMessage":{"oneOf":[{"$ref":"#/components/schemas/ReceivedSmsMessage"},{"$ref":"#/components/schemas/DispatchedSmsMessage"},{"$ref":"#/components/schemas/AcceptedSmsMessage"},{"$ref":"#/components/schemas/DeliveredSmsMessage"},{"$ref":"#/components/schemas/FailedSmsMessage"}]},"SmsMessageAcceptedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/SmsMessageAcceptedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"sms.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.accepted","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"SmsMessageAcceptedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"sms","type":"string"},"status":{"const":"accepted","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"SmsMessageContent":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/TextUpdateContent"},{"$ref":"#/components/schemas/AttachmentContent"},{"$ref":"#/components/schemas/VoiceContent"},{"$ref":"#/components/schemas/ReactionContent"},{"$ref":"#/components/schemas/MessageDeleteContent"},{"$ref":"#/components/schemas/MessageReadContent"},{"$ref":"#/components/schemas/SpaceParticipantsUpdateContent"},{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},{"$ref":"#/components/schemas/PollContent"},{"$ref":"#/components/schemas/PollVoteContent"},{"$ref":"#/components/schemas/PollUpdateContent"},{"$ref":"#/components/schemas/SmsGroupContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"SmsMessageDeliveredEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/SmsMessageDeliveredEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"sms.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.delivered","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"SmsMessageDeliveredEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"sms","type":"string"},"status":{"const":"delivered","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"SmsMessageDispatchedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/SmsMessageDispatchedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"sms.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.dispatched","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"SmsMessageDispatchedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"sms","type":"string"},"status":{"const":"dispatched","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"SmsMessageFailedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/SmsMessageFailedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"sms.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.failed","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"SmsMessageFailedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"sms","type":"string"},"status":{"const":"failed","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"SmsMessageReceivedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/SmsMessageReceivedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"sms.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.received","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"SmsMessageReceivedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"sms","type":"string"},"status":{"const":"received","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"SmsSpace":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"$ref":"#/components/schemas/SmsSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"const":"sms","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","kind","participantIds","details","metadata","createdAt","updatedAt"],"type":"object"},"SmsSpaceDetails":{"additionalProperties":false,"properties":{},"type":"object"},"SmsSpaceSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/SmsSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"const":"sms","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","kind","participantIds","details","metadata"],"type":"object"},"SmsSpaceTypingUpdatedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/SmsSpaceTypingUpdatedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"sms.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"space.typing.updated","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"SmsSpaceTypingUpdatedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"content":{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},"parentMessageId":{"not":{}},"platform":{"const":"sms","type":"string"},"status":{"const":"received","type":"string"}},"required":["platform","status","content"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"SmsSpaceUpdatedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/SmsSpaceUpdatedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"sms.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"space.updated","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"SmsSpaceUpdatedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"content":{"additionalProperties":{},"properties":{"type":{"const":"space.participants.update","type":"string"}},"required":["type"],"type":"object"},"platform":{"const":"sms","type":"string"},"status":{"enum":["received","delivered"],"type":"string"}},"required":["platform","status","content"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"SmsUser":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"$ref":"#/components/schemas/SmsUserDetails"},"handle":{"minLength":1,"type":"string"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"sms","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","handle","kind","details","metadata","createdAt","updatedAt"],"type":"object"},"SmsUserDetails":{"additionalProperties":false,"properties":{"carrier":{"$ref":"#/components/schemas/PhoneCarrier"},"countryCode":{"pattern":"^[A-Z]{2}$","type":"string"},"managedBy":{"$ref":"#/components/schemas/ManagerId"},"nationalFormat":{"minLength":1,"type":"string"},"resourceId":{"$ref":"#/components/schemas/ResourceId"}},"type":"object"},"SmsUserSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/SmsUserDetails"},"handle":{"minLength":1,"type":"string"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"sms","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","handle","kind","details","metadata"],"type":"object"},"SortOrder":{"enum":["asc","desc"],"type":"string"},"Space":{"anyOf":[{"$ref":"#/components/schemas/SmsSpace"},{"$ref":"#/components/schemas/WhatsappSpace"},{"$ref":"#/components/schemas/WhatsappBusinessSpace"},{"$ref":"#/components/schemas/EmailSpace"},{"$ref":"#/components/schemas/VoiceSpace"},{"$ref":"#/components/schemas/ImessageSpace"},{"$ref":"#/components/schemas/TelegramSpace"}],"x-photon-extension":{"discriminator":"platform","fallback":"#/$defs/UnknownSpace","reserved":["sms","whatsapp","whatsapp_business","email","voice","imessage","telegram"]}},"SpaceAmbiguousProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SPACE_AMBIGUOUS","status":409,"title":"Multiple Matching Spaces","type":"https://photon.codes/docs/problems/space-ambiguous"},"properties":{"code":{"const":"SPACE_AMBIGUOUS","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Multiple Matching Spaces","type":"string"},"type":{"const":"https://photon.codes/docs/problems/space-ambiguous","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SpaceCount":{"additionalProperties":false,"properties":{"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["count"],"type":"object"},"SpaceId":{"pattern":"^pho_spc_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"SpaceNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SPACE_NOT_FOUND","status":404,"title":"Space Not Found","type":"https://photon.codes/docs/problems/space-not-found"},"properties":{"code":{"const":"SPACE_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Space Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/space-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SpaceNotSendableProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SPACE_NOT_SENDABLE","status":409,"title":"Space Not Sendable","type":"https://photon.codes/docs/problems/space-not-sendable"},"properties":{"code":{"const":"SPACE_NOT_SENDABLE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Space Not Sendable","type":"string"},"type":{"const":"https://photon.codes/docs/problems/space-not-sendable","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SpaceOrderBy":{"enum":["created_at","updated_at","last_message_created_at"],"type":"string"},"SpacePage":{"additionalProperties":false,"example":{"items":[{"createdAt":"2026-01-01T00:00:00.000Z","details":{},"id":"pho_spc_00000000000000000000000001","kind":"direct","metadata":{},"participantIds":["pho_usr_00000000000000000000000001","pho_usr_00000000000000000000000002"],"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001","updatedAt":"2026-01-01T00:00:00.000Z"}]},"properties":{"items":{"description":"Unsupported platforms and records with unsupported data are omitted.","items":{"$ref":"#/components/schemas/PlatformSpace"},"type":"array"},"nextPageToken":{"description":"Continue with this token, even if items is empty. Omitted when no more pages remain.","maxLength":4096,"minLength":1,"pattern":"^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$","type":"string"}},"required":["items"],"type":"object"},"SpaceParticipantsUpdateContent":{"additionalProperties":false,"properties":{"added":{"items":{"$ref":"#/components/schemas/UserSnapshot"},"type":"array"},"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"removed":{"items":{"$ref":"#/components/schemas/UserSnapshot"},"type":"array"},"type":{"const":"space.participants.update","type":"string"}},"required":["type","added","removed"],"type":"object"},"SpaceRequiresOwnedAgentProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SPACE_REQUIRES_OWNED_AGENT","status":422,"title":"Space Requires Owned Agent","type":"https://photon.codes/docs/problems/space-requires-owned-agent"},"properties":{"code":{"const":"SPACE_REQUIRES_OWNED_AGENT","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":422,"type":"number"},"title":{"const":"Space Requires Owned Agent","type":"string"},"type":{"const":"https://photon.codes/docs/problems/space-requires-owned-agent","type":"string"}},"required":["code","status","title","type"],"type":"object"},"SpaceSnapshot":{"anyOf":[{"$ref":"#/components/schemas/SmsSpaceSnapshot"},{"$ref":"#/components/schemas/WhatsappSpaceSnapshot"},{"$ref":"#/components/schemas/WhatsappBusinessSpaceSnapshot"},{"$ref":"#/components/schemas/EmailSpaceSnapshot"},{"$ref":"#/components/schemas/VoiceSpaceSnapshot"},{"$ref":"#/components/schemas/ImessageSpaceSnapshot"},{"$ref":"#/components/schemas/TelegramSpaceSnapshot"}],"x-photon-extension":{"discriminator":"platform","fallback":"#/$defs/UnknownSpaceSnapshot","reserved":["sms","whatsapp","whatsapp_business","email","voice","imessage","telegram"]}},"SpaceTypingCacheControl":{"enum":["no-store"],"type":"string"},"SpaceTypingUpdateContent":{"additionalProperties":false,"properties":{"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"type":{"const":"space.typing.update","type":"string"},"typing":{"description":"True starts or refreshes typing; false stops it or reports a stop.","type":"boolean"}},"required":["type","typing"],"type":"object"},"SpaceTypingUpdatedEvent":{"anyOf":[{"$ref":"#/components/schemas/SmsSpaceTypingUpdatedEvent"},{"$ref":"#/components/schemas/WhatsappSpaceTypingUpdatedEvent"},{"$ref":"#/components/schemas/WhatsappBusinessSpaceTypingUpdatedEvent"},{"$ref":"#/components/schemas/EmailSpaceTypingUpdatedEvent"},{"$ref":"#/components/schemas/ImessageSpaceTypingUpdatedEvent"}]},"SpaceUpdatedEvent":{"anyOf":[{"$ref":"#/components/schemas/SmsSpaceUpdatedEvent"},{"$ref":"#/components/schemas/WhatsappSpaceUpdatedEvent"},{"$ref":"#/components/schemas/WhatsappBusinessSpaceUpdatedEvent"},{"$ref":"#/components/schemas/EmailSpaceUpdatedEvent"}]},"SpamClassification":{"additionalProperties":false,"properties":{"classifiedAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"confidence":{"maximum":1,"minimum":0,"type":"number"},"source":{"minLength":1,"type":"string"},"status":{"minLength":1,"type":"string"}},"required":["status","source"],"type":"object"},"SsoSubscriptionRequiredProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"SSO_SUBSCRIPTION_REQUIRED","status":412,"title":"SSO Subscription Required","type":"https://photon.codes/docs/problems/sso-subscription-required"},"properties":{"code":{"const":"SSO_SUBSCRIPTION_REQUIRED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":412,"type":"number"},"title":{"const":"SSO Subscription Required","type":"string"},"type":{"const":"https://photon.codes/docs/problems/sso-subscription-required","type":"string"}},"required":["code","status","title","type"],"type":"object"},"StartAccountPhoneVerificationForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/CaptchaRequiredProblem"},{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"StartAccountPhoneVerificationGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"StartAccountPhoneVerificationInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"StartAccountPhoneVerificationRequest":{"additionalProperties":false,"properties":{"captcha":{"$ref":"#/components/schemas/PhoneVerificationCaptcha"},"phoneNumber":{"pattern":"^[+\\d][\\d\\s().-]{6,24}$","type":"string"}},"required":["phoneNumber"],"type":"object"},"StartAccountPhoneVerificationResponse":{"additionalProperties":false,"properties":{"channel":{"const":"sms","type":"string"},"expiresAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"resendAvailableAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["channel","expiresAt","resendAvailableAt"],"type":"object"},"StartEnterpriseLoginRequest":{"anyOf":[{"$ref":"#/components/schemas/OrganizationEnterpriseLoginRequest"},{"$ref":"#/components/schemas/InvitationEnterpriseLoginRequest"},{"$ref":"#/components/schemas/RetryEnterpriseLoginRequest"}]},"StartEnterpriseLoginResponse":{"additionalProperties":{},"properties":{"url":{"format":"uri","type":"string"}},"required":["url"],"type":"object"},"StartedCall":{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"started","type":"string"},"timestamps":{"$ref":"#/components/schemas/StartedCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},"StartedCallTimestamps":{"additionalProperties":false,"properties":{"answeredAt":{"not":{}},"connectedAt":{"not":{}},"endedAt":{"not":{}},"ringingAt":{"not":{}},"startedAt":{"description":"When Voice admitted the attempt.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["startedAt"],"type":"object"},"SubscriptionStatus":{"description":"State of one category's subscription: the payer's dunning stage while it holds one. Dunning is organization-level, so the stage applies to every category at once, and paying clears it. Entitlements are unaffected at every stage; viewing, paying and releasing resources stay available. Only categories that hold a subscription appear at all; a cancelled category is absent rather than listed as terminated.","enum":["active","past_due","restricted","suspended","terminated"],"type":"string","x-enumDescriptions":{"active":"Subscribed and in good standing, on a free or a paid plan.","past_due":"An invoice is overdue, for less than 7 days. Everything stays available.","restricted":"An invoice has been overdue for 7 days. New purchases are refused; sending continues.","suspended":"An invoice has been overdue for 14 days, overdue usage exceeds what the plans allow, or a payment is disputed. Sending is paused as well.","terminated":"The subscription is gone. Not reported by the overview, which omits categories holding nothing."}},"SubscriptionTerms":{"additionalProperties":false,"description":"What one subscription is billed on now. plan is the plan as this subscription has it: its own prices when overridden, each fixed charge at the subscription's price and quantity, and entitlements resolved with overrides.","properties":{"cancelsAt":{"anyOf":[{"description":"ISO 8601.","type":"string"},{"type":"null"}],"description":"When the subscription ends instead of renewing, ISO 8601."},"category":{"description":"Category slug, e.g. analytics or messaging.","pattern":"^[a-z][a-z0-9_]{0,63}$","type":"string"},"currentPeriodEnd":{"description":"ISO 8601.","type":"string"},"currentPeriodStart":{"description":"ISO 8601.","type":"string"},"nextBillingAt":{"description":"When the next invoice is issued: the second after the period ends, ISO 8601.","type":"string"},"paymentMode":{"$ref":"#/components/schemas/PaymentMode"},"plan":{"$ref":"#/components/schemas/BillingPlan"},"planSource":{"$ref":"#/components/schemas/PlanSource"},"scheduledPlanChange":{"anyOf":[{"$ref":"#/components/schemas/ScheduledPlanChange"},{"type":"null"}],"description":"A downgrade waiting for the period end, or null."}},"required":["cancelsAt","category","currentPeriodEnd","currentPeriodStart","nextBillingAt","paymentMode","plan","planSource","scheduledPlanChange"],"type":"object"},"SucceededBillingOperation":{"additionalProperties":false,"properties":{"failure":{"type":"null"},"kind":{"$ref":"#/components/schemas/BillingOperationKind"},"operationId":{"description":"Stable handle for this provisioning action.","type":"string"},"resolvedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"result":{"$ref":"#/components/schemas/BillingOperationResult"},"status":{"const":"succeeded","description":"Terminal. The result is authoritative.","type":"string"},"submittedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["failure","kind","operationId","submittedAt","resolvedAt","result","status"],"type":"object"},"SupportedPlatform":{"additionalProperties":false,"properties":{"description":{"type":"string"},"displayName":{"type":"string"},"type":{"type":"string"}},"required":["description","displayName","type"],"type":"object"},"SupportedPlatformConstraint":{"additionalProperties":true,"properties":{"platform":{"$ref":"#/components/schemas/Platform"}},"required":["platform"],"type":"object"},"TelegramGroupContent":{"additionalProperties":false,"properties":{"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"parts":{"items":{"$ref":"#/components/schemas/TelegramGroupContentPart"},"minItems":1,"type":"array"},"type":{"const":"group","type":"string"}},"required":["type","parts"],"type":"object"},"TelegramGroupContentPart":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/AttachmentContent"},{"$ref":"#/components/schemas/VoiceContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"TelegramMessage":{"oneOf":[{"$ref":"#/components/schemas/ReceivedTelegramMessage"},{"$ref":"#/components/schemas/DispatchedTelegramMessage"},{"$ref":"#/components/schemas/AcceptedTelegramMessage"},{"$ref":"#/components/schemas/DeliveredTelegramMessage"},{"$ref":"#/components/schemas/FailedTelegramMessage"}]},"TelegramMessageAcceptedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/TelegramMessageAcceptedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"telegram.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.accepted","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"TelegramMessageAcceptedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"telegram","type":"string"},"status":{"const":"accepted","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"TelegramMessageContent":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/AttachmentContent"},{"$ref":"#/components/schemas/VoiceContent"},{"$ref":"#/components/schemas/TelegramGroupContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"TelegramMessageDeliveredEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/TelegramMessageDeliveredEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"telegram.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.delivered","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"TelegramMessageDeliveredEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"telegram","type":"string"},"status":{"const":"delivered","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"TelegramMessageDispatchedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/TelegramMessageDispatchedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"telegram.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.dispatched","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"TelegramMessageDispatchedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"telegram","type":"string"},"status":{"const":"dispatched","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"TelegramMessageFailedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/TelegramMessageFailedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"telegram.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.failed","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"TelegramMessageFailedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"telegram","type":"string"},"status":{"const":"failed","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"TelegramMessageReceivedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/TelegramMessageReceivedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"telegram.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.received","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"TelegramMessageReceivedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"telegram","type":"string"},"status":{"const":"received","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"TelegramProjectDeletedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"TELEGRAM_PROJECT_DELETED","status":409,"title":"Telegram Project Deleted","type":"https://photon.codes/docs/problems/telegram-project-deleted"},"properties":{"code":{"const":"TELEGRAM_PROJECT_DELETED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Telegram Project Deleted","type":"string"},"type":{"const":"https://photon.codes/docs/problems/telegram-project-deleted","type":"string"}},"required":["code","status","title","type"],"type":"object"},"TelegramProvisionInProgressProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"TELEGRAM_PROVISION_IN_PROGRESS","operationId":"pho_opr_00000000000000000000000001","operationUrl":"/v1/projects/pho_prj_00000000000000000000000001/platforms/operations/pho_opr_00000000000000000000000001","status":409,"title":"Telegram Provision In Progress","type":"https://photon.codes/docs/problems/telegram-provision-in-progress"},"properties":{"code":{"const":"TELEGRAM_PROVISION_IN_PROGRESS","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"operationId":{"type":"string"},"operationUrl":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Telegram Provision In Progress","type":"string"},"type":{"const":"https://photon.codes/docs/problems/telegram-provision-in-progress","type":"string"}},"required":["operationId","operationUrl","code","status","title","type"],"type":"object"},"TelegramSpace":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"$ref":"#/components/schemas/TelegramSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"const":"telegram","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","kind","participantIds","details","metadata","createdAt","updatedAt"],"type":"object"},"TelegramSpaceDetails":{"additionalProperties":false,"properties":{},"type":"object"},"TelegramSpaceSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/TelegramSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"const":"telegram","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","kind","participantIds","details","metadata"],"type":"object"},"TelegramUser":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"$ref":"#/components/schemas/TelegramUserDetails"},"handle":{"pattern":"^([1-9][0-9]{0,15}|chat:-?[1-9][0-9]{0,15})$","type":"string"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"telegram","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","handle","kind","details","metadata","createdAt","updatedAt"],"type":"object"},"TelegramUserDetails":{"additionalProperties":false,"properties":{"resourceId":{"$ref":"#/components/schemas/ResourceId"}},"type":"object"},"TelegramUserSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/TelegramUserDetails"},"handle":{"pattern":"^([1-9][0-9]{0,15}|chat:-?[1-9][0-9]{0,15})$","type":"string"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"telegram","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","handle","kind","details","metadata"],"type":"object"},"TerminalBillingOperation":{"oneOf":[{"$ref":"#/components/schemas/SucceededBillingOperation"},{"$ref":"#/components/schemas/FailedBillingOperation"}]},"TextContent":{"additionalProperties":false,"properties":{"format":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"text":{"minLength":1,"type":"string"},"type":{"const":"text","type":"string"}},"required":["type","format","text"],"type":"object"},"TextUpdateContent":{"additionalProperties":false,"properties":{"format":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"text":{"minLength":1,"type":"string"},"type":{"const":"text.update","type":"string"}},"required":["type","format","text"],"type":"object"},"TimestampOrderBy":{"enum":["created_at","updated_at"],"type":"string"},"UnassignSmsLineCampaignBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/SmsCampaignInvalidRequestProblem"},{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"UnassignSmsLineCampaignConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/SmsLineUnsupportedProblem"},{"$ref":"#/components/schemas/SmsCampaignNotReadyProblem"},{"$ref":"#/components/schemas/SmsCampaignVersionConflictProblem"},{"$ref":"#/components/schemas/SmsCampaignCapacityExceededProblem"},{"$ref":"#/components/schemas/SmsCampaignReconciliationRequiredProblem"},{"$ref":"#/components/schemas/SmsCampaignMutationInProgressProblem"}]},"UnassignSmsLineCampaignForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"},{"$ref":"#/components/schemas/SmsCampaignOrganizationMismatchProblem"}]},"UnassignSmsLineCampaignGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"UnassignSmsLineCampaignInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"UnassignSmsLineCampaignNotFoundProblem":{"oneOf":[{"$ref":"#/components/schemas/SmsCampaignNotFoundProblem"},{"$ref":"#/components/schemas/SmsLineNotFoundProblem"}]},"UnassignSmsLineCampaignServiceUnavailableProblem":{"oneOf":[{"$ref":"#/components/schemas/SmsCampaignContextUnavailableProblem"},{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}]},"UnassignVoiceLineProfileForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"UnassignVoiceLineProfileGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"UnassignVoiceLineProfileInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"UnavailableProjectSlug":{"additionalProperties":false,"properties":{"available":{"const":false,"type":"boolean"},"reason":{"$ref":"#/components/schemas/UnavailableProjectSlugReason"},"slug":{"type":"string"},"suggestion":{"type":"string"}},"required":["available","reason","slug"],"type":"object"},"UnavailableProjectSlugReason":{"enum":["reserved","retired","taken","too_short"],"type":"string"},"UnknownContent":{"additionalProperties":false,"properties":{"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"type":{"minLength":1,"type":"string"}},"required":["type"],"type":"object"},"UnknownMessage":{"oneOf":[{"$ref":"#/components/schemas/ReceivedUnknownMessage"},{"$ref":"#/components/schemas/DispatchedUnknownMessage"},{"$ref":"#/components/schemas/AcceptedUnknownMessage"},{"$ref":"#/components/schemas/DeliveredUnknownMessage"},{"$ref":"#/components/schemas/FailedUnknownMessage"}]},"UnknownSpace":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"propertyNames":{"type":"string"},"type":"object"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"$ref":"#/components/schemas/PlatformIdentifier"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","kind","participantIds","details","metadata","createdAt","updatedAt"],"type":"object"},"UnknownSpaceSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"propertyNames":{"type":"string"},"type":"object"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"$ref":"#/components/schemas/PlatformIdentifier"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","kind","participantIds","details","metadata"],"type":"object"},"UnknownUser":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"propertyNames":{"type":"string"},"type":"object"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"$ref":"#/components/schemas/PlatformIdentifier"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","kind","details","metadata","createdAt","updatedAt"],"type":"object"},"UnknownUserSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"propertyNames":{"type":"string"},"type":"object"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"$ref":"#/components/schemas/PlatformIdentifier"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","kind","details","metadata"],"type":"object"},"UnsupportedContentProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"UNSUPPORTED_CONTENT","status":422,"title":"Unsupported Content","type":"https://photon.codes/docs/problems/unsupported-content"},"properties":{"code":{"const":"UNSUPPORTED_CONTENT","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":422,"type":"number"},"title":{"const":"Unsupported Content","type":"string"},"type":{"const":"https://photon.codes/docs/problems/unsupported-content","type":"string"}},"required":["code","status","title","type"],"type":"object"},"UpdateAccountBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/HttpErrorProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"},{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"}]},"UpdateAccountForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"UpdateAccountGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"UpdateAccountInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"UpdateAccountRequest":{"additionalProperties":false,"properties":{"firstName":{"maxLength":256,"minLength":1,"type":"string"},"lastName":{"anyOf":[{"maxLength":256,"minLength":1,"type":"string"},{"type":"null"}]}},"type":"object"},"UpdateAccountUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"},{"$ref":"#/components/schemas/ValidationFailedProblem"}]},"UpdateAgentProfileBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"UpdateAgentProfileForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"UpdateAgentProfileGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"UpdateAgentProfileRequest":{"additionalProperties":false,"properties":{"firstName":{"minLength":1,"type":"string"},"lastName":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]}},"type":"object"},"UpdateAgentProfileUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"UpdateDefaultVoiceProfileConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/VoiceProfileDirectionConfiguredProblem"},{"$ref":"#/components/schemas/VoiceProfileVersionConflictProblem"},{"$ref":"#/components/schemas/VoiceOutboundOperationPendingProblem"}]},"UpdateDefaultVoiceProfileForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"UpdateDefaultVoiceProfileGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"UpdateDefaultVoiceProfileInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"UpdateDefaultVoiceProfileRequest":{"additionalProperties":false,"properties":{"expectedVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"mediaEncryption":{"$ref":"#/components/schemas/VoiceProfileMediaEncryption"},"protocol":{"const":"sip","type":"string"}},"required":["expectedVersion"],"type":"object"},"UpdateOrganizationSsoPolicyBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/InvalidReturnToProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"UpdateOrganizationSsoPolicyForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"UpdateOrganizationSsoPolicyGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"UpdateOrganizationSsoPolicyInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"UpdateOrganizationSsoPolicyPreconditionFailedProblem":{"oneOf":[{"$ref":"#/components/schemas/OrganizationSsoPreconditionFailedProblem"},{"$ref":"#/components/schemas/SsoSubscriptionRequiredProblem"}]},"UpdateOrganizationSsoPolicyRequest":{"additionalProperties":false,"properties":{"expectedVersion":{"pattern":"^(0|[1-9][0-9]{0,19})$","type":"string"},"ssoJitEnabled":{"type":"boolean"}},"required":["expectedVersion","ssoJitEnabled"],"type":"object"},"UpdateProjectApiKeyBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"UpdateProjectApiKeyForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"UpdateProjectApiKeyNotFoundProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectNotFoundProblem"},{"$ref":"#/components/schemas/ApiKeyNotFoundProblem"}]},"UpdateProjectApiKeyRequest":{"additionalProperties":false,"properties":{"permissions":{"items":{"$ref":"#/components/schemas/ApiKeyPermission"},"minItems":1,"type":"array"}},"required":["permissions"],"type":"object"},"UpdateProjectApiKeyUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"UpdateProjectBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"}]},"UpdateProjectForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"UpdateProjectGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"UpdateProjectRequest":{"additionalProperties":false,"properties":{"name":{"maxLength":256,"minLength":1,"type":"string"}},"required":["name"],"type":"object"},"UpdateProjectUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"UpdateVoiceProfileConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/VoiceProfileDirectionConfiguredProblem"},{"$ref":"#/components/schemas/VoiceProfileVersionConflictProblem"},{"$ref":"#/components/schemas/VoiceOutboundOperationPendingProblem"}]},"UpdateVoiceProfileForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"UpdateVoiceProfileGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"UpdateVoiceProfileInboundConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/VoiceProfileVersionConflictProblem"},{"$ref":"#/components/schemas/VoiceOutboundOperationPendingProblem"}]},"UpdateVoiceProfileInboundForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"UpdateVoiceProfileInboundGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"UpdateVoiceProfileInboundInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"UpdateVoiceProfileInboundRequest":{"additionalProperties":false,"properties":{"credentials":{"anyOf":[{"$ref":"#/components/schemas/SipInboundCredentialsWithPassword"},{"type":"null"}]},"destinationUri":{"maxLength":2048,"minLength":1,"type":"string"},"expectedVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["expectedVersion"],"type":"object"},"UpdateVoiceProfileInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"UpdateVoiceProfileOutboundAuthenticationConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/ProjectClosingProblem"},{"$ref":"#/components/schemas/VoiceProfileVersionConflictProblem"},{"$ref":"#/components/schemas/VoiceOutboundOperationPendingProblem"},{"$ref":"#/components/schemas/VoiceOutboundNotConfiguredProblem"}]},"UpdateVoiceProfileOutboundAuthenticationForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"UpdateVoiceProfileOutboundAuthenticationGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"UpdateVoiceProfileOutboundAuthenticationInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"UpdateVoiceProfileOutboundAuthenticationRequest":{"additionalProperties":false,"properties":{"authentication":{"$ref":"#/components/schemas/SipOutboundAuthenticationPolicy"},"expectedVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["authentication","expectedVersion"],"type":"object"},"UpdateVoiceProfileOutboundAuthenticationResponse":{"additionalProperties":false,"properties":{"outbound":{"$ref":"#/components/schemas/SipOutboundConfiguration"},"profileVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["outbound","profileVersion"],"type":"object"},"UpdateVoiceProfileRequest":{"additionalProperties":false,"properties":{"expectedVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"mediaEncryption":{"$ref":"#/components/schemas/VoiceProfileMediaEncryption"},"name":{"maxLength":100,"minLength":1,"type":"string"},"protocol":{"const":"sip","type":"string"}},"required":["expectedVersion"],"type":"object"},"UpdateWebhookDestinationBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/IdempotencyKeyRequiredProblem"},{"$ref":"#/components/schemas/IdempotencyKeyInvalidProblem"},{"$ref":"#/components/schemas/InvalidArgumentProblem"}]},"UpdateWebhookDestinationForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"UpdateWebhookDestinationGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/RequestTimeoutProblem"},{"$ref":"#/components/schemas/UpstreamTimeoutProblem"}]},"UpdateWebhookDestinationRequest":{"additionalProperties":false,"minProperties":1,"properties":{"description":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}]},"enabledEvents":{"$ref":"#/components/schemas/WebhookEventSelection"},"name":{"maxLength":256,"minLength":1,"type":"string"},"status":{"$ref":"#/components/schemas/WebhookDestinationStatus"},"url":{"description":"HTTPS URL without credentials or a fragment.","format":"uri","maxLength":2048,"minLength":1,"type":"string"}},"type":"object"},"UpdateWebhookDestinationUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}]},"UploadAttachmentBadRequestProblem":{"oneOf":[{"$ref":"#/components/schemas/HttpErrorProblem"},{"$ref":"#/components/schemas/InvalidAttachmentRequestProblem"}]},"UploadAttachmentConflictProblem":{"oneOf":[{"$ref":"#/components/schemas/AttachmentConflictProblem"},{"$ref":"#/components/schemas/AttachmentUploadNotReadyProblem"}]},"UploadAttachmentForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"},{"$ref":"#/components/schemas/ResourceMismatchProblem"}]},"UploadAttachmentGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"UploadAttachmentInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"UpstreamFailureProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"UPSTREAM_FAILURE","status":502,"title":"Upstream Service Failure","type":"https://photon.codes/docs/problems/upstream-failure"},"properties":{"code":{"const":"UPSTREAM_FAILURE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":502,"type":"number"},"title":{"const":"Upstream Service Failure","type":"string"},"type":{"const":"https://photon.codes/docs/problems/upstream-failure","type":"string"}},"required":["code","status","title","type"],"type":"object"},"UpstreamTimeoutProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"UPSTREAM_TIMEOUT","status":504,"title":"Upstream Service Timeout","type":"https://photon.codes/docs/problems/upstream-timeout"},"properties":{"code":{"const":"UPSTREAM_TIMEOUT","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":504,"type":"number"},"title":{"const":"Upstream Service Timeout","type":"string"},"type":{"const":"https://photon.codes/docs/problems/upstream-timeout","type":"string"}},"required":["code","status","title","type"],"type":"object"},"UpstreamUnavailableProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"UPSTREAM_UNAVAILABLE","status":503,"title":"Upstream Service Unavailable","type":"https://photon.codes/docs/problems/upstream-unavailable"},"properties":{"code":{"const":"UPSTREAM_UNAVAILABLE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":503,"type":"number"},"title":{"const":"Upstream Service Unavailable","type":"string"},"type":{"const":"https://photon.codes/docs/problems/upstream-unavailable","type":"string"}},"required":["code","status","title","type"],"type":"object"},"UsageCharge":{"additionalProperties":false,"properties":{"chargeCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"chargeModel":{"$ref":"#/components/schemas/UsageChargeModel"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"filters":{"items":{"$ref":"#/components/schemas/UsageChargeFilter"},"type":"array"},"invoiceable":{"type":"boolean"},"metricCode":{"type":"string"},"minimumAmountCents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"payInAdvance":{"type":"boolean"},"pricing":{"$ref":"#/components/schemas/UsageChargePricing"},"prorated":{"type":"boolean"}},"required":["chargeCode","chargeModel","displayName","filters","invoiceable","metricCode","minimumAmountCents","payInAdvance","pricing","prorated"],"type":"object"},"UsageChargeFilter":{"additionalProperties":false,"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"pricing":{"$ref":"#/components/schemas/UsageChargePricing"},"values":{"items":{"$ref":"#/components/schemas/UsageChargeFilterValue"},"type":"array"}},"required":["displayName","pricing","values"],"type":"object"},"UsageChargeFilterValue":{"additionalProperties":false,"properties":{"key":{"type":"string"},"values":{"items":{"type":"string"},"type":"array"}},"required":["key","values"],"type":"object"},"UsageChargeModel":{"enum":["dynamic","graduated","graduated_percentage","package","percentage","standard","volume"],"type":"string"},"UsageChargePricing":{"additionalProperties":false,"properties":{"amount":{"anyOf":[{"description":"Decimal amount in the plan currency. Kept as text so sub-cent unit prices remain exact.","pattern":"^\\d+(?:\\.\\d+)?$","type":"string"},{"type":"null"}]},"fixedAmount":{"anyOf":[{"description":"Decimal amount in the plan currency. Kept as text so sub-cent unit prices remain exact.","pattern":"^\\d+(?:\\.\\d+)?$","type":"string"},{"type":"null"}]},"freeUnits":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"freeUnitsPerEvents":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"freeUnitsPerTotalAggregation":{"anyOf":[{"description":"Decimal amount in the plan currency. Kept as text so sub-cent unit prices remain exact.","pattern":"^\\d+(?:\\.\\d+)?$","type":"string"},{"type":"null"}]},"packageSize":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"perTransactionMaxAmount":{"anyOf":[{"description":"Decimal amount in the plan currency. Kept as text so sub-cent unit prices remain exact.","pattern":"^\\d+(?:\\.\\d+)?$","type":"string"},{"type":"null"}]},"perTransactionMinAmount":{"anyOf":[{"description":"Decimal amount in the plan currency. Kept as text so sub-cent unit prices remain exact.","pattern":"^\\d+(?:\\.\\d+)?$","type":"string"},{"type":"null"}]},"pricingGroupKeys":{"items":{"type":"string"},"type":"array"},"rate":{"anyOf":[{"description":"Decimal amount in the plan currency. Kept as text so sub-cent unit prices remain exact.","pattern":"^\\d+(?:\\.\\d+)?$","type":"string"},{"type":"null"}]},"tiers":{"items":{"$ref":"#/components/schemas/UsageChargeTier"},"type":"array"}},"required":["amount","fixedAmount","freeUnits","freeUnitsPerEvents","freeUnitsPerTotalAggregation","packageSize","perTransactionMaxAmount","perTransactionMinAmount","pricingGroupKeys","rate","tiers"],"type":"object"},"UsageChargeTier":{"additionalProperties":false,"properties":{"flatAmount":{"anyOf":[{"description":"Decimal amount in the plan currency. Kept as text so sub-cent unit prices remain exact.","pattern":"^\\d+(?:\\.\\d+)?$","type":"string"},{"type":"null"}]},"fromUnit":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"perUnitAmount":{"anyOf":[{"description":"Decimal amount in the plan currency. Kept as text so sub-cent unit prices remain exact.","pattern":"^\\d+(?:\\.\\d+)?$","type":"string"},{"type":"null"}]},"rate":{"anyOf":[{"description":"Decimal amount in the plan currency. Kept as text so sub-cent unit prices remain exact.","pattern":"^\\d+(?:\\.\\d+)?$","type":"string"},{"type":"null"}]},"toUnit":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]}},"required":["flatAmount","fromUnit","perUnitAmount","rate","toUnit"],"type":"object"},"User":{"anyOf":[{"$ref":"#/components/schemas/SmsUser"},{"$ref":"#/components/schemas/WhatsappUser"},{"$ref":"#/components/schemas/WhatsappBusinessUser"},{"$ref":"#/components/schemas/EmailUser"},{"$ref":"#/components/schemas/VoiceUser"},{"$ref":"#/components/schemas/ImessageUser"},{"$ref":"#/components/schemas/TelegramUser"}],"x-photon-extension":{"discriminator":"platform","fallback":"#/$defs/UnknownUser","reserved":["sms","whatsapp","whatsapp_business","email","voice","imessage","telegram"]}},"UserCount":{"additionalProperties":false,"properties":{"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["count"],"type":"object"},"UserId":{"pattern":"^pho_usr_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"UserIdentityConflictProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"USER_IDENTITY_CONFLICT","status":409,"title":"User Identity Conflict","type":"https://photon.codes/docs/problems/user-identity-conflict"},"properties":{"code":{"const":"USER_IDENTITY_CONFLICT","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"User Identity Conflict","type":"string"},"type":{"const":"https://photon.codes/docs/problems/user-identity-conflict","type":"string"}},"required":["code","status","title","type"],"type":"object"},"UserLineType":{"enum":["shared","dedicated"],"type":"string"},"UserNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"USER_NOT_FOUND","status":404,"title":"User Not Found","type":"https://photon.codes/docs/problems/user-not-found"},"properties":{"code":{"const":"USER_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"User Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/user-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"UserPage":{"additionalProperties":false,"example":{"items":[{"createdAt":"2026-01-01T00:00:00.000Z","details":{"resourceId":"pho_res_00000000000000000000000001","type":"dedicated"},"handle":"+14155550123","id":"pho_usr_00000000000000000000000001","kind":"agent","metadata":{},"platform":"whatsapp","projectId":"pho_prj_00000000000000000000000001","updatedAt":"2026-01-01T00:00:00.000Z"}]},"properties":{"items":{"description":"Unsupported platforms and records with unsupported data are omitted.","items":{"$ref":"#/components/schemas/PlatformUser"},"type":"array"},"nextPageToken":{"description":"Continue with this token, even if items is empty. Omitted when no more pages remain.","maxLength":4096,"minLength":1,"pattern":"^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$","type":"string"}},"required":["items"],"type":"object"},"UserSnapshot":{"anyOf":[{"$ref":"#/components/schemas/SmsUserSnapshot"},{"$ref":"#/components/schemas/WhatsappUserSnapshot"},{"$ref":"#/components/schemas/WhatsappBusinessUserSnapshot"},{"$ref":"#/components/schemas/EmailUserSnapshot"},{"$ref":"#/components/schemas/VoiceUserSnapshot"},{"$ref":"#/components/schemas/ImessageUserSnapshot"},{"$ref":"#/components/schemas/TelegramUserSnapshot"}],"x-photon-extension":{"discriminator":"platform","fallback":"#/$defs/UnknownUserSnapshot","reserved":["sms","whatsapp","whatsapp_business","email","voice","imessage","telegram"]}},"ValidationFailedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"VALIDATION_FAILED","issues":[{"code":"invalid_type","location":"json","message":"Expected a string.","path":"/name"}],"status":422,"title":"Request Validation Failed","type":"https://photon.codes/docs/problems/validation-failed"},"properties":{"code":{"const":"VALIDATION_FAILED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"issues":{"items":{"$ref":"#/components/schemas/ValidationIssue"},"type":"array"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":422,"type":"number"},"title":{"const":"Request Validation Failed","type":"string"},"type":{"const":"https://photon.codes/docs/problems/validation-failed","type":"string"}},"required":["issues","code","status","title","type"],"type":"object"},"ValidationIssue":{"additionalProperties":false,"properties":{"code":{"minLength":1,"type":"string"},"location":{"$ref":"#/components/schemas/ValidationLocation"},"message":{"minLength":1,"type":"string"},"path":{"type":"string"}},"required":["code","location","message","path"],"type":"object"},"ValidationLocation":{"enum":["body","cookie","form","header","json","param","query"],"type":"string"},"VerifyTotpEnrollmentForbiddenProblem":{"oneOf":[{"$ref":"#/components/schemas/ForbiddenProblem"},{"$ref":"#/components/schemas/InsufficientScopeProblem"},{"$ref":"#/components/schemas/OrganizationSsoRequiredProblem"}]},"VerifyTotpEnrollmentGatewayTimeoutProblem":{"oneOf":[{"$ref":"#/components/schemas/UpstreamTimeoutProblem"},{"$ref":"#/components/schemas/RequestTimeoutProblem"}]},"VerifyTotpEnrollmentInternalServerErrorProblem":{"oneOf":[{"$ref":"#/components/schemas/InternalErrorProblem"},{"$ref":"#/components/schemas/InvalidAuthContextProblem"}]},"VerifyTotpEnrollmentRequest":{"additionalProperties":false,"properties":{"enrollmentToken":{"description":"Opaque enrollmentToken returned by begin TOTP enrollment. Submit it before expiresAt.","maxLength":4096,"minLength":1,"type":"string"},"verificationCode":{"description":"Six-digit code from the authenticator configured with the enrollment secret. Send as a string to preserve leading zeros.","pattern":"^[0-9]{6}$","type":"string"}},"required":["enrollmentToken","verificationCode"],"type":"object"},"VerifyTotpEnrollmentResponse":{"additionalProperties":false,"properties":{"enrolled":{"const":true,"description":"Always true after the TOTP factor has been successfully verified and enrolled.","type":"boolean"},"factorId":{"description":"Identifier of a TOTP authentication factor, prefixed with auth_factor_.","maxLength":128,"pattern":"^auth_factor_[A-Za-z0-9]+$","type":"string"}},"required":["enrolled","factorId"],"type":"object"},"VerifyTotpEnrollmentUnprocessableEntityProblem":{"oneOf":[{"$ref":"#/components/schemas/ValidationFailedProblem"},{"$ref":"#/components/schemas/MfaVerificationFailedProblem"}]},"VoiceCallAnsweredEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/VoiceCallAnsweredEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"voice.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"call.answered","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"VoiceCallAnsweredEventData":{"additionalProperties":false,"properties":{"object":{"$ref":"#/components/schemas/Call"},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"VoiceCallConnectedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/VoiceCallConnectedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"voice.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"call.connected","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"VoiceCallConnectedEventData":{"additionalProperties":false,"properties":{"object":{"$ref":"#/components/schemas/Call"},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"VoiceCallDtmfReceivedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/VoiceCallDtmfReceivedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"voice.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"call.dtmf.received","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"VoiceCallDtmfReceivedEventData":{"additionalProperties":false,"properties":{"object":{"oneOf":[{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"minItems":1,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"started","type":"string"},"timestamps":{"$ref":"#/components/schemas/StartedCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"minItems":1,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"ringing","type":"string"},"timestamps":{"$ref":"#/components/schemas/RingingCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"minItems":1,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"answered","type":"string"},"timestamps":{"$ref":"#/components/schemas/AnsweredCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"minItems":1,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"connected","type":"string"},"timestamps":{"$ref":"#/components/schemas/ConnectedCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"minItems":1,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"completed","type":"string"},"timestamps":{"$ref":"#/components/schemas/EndedAfterConnectCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"minItems":1,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"busy","type":"string"},"timestamps":{"$ref":"#/components/schemas/EndedCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"minItems":1,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"no_answer","type":"string"},"timestamps":{"$ref":"#/components/schemas/EndedBeforeAnswerCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"minItems":1,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"rejected","type":"string"},"timestamps":{"$ref":"#/components/schemas/EndedCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"minItems":1,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"canceled","type":"string"},"timestamps":{"$ref":"#/components/schemas/EndedBeforeAnswerCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"},{"additionalProperties":false,"properties":{"callee":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"caller":{"$ref":"#/components/schemas/VoiceUserSnapshot"},"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"dtmfInputs":{"description":"The latest recorded key presses, at most 100, in recording order. Empty when none are recorded.","items":{"$ref":"#/components/schemas/CallDtmfInput"},"maxItems":100,"minItems":1,"type":"array"},"dtmfInputsTruncated":{"description":"True once an earlier key press has been dropped from dtmfInputs; it then stays true.","type":"boolean"},"id":{"$ref":"#/components/schemas/CallId"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"space":{"$ref":"#/components/schemas/VoiceDirectSpaceSnapshot"},"status":{"const":"failed","type":"string"},"timestamps":{"$ref":"#/components/schemas/EndedCallTimestamps"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"voiceProfile":{"$ref":"#/components/schemas/CallVoiceProfile"}},"required":["id","projectId","platform","createdAt","updatedAt","direction","voiceProfile","space","caller","callee","dtmfInputs","dtmfInputsTruncated","metadata","status","timestamps"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"VoiceCallEndedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/VoiceCallEndedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"voice.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"call.ended","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"VoiceCallEndedEventData":{"additionalProperties":false,"properties":{"object":{"$ref":"#/components/schemas/EndedCall"},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"VoiceCallRingingEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/VoiceCallRingingEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"voice.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"call.ringing","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"VoiceCallRingingEventData":{"additionalProperties":false,"properties":{"object":{"$ref":"#/components/schemas/Call"},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"VoiceCallStartedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/VoiceCallStartedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"voice.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"call.started","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"VoiceCallStartedEventData":{"additionalProperties":false,"properties":{"object":{"$ref":"#/components/schemas/Call"},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"VoiceContent":{"additionalProperties":false,"properties":{"attachmentId":{"$ref":"#/components/schemas/AttachmentId"},"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"type":{"const":"voice","type":"string"}},"required":["type","attachmentId"],"type":"object"},"VoiceDefaultProfileAssignmentForbiddenProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"VOICE_DEFAULT_PROFILE_ASSIGNMENT_FORBIDDEN","status":409,"title":"Voice Default Profile Assignment Forbidden","type":"https://photon.codes/docs/problems/voice-default-profile-assignment-forbidden"},"properties":{"code":{"const":"VOICE_DEFAULT_PROFILE_ASSIGNMENT_FORBIDDEN","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Voice Default Profile Assignment Forbidden","type":"string"},"type":{"const":"https://photon.codes/docs/problems/voice-default-profile-assignment-forbidden","type":"string"}},"required":["code","status","title","type"],"type":"object"},"VoiceDefaultProfileDeletionForbiddenProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"VOICE_DEFAULT_PROFILE_DELETION_FORBIDDEN","status":409,"title":"Voice Default Profile Deletion Forbidden","type":"https://photon.codes/docs/problems/voice-default-profile-deletion-forbidden"},"properties":{"code":{"const":"VOICE_DEFAULT_PROFILE_DELETION_FORBIDDEN","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Voice Default Profile Deletion Forbidden","type":"string"},"type":{"const":"https://photon.codes/docs/problems/voice-default-profile-deletion-forbidden","type":"string"}},"required":["code","status","title","type"],"type":"object"},"VoiceDefaultProfileExistsProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"VOICE_DEFAULT_PROFILE_EXISTS","status":409,"title":"Voice Default Profile Exists","type":"https://photon.codes/docs/problems/voice-default-profile-exists"},"properties":{"code":{"const":"VOICE_DEFAULT_PROFILE_EXISTS","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Voice Default Profile Exists","type":"string"},"type":{"const":"https://photon.codes/docs/problems/voice-default-profile-exists","type":"string"}},"required":["code","status","title","type"],"type":"object"},"VoiceDefaultProfileRequiredProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"VOICE_DEFAULT_PROFILE_REQUIRED","status":409,"title":"Voice Default Profile Required","type":"https://photon.codes/docs/problems/voice-default-profile-required"},"properties":{"code":{"const":"VOICE_DEFAULT_PROFILE_REQUIRED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Voice Default Profile Required","type":"string"},"type":{"const":"https://photon.codes/docs/problems/voice-default-profile-required","type":"string"}},"required":["code","status","title","type"],"type":"object"},"VoiceDirectSpaceSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/VoiceSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"const":"direct","type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"maxItems":2,"minItems":2,"type":"array","uniqueItems":true},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","kind","participantIds","details","metadata"],"type":"object"},"VoiceLineProfileAssignment":{"additionalProperties":false,"properties":{"profileId":{"type":"string"},"profileVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"projectId":{"type":"string"},"resourceId":{"type":"string"},"resourceVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"updatedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["projectId","resourceId","resourceVersion","updatedAt"],"type":"object"},"VoiceLineProfileAssignmentUpdate":{"additionalProperties":false,"properties":{"expectedVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"profileId":{"anyOf":[{"type":"string"},{"type":"null"}]},"resourceId":{"type":"string"}},"required":["expectedVersion","profileId","resourceId"],"type":"object"},"VoiceMetadata":{"additionalProperties":false,"properties":{"durationMs":{"description":"Server-observed recording duration in milliseconds, when known.","maximum":9007199254740991,"minimum":0,"type":"integer"},"waveform":{"description":"Server-provided normalized waveform samples for optional display.","items":{"maximum":1,"minimum":0,"type":"number"},"type":"array"}},"type":"object"},"VoiceOutboundConfiguredProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"VOICE_OUTBOUND_CONFIGURED","status":409,"title":"Voice Outbound Already Configured","type":"https://photon.codes/docs/problems/voice-outbound-configured"},"properties":{"code":{"const":"VOICE_OUTBOUND_CONFIGURED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Voice Outbound Already Configured","type":"string"},"type":{"const":"https://photon.codes/docs/problems/voice-outbound-configured","type":"string"}},"required":["code","status","title","type"],"type":"object"},"VoiceOutboundCredentialRotationMode":{"enum":["normal","emergency"],"type":"string"},"VoiceOutboundNotConfiguredProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"VOICE_OUTBOUND_NOT_CONFIGURED","status":409,"title":"Voice Outbound Not Configured","type":"https://photon.codes/docs/problems/voice-outbound-not-configured"},"properties":{"code":{"const":"VOICE_OUTBOUND_NOT_CONFIGURED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Voice Outbound Not Configured","type":"string"},"type":{"const":"https://photon.codes/docs/problems/voice-outbound-not-configured","type":"string"}},"required":["code","status","title","type"],"type":"object"},"VoiceOutboundOperationPendingProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"VOICE_OUTBOUND_OPERATION_PENDING","status":409,"title":"Voice Outbound Operation Pending","type":"https://photon.codes/docs/problems/voice-outbound-operation-pending"},"properties":{"code":{"const":"VOICE_OUTBOUND_OPERATION_PENDING","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Voice Outbound Operation Pending","type":"string"},"type":{"const":"https://photon.codes/docs/problems/voice-outbound-operation-pending","type":"string"}},"required":["code","status","title","type"],"type":"object"},"VoiceProfile":{"additionalProperties":false,"properties":{"configuration":{"$ref":"#/components/schemas/VoiceProfileConfiguration"},"createdAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"isDefault":{"type":"boolean"},"lineCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"mediaEncryption":{"$ref":"#/components/schemas/VoiceProfileMediaEncryption"},"name":{"type":"string"},"profileId":{"type":"string"},"projectId":{"type":"string"},"protocol":{"const":"sip","type":"string"},"updatedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"version":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["configuration","createdAt","isDefault","lineCount","mediaEncryption","name","profileId","projectId","protocol","updatedAt","version"],"type":"object"},"VoiceProfileConfiguration":{"additionalProperties":false,"properties":{"inbound":{"anyOf":[{"$ref":"#/components/schemas/SipInboundConfiguration"},{"type":"null"}]},"outbound":{"anyOf":[{"$ref":"#/components/schemas/SipOutboundConfiguration"},{"type":"null"}]}},"required":["inbound","outbound"],"type":"object"},"VoiceProfileDirectionConfiguredProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"VOICE_PROFILE_DIRECTION_CONFIGURED","status":409,"title":"Voice Profile Direction Configured","type":"https://photon.codes/docs/problems/voice-profile-direction-configured"},"properties":{"code":{"const":"VOICE_PROFILE_DIRECTION_CONFIGURED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Voice Profile Direction Configured","type":"string"},"type":{"const":"https://photon.codes/docs/problems/voice-profile-direction-configured","type":"string"}},"required":["code","status","title","type"],"type":"object"},"VoiceProfileId":{"pattern":"^pho_vpf_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"VoiceProfileInUseProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"VOICE_PROFILE_IN_USE","status":409,"title":"Voice Profile In Use","type":"https://photon.codes/docs/problems/voice-profile-in-use"},"properties":{"code":{"const":"VOICE_PROFILE_IN_USE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Voice Profile In Use","type":"string"},"type":{"const":"https://photon.codes/docs/problems/voice-profile-in-use","type":"string"}},"required":["code","status","title","type"],"type":"object"},"VoiceProfileInboundConfiguration":{"additionalProperties":false,"properties":{"inbound":{"anyOf":[{"$ref":"#/components/schemas/SipInboundConfiguration"},{"type":"null"}]},"profileVersion":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["inbound","profileVersion"],"type":"object"},"VoiceProfileMediaEncryption":{"enum":["auto","srtp"],"type":"string"},"VoiceProfileNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"VOICE_PROFILE_NOT_FOUND","status":404,"title":"Voice Profile Not Found","type":"https://photon.codes/docs/problems/voice-profile-not-found"},"properties":{"code":{"const":"VOICE_PROFILE_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Voice Profile Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/voice-profile-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"VoiceProfilePage":{"additionalProperties":false,"properties":{"nextPageToken":{"type":"string"},"profiles":{"items":{"$ref":"#/components/schemas/VoiceProfile"},"type":"array"}},"required":["profiles"],"type":"object"},"VoiceProfileVersionConflictProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"VOICE_PROFILE_VERSION_CONFLICT","status":409,"title":"Voice Profile Version Conflict","type":"https://photon.codes/docs/problems/voice-profile-version-conflict"},"properties":{"code":{"const":"VOICE_PROFILE_VERSION_CONFLICT","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"Voice Profile Version Conflict","type":"string"},"type":{"const":"https://photon.codes/docs/problems/voice-profile-version-conflict","type":"string"}},"required":["code","status","title","type"],"type":"object"},"VoiceSpace":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"$ref":"#/components/schemas/VoiceSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","kind","participantIds","details","metadata","createdAt","updatedAt"],"type":"object"},"VoiceSpaceDetails":{"additionalProperties":false,"properties":{},"type":"object"},"VoiceSpaceSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/VoiceSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","kind","participantIds","details","metadata"],"type":"object"},"VoiceUser":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"$ref":"#/components/schemas/VoiceUserDetails"},"handle":{"pattern":"^\\+[1-9][0-9]{1,14}$","type":"string"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","handle","kind","details","metadata","createdAt","updatedAt"],"type":"object"},"VoiceUserDetails":{"additionalProperties":false,"properties":{"managedBy":{"$ref":"#/components/schemas/ManagerId"},"resourceId":{"$ref":"#/components/schemas/ResourceId"}},"type":"object"},"VoiceUserSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/VoiceUserDetails"},"handle":{"pattern":"^\\+[1-9][0-9]{1,14}$","type":"string"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"voice","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","handle","kind","details","metadata"],"type":"object"},"WebhookApiVersion":{"oneOf":[{"$ref":"#/components/schemas/SelectableWebhookApiVersion"},{"$ref":"#/components/schemas/DeprecatedWebhookApiVersion"}]},"WebhookApiVersionRetirement":{"additionalProperties":false,"properties":{"migrationGuide":{"minLength":1,"type":"string"},"reason":{"minLength":1,"type":"string"}},"required":["migrationGuide","reason"],"type":"object"},"WebhookDestination":{"additionalProperties":false,"properties":{"apiVersion":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"createdAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"deletedAt":{"anyOf":[{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"destinationId":{"pattern":"^pho_whd_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"enabledEvents":{"$ref":"#/components/schemas/WebhookEventSelection"},"name":{"type":"string"},"projectId":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"},"status":{"$ref":"#/components/schemas/WebhookDestinationStatus"},"updatedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"url":{"format":"uri","type":"string"}},"required":["apiVersion","createdAt","deletedAt","description","destinationId","enabledEvents","name","projectId","status","updatedAt","url"],"type":"object"},"WebhookDestinationDeletedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"WEBHOOK_DESTINATION_DELETED","status":410,"title":"Webhook Destination Deleted","type":"https://photon.codes/docs/problems/webhook-destination-deleted"},"properties":{"code":{"const":"WEBHOOK_DESTINATION_DELETED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":410,"type":"number"},"title":{"const":"Webhook Destination Deleted","type":"string"},"type":{"const":"https://photon.codes/docs/problems/webhook-destination-deleted","type":"string"}},"required":["code","status","title","type"],"type":"object"},"WebhookDestinationNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"WEBHOOK_DESTINATION_NOT_FOUND","status":404,"title":"Webhook Destination Not Found","type":"https://photon.codes/docs/problems/webhook-destination-not-found"},"properties":{"code":{"const":"WEBHOOK_DESTINATION_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"Webhook Destination Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/webhook-destination-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"WebhookDestinationPage":{"additionalProperties":false,"properties":{"destinations":{"items":{"$ref":"#/components/schemas/WebhookDestination"},"type":"array"},"nextPageToken":{"minLength":1,"type":"string"}},"required":["destinations"],"type":"object"},"WebhookDestinationStatus":{"enum":["enabled","disabled"],"type":"string"},"WebhookEgressAddress":{"format":"ipv4","pattern":"^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$","type":"string"},"WebhookEventSchema":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"propertyNames":{"type":"string"},"type":"object"},"WebhookEventSelection":{"anyOf":[{"$ref":"#/components/schemas/AllWebhookEvents"},{"$ref":"#/components/schemas/WebhookEventTypeList"}]},"WebhookEventType":{"additionalProperties":false,"properties":{"audience":{"$ref":"#/components/schemas/WebhookEventTypeAudience"},"description":{"type":"string"},"schemaProfile":{"const":"reader","type":"string"},"schemaUrl":{"example":"/v1/projects/pho_prj_00000000000000000000000001/webhooks/event-types/message.received/schema?apiVersion=2026-07-01","format":"uri-reference","pattern":"^\\/v1\\/projects\\/.*","type":"string"},"type":{"pattern":"^[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9_-]*)+$","type":"string"}},"required":["audience","description","schemaProfile","schemaUrl","type"],"type":"object"},"WebhookEventTypeAudience":{"enum":["agent","infrastructure"],"type":"string"},"WebhookEventTypeList":{"items":{"$ref":"#/components/schemas/WebhookEventTypeName"},"maxItems":256,"minItems":1,"type":"array","uniqueItems":true},"WebhookEventTypeName":{"pattern":"^[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9_-]*)+$","type":"string"},"WebhookEventWildcard":{"const":"*","type":"string"},"WhatsappAccountDisconnectingProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"WHATSAPP_ACCOUNT_DISCONNECTING","status":409,"title":"WhatsApp Business Account Disconnecting","type":"https://photon.codes/docs/problems/whatsapp-account-disconnecting"},"properties":{"code":{"const":"WHATSAPP_ACCOUNT_DISCONNECTING","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"WhatsApp Business Account Disconnecting","type":"string"},"type":{"const":"https://photon.codes/docs/problems/whatsapp-account-disconnecting","type":"string"}},"required":["code","status","title","type"],"type":"object"},"WhatsappAccountPhoneNumber":{"additionalProperties":false,"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"ownership":{"$ref":"#/components/schemas/WhatsappPhoneNumberOwnership"},"phoneNumber":{"pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"phoneNumberId":{"minLength":1,"type":"string"}},"required":["displayName","ownership","phoneNumber","phoneNumberId"],"type":"object"},"WhatsappAccountProvisioningProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"WHATSAPP_ACCOUNT_PROVISIONING","status":409,"title":"WhatsApp Business Account Has Provisioning Numbers","type":"https://photon.codes/docs/problems/whatsapp-account-provisioning"},"properties":{"code":{"const":"WHATSAPP_ACCOUNT_PROVISIONING","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"WhatsApp Business Account Has Provisioning Numbers","type":"string"},"type":{"const":"https://photon.codes/docs/problems/whatsapp-account-provisioning","type":"string"}},"required":["code","status","title","type"],"type":"object"},"WhatsappBusinessAccount":{"additionalProperties":false,"properties":{"accountName":{"anyOf":[{"type":"string"},{"type":"null"}]},"alerts":{"items":{"$ref":"#/components/schemas/WhatsappBusinessAccountAlert"},"type":"array"},"businessId":{"type":"string"},"businessName":{"anyOf":[{"type":"string"},{"type":"null"}]},"connectedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"maxPhoneNumbersPerBusiness":{"maximum":2147483647,"minimum":0,"type":"integer"},"outboundCapacity":{"$ref":"#/components/schemas/WhatsappOutboundCapacity"},"restriction":{"anyOf":[{"$ref":"#/components/schemas/WhatsappBusinessAccountRestriction"},{"type":"null"}]},"reviewStatus":{"$ref":"#/components/schemas/WhatsappReviewStatus"},"senderCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"subscribedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"wabaId":{"type":"string"}},"required":["accountName","alerts","businessId","businessName","connectedAt","outboundCapacity","restriction","reviewStatus","senderCount","wabaId"],"type":"object"},"WhatsappBusinessAccountAlert":{"additionalProperties":false,"properties":{"description":{"type":"string"},"entityId":{"type":"string"},"entityType":{"type":"string"},"observedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"severity":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"}},"required":["description","entityId","entityType","observedAt","severity","status","type"],"type":"object"},"WhatsappBusinessAccountRestriction":{"additionalProperties":false,"properties":{"observedAt":{"example":"2026-01-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"status":{"$ref":"#/components/schemas/WhatsappRestrictionStatus"}},"required":["observedAt","status"],"type":"object"},"WhatsappBusinessGroupContent":{"additionalProperties":false,"properties":{"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"parts":{"items":{"$ref":"#/components/schemas/WhatsappBusinessGroupContentPart"},"minItems":1,"type":"array"},"type":{"const":"group","type":"string"}},"required":["type","parts"],"type":"object"},"WhatsappBusinessGroupContentPart":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/TextUpdateContent"},{"$ref":"#/components/schemas/AttachmentContent"},{"$ref":"#/components/schemas/VoiceContent"},{"$ref":"#/components/schemas/ReactionContent"},{"$ref":"#/components/schemas/MessageDeleteContent"},{"$ref":"#/components/schemas/MessageReadContent"},{"$ref":"#/components/schemas/SpaceParticipantsUpdateContent"},{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},{"$ref":"#/components/schemas/PollContent"},{"$ref":"#/components/schemas/PollVoteContent"},{"$ref":"#/components/schemas/PollUpdateContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"WhatsappBusinessMessage":{"oneOf":[{"$ref":"#/components/schemas/ReceivedWhatsappBusinessMessage"},{"$ref":"#/components/schemas/DispatchedWhatsappBusinessMessage"},{"$ref":"#/components/schemas/AcceptedWhatsappBusinessMessage"},{"$ref":"#/components/schemas/DeliveredWhatsappBusinessMessage"},{"$ref":"#/components/schemas/FailedWhatsappBusinessMessage"}]},"WhatsappBusinessMessageAcceptedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/WhatsappBusinessMessageAcceptedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"whatsapp_business.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.accepted","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"WhatsappBusinessMessageAcceptedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"whatsapp_business","type":"string"},"status":{"const":"accepted","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"WhatsappBusinessMessageContent":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/TextUpdateContent"},{"$ref":"#/components/schemas/AttachmentContent"},{"$ref":"#/components/schemas/VoiceContent"},{"$ref":"#/components/schemas/ReactionContent"},{"$ref":"#/components/schemas/MessageDeleteContent"},{"$ref":"#/components/schemas/MessageReadContent"},{"$ref":"#/components/schemas/SpaceParticipantsUpdateContent"},{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},{"$ref":"#/components/schemas/PollContent"},{"$ref":"#/components/schemas/PollVoteContent"},{"$ref":"#/components/schemas/PollUpdateContent"},{"$ref":"#/components/schemas/WhatsappBusinessGroupContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"WhatsappBusinessMessageDeliveredEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/WhatsappBusinessMessageDeliveredEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"whatsapp_business.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.delivered","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"WhatsappBusinessMessageDeliveredEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"whatsapp_business","type":"string"},"status":{"const":"delivered","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"WhatsappBusinessMessageDispatchedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/WhatsappBusinessMessageDispatchedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"whatsapp_business.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.dispatched","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"WhatsappBusinessMessageDispatchedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"whatsapp_business","type":"string"},"status":{"const":"dispatched","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"WhatsappBusinessMessageFailedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/WhatsappBusinessMessageFailedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"whatsapp_business.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.failed","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"WhatsappBusinessMessageFailedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"whatsapp_business","type":"string"},"status":{"const":"failed","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"WhatsappBusinessMessageReceivedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/WhatsappBusinessMessageReceivedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"whatsapp_business.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.received","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"WhatsappBusinessMessageReceivedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"whatsapp_business","type":"string"},"status":{"const":"received","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"WhatsappBusinessSpace":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"$ref":"#/components/schemas/WhatsappBusinessSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"const":"whatsapp_business","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","kind","participantIds","details","metadata","createdAt","updatedAt"],"type":"object"},"WhatsappBusinessSpaceDetails":{"additionalProperties":false,"properties":{},"type":"object"},"WhatsappBusinessSpaceSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/WhatsappBusinessSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"const":"whatsapp_business","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","kind","participantIds","details","metadata"],"type":"object"},"WhatsappBusinessSpaceTypingUpdatedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/WhatsappBusinessSpaceTypingUpdatedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"whatsapp_business.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"space.typing.updated","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"WhatsappBusinessSpaceTypingUpdatedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"content":{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},"parentMessageId":{"not":{}},"platform":{"const":"whatsapp_business","type":"string"},"status":{"const":"received","type":"string"}},"required":["platform","status","content"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"WhatsappBusinessSpaceUpdatedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/WhatsappBusinessSpaceUpdatedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"whatsapp_business.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"space.updated","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"WhatsappBusinessSpaceUpdatedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"content":{"additionalProperties":{},"properties":{"type":{"const":"space.participants.update","type":"string"}},"required":["type"],"type":"object"},"platform":{"const":"whatsapp_business","type":"string"},"status":{"enum":["received","delivered"],"type":"string"}},"required":["platform","status","content"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"WhatsappBusinessUser":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"$ref":"#/components/schemas/WhatsappBusinessUserDetails"},"handle":{"minLength":1,"type":"string"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"whatsapp_business","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","handle","kind","details","metadata","createdAt","updatedAt"],"type":"object"},"WhatsappBusinessUserDetails":{"additionalProperties":false,"properties":{"managedBy":{"$ref":"#/components/schemas/ManagerId"},"phoneNumber":{"pattern":"^\\+[1-9][0-9]{1,14}$","type":"string"},"resourceId":{"$ref":"#/components/schemas/ResourceId"}},"type":"object"},"WhatsappBusinessUserSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/WhatsappBusinessUserDetails"},"handle":{"minLength":1,"type":"string"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"whatsapp_business","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","handle","kind","details","metadata"],"type":"object"},"WhatsappDisplayNameUnavailableProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"WHATSAPP_DISPLAY_NAME_UNAVAILABLE","status":422,"title":"WhatsApp Display Name Unavailable","type":"https://photon.codes/docs/problems/whatsapp-display-name-unavailable"},"properties":{"code":{"const":"WHATSAPP_DISPLAY_NAME_UNAVAILABLE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":422,"type":"number"},"title":{"const":"WhatsApp Display Name Unavailable","type":"string"},"type":{"const":"https://photon.codes/docs/problems/whatsapp-display-name-unavailable","type":"string"}},"required":["code","status","title","type"],"type":"object"},"WhatsappGroupContent":{"additionalProperties":false,"properties":{"metadata":{"$ref":"#/components/schemas/ContentMetadata"},"parts":{"items":{"$ref":"#/components/schemas/WhatsappGroupContentPart"},"minItems":1,"type":"array"},"type":{"const":"group","type":"string"}},"required":["type","parts"],"type":"object"},"WhatsappGroupContentPart":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/TextUpdateContent"},{"$ref":"#/components/schemas/AttachmentContent"},{"$ref":"#/components/schemas/VoiceContent"},{"$ref":"#/components/schemas/ReactionContent"},{"$ref":"#/components/schemas/MessageDeleteContent"},{"$ref":"#/components/schemas/MessageReadContent"},{"$ref":"#/components/schemas/SpaceParticipantsUpdateContent"},{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},{"$ref":"#/components/schemas/PollContent"},{"$ref":"#/components/schemas/PollVoteContent"},{"$ref":"#/components/schemas/PollUpdateContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"WhatsappMessage":{"oneOf":[{"$ref":"#/components/schemas/ReceivedWhatsappMessage"},{"$ref":"#/components/schemas/DispatchedWhatsappMessage"},{"$ref":"#/components/schemas/AcceptedWhatsappMessage"},{"$ref":"#/components/schemas/DeliveredWhatsappMessage"},{"$ref":"#/components/schemas/FailedWhatsappMessage"}]},"WhatsappMessageAcceptedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/WhatsappMessageAcceptedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"whatsapp.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.accepted","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"WhatsappMessageAcceptedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"whatsapp","type":"string"},"status":{"const":"accepted","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"WhatsappMessageContent":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/TextUpdateContent"},{"$ref":"#/components/schemas/AttachmentContent"},{"$ref":"#/components/schemas/VoiceContent"},{"$ref":"#/components/schemas/ReactionContent"},{"$ref":"#/components/schemas/MessageDeleteContent"},{"$ref":"#/components/schemas/MessageReadContent"},{"$ref":"#/components/schemas/SpaceParticipantsUpdateContent"},{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},{"$ref":"#/components/schemas/PollContent"},{"$ref":"#/components/schemas/PollVoteContent"},{"$ref":"#/components/schemas/PollUpdateContent"},{"$ref":"#/components/schemas/WhatsappGroupContent"}],"x-photon-extension":{"discriminator":"type","fallback":"#/$defs/UnknownContent","reserved":["text","text.update","attachment","voice","reaction","message.delete","message.read","space.participants.update","space.typing.update","poll","poll.vote","poll.update","group","message"]}},"WhatsappMessageDeliveredEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/WhatsappMessageDeliveredEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"whatsapp.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.delivered","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"WhatsappMessageDeliveredEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"whatsapp","type":"string"},"status":{"const":"delivered","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"WhatsappMessageDispatchedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/WhatsappMessageDispatchedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"whatsapp.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.dispatched","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"WhatsappMessageDispatchedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"whatsapp","type":"string"},"status":{"const":"dispatched","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"WhatsappMessageFailedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/WhatsappMessageFailedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"whatsapp.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.failed","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"WhatsappMessageFailedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"whatsapp","type":"string"},"status":{"const":"failed","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"WhatsappMessageReceivedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/WhatsappMessageReceivedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"whatsapp.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"message.received","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"WhatsappMessageReceivedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"platform":{"const":"whatsapp","type":"string"},"status":{"const":"received","type":"string"}},"required":["platform","status"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"WhatsappModeDedicatedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"WHATSAPP_MODE_DEDICATED","status":409,"title":"WhatsApp Mode Is Dedicated","type":"https://photon.codes/docs/problems/whatsapp-mode-dedicated"},"properties":{"code":{"const":"WHATSAPP_MODE_DEDICATED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"WhatsApp Mode Is Dedicated","type":"string"},"type":{"const":"https://photon.codes/docs/problems/whatsapp-mode-dedicated","type":"string"}},"required":["code","status","title","type"],"type":"object"},"WhatsappOutboundCapacity":{"enum":["50","250","1000","2000","10000","100000","UNLIMITED","UNTIERED","UNKNOWN"],"type":"string"},"WhatsappPhoneNumberOwnership":{"enum":["photon","meta"],"type":"string"},"WhatsappRestrictionStatus":{"enum":["FLAGGED","DISABLED","REINSTATED","UNKNOWN"],"type":"string"},"WhatsappReviewStatus":{"enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"type":"string"},"WhatsappSenderConnectedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"WHATSAPP_SENDER_CONNECTED","status":409,"title":"WhatsApp Sender Connected","type":"https://photon.codes/docs/problems/whatsapp-sender-connected"},"properties":{"code":{"const":"WHATSAPP_SENDER_CONNECTED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"WhatsApp Sender Connected","type":"string"},"type":{"const":"https://photon.codes/docs/problems/whatsapp-sender-connected","type":"string"}},"required":["code","status","title","type"],"type":"object"},"WhatsappSenderProvisioningProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"WHATSAPP_SENDER_PROVISIONING","status":409,"title":"WhatsApp Sender Provisioning","type":"https://photon.codes/docs/problems/whatsapp-sender-provisioning"},"properties":{"code":{"const":"WHATSAPP_SENDER_PROVISIONING","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"WhatsApp Sender Provisioning","type":"string"},"type":{"const":"https://photon.codes/docs/problems/whatsapp-sender-provisioning","type":"string"}},"required":["code","status","title","type"],"type":"object"},"WhatsappSpace":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"$ref":"#/components/schemas/WhatsappSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"const":"whatsapp","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","kind","participantIds","details","metadata","createdAt","updatedAt"],"type":"object"},"WhatsappSpaceDetails":{"additionalProperties":false,"properties":{},"type":"object"},"WhatsappSpaceSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/WhatsappSpaceDetails"},"id":{"$ref":"#/components/schemas/SpaceId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"participantIds":{"items":{"$ref":"#/components/schemas/UserId"},"type":"array","uniqueItems":true},"platform":{"const":"whatsapp","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","kind","participantIds","details","metadata"],"type":"object"},"WhatsappSpaceTypingUpdatedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/WhatsappSpaceTypingUpdatedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"whatsapp.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"space.typing.updated","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"WhatsappSpaceTypingUpdatedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"content":{"$ref":"#/components/schemas/SpaceTypingUpdateContent"},"parentMessageId":{"not":{}},"platform":{"const":"whatsapp","type":"string"},"status":{"const":"received","type":"string"}},"required":["platform","status","content"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"WhatsappSpaceUpdatedEvent":{"additionalProperties":false,"properties":{"apiVersion":{"const":"2026-07-01","type":"string"},"data":{"$ref":"#/components/schemas/WhatsappSpaceUpdatedEventData"},"id":{"$ref":"#/components/schemas/EventId"},"source":{"const":"whatsapp.photon","type":"string"},"timestamp":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"type":{"const":"space.updated","type":"string"}},"required":["id","type","apiVersion","source","timestamp","data"],"type":"object"},"WhatsappSpaceUpdatedEventData":{"additionalProperties":false,"properties":{"object":{"allOf":[{"$ref":"#/components/schemas/Message"},{"additionalProperties":{},"properties":{"content":{"additionalProperties":{},"properties":{"type":{"const":"space.participants.update","type":"string"}},"required":["type"],"type":"object"},"platform":{"const":"whatsapp","type":"string"},"status":{"enum":["received","delivered"],"type":"string"}},"required":["platform","status","content"],"type":"object"}]},"projectId":{"$ref":"#/components/schemas/ProjectId"}},"required":["projectId","object"],"type":"object"},"WhatsappUser":{"additionalProperties":false,"properties":{"createdAt":{"description":"When Photon first persisted this resource.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"},"details":{"$ref":"#/components/schemas/WhatsappUserDetails"},"handle":{"minLength":1,"type":"string"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"whatsapp","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"description":"When Photon last persisted a change to this resource's public state.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},"required":["id","projectId","platform","handle","kind","details","metadata","createdAt","updatedAt"],"type":"object"},"WhatsappUserDetails":{"additionalProperties":false,"properties":{"managedBy":{"$ref":"#/components/schemas/ManagerId"},"phoneNumber":{"pattern":"^\\+[1-9][0-9]{1,14}$","type":"string"},"resourceId":{"$ref":"#/components/schemas/ResourceId"},"type":{"$ref":"#/components/schemas/UserLineType"}},"type":"object"},"WhatsappUserSnapshot":{"additionalProperties":false,"properties":{"createdAt":{"not":{}},"details":{"$ref":"#/components/schemas/WhatsappUserDetails"},"handle":{"minLength":1,"type":"string"},"id":{"$ref":"#/components/schemas/UserId"},"kind":{"minLength":1,"type":"string"},"metadata":{"$ref":"#/components/schemas/ResourceMetadata"},"platform":{"const":"whatsapp","type":"string"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"updatedAt":{"not":{}}},"required":["id","projectId","platform","handle","kind","details","metadata"],"type":"object"},"WhatsappVerificationCodeNotFoundProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"WHATSAPP_VERIFICATION_CODE_NOT_FOUND","status":404,"title":"WhatsApp Verification Code Not Found","type":"https://photon.codes/docs/problems/whatsapp-verification-code-not-found"},"properties":{"code":{"const":"WHATSAPP_VERIFICATION_CODE_NOT_FOUND","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"WhatsApp Verification Code Not Found","type":"string"},"type":{"const":"https://photon.codes/docs/problems/whatsapp-verification-code-not-found","type":"string"}},"required":["code","status","title","type"],"type":"object"},"WhatsappVerificationWindowExpiredProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"WHATSAPP_VERIFICATION_WINDOW_EXPIRED","status":422,"title":"WhatsApp Verification Window Expired","type":"https://photon.codes/docs/problems/whatsapp-verification-window-expired"},"properties":{"code":{"const":"WHATSAPP_VERIFICATION_WINDOW_EXPIRED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":422,"type":"number"},"title":{"const":"WhatsApp Verification Window Expired","type":"string"},"type":{"const":"https://photon.codes/docs/problems/whatsapp-verification-window-expired","type":"string"}},"required":["code","status","title","type"],"type":"object"},"WhatsappVoipSourceNotEligibleProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"WHATSAPP_VOIP_SOURCE_NOT_ELIGIBLE","status":404,"title":"WhatsApp VoIP Source Not Eligible","type":"https://photon.codes/docs/problems/whatsapp-voip-source-not-eligible"},"properties":{"code":{"const":"WHATSAPP_VOIP_SOURCE_NOT_ELIGIBLE","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"WhatsApp VoIP Source Not Eligible","type":"string"},"type":{"const":"https://photon.codes/docs/problems/whatsapp-voip-source-not-eligible","type":"string"}},"required":["code","status","title","type"],"type":"object"},"WhatsappVoipSourceReleasingProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"WHATSAPP_VOIP_SOURCE_RELEASING","status":409,"title":"WhatsApp VoIP Source Releasing","type":"https://photon.codes/docs/problems/whatsapp-voip-source-releasing"},"properties":{"code":{"const":"WHATSAPP_VOIP_SOURCE_RELEASING","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":409,"type":"number"},"title":{"const":"WhatsApp VoIP Source Releasing","type":"string"},"type":{"const":"https://photon.codes/docs/problems/whatsapp-voip-source-releasing","type":"string"}},"required":["code","status","title","type"],"type":"object"},"WhatsappWabaNotConnectedProblem":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"example":{"code":"WHATSAPP_WABA_NOT_CONNECTED","status":404,"title":"WhatsApp Business Account Not Connected","type":"https://photon.codes/docs/problems/whatsapp-waba-not-connected"},"properties":{"code":{"const":"WHATSAPP_WABA_NOT_CONNECTED","type":"string"},"detail":{"minLength":1,"type":"string"},"instance":{"minLength":1,"type":"string"},"remediation":{"not":{}},"requestId":{"minLength":1,"type":"string"},"status":{"const":404,"type":"number"},"title":{"const":"WhatsApp Business Account Not Connected","type":"string"},"type":{"const":"https://photon.codes/docs/problems/whatsapp-waba-not-connected","type":"string"}},"required":["code","status","title","type"],"type":"object"}},"securitySchemes":{"accountServiceKey":{"description":"Account Service Key, prefixed with `pho_ask_`, sent as `Authorization: Bearer <key>`. Acts on behalf of its owning account, subject to the permissions and credential restrictions of each operation. Account access tokens and OAuth grants also use the Bearer header. In organizations that require SSO, Account Service Keys are not accepted for managing the organization's SSO settings, deleting the organization, or checking whether it can be deleted.","scheme":"bearer","type":"http"},"oauth2":{"description":"OAuth grant issued by the Photon authorization server. The token is a bearer JWT whose consented scope is intersected with the permissions the route grants; an empty intersection is `403 insufficient_scope`.","flows":{"authorizationCode":{"authorizationUrl":"https://auth.photon.codes/oauth2/authorize","scopes":{"account:create_project":"Create a project owned by the account.","account:read":"View account profile.","account:read_projects":"List projects associated with the account; does not grant access to project contents.","account:write":"Update account name and profile.","billing:read":"View invoices, usage, payment status.","events:read":"Query stored Events and discover their SQL schema within a project.","organization:create_project":"Create a project in the organization.","organization:read":"View organization name and avatar.","organization:read_projects":"List projects in the organization.","platforms:read":"View project platform configuration.","platforms:write":"Change project platform configuration.","project:delete":"Permanently delete the project.","project:read":"View non-sensitive project settings.","project:read_usage":"View project usage and costs.","project:write":"Change agent profiles, webhook settings, and other project configuration.","ten_dlc:read":"View organization 10DLC Brand and Campaign registration records.","ten_dlc:write":"Register and update organization 10DLC Brands and Campaigns, including OTP operations."},"tokenUrl":"https://auth.photon.codes/oauth2/token"}},"type":"oauth2"},"projectApiKey":{"description":"Project API key, `pho_sk_` prefixed, sent as `Authorization: Bearer <key>`. Bound to one project, so it is accepted only under `/v1/projects/{projectId}` and refused everywhere else.","scheme":"bearer","type":"http"},"serviceIdentityBearer":{"description":"Organization Service Identity API key or M2M access token, sent as `Authorization: Bearer <credential>`. Restricted to its organization and explicitly granted business permissions. It does not authorize human organization governance or Photon credential management. Never send an M2M client secret to a business endpoint.","scheme":"bearer","type":"http"},"sessionCookie":{"description":"Dashboard browser session, sent automatically by the browser. Only the dashboard origin runs the session adapter that exchanges it for an access token, so this is declared for documents served there and is not accepted on the public API origin. No requirement preset lists it.","in":"cookie","name":"wos-session","type":"apiKey"}}},"info":{"title":"Photon API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/v1/account":{"delete":{"description":"Deletes the authenticated account and returns its account tombstone. The operation is rejected while the account still owns organizations; transfer or close those organizations before retrying. This endpoint acts on the caller's account and does not accept another account's identifier.","operationId":"deleteAccount","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"The deleted account tombstone.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteAccountForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountNotFoundProblem"}}},"description":"ACCOUNT_NOT_FOUND: Account Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountOwnsOrganizationsProblem"}}},"description":"ACCOUNT_OWNS_ORGANIZATIONS: Account Owns Organizations","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteAccountInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteAccountGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Delete account","tags":["Account"],"x-required-permissions":["security:write"]},"get":{"description":"Returns the profile of the authenticated account. The account is selected from the credential rather than a request parameter. A missing or deleted account is reported as an error instead of an empty profile.","operationId":"getAccount","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"The authenticated account.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetAccountForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountNotFoundProblem"}}},"description":"ACCOUNT_NOT_FOUND: Account Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountDeletedProblem"}}},"description":"ACCOUNT_DELETED: Account Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetAccountInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetAccountGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"oauth2":["account:read"]}],"summary":"Get account","tags":["Account"],"x-required-permissions":["account:read"]},"patch":{"description":"Updates the supplied firstName and lastName fields on the authenticated account and returns the updated profile. Only the documented profile fields can be changed through this endpoint; profile-picture uploads and phone-number verification use their dedicated operations. Supply the required Idempotency-Key header.","operationId":"updateAccount","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAccountRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"The updated account.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateAccountBadRequestProblem"}}},"description":"HTTP_ERROR: Request Failed; INVALID_ARGUMENT: Invalid Argument; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid; IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateAccountForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountNotFoundProblem"}}},"description":"ACCOUNT_NOT_FOUND: Account Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountDeletedProblem"}}},"description":"ACCOUNT_DELETED: Account Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateAccountUnprocessableEntityProblem"}}},"description":"IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused; VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateAccountInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateAccountGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"oauth2":["account:write"]}],"summary":"Update account","tags":["Account"],"x-required-permissions":["account:write"]}},"/v1/account/oauth/authorized-applications":{"get":{"description":"Lists the OAuth applications authorized by the authenticated user.","operationId":"listAuthorizedApplications","parameters":[{"description":"Pagination cursor from listMetadata.after for the next page. Cannot be combined with before.","in":"query","name":"after","schema":{"maxLength":128,"minLength":1,"type":"string"}},{"description":"Pagination cursor from listMetadata.before for the previous page. Cannot be combined with after.","in":"query","name":"before","schema":{"maxLength":128,"minLength":1,"type":"string"}},{"description":"Maximum number of authorized applications to return, from 1 to 100. Omit to use the default page size.","in":"query","name":"limit","schema":{"maximum":100,"minimum":1,"type":"integer"}},{"description":"Result ordering: normal, descending (desc), or ascending (asc). Omit to use the default order.","in":"query","name":"order","schema":{"$ref":"#/components/schemas/ListAuthorizedApplicationsOrder"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAuthorizedApplicationsResponse"}}},"description":"OAuth applications authorized by the authenticated user.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListAuthorizedApplicationsForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListAuthorizedApplicationsInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListAuthorizedApplicationsGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"List connected applications","tags":["Connected Applications"]}},"/v1/account/oauth/authorized-applications/{applicationId}":{"delete":{"description":"Revokes the authenticated user's grant for one OAuth application.","operationId":"revokeAuthorizedApplication","parameters":[{"description":"Authorized application's id, prefixed with connect_app_. Use application.id from the list response, not its clientId or authorizationId.","in":"path","name":"applicationId","required":true,"schema":{"maxLength":128,"pattern":"^connect_app_[A-Za-z0-9]+$","type":"string"}}],"responses":{"204":{"description":"OAuth application grant revoked.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RevokeAuthorizedApplicationForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RevokeAuthorizedApplicationInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RevokeAuthorizedApplicationGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Revoke connected application","tags":["Connected Applications"]}},"/v1/account/phone":{"put":{"description":"Binds the number once the code is approved. Repeat calls return the bound Account.","operationId":"confirmAccountPhoneVerification","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmAccountPhoneVerificationRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"The Account with its verified phone number.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConfirmAccountPhoneVerificationForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountNotFoundProblem"}}},"description":"ACCOUNT_NOT_FOUND: Account Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountDeletedProblem"}}},"description":"ACCOUNT_DELETED: Account Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConfirmAccountPhoneVerificationInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConfirmAccountPhoneVerificationGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"oauth2":["account:write"]}],"summary":"Confirm phone verification","tags":["Account"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["account:write"]}},"/v1/account/phone/verifications":{"post":{"description":"Sends an SMS code. Answers CAPTCHA_REQUIRED with the widget to render when no solved challenge accompanies the request; retry with the returned challengeContext and a token. Rate limited per account, per destination number, and globally; a rejection carries Retry-After.","operationId":"startAccountPhoneVerification","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartAccountPhoneVerificationRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartAccountPhoneVerificationResponse"}}},"description":"A pending verification. The Account is unchanged.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/StartAccountPhoneVerificationForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch; CAPTCHA_REQUIRED: Captcha Required\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountNotFoundProblem"}}},"description":"ACCOUNT_NOT_FOUND: Account Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountDeletedProblem"}}},"description":"ACCOUNT_DELETED: Account Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/StartAccountPhoneVerificationInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/StartAccountPhoneVerificationGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"oauth2":["account:write"]}],"summary":"Start phone verification","tags":["Account"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["account:write"]}},"/v1/account/profile-picture":{"delete":{"description":"Removes the authenticated account's custom profile picture and returns the account using its default picture. This operation does not upload a replacement; use the upload-and-commit operations when setting a new custom picture. Supply the required Idempotency-Key header.","operationId":"resetAccountProfilePicture","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"The Account reset to its default profile picture.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResetAccountProfilePictureBadRequestProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid; IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResetAccountProfilePictureForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountNotFoundProblem"}}},"description":"ACCOUNT_NOT_FOUND: Account Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountDeletedProblem"}}},"description":"ACCOUNT_DELETED: Account Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResetAccountProfilePictureUnprocessableEntityProblem"}}},"description":"IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused; VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResetAccountProfilePictureInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResetAccountProfilePictureGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"oauth2":["account:write"]}],"summary":"Remove profile picture","tags":["Account"],"x-required-permissions":["account:write"]},"put":{"description":"Commits a profile picture previously uploaded through createAccountProfilePictureUpload. Call this only after the direct multipart upload succeeds, using the uploadId from the same upload session and a stable Idempotency-Key. The service validates the temporary object's ownership, size, content type, image bytes, dimensions, encryption, and age before changing the Account.","operationId":"commitAccountProfilePicture","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommitAccountProfilePictureRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"The Account with its committed profile picture.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CommitAccountProfilePictureBadRequestProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid; IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CommitAccountProfilePictureForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountNotFoundProblem"}}},"description":"ACCOUNT_NOT_FOUND: Account Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountDeletedProblem"}}},"description":"ACCOUNT_DELETED: Account Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CommitAccountProfilePictureUnprocessableEntityProblem"}}},"description":"IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused; VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CommitAccountProfilePictureInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CommitAccountProfilePictureGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"oauth2":["account:write"]}],"summary":"Commit profile picture","tags":["Account"],"x-required-permissions":["account:write"]}},"/v1/account/profile-picture/uploads":{"post":{"description":"Creates a ten-minute, Account-bound presigned S3 POST for a JPEG, PNG, or WebP profile picture up to 5 MiB. Copy every returned formFields entry into a multipart/form-data request to uploadUrl, append the local file as the final form part, and upload it directly without sending Photon credentials. After the upload succeeds, call commitAccountProfilePicture with the returned uploadId. Do not cache or log the upload URL or form fields.","operationId":"createAccountProfilePictureUpload","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfilePictureUploadRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfilePictureUpload"}}},"description":"A short-lived, Account-bound presigned S3 POST.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateAccountProfilePictureUploadForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountNotFoundProblem"}}},"description":"ACCOUNT_NOT_FOUND: Account Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountDeletedProblem"}}},"description":"ACCOUNT_DELETED: Account Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateAccountProfilePictureUploadInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateAccountProfilePictureUploadGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"oauth2":["account:write"]}],"summary":"Create profile picture upload","tags":["Account"],"x-required-permissions":["account:write"]}},"/v1/account/security/mfa":{"get":{"description":"Requires a first-party interactive Account credential. Account Service Keys and third-party OAuth grants are not accepted.","operationId":"getMfaStatus","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMfaStatusResponse"}}},"description":"Non-secret TOTP factor status for the authenticated Account.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetMfaStatusForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetMfaStatusInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetMfaStatusGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Get MFA status","tags":["Account MFA"]}},"/v1/account/security/mfa/totp":{"post":{"description":"Requires a first-party interactive Account credential authenticated no more than 300 seconds ago. Returns one-time secret material.","operationId":"beginTotpEnrollment","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeginTotpEnrollmentRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeginTotpEnrollmentResponse"}}},"description":"One-time TOTP setup material and enrollment continuation.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginTotpEnrollmentForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/MfaAlreadyEnrolledProblem"}}},"description":"MFA_ALREADY_ENROLLED: MFA Already Enrolled","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginTotpEnrollmentInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginTotpEnrollmentGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Begin TOTP enrollment","tags":["Account MFA"]}},"/v1/account/security/mfa/totp/verify":{"post":{"description":"Requires a first-party interactive Account credential authenticated no more than 300 seconds ago.","operationId":"verifyTotpEnrollment","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyTotpEnrollmentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyTotpEnrollmentResponse"}}},"description":"The TOTP factor was verified for the authenticated Account.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/MfaEnrollmentInvalidProblem"}}},"description":"MFA_ENROLLMENT_INVALID: MFA Enrollment Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VerifyTotpEnrollmentForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/MfaEnrollmentExpiredProblem"}}},"description":"MFA_ENROLLMENT_EXPIRED: MFA Enrollment Expired","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VerifyTotpEnrollmentUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; MFA_VERIFICATION_FAILED: MFA Verification Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VerifyTotpEnrollmentInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VerifyTotpEnrollmentGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Verify TOTP enrollment","tags":["Account MFA"]}},"/v1/account/security/mfa/totp/{factorId}":{"delete":{"description":"Requires a first-party interactive Account credential authenticated no more than 300 seconds ago. Ownership is verified before deletion.","operationId":"deleteTotpFactor","parameters":[{"description":"Identifier of a TOTP authentication factor, prefixed with auth_factor_.","in":"path","name":"factorId","required":true,"schema":{"maxLength":128,"pattern":"^auth_factor_[A-Za-z0-9]+$","type":"string"}}],"responses":{"204":{"description":"TOTP factor deleted.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteTotpFactorForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/MfaFactorNotFoundProblem"}}},"description":"MFA_FACTOR_NOT_FOUND: MFA Factor Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteTotpFactorInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteTotpFactorGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Delete a TOTP factor","tags":["Account MFA"]}},"/v1/account/service-keys":{"get":{"description":"Returns metadata for the authenticated account's unrevoked service keys, including expired keys, ordered newest first. Secret values are not returned; a key's credential is disclosed only when that key is created.","operationId":"listAccountServiceKeys","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAccountServiceKeysResponse"}}},"description":"Unrevoked Account Service Key metadata, including expired keys, newest first.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListAccountServiceKeysForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountNotFoundProblem"}}},"description":"ACCOUNT_NOT_FOUND: Account Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountDeletedProblem"}}},"description":"ACCOUNT_DELETED: Account Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListAccountServiceKeysInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListAccountServiceKeysGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"List Account Service Keys","tags":["Account Service Keys"],"x-required-permissions":["security:read"]},"post":{"description":"Creates a service key for the authenticated account with the supplied name and optional expiresAt. Returns key metadata and a one-time credential; store the credential securely because it cannot be retrieved through the listing endpoint. These credentials act as the account and must not be distributed as project-scoped keys. Supply the required Idempotency-Key header.","operationId":"createAccountServiceKey","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccountServiceKeyRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccountServiceKeyResponse"}}},"description":"The created Account Service Key and its one-time credential.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateAccountServiceKeyBadRequestProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid; IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateAccountServiceKeyForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountNotFoundProblem"}}},"description":"ACCOUNT_NOT_FOUND: Account Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountServiceKeyLimitReachedProblem"}}},"description":"ACCOUNT_SERVICE_KEY_LIMIT_REACHED: Account Service Key Limit Reached","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountDeletedProblem"}}},"description":"ACCOUNT_DELETED: Account Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateAccountServiceKeyUnprocessableEntityProblem"}}},"description":"IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused; VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateAccountServiceKeyInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateAccountServiceKeyGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Create Account Service Key","tags":["Account Service Keys"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["security:write"]}},"/v1/account/service-keys/{serviceKeyId}":{"delete":{"description":"Revokes the account-owned service key identified by serviceKeyId and returns its revoked metadata. Repeating the revocation is stable. Revocation changes the credential's validity; it does not create a replacement key. Supply the required Idempotency-Key header.","operationId":"revokeAccountServiceKey","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"serviceKeyId","required":true,"schema":{"pattern":"^pho_ask_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeAccountServiceKeyResponse"}}},"description":"The revoked key metadata. Repeated revocation is stable.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RevokeAccountServiceKeyBadRequestProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid; IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RevokeAccountServiceKeyForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RevokeAccountServiceKeyNotFoundProblem"}}},"description":"ACCOUNT_NOT_FOUND: Account Not Found; ACCOUNT_SERVICE_KEY_NOT_FOUND: Account Service Key Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AccountDeletedProblem"}}},"description":"ACCOUNT_DELETED: Account Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RevokeAccountServiceKeyUnprocessableEntityProblem"}}},"description":"IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused; VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RevokeAccountServiceKeyInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RevokeAccountServiceKeyGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Revoke Account Service Key","tags":["Account Service Keys"],"x-required-permissions":["security:write"]}},"/v1/auth/device/code":{"post":{"description":"Starts the device authorization flow for a CLI or another device without a browser. Show the verification URL and user code, then poll the token endpoint at the returned interval. No request fields are required; any supplied body is ignored.","operationId":"deviceAuthorize","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceAuthorizeResponse"}}},"description":"Verification details for the RFC 8628 device flow. The optional JSON or form body is ignored; the authorization client is selected by the server.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"description":"The authorization request was rejected. OAuth errors use error and error_description fields.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[],"summary":"Start device authorization","tags":["Device Authorization"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/device/token":{"post":{"description":"Exchanges an authorized device code or a refresh token for an access token and rotating refresh token. Accepts JSON and form-encoded bodies. While polling, wait at least interval seconds and increase the interval on slow_down. Store the new refresh token after every successful grant.","operationId":"deviceToken","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenRequest"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/DeviceTokenRequest"}}},"description":"Exchange a device code or refresh token. Supply the matching grant_type and credential using JSON or form encoding.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenResponse"}}},"description":"Token pair (snake_case OAuth wire format). Body (form-encoded or JSON): grant_type=urn:ietf:params:oauth:grant-type:device_code with device_code, or grant_type=refresh_token with refresh_token. Refresh tokens rotate on every grant — always store the new one.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenBadRequestResponse"}}},"description":"authorization_pending, slow_down, access_denied, expired_token, invalid_grant, invalid_request, or unsupported_grant_type. Errors use the OAuth 2.0 format ({error, error_description?}), not problem+json. A 5xx problem+json response is transient; keep polling.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"description":"Relayed slow_down; back off the polling interval.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"description":"server_error: the login could not be completed; retry the login from the start.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[],"summary":"Exchange device code or refresh token","tags":["Device Authorization"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/login":{"get":{"description":"Starts browser sign-in by redirecting to the hosted authorization page. Stores the optional returnTo destination in a temporary login-state cookie; after successful sign-in, the browser returns there or to /.","operationId":"login","parameters":[{"description":"Destination after authentication or local logout: a path starting with / or an absolute URL on an allowed origin. Empty values are treated as omitted; the local fallback is /. External logout destinations must also be registered as sign-out redirects.","in":"query","name":"returnTo","schema":{"type":"string"}}],"responses":{"302":{"description":"Redirect to the WorkOS authorization URL.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Hosted authorization URL to open in the browser.","schema":{"type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Set-Cookie":{"description":"Temporary HttpOnly login-state cookie used to validate the callback and restore returnTo.","schema":{"type":"string"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"description":"The returnTo is not a relative path or an allowlisted origin.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[],"summary":"Start Login Flow","tags":["Authentication"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/login/enrollment":{"post":{"description":"Returns a sign-in URL without requiring an existing account: the company SSO connection when the target has a ready connection, otherwise ordinary account login. Supply one documented enrollment variant: organizationId with returnTo (optionally invitationToken), invitationToken with returnTo, or retryToken. Open the returned URL to continue authentication; receiving a URL does not complete sign-in. This is a browser flow: the request must come from an allowed Origin, and the retryToken variant also needs the retry cookie set by the failed sign-in, so send it with credentials.","operationId":"startEnterpriseLogin","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartEnterpriseLoginRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartEnterpriseLoginResponse"}}},"description":"Company SSO URL when the target has a ready connection, otherwise the ordinary Account login URL. The response never says which, and access is decided only after authentication.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidReturnToProblem"}}},"description":"INVALID_RETURN_TO: Invalid Return To","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[],"summary":"Start company sign-in","tags":["Authentication"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/logout":{"get":{"description":"Clears the browser session cookie and attempts to end the hosted session. When no usable session remains, redirects directly to returnTo or /. Invalid returnTo values are rejected before the cookie is cleared.","operationId":"logout","parameters":[{"description":"Destination after authentication or local logout: a path starting with / or an absolute URL on an allowed origin. Empty values are treated as omitted; the local fallback is /. External logout destinations must also be registered as sign-out redirects.","in":"query","name":"returnTo","schema":{"type":"string"}}],"responses":{"302":{"description":"Clears the session cookie and redirects to the WorkOS logout URL, which ends the AuthKit session and returns the browser to returnTo when given (the origin must also be a configured WorkOS Sign-out Redirect).","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Hosted logout URL when a usable session exists; otherwise returnTo or /.","schema":{"type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Set-Cookie":{"description":"Expires the browser's session cookie.","schema":{"type":"string"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"description":"The returnTo is not a relative path or an allowlisted origin; nothing is cleared.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[],"summary":"End Session","tags":["Authentication"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/oauth/scopes":{"get":{"description":"Lists the business permissions available to OAuth applications.","operationId":"listOauthScopes","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListOauthScopesResponse"}}},"description":"The configurable OAuth business permissions.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListOauthScopesGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[],"summary":"List OAuth scopes","tags":["OAuth Discovery"]}},"/v1/auth/organizations/{orgId}/connection-status":{"get":{"description":"Requires current human organization membership. Synchronization status does not attest SSO configuration or completed authorization.","operationId":"getOrganizationConnectionStatus","parameters":[{"in":"path","name":"orgId","required":true,"schema":{"pattern":"^pho_org_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationConnectionStatus"}}},"description":"Organization mapping and current member synchronization.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOrganizationConnectionStatusForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationConnectionNotFoundProblem"}}},"description":"ORGANIZATION_CONNECTION_NOT_FOUND: Organization Connection Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSyncUnavailableProblem"}}},"description":"ORGANIZATION_SYNC_UNAVAILABLE: Organization Synchronization Unavailable","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOrganizationConnectionStatusInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOrganizationConnectionStatusGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Get organization connection status","tags":["Organization Connections"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/organizations/{orgId}/connection-sync/retry":{"post":{"description":"Reconciles existing local intent. Takes no body and cannot change membership, roles or authentication policy.","operationId":"retryOrganizationConnectionSync","parameters":[{"in":"path","name":"orgId","required":true,"schema":{"pattern":"^pho_org_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationConnectionStatus"}}},"description":"Current synchronization state after requesting retry.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RetryOrganizationConnectionSyncForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationConnectionNotFoundProblem"}}},"description":"ORGANIZATION_CONNECTION_NOT_FOUND: Organization Connection Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSyncUnavailableProblem"}}},"description":"ORGANIZATION_SYNC_UNAVAILABLE: Organization Synchronization Unavailable","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RetryOrganizationConnectionSyncInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RetryOrganizationConnectionSyncGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Retry organization connection sync","tags":["Organization Connections"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/organizations/{orgId}/sso":{"get":{"description":"Returns the selected organization’s SSO connection state, configuration version, and desired and effective policy settings. Read policySyncStatus alongside the enforcement fields to distinguish requested settings from synchronized settings.","operationId":"getOrganizationSsoConfiguration","parameters":[{"in":"path","name":"orgId","required":true,"schema":{"pattern":"^pho_org_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoConfiguration"}}},"description":"Current connection and independent local policy state.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOrganizationSsoConfigurationBadRequestProblem"}}},"description":"INVALID_RETURN_TO: Invalid Return To; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOrganizationSsoConfigurationForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoNotFoundProblem"}}},"description":"ORGANIZATION_SSO_NOT_FOUND: Organization SSO Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoConflictProblem"}}},"description":"ORGANIZATION_SSO_CONFLICT: Organization SSO Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"412":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOrganizationSsoConfigurationPreconditionFailedProblem"}}},"description":"ORGANIZATION_SSO_PRECONDITION_FAILED: Organization SSO Precondition Failed; SSO_SUBSCRIPTION_REQUIRED: SSO Subscription Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOrganizationSsoConfigurationInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOrganizationSsoConfigurationGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Get organization SSO configuration","tags":["Organization SSO"],"x-photon-mcp":{"enabled":false}},"patch":{"description":"Updates whether SSO can admit new members automatically using ssoJitEnabled and the current expectedVersion. Returns the organization’s SSO configuration and policy synchronization status; a successful response does not mean every desired policy setting has finished synchronizing.","operationId":"updateOrganizationSsoPolicy","parameters":[{"in":"path","name":"orgId","required":true,"schema":{"pattern":"^pho_org_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationSsoPolicyRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoConfiguration"}}},"description":"Current connection and independent local policy state.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationSsoPolicyBadRequestProblem"}}},"description":"INVALID_RETURN_TO: Invalid Return To; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationSsoPolicyForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoNotFoundProblem"}}},"description":"ORGANIZATION_SSO_NOT_FOUND: Organization SSO Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoConflictProblem"}}},"description":"ORGANIZATION_SSO_CONFLICT: Organization SSO Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"412":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationSsoPolicyPreconditionFailedProblem"}}},"description":"ORGANIZATION_SSO_PRECONDITION_FAILED: Organization SSO Precondition Failed; SSO_SUBSCRIPTION_REQUIRED: SSO Subscription Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationSsoPolicyInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationSsoPolicyGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Update organization SSO policy","tags":["Organization SSO"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/organizations/{orgId}/sso/admission":{"post":{"description":"Returns an SSO admission URL for an existing account and the selected organization. Supply returnTo for the continuation URL. Admission requires completing the returned authentication flow; creating the URL does not itself grant membership.","operationId":"beginOrganizationSsoAdmission","parameters":[{"in":"path","name":"orgId","required":true,"schema":{"pattern":"^pho_org_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationAuthenticationRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationAuthenticationRedirect"}}},"description":"Targeted SSO authorization URL.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationSsoAdmissionBadRequestProblem"}}},"description":"INVALID_RETURN_TO: Invalid Return To; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationSsoAdmissionForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoNotFoundProblem"}}},"description":"ORGANIZATION_SSO_NOT_FOUND: Organization SSO Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoConflictProblem"}}},"description":"ORGANIZATION_SSO_CONFLICT: Organization SSO Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"412":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationSsoAdmissionPreconditionFailedProblem"}}},"description":"ORGANIZATION_SSO_PRECONDITION_FAILED: Organization SSO Precondition Failed; SSO_SUBSCRIPTION_REQUIRED: SSO Subscription Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationSsoAdmissionInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationSsoAdmissionGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Begin organization SSO admission","tags":["Organization SSO"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/organizations/{orgId}/sso/authenticate":{"post":{"description":"Returns a URL to authenticate through the selected organization’s current SSO connection. Supply returnTo and open the returned URL to continue the flow. Receiving the URL does not establish an authenticated session.","operationId":"beginOrganizationAuthentication","parameters":[{"in":"path","name":"orgId","required":true,"schema":{"pattern":"^pho_org_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationAuthenticationRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationAuthenticationRedirect"}}},"description":"Targeted SSO authorization URL.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationAuthenticationBadRequestProblem"}}},"description":"INVALID_RETURN_TO: Invalid Return To; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationAuthenticationForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoNotFoundProblem"}}},"description":"ORGANIZATION_SSO_NOT_FOUND: Organization SSO Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoConflictProblem"}}},"description":"ORGANIZATION_SSO_CONFLICT: Organization SSO Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"412":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationAuthenticationPreconditionFailedProblem"}}},"description":"ORGANIZATION_SSO_PRECONDITION_FAILED: Organization SSO Precondition Failed; SSO_SUBSCRIPTION_REQUIRED: SSO Subscription Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationAuthenticationInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationAuthenticationGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Sign in with organization SSO","tags":["Organization SSO"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/organizations/{orgId}/sso/closure-authenticate":{"post":{"description":"Returns an authentication URL for the current organization owner to inspect organization closure. Supply returnTo and complete the returned flow. This operation initiates authentication and does not close the organization.","operationId":"beginOrganizationClosureAuthentication","parameters":[{"in":"path","name":"orgId","required":true,"schema":{"pattern":"^pho_org_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationAuthenticationRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationAuthenticationRedirect"}}},"description":"Targeted SSO authorization URL.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationClosureAuthenticationBadRequestProblem"}}},"description":"INVALID_RETURN_TO: Invalid Return To; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationClosureAuthenticationForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoNotFoundProblem"}}},"description":"ORGANIZATION_SSO_NOT_FOUND: Organization SSO Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoConflictProblem"}}},"description":"ORGANIZATION_SSO_CONFLICT: Organization SSO Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"412":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationClosureAuthenticationPreconditionFailedProblem"}}},"description":"ORGANIZATION_SSO_PRECONDITION_FAILED: Organization SSO Precondition Failed; SSO_SUBSCRIPTION_REQUIRED: SSO Subscription Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationClosureAuthenticationInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginOrganizationClosureAuthenticationGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Sign in to close organization","tags":["Organization SSO"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/organizations/{orgId}/sso/disable":{"post":{"description":"Deletes the provider connection, releases the SSO requirement once the connection is gone, then unbinds the chosen domains. Retry with the same Idempotency-Key to resume or await the same run.","operationId":"disableOrganizationSso","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"orgId","required":true,"schema":{"pattern":"^pho_org_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisableOrganizationSsoRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoConfiguration"}}},"description":"Current connection and independent local policy state.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DisableOrganizationSsoBadRequestProblem"}}},"description":"INVALID_RETURN_TO: Invalid Return To; INVALID_ARGUMENT: Invalid Argument; IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DisableOrganizationSsoForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoNotFoundProblem"}}},"description":"ORGANIZATION_SSO_NOT_FOUND: Organization SSO Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoConflictProblem"}}},"description":"ORGANIZATION_SSO_CONFLICT: Organization SSO Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"412":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DisableOrganizationSsoPreconditionFailedProblem"}}},"description":"ORGANIZATION_SSO_PRECONDITION_FAILED: Organization SSO Precondition Failed; SSO_SUBSCRIPTION_REQUIRED: SSO Subscription Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DisableOrganizationSsoUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DisableOrganizationSsoInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DisableOrganizationSsoGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Disable organization SSO","tags":["Organization SSO"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/organizations/{orgId}/sso/invitation":{"post":{"description":"Returns an authentication URL for the organization SSO connection associated with the supplied invitation token. Supply token and returnTo. Complete the returned authentication flow; requesting its URL does not itself accept the invitation.","operationId":"beginInvitationSso","parameters":[{"in":"path","name":"orgId","required":true,"schema":{"pattern":"^pho_org_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeginInvitationSsoRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationAuthenticationRedirect"}}},"description":"Invitation-bound SSO authorization URL.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginInvitationSsoBadRequestProblem"}}},"description":"INVALID_RETURN_TO: Invalid Return To; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginInvitationSsoForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoNotFoundProblem"}}},"description":"ORGANIZATION_SSO_NOT_FOUND: Organization SSO Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoConflictProblem"}}},"description":"ORGANIZATION_SSO_CONFLICT: Organization SSO Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"412":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginInvitationSsoPreconditionFailedProblem"}}},"description":"ORGANIZATION_SSO_PRECONDITION_FAILED: Organization SSO Precondition Failed; SSO_SUBSCRIPTION_REQUIRED: SSO Subscription Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginInvitationSsoInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BeginInvitationSsoGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Sign in with invitation SSO","tags":["Organization SSO"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/organizations/{orgId}/sso/portal":{"post":{"description":"Returns an organization setup portal URL. Supply returnTo and optionally intent, either sso or domain_verification; sso is the default. Open the returned URL to complete the selected setup flow.","operationId":"createOrganizationSsoPortalLink","parameters":[{"in":"path","name":"orgId","required":true,"schema":{"pattern":"^pho_org_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationSsoPortalLinkRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationSsoPortalLinkResponse"}}},"description":"Short-lived provider setup link.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationSsoPortalLinkBadRequestProblem"}}},"description":"INVALID_RETURN_TO: Invalid Return To; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationSsoPortalLinkForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoNotFoundProblem"}}},"description":"ORGANIZATION_SSO_NOT_FOUND: Organization SSO Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoConflictProblem"}}},"description":"ORGANIZATION_SSO_CONFLICT: Organization SSO Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"412":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationSsoPortalLinkPreconditionFailedProblem"}}},"description":"ORGANIZATION_SSO_PRECONDITION_FAILED: Organization SSO Precondition Failed; SSO_SUBSCRIPTION_REQUIRED: SSO Subscription Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationSsoPortalLinkInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationSsoPortalLinkGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Create organization setup portal link","tags":["Organization SSO"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/organizations/{orgId}/sso/refresh":{"post":{"description":"Refreshes the selected organization’s SSO connection and returns its current connection state, configuration version and policy synchronization status. This operation takes no request body.","operationId":"refreshOrganizationSsoConnection","parameters":[{"in":"path","name":"orgId","required":true,"schema":{"pattern":"^pho_org_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoConfiguration"}}},"description":"Current connection and independent local policy state.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RefreshOrganizationSsoConnectionBadRequestProblem"}}},"description":"INVALID_RETURN_TO: Invalid Return To; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RefreshOrganizationSsoConnectionForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoNotFoundProblem"}}},"description":"ORGANIZATION_SSO_NOT_FOUND: Organization SSO Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoConflictProblem"}}},"description":"ORGANIZATION_SSO_CONFLICT: Organization SSO Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"412":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RefreshOrganizationSsoConnectionPreconditionFailedProblem"}}},"description":"ORGANIZATION_SSO_PRECONDITION_FAILED: Organization SSO Precondition Failed; SSO_SUBSCRIPTION_REQUIRED: SSO Subscription Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RefreshOrganizationSsoConnectionInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RefreshOrganizationSsoConnectionGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Refresh organization SSO connection","tags":["Organization SSO"],"x-photon-mcp":{"enabled":false}}},"/v1/auth/status":{"get":{"description":"Returns the authentication service name and deployment environment. Does not require authentication.","operationId":"getStatus","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetStatusResponse"}}},"description":"Service is up","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[],"summary":"Service Status","tags":["Service"],"x-photon-mcp":{"enabled":false}}},"/v1/installation-requests":{"post":{"description":"Authenticates a registered app backend using a short-lived signed client assertion. Creates request metadata only; customer approval is still required.","operationId":"createAppInstallationRequest","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAppInstallationRequestRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAppInstallationRequestResponse"}}},"description":"Installation request metadata. No customer credential or access is issued.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AppInstallationAssertionInvalidProblem"}}},"description":"APP_INSTALLATION_ASSERTION_INVALID: Invalid Installation Client Assertion","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateAppInstallationRequestConflictProblem"}}},"description":"APP_INSTALLATION_ASSERTION_REPLAYED: Installation Assertion Already Used; APP_INSTALLATION_CONFIG_CHANGED: Installation App Configuration Changed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateAppInstallationRequestGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[],"summary":"Request app installation","tags":["App Installations"],"x-photon-mcp":{"enabled":false}}},"/v1/installation-requests/redeem":{"post":{"description":"The registered app backend authenticates with a signed client assertion and a single-use code. Plaintext is returned only once; retries return status and never create another credential.","operationId":"redeemAppInstallationDelivery","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemAppInstallationDeliveryRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemAppInstallationDeliveryResponse"}}},"description":"First successful delivery or metadata-only operation status.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AppInstallationAssertionInvalidProblem"}}},"description":"APP_INSTALLATION_ASSERTION_INVALID: Invalid Installation Client Assertion","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AppInstallationDeliveryUnavailableProblem"}}},"description":"APP_INSTALLATION_DELIVERY_UNAVAILABLE: Installation Delivery Unavailable","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RedeemAppInstallationDeliveryGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[],"summary":"Redeem installation credential","tags":["App Installations"],"x-photon-mcp":{"enabled":false}}},"/v1/organizations/{organizationId}/billing":{"get":{"description":"Returns the selected organization’s billing subscription and entitlementsVersion. The subscription can be null. Read the returned plan, charges and entitlements to inspect organization billing; this operation does not purchase or change a plan.","operationId":"getOrganizationBillingOverview","parameters":[{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetOrganizationBillingOverviewResponse"}}},"description":"The organization-owned plan and its resolved entitlements.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOrganizationBillingOverviewForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/FailedPreconditionProblem"}}},"description":"FAILED_PRECONDITION: Failed Precondition","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOrganizationBillingOverviewInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOrganizationBillingOverviewGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"serviceIdentityBearer":[]},{"oauth2":["billing:read"]}],"summary":"Get organization billing overview","tags":["Organization Billing"],"x-required-permissions":["billing:read"]}},"/v1/organizations/{organizationId}/billing/checkout":{"post":{"description":"Returns a hosted payment-method collection URL for the selected organization. An Idempotency-Key header is optional; supply one to make retries safe. Complete the returned checkout flow. Receiving the URL does not mean a card has been saved; check payment-method status afterward.","operationId":"createOrganizationPaymentMethodCheckout","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationPaymentMethodCheckoutResponse"}}},"description":"Hosted card-capture page for the organization.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationPaymentMethodCheckoutBadRequestProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument; IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationPaymentMethodCheckoutForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/FailedPreconditionProblem"}}},"description":"FAILED_PRECONDITION: Failed Precondition","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationPaymentMethodCheckoutUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationPaymentMethodCheckoutInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationPaymentMethodCheckoutServiceUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable; PAYMENT_PROVIDER_NOT_READY: Payment Provider Not Ready\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationPaymentMethodCheckoutGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Create payment method checkout","tags":["Organization Billing"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["billing:manage"]}},"/v1/organizations/{organizationId}/billing/invoices":{"get":{"description":"Returns a single page of the selected organization's invoices; invoices with a zero total are excluded. Use the documented invoice fields to inspect each invoice's billing state. Listing invoices does not make a payment or modify a subscription.","operationId":"listInvoices","parameters":[{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListInvoicesResponse"}}},"description":"A single page of the organization's invoices, excluding invoices with a zero total, in no guaranteed order.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListInvoicesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/FailedPreconditionProblem"}}},"description":"FAILED_PRECONDITION: Failed Precondition","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListInvoicesInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListInvoicesGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"serviceIdentityBearer":[]},{"oauth2":["billing:read"]}],"summary":"List invoices","tags":["Organization Billing"],"x-required-permissions":["billing:read"]}},"/v1/organizations/{organizationId}/billing/payment-method":{"get":{"description":"Reports whether the selected organization has a card on file and returns its documented payment-method metadata. Reading this endpoint does not collect a new card or create a checkout session.","operationId":"getOrganizationPaymentMethod","parameters":[{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetOrganizationPaymentMethodResponse"}}},"description":"Whether the organization has a captured card and its metadata.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOrganizationPaymentMethodForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/FailedPreconditionProblem"}}},"description":"FAILED_PRECONDITION: Failed Precondition","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOrganizationPaymentMethodInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOrganizationPaymentMethodGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"serviceIdentityBearer":[]},{"oauth2":["billing:read"]}],"summary":"Get organization payment method","tags":["Organization Billing"],"x-required-permissions":["billing:read"]}},"/v1/organizations/{organizationId}/billing/preview":{"post":{"description":"Previews a fixed-charge quantity change on the selected organization's own subscription, such as SSO. Prices the change by the billing engine exactly as making it would bill it now: dueNow is that invoice, with taxes and the payer's credits applied. A quantity already paid for this period is not billed again, so a purchase after a release can be free. nextCharge is what is charged in advance at the next period start. For a fixed-charge change, pass quote on with the purchase so it is refused if the price or period no longer hold. This operation does not change billing.","operationId":"previewOrganizationChange","parameters":[{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewOrganizationChangeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewOrganizationChangeResponse"}}},"description":"What the change would bill.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PreviewOrganizationChangeForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/FailedPreconditionProblem"}}},"description":"FAILED_PRECONDITION: Failed Precondition","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PreviewOrganizationChangeInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PreviewOrganizationChangeGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"serviceIdentityBearer":[]},{"oauth2":["billing:read"]}],"summary":"Preview an organization billing change","tags":["Organization Billing"],"x-required-permissions":["billing:read"]}},"/v1/organizations/{organizationId}/billing/projects/{projectId}/preview":{"post":{"description":"Previews a change on the selected project's subscription in the supplied category: a fixed-charge quantity change, or a plan change with the held fixed charges it carries over. Prices the change by the billing engine exactly as making it would bill it now: dueNow is that invoice, with taxes and the payer's credits applied. A quantity already paid for this period is not billed again, so a purchase after a release can be free. nextCharge is what is charged in advance at the next period start. For a fixed-charge change, pass quote on with the purchase so it is refused if the price or period no longer hold. This operation does not change billing. An upgrade bills the replaced plan's usage to date and the new plan from now, less the replaced plan's unused time; planChange says when it applies and which held fixed charges the target does not sell: released first for a change that applies now, released with a downgrade when it applies. additions quotes what is added once an upgrade applies, each billed when it is added, in planChange.additions and outside dueNow. Supply both organizationId and projectId; the organization must pay for the project.","operationId":"previewProjectChange","parameters":[{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}},{"description":"The project being billed.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewProjectChangeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewProjectChangeResponse"}}},"description":"What the change would bill.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PreviewProjectChangeForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/FailedPreconditionProblem"}}},"description":"FAILED_PRECONDITION: Failed Precondition","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PreviewProjectChangeInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PreviewProjectChangeGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"serviceIdentityBearer":[]},{"oauth2":["billing:read"]}],"summary":"Preview a project billing change","tags":["Organization Billing"],"x-required-permissions":["billing:read"]}},"/v1/organizations/{organizationId}/billing/projects/{projectId}/purchase":{"post":{"description":"Purchases or changes the selected project's plan for the supplied category and planCode. A 202 response means the change is pending: poll the returned operation URL and honor Retry-After until it succeeds or fails. A 200 response means the idempotency key resolved to an operation that is already terminal; inspect that result rather than assuming success from the status code alone. Supply the required Idempotency-Key header. Supply both organizationId and projectId to select the project within its organization.","operationId":"changePlan","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}},{"description":"The project being billed.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePlanRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TerminalBillingOperation"}}},"description":"The idempotency key resolved to an operation that is already terminal.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingBillingOperation"}}},"description":"Plan change accepted. Poll the returned operation until it succeeds or fails.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical billing operation to poll for completion.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum seconds to wait before polling again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ChangePlanBadRequestProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument; IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ChangePlanForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ChangePlanConflictProblem"}}},"description":"FAILED_PRECONDITION: Failed Precondition; IDEMPOTENCY_REQUEST_IN_PROGRESS: Idempotency Request In Progress","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ChangePlanUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ChangePlanInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ChangePlanServiceUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable; IDEMPOTENCY_UNAVAILABLE: Idempotency Unavailable\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ChangePlanGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Change plan","tags":["Project Billing"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["billing:manage"]}},"/v1/organizations/{organizationId}/billing/projects/{projectId}/terms":{"get":{"description":"Returns what the selected project is billed on now, per category it holds: the plan as its subscription has it, with any override applied, each fixed charge at the subscription's price and quantity, and resolved entitlements; where the plan comes from; how invoices are paid; the current period and next billing date; and any downgrade or cancellation waiting for the period end. It also returns the credit the paying organization holds on credit notes, such as the unused time of a plan an upgrade replaced; it offsets that organization's next invoices. Supply both organizationId and projectId; the organization must pay for the project. This operation does not change billing.","operationId":"getEffectiveTerms","parameters":[{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}},{"description":"The project being billed.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetEffectiveTermsResponse"}}},"description":"The project's effective billing terms, per category.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetEffectiveTermsForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/FailedPreconditionProblem"}}},"description":"FAILED_PRECONDITION: Failed Precondition","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetEffectiveTermsInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetEffectiveTermsGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"serviceIdentityBearer":[]},{"oauth2":["billing:read"]}],"summary":"Get the project's effective billing terms","tags":["Organization Billing"],"x-required-permissions":["billing:read"]}},"/v1/organizations/{organizationId}/billing/setup-intent":{"post":{"description":"Creates payment-provider configuration for collecting a card for the selected organization and returns clientSecret and publishableKey. Supply the required Idempotency-Key header. Complete the provider’s card-collection flow separately and avoid logging the returned client secret.","operationId":"createOrganizationSetupIntent","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationSetupIntentResponse"}}},"description":"Payment-provider client configuration (client secret and publishable key) for capturing the organization's card.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationSetupIntentBadRequestProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument; IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationSetupIntentForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/FailedPreconditionProblem"}}},"description":"FAILED_PRECONDITION: Failed Precondition","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationSetupIntentUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationSetupIntentInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationSetupIntentGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Create card setup intent","tags":["Organization Billing"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["billing:manage"]}},"/v1/organizations/{organizationId}/projects":{"get":{"description":"Returns a cursor-paginated page of the active projects in organizationId. Filter using query and the documented creation-time bounds, and navigate with pageSize and pageToken. Project roles are not returned and role is not a supported filter.","operationId":"listProjects","parameters":[{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}},{"in":"query","name":"createdAfter","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},{"in":"query","name":"createdBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},{"in":"query","name":"query","schema":{"minLength":1,"type":"string"}},{"in":"query","name":"pageSize","schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"pageToken","schema":{"maxLength":2048,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPage"}}},"description":"One page of active projects in the organization.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListProjectsForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListProjectsGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"serviceIdentityBearer":[]}],"summary":"List projects","tags":["Projects"],"x-required-permissions":["organization:read_projects"]},"post":{"description":"Creates in the authorized organization. In addition to account credentials, explicitly granted Service Identity API keys and M2M tokens may create projects. Project API keys cannot create projects. Creator and private credential evidence come only from the trusted authorization context. The caller-selected slug is immutable, must be 3 to 63 lowercase ASCII alphanumerics separated by single hyphens, and cannot be reserved or held by any active or deleted project.","operationId":"createProject","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}},"description":"The created project, ready to use: its billingInitialization is completed or unknown. A replay after setup finished answers here too.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}},"description":"The project is created but its billing is still being set up. GET the Location after the Retry-After interval until billingInitialization is completed or unknown; retry_required means setup is being retried, so keep polling.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the created project. Poll it until billingInitialization is completed or unknown.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the project.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateProjectBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateProjectForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SlugTakenProblem"}}},"description":"SLUG_TAKEN: Slug Already Taken","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateProjectUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateProjectGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"serviceIdentityBearer":[]}],"summary":"Create project","tags":["Projects"],"x-required-permissions":["organization:create_project"]}},"/v1/organizations/{organizationId}/projects/closure-status":{"get":{"description":"Returns closure progress for projectId within organizationId, including deletionOperationId, domain progress and ready. This read operation does not initiate deletion.","operationId":"getProjectClosureStatus","parameters":[{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}},{"in":"query","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProjectClosureStatusResponse"}}},"description":"Current cleanup and settlement evidence. Project deletion alone does not establish readiness.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetProjectClosureStatusForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectNotFoundProblem"}}},"description":"PROJECT_NOT_FOUND: Project Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetProjectClosureStatusGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"serviceIdentityBearer":[]}],"summary":"Get project closure status","tags":["Projects"],"x-required-permissions":["organization:read_projects"]}},"/v1/organizations/{organizationId}/projects/count":{"get":{"description":"Counts the projects the same filter would list. The count is read from the primary, so it is authoritative rather than replica-lagged.","operationId":"countProjects","parameters":[{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}},{"in":"query","name":"createdAfter","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},{"in":"query","name":"createdBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},{"in":"query","name":"query","schema":{"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCount"}}},"description":"The number of matching projects.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountProjectsForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountProjectsGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"serviceIdentityBearer":[]}],"summary":"Count projects","tags":["Projects"],"x-required-permissions":["organization:read_projects"]}},"/v1/organizations/{organizationId}/projects/slug-availability":{"get":{"description":"Reports whether createProject would accept `slug` right now. Advisory: only the create itself allocates, so a caller must still handle SLUG_TAKEN. A malformed slug is rejected on shape; a reserved slug, a slug held by an active project, and a slug retired with a deleted project each answer `available: false` with a reason.","operationId":"checkProjectSlugAvailability","parameters":[{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}},{"in":"query","name":"slug","required":true,"schema":{"maxLength":63,"minLength":1,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckProjectSlugAvailabilityResponse"}}},"description":"Whether the slug can be allocated, and why not.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CheckProjectSlugAvailabilityForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CheckProjectSlugAvailabilityGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"serviceIdentityBearer":[]}],"summary":"Check project slug availability","tags":["Projects"],"x-required-permissions":["organization:create_project"]}},"/v1/projects/{id}/attachments":{"get":{"description":"Lists the Project's Attachment metadata, with optional time filters.","operationId":"listAttachments","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Exclusive upper bound on createdAt, RFC 3339. Cannot combine with updatedAt bounds.","in":"query","name":"createdBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive lower bound on createdAt, RFC 3339. Cannot combine with updatedAt bounds.","in":"query","name":"createdSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Direction along orderBy; desc, the default, is newest first","in":"query","name":"order","schema":{"$ref":"#/components/schemas/SortOrder"}},{"description":"Sort timestamp; defaults to the filtered timestamp, otherwise created_at. Must match the time bounds.","in":"query","name":"orderBy","schema":{"$ref":"#/components/schemas/TimestampOrderBy"}},{"description":"Items per page. A value above 100 returns at most 100 items.","in":"query","name":"pageSize","schema":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},{"description":"Token from nextPageToken. Keep the same Project and query.","in":"query","name":"pageToken","schema":{"maxLength":4096,"minLength":1,"pattern":"^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$","type":"string"}},{"description":"Exclusive upper bound on updatedAt, RFC 3339. Cannot combine with createdAt bounds.","in":"query","name":"updatedBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive lower bound on updatedAt, RFC 3339. Cannot combine with createdAt bounds.","in":"query","name":"updatedSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachmentPage"}}},"description":"A page of Project Attachments in the requested order.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListAttachmentsForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListAttachmentsInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListAttachmentsGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List attachments","tags":["Attachments"],"x-required-permissions":["project:read"]},"post":{"description":"Uploads a file and returns its Attachment once ready to download.","operationId":"uploadAttachment","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"header","name":"content-length","required":true,"schema":{"pattern":"^[1-9][0-9]*$","type":"string"}},{"in":"header","name":"content-type","required":true,"schema":{"maxLength":512,"type":"string"}},{"description":"Reuse the same key and request for retries.","in":"header","name":"idempotency-key","required":true,"schema":{"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}}],"requestBody":{"content":{"multipart/related":{"schema":{"format":"binary","type":"string"}}},"description":"Exactly two parts: JSON with contentType, sizeBytes, and optional filename and metadata, followed by the file bytes. sizeBytes must match the file length.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Attachment"}}},"description":"The attachment upload had already been committed.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Attachment"}}},"description":"The attachment was uploaded and committed.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical resource URL of the Attachment.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UploadAttachmentBadRequestProblem"}}},"description":"HTTP_ERROR: Request Failed; INVALID_ATTACHMENT_REQUEST: Invalid Attachment Request","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UploadAttachmentForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UploadAttachmentConflictProblem"}}},"description":"ATTACHMENT_CONFLICT: Attachment Conflict; ATTACHMENT_UPLOAD_NOT_READY: Attachment Upload Not Ready","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UploadAttachmentInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UploadAttachmentGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Upload attachment","tags":["Attachments"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["project:write"]}},"/v1/projects/{id}/attachments/{attachmentId}":{"get":{"description":"Returns an Attachment's metadata. Use the content endpoint to download its bytes.","operationId":"getAttachment","parameters":[{"in":"path","name":"attachmentId","required":true,"schema":{"pattern":"^pho_att_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Attachment"}}},"description":"The Attachment resource.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetAttachmentForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AttachmentNotFoundProblem"}}},"description":"ATTACHMENT_NOT_FOUND: Attachment Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetAttachmentInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetAttachmentGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get attachment","tags":["Attachments"],"x-required-permissions":["project:read"]}},"/v1/projects/{id}/attachments/{attachmentId}/content":{"get":{"description":"Downloads an Attachment's bytes. If unavailable after ten seconds, returns ATTACHMENT_NOT_READY with Retry-After: 5.","operationId":"downloadAttachment","parameters":[{"in":"path","name":"attachmentId","required":true,"schema":{"pattern":"^pho_att_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/DownloadAttachmentResponse"}}},"description":"The Attachment's raw file bytes. Content-Type identifies the media type of the response.","headers":{"Content-Disposition":{"description":"Attachment disposition using the filename declared during upload.","schema":{"type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DownloadAttachmentForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AttachmentNotFoundProblem"}}},"description":"ATTACHMENT_NOT_FOUND: Attachment Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AttachmentNotReadyProblem"}}},"description":"ATTACHMENT_NOT_READY: Attachment Not Ready","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Seconds to wait before retrying the download.","schema":{"$ref":"#/components/schemas/AttachmentNotReadyRetryAfter"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DownloadAttachmentInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DownloadAttachmentGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Download attachment","tags":["Attachments"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["project:read"]}},"/v1/projects/{id}/messages":{"get":{"description":"Lists the Project's Messages, with optional resource, conversation, and time filters. Results are eventually consistent.","operationId":"listMessages","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Exclusive upper bound on createdAt, RFC 3339. Cannot combine with updatedAt bounds.","in":"query","name":"createdBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive lower bound on createdAt, RFC 3339. Cannot combine with updatedAt bounds.","in":"query","name":"createdSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Message origin: received or dispatched, including later delivery outcomes","in":"query","name":"direction","schema":{"$ref":"#/components/schemas/MessageDirection"}},{"description":"Comma-separated content types to exclude from resource-scoped Message lists and counts. Requires resourceId. A group is excluded when group is selected or all of its parts are excluded; retained Messages are unchanged. Supported values: attachment, group, message.delete, message.read, poll, poll.update, poll.vote, reaction, space.participants.update, space.typing.update, text, text.update, voice.","in":"query","name":"excludeContentTypes","schema":{"maxLength":1024,"type":"string"}},{"description":"Direction along orderBy; desc, the default, is newest first","in":"query","name":"order","schema":{"$ref":"#/components/schemas/SortOrder"}},{"description":"Sort timestamp; defaults to the filtered timestamp, otherwise created_at. Must match the time bounds.","in":"query","name":"orderBy","schema":{"$ref":"#/components/schemas/TimestampOrderBy"}},{"description":"Items per page. A value above 200 returns at most 200 items.","in":"query","name":"pageSize","schema":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},{"description":"Token from nextPageToken. Keep the same Project and query.","in":"query","name":"pageToken","schema":{"maxLength":4096,"minLength":1,"pattern":"^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$","type":"string"}},{"description":"Selects this User's sent or received Messages. Requires spaceId; cannot combine with resourceId.","in":"query","name":"perspectiveUserId","schema":{"pattern":"^pho_usr_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Restricts the page to one platform","in":"query","name":"platform","schema":{"$ref":"#/components/schemas/Platform"}},{"description":"Resource associated with the Message when sent or received. Can combine with spaceId, but not perspectiveUserId.","in":"query","name":"resourceId","schema":{"pattern":"^pho_res_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Requires resourceId or perspectiveUserId. User perspectives use created_at order and exclude time bounds and platform filters.","in":"query","name":"spaceId","schema":{"pattern":"^pho_spc_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Exclusive upper bound on updatedAt, RFC 3339. Cannot combine with createdAt bounds.","in":"query","name":"updatedBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive lower bound on updatedAt, RFC 3339. Cannot combine with createdAt bounds.","in":"query","name":"updatedSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessagePage"}}},"description":"A page of Messages in the requested order.","headers":{"Cache-Control":{"description":"Private revalidation policy for this Message representation.","schema":{"type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"ETag":{"description":"Validator for the selected Message representation.","schema":{"type":"string"}},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidPageTokenProblem"}}},"description":"INVALID_PAGE_TOKEN: Invalid Page Token","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListMessagesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListMessagesInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListMessagesGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List Messages","tags":["Messages"],"x-required-permissions":["project:read"]},"post":{"description":"Sends SMS, email, WhatsApp Personal, WhatsApp Business, iMessage, or Telegram text and image messages. A shared iMessage line sends only in direct Spaces, only to a peer with an active Assignment who has messaged it since that Assignment. SMS and MMS require current Platforms authorization for the sender and every recipient; campaign eligibility is required unless every recipient is in-network.","operationId":"sendMessage","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"header","name":"idempotency-key","required":true,"schema":{"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SentMessage"}}},"description":"The Message was persisted for asynchronous delivery. Idempotent-Replayed indicates that this request reused an existing Message.","headers":{"Cache-Control":{"description":"Prevents storage of the send response.","schema":{"type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"description":"True when the idempotency key replayed an existing Message.","schema":{"$ref":"#/components/schemas/IdempotentReplayedValue"}},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidRequestProblem"}}},"description":"INVALID_REQUEST: Invalid Request","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"402":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BillingSuspendedProblem"}}},"description":"BILLING_SUSPENDED: Billing Suspended","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SendMessageForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch; SHARED_LINE_NOT_ASSIGNED: Shared Line Not Assigned; SHARED_LINE_INBOUND_REQUIRED: Shared Line Inbound Required\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SendMessageNotFoundProblem"}}},"description":"SPACE_NOT_FOUND: Space Not Found; MESSAGE_NOT_FOUND: Message Not Found; ATTACHMENT_NOT_FOUND: Attachment Not Found; SENDER_NOT_FOUND: Sender Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SendMessageConflictProblem"}}},"description":"ATTACHMENT_NOT_READY: Attachment Not Ready; SENDER_NOT_SENDABLE: Sender Not Sendable; SMS_CAMPAIGN_NOT_ELIGIBLE: SMS Campaign Not Eligible; SPACE_NOT_SENDABLE: Space Not Sendable","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SendMessageUnprocessableEntityProblem"}}},"description":"SHARED_LINE_GROUP_UNSUPPORTED: Shared Line Group Unsupported; VALIDATION_FAILED: Request Validation Failed; INVALID_CONTENT: Invalid Content; UNSUPPORTED_CONTENT: Unsupported Content; MESSAGE_TOO_LONG: Message Too Long; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SendMessageInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SendMessageGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Send a Message","tags":["Messages"],"x-required-permissions":["project:write"]}},"/v1/projects/{id}/messages/count":{"get":{"description":"Counts matching Messages before pagination. Delivery updates do not add Messages; results are eventually consistent.","operationId":"countMessages","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Exclusive upper bound on createdAt, RFC 3339. Cannot combine with updatedAt bounds.","in":"query","name":"createdBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive lower bound on createdAt, RFC 3339. Cannot combine with updatedAt bounds.","in":"query","name":"createdSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Message origin: received or dispatched, including later delivery outcomes","in":"query","name":"direction","schema":{"$ref":"#/components/schemas/MessageDirection"}},{"description":"Comma-separated content types to exclude from resource-scoped Message lists and counts. Requires resourceId. A group is excluded when group is selected or all of its parts are excluded; retained Messages are unchanged. Supported values: attachment, group, message.delete, message.read, poll, poll.update, poll.vote, reaction, space.participants.update, space.typing.update, text, text.update, voice.","in":"query","name":"excludeContentTypes","schema":{"maxLength":1024,"type":"string"}},{"description":"Selects this User's sent or received Messages. Requires spaceId; cannot combine with resourceId.","in":"query","name":"perspectiveUserId","schema":{"pattern":"^pho_usr_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Restricts the page to one platform","in":"query","name":"platform","schema":{"$ref":"#/components/schemas/Platform"}},{"description":"Resource associated with the Message when sent or received. Can combine with spaceId, but not perspectiveUserId.","in":"query","name":"resourceId","schema":{"pattern":"^pho_res_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Requires resourceId or perspectiveUserId. User perspectives use created_at order and exclude time bounds and platform filters.","in":"query","name":"spaceId","schema":{"pattern":"^pho_spc_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Exclusive upper bound on updatedAt, RFC 3339. Cannot combine with createdAt bounds.","in":"query","name":"updatedBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive lower bound on updatedAt, RFC 3339. Cannot combine with createdAt bounds.","in":"query","name":"updatedSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Calendar-day counts by Message.createdAt","in":"query","name":"interval","schema":{"const":"day","type":"string"}},{"description":"IANA zone for calendar-day buckets; defaults to UTC; requires interval","in":"query","name":"timeZone","schema":{"maxLength":100,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountMessagesResponse"}}},"description":"Matching Message count, optional direction groups and daily buckets","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountMessagesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountMessagesInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountMessagesGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:read"]}],"summary":"Count Messages","tags":["Messages"],"x-required-permissions":["project:read"]}},"/v1/projects/{id}/messages/{messageId}":{"get":{"description":"Returns one stored Message by canonical Photon Message ID on any supported contract platform. The globally unique Message ID is resolved within the authorized Project. Unsupported platform Messages are outside this collection and return MESSAGE_NOT_FOUND.","operationId":"getMessage","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"path","name":"messageId","required":true,"schema":{"pattern":"^pho_msg_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"header","name":"if-none-match","schema":{"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformMessage"}}},"description":"The requested Message.","headers":{"Cache-Control":{"description":"Private revalidation policy for this Message representation.","schema":{"type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"ETag":{"description":"Validator for the selected Message representation.","schema":{"type":"string"}},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"304":{"description":"The request's If-None-Match validator matches the current representation.","headers":{"Cache-Control":{"description":"Private revalidation policy for this Message representation.","schema":{"type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"ETag":{"description":"Validator for the selected Message representation.","schema":{"type":"string"}},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetMessageForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/MessageNotFoundProblem"}}},"description":"MESSAGE_NOT_FOUND: Message Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetMessageInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetMessageGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get a Message","tags":["Messages"],"x-required-permissions":["project:read"]}},"/v1/projects/{id}/messages/{messageId}/read":{"post":{"description":"Persists a request to mark one incoming Message as read using its receiving account. A 202 means accepted for asynchronous execution, not handled by the provider. Requires Idempotency-Key. The returned action Message tracks its outcome; privacy settings may suppress remote visibility.","operationId":"markMessageRead","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"path","name":"messageId","required":true,"schema":{"pattern":"^pho_msg_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"header","name":"idempotency-key","required":true,"schema":{"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarkMessageReadResponse"}}},"description":"The read request was persisted for execution.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidRequestProblem"}}},"description":"INVALID_REQUEST: Invalid Request","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/MarkMessageReadForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/MarkMessageReadNotFoundProblem"}}},"description":"SENDER_NOT_FOUND: Sender Not Found; SPACE_NOT_FOUND: Space Not Found; MESSAGE_NOT_FOUND: Message Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/MarkMessageReadConflictProblem"}}},"description":"SENDER_NOT_SENDABLE: Sender Not Sendable; SPACE_NOT_SENDABLE: Space Not Sendable; MESSAGE_NOT_READABLE: Message Not Readable","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/MarkMessageReadUnprocessableEntityProblem"}}},"description":"IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused; OPERATION_UNAVAILABLE: Operation Unavailable; VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/MarkMessageReadInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/MarkMessageReadGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:write"]}],"summary":"Mark a Message as read","tags":["Messages"],"x-required-permissions":["project:write"]}},"/v1/projects/{id}/platforms":{"get":{"description":"Lists the platform types available to this project. Every project currently sees the same fixed public contract, answered in-process rather than forwarded, so the list survives an outage of the private service. The project binding exists so that answer can narrow per project without moving the route. Requires the platforms:read permission bound to the project resource in the path.","operationId":"listProjectPlatforms","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListProjectPlatformsResponse"}}},"description":"Every platform type available to the project.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListProjectPlatformsForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListProjectPlatformsInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RequestTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List project platforms","tags":["Platforms"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/email/domains":{"post":{"description":"Reserves a normalized DNS domain and starts its durable email-provider setup. The accepted provision consumes one email-domain entitlement slot until it fails, is cancelled, or becomes a live resource; the plan's email.max_email_domains value sets the project limit. The customer resource does not exist until provider identity and DNS setup reach READY; poll the returned operation for progress. A domain may have only one unfinished provision or live resource globally. Email domains have no additional per-domain charge. The Idempotency-Key is required and permanent: replaying the same key and canonical domain returns the original operation forever. Requires the platforms:write permission bound to the project resource in the path.","operationId":"connectEmailDomain","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectEmailDomainRequest"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The domain was reserved and setup was dispatched. GET the Location after the Retry-After interval until the operation is terminal.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectEmailDomainBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"402":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/EntitlementRequiredProblem"}}},"description":"ENTITLEMENT_REQUIRED: Entitlement Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectEmailDomainForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectEmailDomainConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; EMAIL_DOMAIN_ALREADY_CONNECTED: Email Domain Already Connected; EMAIL_DOMAIN_CAP_EXCEEDED: Email Domain Cap Exceeded","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectEmailDomainUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectEmailDomainInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectEmailDomainServiceUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable; BILLING_NOT_PROVISIONED: Billing Not Provisioned; BILLING_ENTITLEMENTS_PENDING: Billing Entitlements Pending\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectEmailDomainGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Connect email domain","tags":["Email domains"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/filtered-otp":{"get":{"description":"Lists the verification codes Photon kept from this project's dedicated lines and numbers. Inbound messages that carry a one-time code are filtered before delivery; this is the record that they arrived, so a quiet line can be told apart from a broken one. It records the receiving line, its platform and when the code arrived — never the code itself. Each entry names the dedicated line or number (`resourceId`) that received it. Newest first, within an optional inclusive `receivedAfter`/`receivedBefore` window. A page may hold fewer than `pageSize` entries and still return a `nextPageToken`; only its absence means the end. Filter by `platform`; to read one line, use its own filtered-otp path. Requires the platforms:read permission bound to the project resource in the path.","operationId":"listFilteredVerificationCodes","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"platform","schema":{"$ref":"#/components/schemas/FilteredVerificationCodePlatform"}},{"in":"query","name":"receivedAfter","schema":{"example":"2026-09-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"in":"query","name":"receivedBefore","schema":{"example":"2026-10-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"in":"query","name":"pageSize","schema":{"maximum":200,"minimum":1,"type":"integer"}},{"in":"query","name":"pageToken","schema":{"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilteredVerificationCodePage"}}},"description":"A page of filtered verification codes, newest first.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListFilteredVerificationCodesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListFilteredVerificationCodesInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListFilteredVerificationCodesGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List filtered verification codes","tags":["Verification codes"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/filtered-otp/count":{"get":{"description":"Counts the verification codes Photon kept from this project's dedicated lines and numbers, optionally for one `platform`. Without `receivedAfter` and `receivedBefore` the window is the 30 days before the request; a window longer than 366 days is rejected. The response echoes the window it resolved, so the number always says which period it covers. Requires the platforms:read permission bound to the project resource in the path.","operationId":"countFilteredVerificationCodes","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"platform","schema":{"$ref":"#/components/schemas/FilteredVerificationCodePlatform"}},{"in":"query","name":"receivedAfter","schema":{"example":"2026-09-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"in":"query","name":"receivedBefore","schema":{"example":"2026-10-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilteredVerificationCodeCount"}}},"description":"How many codes were filtered in the resolved window.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountFilteredVerificationCodesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountFilteredVerificationCodesInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountFilteredVerificationCodesGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Count filtered verification codes","tags":["Verification codes"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/imessage":{"get":{"description":"Reports whether the project is on shared or dedicated iMessage lines, derived from its billing entitlements. Shared mode carries the seat cap. Both say whether a dedicated line requested now would be assigned without waiting. Requires the platforms:read permission bound to the project resource in the path.","operationId":"getProjectImessagePlatform","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPlatformSettings"}}},"description":"The project's iMessage line mode.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetProjectImessagePlatformForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetProjectImessagePlatformInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetProjectImessagePlatformServiceUnavailableProblem"}}},"description":"BILLING_NOT_PROVISIONED: Billing Not Provisioned; BILLING_ENTITLEMENTS_PENDING: Billing Entitlements Pending; UPSTREAM_UNAVAILABLE: Upstream Service Unavailable\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetProjectImessagePlatformGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get project iMessage platform","tags":["Platforms"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/imessage/assignments":{"get":{"description":"Lists the project's shared line assignments, oldest first. Released assignments are excluded unless includeReleased is set. Requires the platforms:read permission bound to the project resource in the path.","operationId":"listSharedLineAssignments","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"includeReleased","schema":{"type":"string"}},{"in":"query","name":"pageSize","schema":{"maximum":200,"minimum":1,"type":"integer"}},{"in":"query","name":"pageToken","schema":{"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedLineAssignmentPage"}}},"description":"A page of shared line assignments.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListSharedLineAssignmentsForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListSharedLineAssignmentsInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListSharedLineAssignmentsGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List shared line assignments","tags":["Shared line assignments"],"x-required-permissions":["platforms:read"]},"post":{"description":"Maps an end user's iMessage handle — an E.164 phone number or an email address — onto one of the project's pooled shared iMessage lines, consuming a seat from the project's entitlement. The assigned number is allocated by the server. When an email address is supplied in `email` the user is sent an invite asynchronously to that address; it is never inferred from the handle, and the response never reports whether the send succeeded. Requires the platforms:write permission bound to the project resource in the path.","operationId":"createSharedLineAssignment","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSharedLineAssignmentRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedLineAssignment"}}},"description":"The created shared line assignment.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateSharedLineAssignmentBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateSharedLineAssignmentForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateSharedLineAssignmentConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; IMESSAGE_MODE_DEDICATED: iMessage Mode Is Dedicated; SHARED_LINE_CAP_EXCEEDED: Shared Line Cap Exceeded; ASSIGNMENT_EXISTS: Assignment Exists","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateSharedLineAssignmentUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateSharedLineAssignmentInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateSharedLineAssignmentServiceUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable; BILLING_NOT_PROVISIONED: Billing Not Provisioned; BILLING_ENTITLEMENTS_PENDING: Billing Entitlements Pending; SHARED_LINE_POOL_EXHAUSTED: Shared Line Pool Exhausted\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateSharedLineAssignmentGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Create shared line assignment","tags":["Shared line assignments"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/imessage/assignments/{assignmentId}":{"delete":{"description":"Releases a shared line assignment, freeing both its seat and its handle for reassignment. The row is retained for audit and returned with releasedAt set, so repeating the call is safe. Requires the platforms:write permission bound to the project resource in the path.","operationId":"releaseSharedLineAssignment","parameters":[{"in":"path","name":"assignmentId","required":true,"schema":{"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedLineAssignment"}}},"description":"The released shared line assignment.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseSharedLineAssignmentForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignmentNotFoundProblem"}}},"description":"ASSIGNMENT_NOT_FOUND: Assignment Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseSharedLineAssignmentInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseSharedLineAssignmentGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Release shared line assignment","tags":["Shared line assignments"],"x-required-permissions":["platforms:write"]},"get":{"description":"Reads one shared line assignment. Requires the platforms:read permission bound to the project resource in the path.","operationId":"getSharedLineAssignment","parameters":[{"in":"path","name":"assignmentId","required":true,"schema":{"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedLineAssignment"}}},"description":"The shared line assignment.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetSharedLineAssignmentForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignmentNotFoundProblem"}}},"description":"ASSIGNMENT_NOT_FOUND: Assignment Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetSharedLineAssignmentInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetSharedLineAssignmentGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get shared line assignment","tags":["Shared line assignments"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/imessage/dedicated":{"post":{"description":"Claims one dedicated iMessage line for the project and enables iMessage on it. Always answers 202 with an operation: dedicated lines are allocated from available capacity, and unavailable capacity causes a wait rather than a failure — this can legitimately stay `running` for hours, which is exactly why the response is a handle to poll rather than a number. The project's messaging subscription must grant the dedicated iMessage lines entitlement (`imessage_dedicated_lines.can_purchase`), and that is checked before capacity is reserved. The line's own charge starts when a line is claimed; the subscription that grants the entitlement bills on its own terms, which cancelling a request does not change. Waiting requests are served first come, first served. One that is still waiting is cancelled with a `reason` if the project is deleted (`project_deleted`) or its plan stops selling dedicated lines (`entitlement_lost`); while the payer is restricted for overdue payment it keeps waiting. If you no longer want to wait, POST to the operation's cancel endpoint, which charges nothing for the line. The Idempotency-Key is required and permanent: repeating it returns the same operation forever. A further line always needs a NEW key, including while others are still waiting. Requires the platforms:write permission bound to the project resource in the path.","operationId":"provisionImessageDedicatedLine","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The provision was accepted and is running. GET the Location after the Retry-After interval until `state` is terminal; the response there carries the line once one is claimed.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProvisionImessageDedicatedLineBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"402":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/EntitlementRequiredProblem"}}},"description":"ENTITLEMENT_REQUIRED: Entitlement Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProvisionImessageDedicatedLineForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectClosingProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProvisionImessageDedicatedLineUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProvisionImessageDedicatedLineInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProvisionImessageDedicatedLineServiceUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable; BILLING_NOT_PROVISIONED: Billing Not Provisioned; BILLING_ENTITLEMENTS_PENDING: Billing Entitlements Pending\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProvisionImessageDedicatedLineGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Provision dedicated iMessage line","tags":["Dedicated iMessage lines"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/imessage/dedicated/{resourceId}":{"delete":{"description":"Removes only iMessage from one dedicated line. Shared Voice is removed only when WhatsApp is absent; if WhatsApp remains, Voice, the resource, ownership, and phone number are preserved. Usually finishes inside this request and answers 200; a slow workflow answers 202 with an operation to poll. Takes no Idempotency-Key because the open iMessage charge period identifies this product tenure.","operationId":"releaseImessageDedicatedLine","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The iMessage product and its charge period were removed.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The removal is still running. GET the Location after the Retry-After interval.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseImessageDedicatedLineForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResourceNotFoundProblem"}}},"description":"RESOURCE_NOT_FOUND: Resource Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseImessageDedicatedLineInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseImessageDedicatedLineGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Release dedicated iMessage line","tags":["Dedicated iMessage lines"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/operations":{"get":{"description":"Lists the project's operations using the same operation representation as creation and GET. The API includes detail.setupUrl only with platforms:write for this project. Results are oldest first — every provision and release it has ever asked for, including the ones still running. This is the entire in-flight view: a resource only appears once it is real, so nothing half-built shows up in the resource list and nothing in flight is missing from this one. Filter by `resourceId` to get one resource's whole history, which for a pooled line is every tenure this project has had on it. `state` is comma-separated; `type` accepts one operation type and an absent filter means everything, including failed and cancelled operations. `endedAfter` keeps only operations that finished after that instant, so what failed or was withdrawn recently is one short page. Requires the platforms:read permission bound to the project resource in the path.","operationId":"listOperations","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"endedAfter","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","type":"string"}},{"in":"query","name":"pageSize","schema":{"maximum":200,"minimum":1,"type":"integer"}},{"in":"query","name":"pageToken","schema":{"minLength":1,"type":"string"}},{"in":"query","name":"resourceId","schema":{"type":"string"}},{"in":"query","name":"state","schema":{"minLength":1,"type":"string"}},{"in":"query","name":"type","schema":{"$ref":"#/components/schemas/OperationType"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperationPage"}}},"description":"A page of the project's operations.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListOperationsForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListOperationsInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListOperationsGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List operations","tags":["Operations"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/operations/{operationId}":{"get":{"description":"Reads one operation using the same operation representation as creation and list. The API includes detail.setupUrl only with platforms:write for this project. This is the polling endpoint every asynchronous request here points its Location at, and it resolves from the moment that request is accepted — an operation is committed before its work is dispatched, so there is no window in which the URL 404s. Poll until `state` is one of `succeeded`, `failed` or `cancelled`, pacing from the Retry-After the accepting response returned. While an email domain waits for DNS, `detail` always contains the manual records and may additionally contain `automaticSetup` with a signed provider URL to open separately. Once the operation has produced a resource, the response carries that resource too, so the poll that finishes is also the one that tells you what you got. `succeeded` means the work is done; billing runs behind it and is not something the caller waits on. Operations are never purged, so a 404 means the id was never this project's. Requires the platforms:read permission bound to the project resource in the path.","operationId":"getOperation","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"operationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetOperationResponse"}}},"description":"The operation, and the resource it produced once one exists. Retry-After is supplied for pending/running campaign and Telegram operations and omitted once terminal.","headers":{"Cache-Control":{"description":"Assignment and operation responses must not be cached.","schema":{"example":"no-store","type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOperationForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OperationNotFoundProblem"}}},"description":"OPERATION_NOT_FOUND: Operation Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOperationInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetOperationGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get operation","tags":["Operations"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/operations/{operationId}/cancel":{"post":{"description":"Withdraws a provision that has not been fulfilled yet. This is an operations action rather than a DELETE, because there is nothing to delete: no resource exists until the work commits. Whether it is accepted depends on the resource type — a dedicated iMessage line may sit waiting on inventory for hours and withdrawing costs nothing, while an SMS number is cancellable during inventory waiting and answers 409 once the workflow commits to its first provider order. Campaign assignment and detachment operations cannot be cancelled in any state. Wait for completion before requesting another change; that new change is not a guaranteed rollback. The output-only `cancellable` field is a snapshot; the cancellation transaction always checks the current phase under a row lock. A cancel that loses the race against the work finishing also answers 409: the resource exists and is billed for, so what you want then is to release it. Nothing is charged for a cancelled provision — billing runs after the work, so there is never anything to refund. Requires the platforms:write permission bound to the project resource in the path.","operationId":"cancelOperation","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"operationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The cancelled operation.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CancelOperationForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OperationNotFoundProblem"}}},"description":"OPERATION_NOT_FOUND: Operation Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OperationNotCancellableProblem"}}},"description":"OPERATION_NOT_CANCELLABLE: Operation Not Cancellable","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CancelOperationInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CancelOperationGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Cancel operation","tags":["Operations"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/resources":{"get":{"description":"Lists everything the project holds, oldest first, whatever kind of thing it is — one endpoint and one id shape for numbers, dedicated lines and whatever ships next. Nothing half-built appears here: a resource exists only once it is real, so anything still being provisioned is an operation rather than a resource with a pending flag. Filter by `type`, by `ability` (which matches only abilities that are currently enabled), and by `state` — comma-separated, and absent means every state, including retired ones. `detail` carries a per-type public view: an SMS number's number, a dedicated line's number and its per-capability health (`imessageHealth`, `whatsappHealth`, each with an `overallStatus` of `available`, `degraded`, `unavailable` or `unknown`; `imessageHealth` also carries `account`, `photonSystemComponents`, `newConversations`, `sms` and `mms`, each a `status` with the `cause` that decided it: `account`, `photonSystemComponents`, or null for the item's own state). Requires the platforms:read permission bound to the project resource in the path.","operationId":"listResources","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"ability","schema":{"minLength":1,"type":"string"}},{"in":"query","name":"pageSize","schema":{"maximum":200,"minimum":1,"type":"integer"}},{"in":"query","name":"pageToken","schema":{"minLength":1,"type":"string"}},{"in":"query","name":"state","schema":{"minLength":1,"type":"string"}},{"in":"query","name":"type","schema":{"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourcePage"}}},"description":"A page of the project's resources.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListResourcesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListResourcesInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListResourcesGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List resources","tags":["Resources"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/resources/{resourceId}":{"delete":{"description":"Gives one resource back, whatever it is. What that means is the resource's own business: an SMS number goes back to the provider and is retired, a dedicated iMessage line goes back to the shared pool and stays in existence for someone else to claim. Either way the provider is contacted first where there is one, then a single transaction disables every ability, ends the project's hold and closes the charge period — so a provider that refuses leaves the resource exactly as it was, still owned and still billed. Usually finishes inside this request and answers 200; if the provider is slow it answers 202 and the Location points at the operation to poll. The decrement runs behind the answer either way, so the resource is gone when you are told it is. Takes no Idempotency-Key — releasing the same resource twice is the same request. Releasing one that is already gone answers 404. Requires the platforms:write permission bound to the project resource in the path.","operationId":"releaseResource","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The release finished inside this request. The resource is gone.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The release is still running at the provider. GET the Location after the Retry-After interval; a terminal answer may arrive on any read.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseResourceForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResourceNotFoundProblem"}}},"description":"RESOURCE_NOT_FOUND: Resource Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseResourceConflictProblem"}}},"description":"WHATSAPP_SENDER_CONNECTED: WhatsApp Sender Connected; WHATSAPP_SENDER_PROVISIONING: WhatsApp Sender Provisioning","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseResourceInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseResourceGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Release resource","tags":["Resources"],"x-required-permissions":["platforms:write"]},"get":{"description":"Reads one resource the project holds. A released number stays readable and reads `retired`, because it remains part of this project's history. A dedicated line given back does NOT: returning it to inventory is what makes it claimable by someone else, so it answers 404 and the operation that returned it is the record that this project once held it. Requires the platforms:read permission bound to the project resource in the path.","operationId":"getResource","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resource"}}},"description":"The resource.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetResourceForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResourceNotFoundProblem"}}},"description":"RESOURCE_NOT_FOUND: Resource Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetResourceInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetResourceGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get resource","tags":["Resources"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/resources/{resourceId}/filtered-otp":{"get":{"description":"Lists the verification codes Photon kept from one dedicated line or number. Inbound messages that carry a one-time code are filtered before delivery; this is the record that they arrived, so a quiet line can be told apart from a broken one. It records the receiving line, its platform and when the code arrived — never the code itself. Each entry names the dedicated line or number (`resourceId`) that received it. Newest first, within an optional inclusive `receivedAfter`/`receivedBefore` window. A page may hold fewer than `pageSize` entries and still return a `nextPageToken`; only its absence means the end. Answers 404 unless the project holds the resource now. Codes from an earlier tenure stay in the project-wide list. Filter by `platform` — a number receives both SMS and WhatsApp. Requires the platforms:read permission bound to the project resource in the path.","operationId":"listResourceFilteredVerificationCodes","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}},{"in":"query","name":"platform","schema":{"$ref":"#/components/schemas/FilteredVerificationCodePlatform"}},{"in":"query","name":"receivedAfter","schema":{"example":"2026-09-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"in":"query","name":"receivedBefore","schema":{"example":"2026-10-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"in":"query","name":"pageSize","schema":{"maximum":200,"minimum":1,"type":"integer"}},{"in":"query","name":"pageToken","schema":{"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilteredVerificationCodePage"}}},"description":"A page of filtered verification codes, newest first.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListResourceFilteredVerificationCodesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResourceNotFoundProblem"}}},"description":"RESOURCE_NOT_FOUND: Resource Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListResourceFilteredVerificationCodesInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListResourceFilteredVerificationCodesGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List a line's filtered verification codes","tags":["Verification codes"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/resources/{resourceId}/filtered-otp/count":{"get":{"description":"Counts the verification codes Photon kept from one dedicated line or number. Without `receivedAfter` and `receivedBefore` the window is the 30 days before the request; a window longer than 366 days is rejected. The response echoes the window it resolved, so the number always says which period it covers. Answers 404 unless the project holds the resource now. Codes from an earlier tenure stay in the project-wide list. Filter by `platform` — a number receives both SMS and WhatsApp. Requires the platforms:read permission bound to the project resource in the path.","operationId":"countResourceFilteredVerificationCodes","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}},{"in":"query","name":"platform","schema":{"$ref":"#/components/schemas/FilteredVerificationCodePlatform"}},{"in":"query","name":"receivedAfter","schema":{"example":"2026-09-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"in":"query","name":"receivedBefore","schema":{"example":"2026-10-01T00:00:00.000Z","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilteredVerificationCodeCount"}}},"description":"How many codes were filtered in the resolved window.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountResourceFilteredVerificationCodesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResourceNotFoundProblem"}}},"description":"RESOURCE_NOT_FOUND: Resource Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountResourceFilteredVerificationCodesInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountResourceFilteredVerificationCodesGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Count a line's filtered verification codes","tags":["Verification codes"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/sms/lines/{resourceId}/campaign":{"delete":{"description":"Any project writer, including a scoped API key, may detach the campaign. The number and campaign remain owned. Requires a permanent Idempotency-Key and expectedVersion. Local eligibility is blocked immediately; provider detachment runs asynchronously.","operationId":"unassignSmsLineCampaign","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}},{"in":"query","name":"expectedVersion","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The original terminal operation on an authorized replay. No Retry-After is emitted.","headers":{"Cache-Control":{"description":"Assignment and operation responses must not be cached.","schema":{"example":"no-store","type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"Assignment accepted. Poll the operation Location until terminal.","headers":{"Cache-Control":{"description":"Assignment and operation responses must not be cached.","schema":{"example":"no-store","type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnassignSmsLineCampaignBadRequestProblem"}}},"description":"SMS_CAMPAIGN_INVALID_REQUEST: Invalid SMS campaign request; IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnassignSmsLineCampaignForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch; SMS_CAMPAIGN_ORGANIZATION_MISMATCH: Campaign belongs to another organization\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnassignSmsLineCampaignNotFoundProblem"}}},"description":"SMS_CAMPAIGN_NOT_FOUND: Campaign not found; SMS_LINE_NOT_FOUND: SMS line not found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnassignSmsLineCampaignConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; SMS_LINE_UNSUPPORTED: SMS line unsupported; SMS_CAMPAIGN_NOT_READY: Campaign not ready; SMS_CAMPAIGN_VERSION_CONFLICT: Assignment version conflict; SMS_CAMPAIGN_CAPACITY_EXCEEDED: Campaign number capacity exhausted; SMS_CAMPAIGN_RECONCILIATION_REQUIRED: Campaign reconciliation required; SMS_CAMPAIGN_MUTATION_IN_PROGRESS: Assignment mutation in progress","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}}},"description":"IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnassignSmsLineCampaignInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnassignSmsLineCampaignServiceUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable; SMS_CAMPAIGN_CONTEXT_UNAVAILABLE: Campaign context unavailable\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnassignSmsLineCampaignGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Unassign SMS line campaign","tags":["SMS campaigns"],"x-required-permissions":["platforms:write"]},"get":{"description":"Read the last confirmed campaign and current eligibility. Follow changes through their operations. Eligibility is a control-plane assessment, not a delivery or recipient-consent guarantee.","operationId":"getSmsLineCampaignAssignment","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSmsLineCampaignAssignmentResponse"}}},"description":"Current assignment, including an untouched version of 1.","headers":{"Cache-Control":{"description":"Assignment and operation responses must not be cached.","schema":{"example":"no-store","type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SmsCampaignInvalidRequestProblem"}}},"description":"SMS_CAMPAIGN_INVALID_REQUEST: Invalid SMS campaign request","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetSmsLineCampaignAssignmentForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch; SMS_CAMPAIGN_ORGANIZATION_MISMATCH: Campaign belongs to another organization\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetSmsLineCampaignAssignmentNotFoundProblem"}}},"description":"SMS_CAMPAIGN_NOT_FOUND: Campaign not found; SMS_LINE_NOT_FOUND: SMS line not found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetSmsLineCampaignAssignmentConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; SMS_LINE_UNSUPPORTED: SMS line unsupported; SMS_CAMPAIGN_NOT_READY: Campaign not ready; SMS_CAMPAIGN_VERSION_CONFLICT: Assignment version conflict; SMS_CAMPAIGN_CAPACITY_EXCEEDED: Campaign number capacity exhausted; SMS_CAMPAIGN_RECONCILIATION_REQUIRED: Campaign reconciliation required; SMS_CAMPAIGN_MUTATION_IN_PROGRESS: Assignment mutation in progress","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetSmsLineCampaignAssignmentInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetSmsLineCampaignAssignmentServiceUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable; SMS_CAMPAIGN_CONTEXT_UNAVAILABLE: Campaign context unavailable\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetSmsLineCampaignAssignmentGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get SMS line campaign assignment","tags":["SMS campaigns"],"x-required-permissions":["platforms:read"]},"put":{"description":"Attach a ready campaign from this project’s organization to its line. Requires platforms:write for the project; human and machine actors retain their authenticated identity. Requires a permanent Idempotency-Key and the current assignment version. Provider provisioning runs asynchronously.","operationId":"assignSmsLineCampaign","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignSmsLineCampaignRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The original terminal operation on an authorized replay. No Retry-After is emitted.","headers":{"Cache-Control":{"description":"Assignment and operation responses must not be cached.","schema":{"example":"no-store","type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"Assignment accepted. Poll the operation Location until terminal.","headers":{"Cache-Control":{"description":"Assignment and operation responses must not be cached.","schema":{"example":"no-store","type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignSmsLineCampaignBadRequestProblem"}}},"description":"SMS_CAMPAIGN_INVALID_REQUEST: Invalid SMS campaign request; IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignSmsLineCampaignForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch; SMS_CAMPAIGN_ORGANIZATION_MISMATCH: Campaign belongs to another organization\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignSmsLineCampaignNotFoundProblem"}}},"description":"SMS_CAMPAIGN_NOT_FOUND: Campaign not found; SMS_LINE_NOT_FOUND: SMS line not found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignSmsLineCampaignConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; SMS_LINE_UNSUPPORTED: SMS line unsupported; SMS_CAMPAIGN_NOT_READY: Campaign not ready; SMS_CAMPAIGN_VERSION_CONFLICT: Assignment version conflict; SMS_CAMPAIGN_CAPACITY_EXCEEDED: Campaign number capacity exhausted; SMS_CAMPAIGN_RECONCILIATION_REQUIRED: Campaign reconciliation required; SMS_CAMPAIGN_MUTATION_IN_PROGRESS: Assignment mutation in progress","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/IdempotencyKeyReusedProblem"}}},"description":"IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignSmsLineCampaignInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignSmsLineCampaignServiceUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable; SMS_CAMPAIGN_CONTEXT_UNAVAILABLE: Campaign context unavailable\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignSmsLineCampaignGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Assign or replace SMS line campaign","tags":["SMS campaigns"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/sms/numbers":{"post":{"description":"Buys one US local number from the provider and records it as a resource with SMS enabled. Requires countryCode (US) and accepts an optional three-digit geographic areaCode. The server selects an exact matching number. Empty inventory keeps the operation running until a number is available or the caller cancels before ordering begins. Always answers 202 with an operation: the work runs behind the response, and the Location points at the operation to poll. New area-specific requests must appear in current provider coverage; discover it with GET /sms/numbers/area-codes?countryCode=US. Coverage and subscription checks run before operation creation. Billing follows delivery. Replays return the original operation without checking current coverage. The Idempotency-Key is required and permanent: repeating it returns the same operation forever, never a second number. A further number always needs a NEW key, including while others are still running. Requires the platforms:write permission bound to the project resource in the path.","operationId":"purchaseSmsNumber","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurchaseSmsNumberRequest"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The purchase was accepted and is running. GET the Location after the Retry-After interval until `state` is terminal; the response there carries the number once it exists.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PurchaseSmsNumberBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"402":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/EntitlementRequiredProblem"}}},"description":"ENTITLEMENT_REQUIRED: Entitlement Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PurchaseSmsNumberForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectClosingProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PurchaseSmsNumberUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PurchaseSmsNumberInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PurchaseSmsNumberServiceUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable; BILLING_NOT_PROVISIONED: Billing Not Provisioned; BILLING_ENTITLEMENTS_PENDING: Billing Entitlements Pending\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PurchaseSmsNumberGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Purchase SMS number","tags":["SMS numbers"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/sms/numbers/area-codes":{"get":{"description":"Lists current provider coverage for US local numbers, sorted and deduplicated. Coverage does not guarantee inventory carrying every required feature. New area-specific purchases must use a listed code; accepted purchases keep waiting if coverage later changes. Requires platforms:read for the path project.","operationId":"listNumberAreaCodes","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"countryCode","required":true,"schema":{"const":"US","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListNumberAreaCodesResponse"}}},"description":"Current area-code coverage. An empty list is a successful coverage read, not an upstream failure.","headers":{"Cache-Control":{"description":"Private cache with the remaining five-minute service-cache lifetime.","schema":{"type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListNumberAreaCodesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListNumberAreaCodesInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListNumberAreaCodesGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List number area codes","tags":["SMS numbers"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/sms/numbers/countries":{"get":{"description":"Lists supported purchase countries independently of current provider inventory. Requires platforms:read for the path project.","operationId":"listNumberCountries","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListNumberCountriesResponse"}}},"description":"Supported countries.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListNumberCountriesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListNumberCountriesInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListNumberCountriesGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List number countries","tags":["SMS numbers"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/telegram/bots":{"post":{"description":"Starts a free managed Telegram bot connection. Each project may have one unfinished Telegram provision, including user interaction and failure cleanup. A different Idempotency-Key while one is active returns 409 TELEGRAM_PROVISION_IN_PROGRESS with its operationId and operationUrl; resume it, cancel it while cancellation is available, or wait for it to finish. Rejected keys remain reusable. Open detail.setupUrl to connect an existing managed bot or create a new one with the project's default agent name or a custom display name, then poll Location. The link remains usable while the operation is active and never expires. Replaying the same Idempotency-Key returns the original operation, even after completion or while a newer setup is active. POST, GET and list share the same operation details. The API includes detail.setupUrl only for callers with platforms:write for the project; read-only callers receive the other details unchanged.","operationId":"connectTelegramBot","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectTelegramBotRequest"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"Setup accepted. Open detail.setupUrl and poll the operation.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectTelegramBotBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectTelegramBotForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectTelegramBotConflictProblem"}}},"description":"TELEGRAM_PROJECT_DELETED: Telegram Project Deleted; PROJECT_CLOSING: Project Is Closing; TELEGRAM_PROVISION_IN_PROGRESS: Telegram Provision In Progress","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectTelegramBotUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectTelegramBotInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectTelegramBotGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Connect Telegram bot","tags":["Telegram"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/voice/lines/profile-assignments/batch":{"post":{"description":"Atomically sets additional-profile overrides or switches lines back to the project default for up to 100 Voice-capable lines. A null profileId means use the default. Every expected resource version must match or no line changes. Requires platforms:write bound to the path project.","operationId":"batchUpdateVoiceLineProfileAssignments","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchUpdateVoiceLineProfileAssignmentsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchUpdateVoiceLineProfileAssignmentsResponse"}}},"description":"The updated line profile assignments.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BatchUpdateVoiceLineProfileAssignmentsForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BatchUpdateVoiceLineProfileAssignmentsNotFoundProblem"}}},"description":"RESOURCE_NOT_FOUND: Resource Not Found; VOICE_PROFILE_NOT_FOUND: Voice Profile Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BatchUpdateVoiceLineProfileAssignmentsConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; VOICE_DEFAULT_PROFILE_ASSIGNMENT_FORBIDDEN: Voice Default Profile Assignment Forbidden; VOICE_PROFILE_VERSION_CONFLICT: Voice Profile Version Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BatchUpdateVoiceLineProfileAssignmentsInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BatchUpdateVoiceLineProfileAssignmentsGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Batch update Voice line assignments","tags":["Voice"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/voice/lines/{resourceId}/profile":{"delete":{"description":"Removes a line's explicit override when the resource version matches so the line follows the project default. Profiles and the pstn_voice ability are unchanged. Requires platforms:write bound to the path project.","operationId":"unassignVoiceLineProfile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}},{"in":"query","name":"expectedVersion","required":true,"schema":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}}],"responses":{"204":{"description":"The Voice profile was unassigned.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnassignVoiceLineProfileForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResourceNotFoundProblem"}}},"description":"RESOURCE_NOT_FOUND: Resource Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VoiceProfileVersionConflictProblem"}}},"description":"VOICE_PROFILE_VERSION_CONFLICT: Voice Profile Version Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnassignVoiceLineProfileInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnassignVoiceLineProfileGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Unassign Voice line profile","tags":["Voice"],"x-required-permissions":["platforms:write"]},"get":{"description":"Gets the explicit additional-profile override for an owned Voice-capable line. A line following the project default returns 200 without profileId. Requires platforms:read bound to the path project.","operationId":"getVoiceLineProfileAssignment","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceLineProfileAssignment"}}},"description":"The line profile assignment.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetVoiceLineProfileAssignmentForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResourceNotFoundProblem"}}},"description":"RESOURCE_NOT_FOUND: Resource Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetVoiceLineProfileAssignmentInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetVoiceLineProfileAssignmentGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get Voice line profile assignment","tags":["Voice"],"x-required-permissions":["platforms:read"]},"put":{"description":"Assigns or replaces a line's explicit additional-profile override when the resource version matches. The current default cannot be assigned explicitly. The pstn_voice ability remains the admission source of truth. Requires platforms:write bound to the path project.","operationId":"assignVoiceLineProfile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignVoiceLineProfileRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceLineProfileAssignment"}}},"description":"The updated Voice line profile assignment.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignVoiceLineProfileForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignVoiceLineProfileNotFoundProblem"}}},"description":"RESOURCE_NOT_FOUND: Resource Not Found; VOICE_PROFILE_NOT_FOUND: Voice Profile Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignVoiceLineProfileConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; VOICE_DEFAULT_PROFILE_ASSIGNMENT_FORBIDDEN: Voice Default Profile Assignment Forbidden; VOICE_PROFILE_VERSION_CONFLICT: Voice Profile Version Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignVoiceLineProfileInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignVoiceLineProfileGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Assign Voice line profile","tags":["Voice"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/voice/profiles":{"get":{"description":"Lists reusable Voice profiles in this project. Requires platforms:read bound to the path project.","operationId":"listVoiceProfiles","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"default","schema":{"$ref":"#/components/schemas/ListVoiceProfilesDefaultInput"}},{"in":"query","name":"pageSize","schema":{"maximum":200,"minimum":1,"type":"integer"}},{"in":"query","name":"pageToken","schema":{"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceProfilePage"}}},"description":"A page of Voice profiles.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListVoiceProfilesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListVoiceProfilesInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListVoiceProfilesGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List Voice profiles","tags":["Voice"],"x-required-permissions":["platforms:read"]},"post":{"description":"Creates a direction-neutral additional Voice profile. The project default must already exist. Requires platforms:write bound to the path project.","operationId":"createVoiceProfile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVoiceProfileRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceProfile"}}},"description":"The created Voice profile.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateVoiceProfileForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateVoiceProfileConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; VOICE_DEFAULT_PROFILE_REQUIRED: Voice Default Profile Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateVoiceProfileInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateVoiceProfileGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Create Voice profile","tags":["Voice"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/voice/profiles/default":{"get":{"description":"Gets the profile currently selected as the project default, including its optional inbound delivery state. Requires platforms:read bound to the path project.","operationId":"getDefaultVoiceProfile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceProfile"}}},"description":"The current default Voice profile.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetDefaultVoiceProfileForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VoiceProfileNotFoundProblem"}}},"description":"VOICE_PROFILE_NOT_FOUND: Voice Profile Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetDefaultVoiceProfileInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetDefaultVoiceProfileGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get default Voice profile","tags":["Voice"],"x-required-permissions":["platforms:read"]},"patch":{"description":"Patches the default profile's protocol or mediaEncryption when expectedVersion matches. Omitted fields are preserved. Its server-assigned name is immutable, and directional configuration uses the profileId returned by this resource. Requires platforms:write bound to the path project.","operationId":"updateDefaultVoiceProfile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDefaultVoiceProfileRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceProfile"}}},"description":"The updated default Voice profile.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateDefaultVoiceProfileForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VoiceProfileNotFoundProblem"}}},"description":"VOICE_PROFILE_NOT_FOUND: Voice Profile Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateDefaultVoiceProfileConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; VOICE_PROFILE_DIRECTION_CONFIGURED: Voice Profile Direction Configured; VOICE_PROFILE_VERSION_CONFLICT: Voice Profile Version Conflict; VOICE_OUTBOUND_OPERATION_PENDING: Voice Outbound Operation Pending","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateDefaultVoiceProfileInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateDefaultVoiceProfileGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Update default Voice profile","tags":["Voice"],"x-required-permissions":["platforms:write"]},"put":{"description":"Creates the project default Voice profile when absent. An identical replay returns the existing default without changing its version; a different existing default conflicts. Direction configuration is managed separately. Requires platforms:write bound to the path project.","operationId":"createDefaultVoiceProfile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDefaultVoiceProfileRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceProfile"}}},"description":"The identically replayed default Voice profile.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceProfile"}}},"description":"The created default Voice profile.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateDefaultVoiceProfileForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateDefaultVoiceProfileConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; VOICE_DEFAULT_PROFILE_EXISTS: Voice Default Profile Exists","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateDefaultVoiceProfileInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateDefaultVoiceProfileGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Create default Voice profile","tags":["Voice"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/voice/profiles/{profileId}":{"delete":{"description":"Deletes an additional profile when expectedVersion matches. Assigned profiles require force=true, which atomically removes every stored override so affected lines follow the default. The default can never be deleted. Requires platforms:write bound to the path project.","operationId":"deleteVoiceProfile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profileId","required":true,"schema":{"type":"string"}},{"in":"query","name":"expectedVersion","required":true,"schema":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},{"in":"query","name":"force","schema":{"$ref":"#/components/schemas/DeleteVoiceProfileForceInput"}}],"responses":{"204":{"description":"The Voice profile was deleted.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceProfileForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VoiceProfileNotFoundProblem"}}},"description":"VOICE_PROFILE_NOT_FOUND: Voice Profile Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceProfileConflictProblem"}}},"description":"VOICE_PROFILE_IN_USE: Voice Profile In Use; VOICE_DEFAULT_PROFILE_DELETION_FORBIDDEN: Voice Default Profile Deletion Forbidden; VOICE_PROFILE_VERSION_CONFLICT: Voice Profile Version Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceProfileInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceProfileGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Delete Voice profile","tags":["Voice"],"x-required-permissions":["platforms:write"]},"get":{"description":"Gets one reusable Voice profile, including its optional inbound delivery state. Requires platforms:read bound to the path project.","operationId":"getVoiceProfile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profileId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceProfile"}}},"description":"The Voice profile.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetVoiceProfileForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VoiceProfileNotFoundProblem"}}},"description":"VOICE_PROFILE_NOT_FOUND: Voice Profile Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetVoiceProfileInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetVoiceProfileGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get Voice profile","tags":["Voice"],"x-required-permissions":["platforms:read"]},"patch":{"description":"Patches an additional profile's name, protocol, or mediaEncryption when expectedVersion matches. Omitted fields are preserved. Directional configuration is managed through the profile's inbound and outbound endpoints. Requires platforms:write bound to the path project.","operationId":"updateVoiceProfile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profileId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceProfile"}}},"description":"The updated Voice profile.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VoiceProfileNotFoundProblem"}}},"description":"VOICE_PROFILE_NOT_FOUND: Voice Profile Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; VOICE_PROFILE_DIRECTION_CONFIGURED: Voice Profile Direction Configured; VOICE_PROFILE_VERSION_CONFLICT: Voice Profile Version Conflict; VOICE_OUTBOUND_OPERATION_PENDING: Voice Outbound Operation Pending","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Update Voice profile","tags":["Voice"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/voice/profiles/{profileId}/inbound":{"delete":{"description":"Removes a profile's inbound destination when the shared profile version matches. The profileId may identify the default or an additional profile. The profile and its line assignments remain. Requires platforms:write bound to the path project.","operationId":"deleteVoiceProfileInbound","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profileId","required":true,"schema":{"type":"string"}},{"in":"query","name":"expectedVersion","required":true,"schema":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceProfileInboundConfiguration"}}},"description":"The removed inbound configuration and next profile version.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceProfileInboundForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VoiceProfileNotFoundProblem"}}},"description":"VOICE_PROFILE_NOT_FOUND: Voice Profile Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceProfileInboundConflictProblem"}}},"description":"VOICE_PROFILE_VERSION_CONFLICT: Voice Profile Version Conflict; VOICE_OUTBOUND_OPERATION_PENDING: Voice Outbound Operation Pending","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceProfileInboundInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceProfileInboundGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Delete Voice inbound configuration","tags":["Voice"],"x-required-permissions":["platforms:write"]},"patch":{"description":"Updates selected fields of a profile's inbound destination when the shared profile version matches. The profileId may identify the default or an additional profile. At least one of destinationUri or credentials is required. Credential omission preserves destination authentication, null removes it, and an object replaces it atomically. Requires platforms:write bound to the path project.","operationId":"updateVoiceProfileInbound","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profileId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileInboundRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceProfileInboundConfiguration"}}},"description":"The updated inbound configuration and profile version.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileInboundForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VoiceProfileNotFoundProblem"}}},"description":"VOICE_PROFILE_NOT_FOUND: Voice Profile Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileInboundConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; VOICE_PROFILE_VERSION_CONFLICT: Voice Profile Version Conflict; VOICE_OUTBOUND_OPERATION_PENDING: Voice Outbound Operation Pending","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileInboundInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileInboundGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Update Voice inbound configuration","tags":["Voice"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["platforms:write"]},"put":{"description":"Creates or fully replaces a profile's inbound destination when the shared profile version matches. The profileId may identify the default or an additional profile. Credentials are required and nullable; null removes destination authentication. Requires platforms:write bound to the path project.","operationId":"replaceVoiceProfileInbound","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profileId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceVoiceProfileInboundRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceProfileInboundConfiguration"}}},"description":"The replaced inbound configuration and profile version.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceProfileInboundConfiguration"}}},"description":"The newly created inbound configuration and profile version.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReplaceVoiceProfileInboundForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VoiceProfileNotFoundProblem"}}},"description":"VOICE_PROFILE_NOT_FOUND: Voice Profile Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReplaceVoiceProfileInboundConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; VOICE_PROFILE_VERSION_CONFLICT: Voice Profile Version Conflict; VOICE_OUTBOUND_OPERATION_PENDING: Voice Outbound Operation Pending","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReplaceVoiceProfileInboundInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReplaceVoiceProfileInboundGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Replace Voice inbound configuration","tags":["Voice"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/voice/profiles/{profileId}/outbound":{"delete":{"description":"Revokes outbound calling for a profile when the shared profile version matches. The profileId may identify the default or an additional profile. The profile, inbound destination, and line assignments remain. Requires platforms:write bound to the path project.","operationId":"deleteVoiceProfileOutbound","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profileId","required":true,"schema":{"type":"string"}},{"in":"query","name":"expectedVersion","required":true,"schema":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceProfileOutboundResponse"}}},"description":"Outbound calling was revoked.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceProfileOutboundForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VoiceProfileNotFoundProblem"}}},"description":"VOICE_PROFILE_NOT_FOUND: Voice Profile Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceProfileOutboundConflictProblem"}}},"description":"VOICE_PROFILE_VERSION_CONFLICT: Voice Profile Version Conflict; VOICE_OUTBOUND_NOT_CONFIGURED: Voice Outbound Not Configured","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceProfileOutboundInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteVoiceProfileOutboundGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Revoke Voice outbound credential","tags":["Voice"],"x-required-permissions":["platforms:write"]},"patch":{"description":"Changes a SIP profile's outbound Digest algorithm when expectedVersion matches. The profileId may identify the default or an additional profile. This policy-only change preserves the password, username, and any previous-password grace deadline. SHA-256 is recommended; MD5 is a weaker legacy option. Returns non-secret outbound metadata and the profile version. Requires platforms:write bound to the path project.","operationId":"updateVoiceProfileOutboundAuthentication","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profileId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileOutboundAuthenticationRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileOutboundAuthenticationResponse"}}},"description":"The current outbound configuration and profile version.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileOutboundAuthenticationForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VoiceProfileNotFoundProblem"}}},"description":"VOICE_PROFILE_NOT_FOUND: Voice Profile Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileOutboundAuthenticationConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; VOICE_PROFILE_VERSION_CONFLICT: Voice Profile Version Conflict; VOICE_OUTBOUND_OPERATION_PENDING: Voice Outbound Operation Pending; VOICE_OUTBOUND_NOT_CONFIGURED: Voice Outbound Not Configured","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileOutboundAuthenticationInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceProfileOutboundAuthenticationGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Update Voice outbound authentication","tags":["Voice"],"x-required-permissions":["platforms:write"]},"put":{"description":"Configures a SIP credential for outbound calls from a profile when the shared profile version matches. Outbound calls are paid usage, so the organization needs a payment method and no invoices overdue 7 days or more; otherwise this returns 402 ENTITLEMENT_REQUIRED with a reason. authentication.algorithm is required: SHA-256 is recommended, while MD5 is a weaker legacy option supported over UDP, TCP, and TLS; TLS is strongly recommended because UDP and TCP do not encrypt SIP signaling. The profileId may identify the default or an additional profile. The new password is returned once and is never recoverable. Requires platforms:write bound to the path project.","operationId":"configureVoiceProfileOutbound","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profileId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigureVoiceProfileOutboundRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigureVoiceProfileOutboundResponse"}}},"description":"An idempotent replay with an explicit null password.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigureVoiceProfileOutboundResponse"}}},"description":"The configured outbound connection and display-once password.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConfigureVoiceProfileOutboundBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"402":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/EntitlementRequiredProblem"}}},"description":"ENTITLEMENT_REQUIRED: Entitlement Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConfigureVoiceProfileOutboundForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VoiceProfileNotFoundProblem"}}},"description":"VOICE_PROFILE_NOT_FOUND: Voice Profile Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConfigureVoiceProfileOutboundConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; VOICE_PROFILE_VERSION_CONFLICT: Voice Profile Version Conflict; VOICE_OUTBOUND_OPERATION_PENDING: Voice Outbound Operation Pending; VOICE_OUTBOUND_CONFIGURED: Voice Outbound Already Configured","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConfigureVoiceProfileOutboundUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConfigureVoiceProfileOutboundInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConfigureVoiceProfileOutboundGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Configure Voice outbound credential","tags":["Voice"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/voice/profiles/{profileId}/outbound/rotate":{"post":{"description":"Rotates a SIP profile's outbound credential when expectedVersion matches. The profileId may identify the default or an additional profile. Normal rotation gives the previous credential one hour of grace; emergency rotation gives none. The new password is returned once and is never recoverable. Requires platforms:write bound to the path project.","operationId":"rotateVoiceProfileOutboundCredential","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profileId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateVoiceProfileOutboundCredentialRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateVoiceProfileOutboundCredentialResponse"}}},"description":"The rotated password result and next profile version.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RotateVoiceProfileOutboundCredentialBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RotateVoiceProfileOutboundCredentialForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/VoiceProfileNotFoundProblem"}}},"description":"VOICE_PROFILE_NOT_FOUND: Voice Profile Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RotateVoiceProfileOutboundCredentialConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; VOICE_PROFILE_VERSION_CONFLICT: Voice Profile Version Conflict; VOICE_OUTBOUND_OPERATION_PENDING: Voice Outbound Operation Pending; VOICE_OUTBOUND_NOT_CONFIGURED: Voice Outbound Not Configured","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RotateVoiceProfileOutboundCredentialUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RotateVoiceProfileOutboundCredentialInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RotateVoiceProfileOutboundCredentialGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Rotate Voice outbound credential","tags":["Voice"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/whatsapp":{"get":{"description":"Reports whether the project is on shared or dedicated WhatsApp lines, derived from its billing entitlements. Shared mode carries the seat cap. Both say whether a dedicated line requested now would be assigned without waiting. Requires the platforms:read permission bound to the project resource in the path.","operationId":"getProjectWhatsappPlatform","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPlatformSettings"}}},"description":"The project's WhatsApp line mode.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetProjectWhatsappPlatformForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetProjectWhatsappPlatformInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetProjectWhatsappPlatformServiceUnavailableProblem"}}},"description":"BILLING_NOT_PROVISIONED: Billing Not Provisioned; BILLING_ENTITLEMENTS_PENDING: Billing Entitlements Pending; UPSTREAM_UNAVAILABLE: Upstream Service Unavailable\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetProjectWhatsappPlatformGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get project WhatsApp platform","tags":["Platforms"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/whatsapp-business/account":{"delete":{"description":"Disconnects every attached WhatsApp sender, then unsubscribes our app and removes the project's business account connection. Photon VoIP lines and the numbers in Meta remain. Requires Idempotency-Key. Poll the returned operation; provider refusals appear as operation failures and retain the account for retry with a new key. New signups are blocked while disconnecting, and existing provisions must finish before this request can be accepted.","operationId":"disconnectWhatsappBusinessAccount","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The replayed disconnect operation is terminal.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"Account disconnect accepted. Poll Location after Retry-After.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DisconnectWhatsappBusinessAccountBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid; IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DisconnectWhatsappBusinessAccountForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/WhatsappWabaNotConnectedProblem"}}},"description":"WHATSAPP_WABA_NOT_CONNECTED: WhatsApp Business Account Not Connected","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DisconnectWhatsappBusinessAccountConflictProblem"}}},"description":"WHATSAPP_ACCOUNT_DISCONNECTING: WhatsApp Business Account Disconnecting; WHATSAPP_ACCOUNT_PROVISIONING: WhatsApp Business Account Has Provisioning Numbers","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DisconnectWhatsappBusinessAccountUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DisconnectWhatsappBusinessAccountInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DisconnectWhatsappBusinessAccountGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Disconnect WhatsApp Business account","tags":["WhatsApp Business"],"x-required-permissions":["platforms:write"]},"get":{"description":"Gets the one WhatsApp Business Account this project has connected, with its number of live senders. Senders are resources and are listed by GET /platforms/resources?ability=whatsapp_business. The account is not a resource and carries no access token. Meta's retained numbers are listed separately by GET /platforms/whatsapp-business/account/phone-numbers. `subscribedAt` is absent until our app is attached to the account's webhooks. Requires the platforms:read permission bound to the project resource in the path.","operationId":"getWhatsappBusinessAccount","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsappBusinessAccount"}}},"description":"The project's connected account.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWhatsappBusinessAccountForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/WhatsappWabaNotConnectedProblem"}}},"description":"WHATSAPP_WABA_NOT_CONNECTED: WhatsApp Business Account Not Connected","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWhatsappBusinessAccountInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWhatsappBusinessAccountGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get WhatsApp Business account","tags":["WhatsApp Business"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/whatsapp-business/account/phone-numbers":{"get":{"description":"Lists the connected WABA's phone numbers directly from Meta, including numbers whose Photon sender was disconnected. Ownership is photon for a number in this project's current Photon inventory and meta otherwise. Match a Photon SMS number by its E.164 phoneNumber and reuse its existing displayName when reconnecting. A null name is unavailable, not permission to choose a new name. A failed lookup returns an error rather than an empty list. Requires platforms:read on the path project.","operationId":"listWhatsappAccountPhoneNumbers","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWhatsappAccountPhoneNumbersResponse"}}},"description":"The current Meta number inventory for the connected WABA.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListWhatsappAccountPhoneNumbersForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/WhatsappWabaNotConnectedProblem"}}},"description":"WHATSAPP_WABA_NOT_CONNECTED: WhatsApp Business Account Not Connected","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListWhatsappAccountPhoneNumbersInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListWhatsappAccountPhoneNumbersGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List WhatsApp account phone numbers","tags":["WhatsApp Business"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/whatsapp-business/account/senders":{"post":{"description":"Registers an active, SMS-capable Photon VoIP line on this project's connected WhatsApp Business Account. The account is resolved server-side; callers never select a WABA. The platform creates or reuses the Meta number, requests and consumes the SMS ownership code internally, verifies it, and registers the sender. displayName is optional; when omitted the project agent profile name is snapshotted before acceptance. The VoIP line remains a separate resource and never receives the whatsapp_business ability.","operationId":"createWhatsappVoipSender","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappVoipSenderRequest"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The sender provision was accepted. Poll the Location after Retry-After until the operation is terminal.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappVoipSenderBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"402":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/EntitlementRequiredProblem"}}},"description":"ENTITLEMENT_REQUIRED: Entitlement Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappVoipSenderForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappVoipSenderNotFoundProblem"}}},"description":"WHATSAPP_WABA_NOT_CONNECTED: WhatsApp Business Account Not Connected; WHATSAPP_VOIP_SOURCE_NOT_ELIGIBLE: WhatsApp VoIP Source Not Eligible","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappVoipSenderConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; WHATSAPP_ACCOUNT_DISCONNECTING: WhatsApp Business Account Disconnecting; WHATSAPP_ACCOUNT_PROVISIONING: WhatsApp Business Account Has Provisioning Numbers; WHATSAPP_SENDER_CONNECTED: WhatsApp Sender Connected; WHATSAPP_SENDER_PROVISIONING: WhatsApp Sender Provisioning; WHATSAPP_VOIP_SOURCE_RELEASING: WhatsApp VoIP Source Releasing","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappVoipSenderUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; WHATSAPP_DISPLAY_NAME_UNAVAILABLE: WhatsApp Display Name Unavailable; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappVoipSenderInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappVoipSenderServiceUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable; BILLING_NOT_PROVISIONED: Billing Not Provisioned; BILLING_ENTITLEMENTS_PENDING: Billing Entitlements Pending\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappVoipSenderGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Create WhatsApp VoIP sender","tags":["WhatsApp Business"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/whatsapp-business/numbers":{"post":{"description":"Exchanges the authorization code Embedded Signup returned and connects exactly the selected phone number as one `whatsapp_sender`. Send the WABA id and phone-number id emitted by the same popup attempt; both are treated as selectors and verified against Meta before use. A selected number that matches a non-retired, same-project `voip_line` is linked to it; a number absent from Photon inventory stays unbound; a matching non-retired `cosmos_line`, foreign VoIP line or unassigned VoIP line fails the operation before registration. Connecting is free — no plan requirement — but Billing must report the project's organization as ready with a payment method on file. The Idempotency-Key is required and permanent: replaying the same key returns the original operation forever. Requires the platforms:write permission bound to the project resource in the path.","operationId":"connectWhatsappBusiness","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectWhatsappBusinessRequest"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The code was accepted and onboarding was dispatched. GET the Location after the Retry-After interval until the operation is terminal.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectWhatsappBusinessBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"402":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/EntitlementRequiredProblem"}}},"description":"ENTITLEMENT_REQUIRED: Entitlement Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectWhatsappBusinessForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectClosingProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectWhatsappBusinessUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectWhatsappBusinessInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectWhatsappBusinessServiceUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable; BILLING_NOT_PROVISIONED: Billing Not Provisioned; BILLING_ENTITLEMENTS_PENDING: Billing Entitlements Pending\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConnectWhatsappBusinessGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Connect WhatsApp Business","tags":["WhatsApp Business"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/whatsapp-business/numbers/{resourceId}/verification-code":{"get":{"description":"Returns the latest six-digit WhatsApp Business ownership code received by SMS for an active Photon VOIP number, but only when its provider timestamp is strictly newer than the required receivedAfter boundary. receivedAfter must be an RFC 3339 timestamp between this request's arrival time and two minutes before it; once it expires, restart Meta's verification flow with a new boundary. A missing newer code is a retryable 404 with Retry-After: 2. Poll after 2, 4, 8, then 10 seconds, applying ±20% jitter and capping later intervals at 10 seconds. Stop when the original boundary is two minutes old. Responses are never cached. Requires the platforms:write permission bound to the project resource in the path.","operationId":"getWhatsappBusinessVerificationCode","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}},{"in":"query","name":"receivedAfter","required":true,"schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetWhatsappBusinessVerificationCodeResponse"}}},"description":"A verification code received strictly after receivedAfter. Treat it as an authentication secret.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWhatsappBusinessVerificationCodeForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWhatsappBusinessVerificationCodeNotFoundProblem"}}},"description":"RESOURCE_NOT_FOUND: Resource Not Found; WHATSAPP_VERIFICATION_CODE_NOT_FOUND: WhatsApp Verification Code Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWhatsappBusinessVerificationCodeUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; WHATSAPP_VERIFICATION_WINDOW_EXPIRED: WhatsApp Verification Window Expired","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWhatsappBusinessVerificationCodeInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWhatsappBusinessVerificationCodeGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get WhatsApp Business verification code","tags":["WhatsApp Business"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/whatsapp-business/signup-config":{"get":{"description":"Returns what the browser needs to open Meta's Embedded Signup popup: the Facebook Login for Business configuration id, the Graph version to run against, and the scopes it will request. Answered in-process rather than forwarded, so the first step of onboarding survives an outage of the private service. Pass `configId` to `FB.login` as `config_id` with `response_type: 'code'` and `override_default_response_type: true`. Do NOT add a `featureType` — omitting it is what keeps the phone-number screen in the flow, and `only_waba_sharing` produces an account with no number that cannot be provisioned. Requires the platforms:read permission bound to the project resource in the path.","operationId":"getWhatsappSignupConfig","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetWhatsappSignupConfigResponse"}}},"description":"The parameters to launch Embedded Signup with.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWhatsappSignupConfigForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWhatsappSignupConfigInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RequestTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get WhatsApp signup config","tags":["WhatsApp Business"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/whatsapp/assignments":{"get":{"description":"Lists the project's WhatsApp shared line assignments, oldest first. Released assignments are excluded unless includeReleased is set. Requires the platforms:read permission bound to the project resource in the path.","operationId":"listWhatsappSharedLineAssignments","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"includeReleased","schema":{"type":"string"}},{"in":"query","name":"pageSize","schema":{"maximum":200,"minimum":1,"type":"integer"}},{"in":"query","name":"pageToken","schema":{"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedLineAssignmentPage"}}},"description":"A page of WhatsApp shared line assignments.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListWhatsappSharedLineAssignmentsForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListWhatsappSharedLineAssignmentsInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListWhatsappSharedLineAssignmentsGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List WhatsApp shared line assignments","tags":["WhatsApp shared line assignments"],"x-required-permissions":["platforms:read"]},"post":{"description":"Maps an end user's phone number onto one of the project's pooled shared WhatsApp lines, consuming a seat from the project's WhatsApp entitlement. The assigned number is allocated by the server. When an email address is supplied the user is sent an invite asynchronously; the response never reports whether that succeeded. Requires the platforms:write permission bound to the project resource in the path.","operationId":"createWhatsappSharedLineAssignment","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappSharedLineAssignmentRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedLineAssignment"}}},"description":"The created WhatsApp shared line assignment.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappSharedLineAssignmentBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappSharedLineAssignmentForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappSharedLineAssignmentConflictProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing; WHATSAPP_MODE_DEDICATED: WhatsApp Mode Is Dedicated; SHARED_LINE_CAP_EXCEEDED: Shared Line Cap Exceeded; ASSIGNMENT_EXISTS: Assignment Exists","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappSharedLineAssignmentUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappSharedLineAssignmentInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappSharedLineAssignmentServiceUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable; BILLING_NOT_PROVISIONED: Billing Not Provisioned; BILLING_ENTITLEMENTS_PENDING: Billing Entitlements Pending; SHARED_LINE_POOL_EXHAUSTED: Shared Line Pool Exhausted\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWhatsappSharedLineAssignmentGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Create WhatsApp shared line assignment","tags":["WhatsApp shared line assignments"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/whatsapp/assignments/{assignmentId}":{"delete":{"description":"Releases a WhatsApp shared line assignment, freeing its seat for reassignment. The row is retained for audit and returned with releasedAt set, so repeating the call is safe. Requires the platforms:write permission bound to the project resource in the path.","operationId":"releaseWhatsappSharedLineAssignment","parameters":[{"in":"path","name":"assignmentId","required":true,"schema":{"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedLineAssignment"}}},"description":"The released WhatsApp shared line assignment.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseWhatsappSharedLineAssignmentForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignmentNotFoundProblem"}}},"description":"ASSIGNMENT_NOT_FOUND: Assignment Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseWhatsappSharedLineAssignmentInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseWhatsappSharedLineAssignmentGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Release WhatsApp shared line assignment","tags":["WhatsApp shared line assignments"],"x-required-permissions":["platforms:write"]},"get":{"description":"Reads one WhatsApp shared line assignment. Requires the platforms:read permission bound to the project resource in the path.","operationId":"getWhatsappSharedLineAssignment","parameters":[{"in":"path","name":"assignmentId","required":true,"schema":{"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedLineAssignment"}}},"description":"The WhatsApp shared line assignment.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWhatsappSharedLineAssignmentForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/AssignmentNotFoundProblem"}}},"description":"ASSIGNMENT_NOT_FOUND: Assignment Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWhatsappSharedLineAssignmentInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWhatsappSharedLineAssignmentGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get WhatsApp shared line assignment","tags":["WhatsApp shared line assignments"],"x-required-permissions":["platforms:read"]}},"/v1/projects/{id}/platforms/whatsapp/dedicated":{"post":{"description":"Provisions one dedicated WhatsApp line with WhatsApp and shared Voice enabled. It attaches to an eligible iMessage line the project already owns when possible so both products keep the same number; otherwise it claims healthy, available WhatsApp-capable dedicated-line inventory. Always answers 202, because waiting when no inventory is available is not a failure. The product opens its own charge period after the abilities are enabled; Voice has no separate charge. Waiting requests are served first come, first served, and are cancelled with a `reason` exactly as for a dedicated iMessage line. Cancel the returned operation to stop waiting. The Idempotency-Key is required and permanent.","operationId":"provisionWhatsappDedicatedLine","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The attachment was accepted and is running. GET the Location after the Retry-After interval until `state` is terminal.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProvisionWhatsappDedicatedLineBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"402":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/EntitlementRequiredProblem"}}},"description":"ENTITLEMENT_REQUIRED: Entitlement Required","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProvisionWhatsappDedicatedLineForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectClosingProblem"}}},"description":"PROJECT_CLOSING: Project Is Closing","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProvisionWhatsappDedicatedLineUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProvisionWhatsappDedicatedLineInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProvisionWhatsappDedicatedLineServiceUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable; BILLING_NOT_PROVISIONED: Billing Not Provisioned; BILLING_ENTITLEMENTS_PENDING: Billing Entitlements Pending\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProvisionWhatsappDedicatedLineGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Provision dedicated WhatsApp line","tags":["Dedicated WhatsApp lines"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/platforms/whatsapp/dedicated/{resourceId}":{"delete":{"description":"Removes only WhatsApp from one dedicated line. Shared Voice is removed only when iMessage is absent; if iMessage remains, Voice, the resource, ownership, and phone number are preserved. Usually finishes inside this request and answers 200; a slow workflow answers 202 with an operation to poll. Takes no Idempotency-Key because the open WhatsApp charge period identifies this product tenure.","operationId":"releaseWhatsappDedicatedLine","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The WhatsApp ability and its charge period were removed.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"}}},"description":"The removal is still running. GET the Location after the Retry-After interval.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the operation. Resolves immediately, including while the work is still running.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Minimum number of seconds to wait before reading the operation again.","schema":{"minimum":0,"type":"integer"}},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseWhatsappDedicatedLineForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResourceNotFoundProblem"}}},"description":"RESOURCE_NOT_FOUND: Resource Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitedProblem"}}},"description":"RATE_LIMITED: Too Many Requests","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseWhatsappDedicatedLineInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ReleaseWhatsappDedicatedLineGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Release dedicated WhatsApp line","tags":["Dedicated WhatsApp lines"],"x-required-permissions":["platforms:write"]}},"/v1/projects/{id}/spaces":{"get":{"description":"Lists the Project's stored Spaces, with optional participant and Message filters. Results are eventually consistent.","operationId":"listSpaces","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Exclusive creation-time bound on a matching Message","in":"query","name":"messageCreatedBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive creation-time bound on a matching Message","in":"query","name":"messageCreatedSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Received or sent Message. All message-prefixed filters must match the same Message.","in":"query","name":"messageDirection","schema":{"$ref":"#/components/schemas/MessageDirection"}},{"description":"Comma-separated public content types to exclude from matching Messages. Requires messageResourceId. A group is excluded when its type or all its parts are excluded.","in":"query","name":"messageExcludeContentTypes","schema":{"maxLength":1024,"type":"string"}},{"description":"Resource ownership captured by a matching Message","in":"query","name":"messageResourceId","schema":{"pattern":"^pho_res_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Exclusive upper bound on createdAt, RFC 3339. Cannot combine with updatedAt bounds.","in":"query","name":"createdBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive lower bound on createdAt, RFC 3339. Cannot combine with updatedAt bounds.","in":"query","name":"createdSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Direction along orderBy; desc, the default, is newest first","in":"query","name":"order","schema":{"$ref":"#/components/schemas/SortOrder"}},{"description":"Defaults to the filtered timestamp or created_at. Must match Space time bounds. last_message_created_at uses the latest Message creation time, accepts no Space time bounds, and puts empty Spaces last when descending. With messageResourceId, only that resource's non-control Messages affect ordering.","in":"query","name":"orderBy","schema":{"$ref":"#/components/schemas/SpaceOrderBy"}},{"description":"Items per page. A value above 100 returns at most 100 items.","in":"query","name":"pageSize","schema":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},{"description":"Token from nextPageToken. Keep the same Project and query.","in":"query","name":"pageToken","schema":{"maxLength":4096,"minLength":1,"pattern":"^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$","type":"string"}},{"description":"Matches participant phone or email handles case-insensitively, excluding participantId. Phone formatting characters are optional.","in":"query","name":"participantHandle","schema":{"maxLength":320,"minLength":1,"type":"string"}},{"description":"Restricts the page to Spaces this User participates in","in":"query","name":"participantId","schema":{"pattern":"^pho_usr_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Restricts the page to one platform","in":"query","name":"platform","schema":{"$ref":"#/components/schemas/Platform"}},{"description":"Exclusive upper bound on updatedAt, RFC 3339. Cannot combine with createdAt bounds.","in":"query","name":"updatedBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive lower bound on updatedAt, RFC 3339. Cannot combine with createdAt bounds.","in":"query","name":"updatedSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpacePage"}}},"description":"A page of Spaces in the requested order.","headers":{"Cache-Control":{"description":"Private revalidation policy for this Space representation.","schema":{"type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"ETag":{"description":"Validator for the selected Space representation.","schema":{"type":"string"}},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidPageTokenProblem"}}},"description":"INVALID_PAGE_TOKEN: Invalid Page Token","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListSpacesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListSpacesInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListSpacesGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:read"]}],"summary":"List Spaces","tags":["Spaces"],"x-required-permissions":["project:read"]},"post":{"description":"Creates or returns a project Space. Idempotency-Key is required for every platform and binds the project, platform and initial User IDs (unordered except the iMessage creator in first position) for 24 hours after workflow completion. Concurrent matching requests join the same operation; conflicting reuse returns 422 once its outcome is available. A new email key creates a new thread; direct Spaces and SMS groups converge by participants. Every creation and successful replay requires at least one currently project-owned Agent, or for iMessage a shared-line Agent in a direct Space whose peer has an active Assignment of this project on that line. For iMessage, an existing exact match is reused; otherwise the first participant must be a project-owned dedicated phone Agent and creates the native direct chat or group. Multiple matching native groups return SPACE_AMBIGUOUS; incomplete group membership cannot establish an exact match. Replays return 200 and the current stored Space, with Idempotent-Replayed: true. A timeout does not cancel accepted work: retry the same key and input.","operationId":"createOrGetSpace","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Required for every platform; 1-255 visible ASCII characters. Reuse for retries. For email, the same key and initial participants retrieve the same Space, and a new key starts a separate conversation. SMS identifies its Space by participants, even with a new key. iMessage binds the key to the first participant as creator and the remaining unordered User IDs. Existing matching Spaces are reused.","in":"header","name":"idempotency-key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]+$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrGetSpaceRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformSpace"}}},"description":"The Space already existed and is returned in its authoritative stored state.","headers":{"Cache-Control":{"description":"Prevents storage of this create-or-get response.","schema":{"type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"description":"True when joining or replaying an accepted operation.","schema":{"type":"string"}},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformSpace"}}},"description":"The Space was created.","headers":{"Cache-Control":{"description":"Prevents storage of this create-or-get response.","schema":{"type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the newly created Space.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrGetSpaceBadRequestProblem"}}},"description":"HTTP_ERROR: Request Failed; INVALID_REQUEST: Invalid Request; IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrGetSpaceForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UserNotFoundProblem"}}},"description":"USER_NOT_FOUND: User Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SpaceAmbiguousProblem"}}},"description":"SPACE_AMBIGUOUS: Multiple Matching Spaces","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrGetSpaceUnprocessableEntityProblem"}}},"description":"SPACE_REQUIRES_OWNED_AGENT: Space Requires Owned Agent; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused; OPERATION_UNAVAILABLE: Operation Unavailable; VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrGetSpaceInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrGetSpaceServiceUnavailableProblem"}}},"description":"IDEMPOTENCY_UNAVAILABLE: Idempotency Unavailable; UPSTREAM_UNAVAILABLE: Upstream Service Unavailable\n\nUPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrGetSpaceGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:write"]}],"summary":"Create or get a Space","tags":["Spaces"],"x-required-permissions":["project:write"]}},"/v1/projects/{id}/spaces/count":{"get":{"description":"Counts distinct Spaces matching the list filters; multiple matching Messages count once. Results are eventually consistent.","operationId":"countSpaces","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Exclusive creation-time bound on a matching Message","in":"query","name":"messageCreatedBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive creation-time bound on a matching Message","in":"query","name":"messageCreatedSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Received or sent Message. All message-prefixed filters must match the same Message.","in":"query","name":"messageDirection","schema":{"$ref":"#/components/schemas/MessageDirection"}},{"description":"Comma-separated public content types to exclude from matching Messages. Requires messageResourceId. A group is excluded when its type or all its parts are excluded.","in":"query","name":"messageExcludeContentTypes","schema":{"maxLength":1024,"type":"string"}},{"description":"Resource ownership captured by a matching Message","in":"query","name":"messageResourceId","schema":{"pattern":"^pho_res_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Exclusive upper bound on createdAt, RFC 3339. Cannot combine with updatedAt bounds.","in":"query","name":"createdBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive lower bound on createdAt, RFC 3339. Cannot combine with updatedAt bounds.","in":"query","name":"createdSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Matches participant phone or email handles case-insensitively, excluding participantId. Phone formatting characters are optional.","in":"query","name":"participantHandle","schema":{"maxLength":320,"minLength":1,"type":"string"}},{"description":"Restricts the page to Spaces this User participates in","in":"query","name":"participantId","schema":{"pattern":"^pho_usr_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Restricts the page to one platform","in":"query","name":"platform","schema":{"$ref":"#/components/schemas/Platform"}},{"description":"Exclusive upper bound on updatedAt, RFC 3339. Cannot combine with createdAt bounds.","in":"query","name":"updatedBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive lower bound on updatedAt, RFC 3339. Cannot combine with createdAt bounds.","in":"query","name":"updatedSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpaceCount"}}},"description":"Number of matching Spaces","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountSpacesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountSpacesInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountSpacesGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:read"]}],"summary":"Count Spaces","tags":["Spaces"],"x-required-permissions":["project:read"]}},"/v1/projects/{id}/spaces/{spaceId}":{"get":{"description":"Returns one stored Space by canonical Photon Space ID. A Space of a kind its platform does not support returns OPERATION_UNAVAILABLE.","operationId":"getSpace","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"path","name":"spaceId","required":true,"schema":{"pattern":"^pho_spc_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"header","name":"if-none-match","schema":{"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformSpace"}}},"description":"The requested Space.","headers":{"Cache-Control":{"description":"Private revalidation policy for this Space representation.","schema":{"type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"ETag":{"description":"Validator for the selected Space representation.","schema":{"type":"string"}},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"304":{"description":"The request's If-None-Match validator matches the current representation.","headers":{"Cache-Control":{"description":"Private revalidation policy for this Space representation.","schema":{"type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"ETag":{"description":"Validator for the selected Space representation.","schema":{"type":"string"}},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetSpaceForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SpaceNotFoundProblem"}}},"description":"SPACE_NOT_FOUND: Space Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetSpaceUnprocessableEntityProblem"}}},"description":"OPERATION_UNAVAILABLE: Operation Unavailable; VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetSpaceInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetSpaceGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:read"]}],"summary":"Get a Space","tags":["Spaces"],"x-required-permissions":["project:read"]}},"/v1/projects/{id}/spaces/{spaceId}/typing":{"post":{"description":"Saves one transient typing update as an authorized Agent in this Space. Returns the dispatched Message with HTTP 202. Successful provider handoff ends in accepted; rejection or expiry ends in failed. Repeat true to refresh; false stops where supported. Callers control refreshes. Unsupported platforms return OPERATION_UNAVAILABLE.","operationId":"setSpaceTyping","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"path","name":"spaceId","required":true,"schema":{"pattern":"^pho_spc_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetSpaceTypingRequest"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetSpaceTypingResponse"}}},"description":"The typing Message was dispatched.","headers":{"Cache-Control":{"description":"Prevents storage of this transient response.","schema":{"$ref":"#/components/schemas/SpaceTypingCacheControl"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/HttpErrorProblem"}}},"description":"HTTP_ERROR: Request Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SetSpaceTypingForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SetSpaceTypingNotFoundProblem"}}},"description":"SPACE_NOT_FOUND: Space Not Found; USER_NOT_FOUND: User Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SetSpaceTypingUnprocessableEntityProblem"}}},"description":"OPERATION_UNAVAILABLE: Operation Unavailable; VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SetSpaceTypingInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/SetSpaceTypingGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:write"]}],"summary":"Set typing in a Space","tags":["Spaces"],"x-required-permissions":["project:write"]}},"/v1/projects/{id}/users":{"get":{"description":"Lists stored Users without refreshing their classification; use Get User for current details. Message filters select incoming senders or outgoing recipients, excluding the Message's own endpoint.","operationId":"listUsers","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Exclusive creation-time bound on a matching Message","in":"query","name":"messageCreatedBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive creation-time bound on a matching Message","in":"query","name":"messageCreatedSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Received or sent Message. All message-prefixed filters must match the same Message.","in":"query","name":"messageDirection","schema":{"$ref":"#/components/schemas/MessageDirection"}},{"description":"Comma-separated public content types to exclude from matching Messages. Requires messageResourceId. A group is excluded when its type or all its parts are excluded.","in":"query","name":"messageExcludeContentTypes","schema":{"maxLength":1024,"type":"string"}},{"description":"Resource ownership captured by a matching Message","in":"query","name":"messageResourceId","schema":{"pattern":"^pho_res_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Exclusive upper bound on createdAt, RFC 3339. Cannot combine with updatedAt bounds.","in":"query","name":"createdBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive lower bound on createdAt, RFC 3339. Cannot combine with updatedAt bounds.","in":"query","name":"createdSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Direction along orderBy; desc, the default, is newest first","in":"query","name":"order","schema":{"$ref":"#/components/schemas/SortOrder"}},{"description":"Sort timestamp; defaults to the filtered timestamp, otherwise created_at. Must match the time bounds.","in":"query","name":"orderBy","schema":{"$ref":"#/components/schemas/TimestampOrderBy"}},{"description":"Items per page. A value above 100 returns at most 100 items.","in":"query","name":"pageSize","schema":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},{"description":"Token from nextPageToken. Keep the same Project and query.","in":"query","name":"pageToken","schema":{"maxLength":4096,"minLength":1,"pattern":"^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$","type":"string"}},{"description":"Restricts the page to one platform","in":"query","name":"platform","schema":{"$ref":"#/components/schemas/Platform"}},{"description":"Exclusive upper bound on updatedAt, RFC 3339. Cannot combine with createdAt bounds.","in":"query","name":"updatedBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive lower bound on updatedAt, RFC 3339. Cannot combine with createdAt bounds.","in":"query","name":"updatedSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPage"}}},"description":"A page of persisted Users in the requested order.","headers":{"Cache-Control":{"description":"Private revalidation policy for this User representation.","schema":{"type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"ETag":{"description":"Validator for the selected User representation.","schema":{"type":"string"}},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidPageTokenProblem"}}},"description":"INVALID_PAGE_TOKEN: Invalid Page Token","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListUsersForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListUsersInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListUsersGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:read"]}],"summary":"List Users","tags":["Users"],"x-required-permissions":["project:read"]},"post":{"description":"Creates or reconciles a User by normalized handle. WhatsApp and iMessage phone classification uses line allocation and project ownership; New iMessage email handles start as Human without lookup; existing email identities retain their producer-observed classification and ownership. WhatsApp Business uses project ownership. These three platforms perform no provider profile or enrichment fetch. Shared Agents expose type=shared without ownership IDs; dedicated Agents expose resourceId for this project or pairwise managedBy for another project. Dedicated lines without an active owner are unavailable. SMS retains its existing ownership and phone number enrichment behavior. Email retains domain ownership resolution, lowercase ASCII domains and case-preserved local parts. Dependency failures fail before classification writes. The natural identity is the project path ID, platform, and handle. Retrying after a committed creation whose response was lost returns the same User with 200 rather than replaying 201.","operationId":"createOrGetUser","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrGetUserRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformUser"}}},"description":"The existing User after authoritative classification and any required repair.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformUser"}}},"description":"The User was created from the platform’s resolved identity and authoritative observations.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"Location":{"description":"Canonical URL of the newly created User.","schema":{"format":"uri-reference","type":"string"}},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/HttpErrorProblem"}}},"description":"HTTP_ERROR: Request Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrGetUserForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UserIdentityConflictProblem"}}},"description":"USER_IDENTITY_CONFLICT: User Identity Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrGetUserUnprocessableEntityProblem"}}},"description":"OPERATION_UNAVAILABLE: Operation Unavailable; VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrGetUserInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateOrGetUserGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:write"]}],"summary":"Create or get a User","tags":["Users"],"x-required-permissions":["project:write"]}},"/v1/projects/{id}/users/count":{"get":{"description":"Counts distinct Users matching the list filters, including incoming senders or outgoing recipients selected by Message filters. Results are eventually consistent.","operationId":"countUsers","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Exclusive creation-time bound on a matching Message","in":"query","name":"messageCreatedBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive creation-time bound on a matching Message","in":"query","name":"messageCreatedSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Received or sent Message. All message-prefixed filters must match the same Message.","in":"query","name":"messageDirection","schema":{"$ref":"#/components/schemas/MessageDirection"}},{"description":"Comma-separated public content types to exclude from matching Messages. Requires messageResourceId. A group is excluded when its type or all its parts are excluded.","in":"query","name":"messageExcludeContentTypes","schema":{"maxLength":1024,"type":"string"}},{"description":"Resource ownership captured by a matching Message","in":"query","name":"messageResourceId","schema":{"pattern":"^pho_res_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"Exclusive upper bound on createdAt, RFC 3339. Cannot combine with updatedAt bounds.","in":"query","name":"createdBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive lower bound on createdAt, RFC 3339. Cannot combine with updatedAt bounds.","in":"query","name":"createdSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Restricts the page to one platform","in":"query","name":"platform","schema":{"$ref":"#/components/schemas/Platform"}},{"description":"Exclusive upper bound on updatedAt, RFC 3339. Cannot combine with createdAt bounds.","in":"query","name":"updatedBefore","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}},{"description":"Inclusive lower bound on updatedAt, RFC 3339. Cannot combine with createdAt bounds.","in":"query","name":"updatedSince","schema":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCount"}}},"description":"Number of matching Users","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountUsersForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountUsersInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CountUsersGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:read"]}],"summary":"Count Users","tags":["Users"],"x-required-permissions":["project:read"]}},"/v1/projects/{id}/users/{userId}":{"get":{"description":"Returns one User after refreshing its Human or Agent classification and project ownership where supported. iMessage email identities retain their producer-observed classification and ownership because no current email ownership lookup is available. WhatsApp, WhatsApp Business and iMessage perform no provider fetch; only SMS Human classifications perform a phone number lookup. Current-project Agents expose resourceId; external-project Agents expose only pairwise managedBy. Conditional response evaluation uses the post-reconciliation representation. Stored reads use each platform definition; projection requires adapter support.","operationId":"getUser","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"path","name":"userId","required":true,"schema":{"pattern":"^pho_usr_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"header","name":"if-none-match","schema":{"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformUser"}}},"description":"The reconciled User.","headers":{"Cache-Control":{"description":"Private revalidation policy for this User representation.","schema":{"type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"ETag":{"description":"Validator for the selected User representation.","schema":{"type":"string"}},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"304":{"description":"The request's If-None-Match validator matches the reconciled representation.","headers":{"Cache-Control":{"description":"Private revalidation policy for this User representation.","schema":{"type":"string"}},"Deprecation":{"$ref":"#/components/headers/Deprecation"},"ETag":{"description":"Validator for the selected User representation.","schema":{"type":"string"}},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetUserForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UserNotFoundProblem"}}},"description":"USER_NOT_FOUND: User Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UserIdentityConflictProblem"}}},"description":"USER_IDENTITY_CONFLICT: User Identity Conflict","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetUserUnprocessableEntityProblem"}}},"description":"OPERATION_UNAVAILABLE: Operation Unavailable; VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetUserInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetUserGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:read"]}],"summary":"Get an User","tags":["Users"],"x-required-permissions":["project:read"]}},"/v1/projects/{projectId}":{"delete":{"description":"Starts deletion of the identified project using a credential authorized for project management. Inspect the documented response and use getProjectClosureStatus with the organization and project identifiers to read closure progress. A project API key is not an accepted credential for this operation.","operationId":"deleteProject","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}},"description":"The deleted project tombstone.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteProjectBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteProjectForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectNotFoundProblem"}}},"description":"PROJECT_NOT_FOUND: Project Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteProjectUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteProjectGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"serviceIdentityBearer":[]}],"summary":"Delete project","tags":["Projects"],"x-required-permissions":["project:delete"]},"get":{"description":"Returns the identified project's settings for an authorized caller. The credential must be allowed to access that project; possession of an unrelated project's key does not provide access. Missing and deleted projects are reported through the documented error responses.","operationId":"getProject","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}},"description":"The requested project.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetProjectForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectNotFoundProblem"}}},"description":"PROJECT_NOT_FOUND: Project Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectDeletedProblem"}}},"description":"PROJECT_DELETED: Project Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetProjectGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get project","tags":["Projects"],"x-required-permissions":["project:read"]},"patch":{"description":"Updates the identified project's name and returns the updated project. The project slug is not a mutable field in this request. Use an authorized account or organization service-identity credential; a project API key is not accepted. Supply the required Idempotency-Key header.","operationId":"updateProject","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}},"description":"The updated project.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateProjectBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateProjectForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectNotFoundProblem"}}},"description":"PROJECT_NOT_FOUND: Project Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectDeletedProblem"}}},"description":"PROJECT_DELETED: Project Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateProjectUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateProjectGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"serviceIdentityBearer":[]}],"summary":"Update project","tags":["Projects"],"x-required-permissions":["project:write"]}},"/v1/projects/{projectId}/agent-profile":{"get":{"description":"Returns the agent profile belonging to the identified project. The profile is project-scoped and is distinct from the authenticated account's personal profile. Use the dedicated avatar operations when uploading or removing an agent avatar.","operationId":"getAgentProfile","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentProfile"}}},"description":"The Project's agent profile.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetAgentProfileForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectNotFoundProblem"}}},"description":"PROJECT_NOT_FOUND: Project Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectDeletedProblem"}}},"description":"PROJECT_DELETED: Project Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetAgentProfileGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get agent profile","tags":["Agent Profile"],"x-required-permissions":["project:read"]},"patch":{"description":"Updates the supplied firstName and lastName fields in the project's agent profile and returns the updated profile. Avatar upload, commit and reset are separate operations. The caller must be authorized to change configuration for the selected project. Supply the required Idempotency-Key header.","operationId":"updateAgentProfile","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAgentProfileRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentProfile"}}},"description":"The updated agent profile.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateAgentProfileBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateAgentProfileForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectNotFoundProblem"}}},"description":"PROJECT_NOT_FOUND: Project Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectDeletedProblem"}}},"description":"PROJECT_DELETED: Project Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateAgentProfileUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateAgentProfileGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Update agent profile","tags":["Agent Profile"],"x-required-permissions":["project:write"]}},"/v1/projects/{projectId}/agent-profile/avatar":{"delete":{"description":"Replaces the selected project's agent avatar with the project's default avatar, a generated planet image derived from the project ID, and returns the updated agent profile. The reset does not restore an earlier avatar: a custom avatar it replaces is discarded and must be uploaded and committed again to use it. When the default avatar is already in use, the profile is returned unchanged. This does not change the account's personal profile picture. Supply the required Idempotency-Key header.","operationId":"resetAgentProfileAvatar","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentProfile"}}},"description":"The agent profile with the project's default avatar.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResetAgentProfileAvatarBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResetAgentProfileAvatarForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectNotFoundProblem"}}},"description":"PROJECT_NOT_FOUND: Project Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectDeletedProblem"}}},"description":"PROJECT_DELETED: Project Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResetAgentProfileAvatarUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ResetAgentProfileAvatarGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Reset agent avatar","tags":["Agent Profile"],"x-required-permissions":["project:write"]},"put":{"description":"Commits an agent avatar previously uploaded through createAgentProfileAvatarUpload. Call this only after the direct multipart upload succeeds, using the uploadId from the same upload session and a stable Idempotency-Key. The service validates the temporary object's Project ownership, size, content type, image bytes, dimensions, encryption, and age before changing the agent profile.","operationId":"commitAgentProfileAvatar","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommitAgentProfileAvatarRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentProfile"}}},"description":"The agent profile with its committed avatar.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CommitAgentProfileAvatarBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CommitAgentProfileAvatarForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectNotFoundProblem"}}},"description":"PROJECT_NOT_FOUND: Project Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectDeletedProblem"}}},"description":"PROJECT_DELETED: Project Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CommitAgentProfileAvatarUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CommitAgentProfileAvatarGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Commit agent avatar","tags":["Agent Profile"],"x-required-permissions":["project:write"]}},"/v1/projects/{projectId}/agent-profile/avatar/uploads":{"post":{"description":"Creates a ten-minute, Project-bound presigned S3 POST for a JPEG, PNG, or WebP agent avatar up to 5 MiB. Copy every returned formFields entry into a multipart/form-data request to uploadUrl, append the local file as the final form part, and upload it directly without sending Photon credentials. After the upload succeeds, call commitAgentProfileAvatar with the returned uploadId. Do not cache or log the upload URL or form fields.","operationId":"createAgentProfileAvatarUpload","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAgentProfileAvatarUploadRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentProfileAvatarUpload"}}},"description":"A short-lived, project-bound presigned S3 POST.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateAgentProfileAvatarUploadForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectNotFoundProblem"}}},"description":"PROJECT_NOT_FOUND: Project Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectDeletedProblem"}}},"description":"PROJECT_DELETED: Project Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateAgentProfileAvatarUploadGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Create agent avatar upload","tags":["Agent Profile"],"x-required-permissions":["project:write"]}},"/v1/projects/{projectId}/api-keys":{"get":{"description":"Lists the API keys on the selected project, ordered newest first. Revoked keys are not listed; expired keys stay listed until they are revoked. Entries contain key metadata and permissions, never secret values. Use the returned identifiers to manage an existing key; lost secrets cannot be recovered through this operation.","operationId":"listProjectApiKeys","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListProjectApiKeysResponse"}}},"description":"The project's keys that have not been revoked, newest first. Never includes secrets.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListProjectApiKeysForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectNotFoundProblem"}}},"description":"PROJECT_NOT_FOUND: Project Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectDeletedProblem"}}},"description":"PROJECT_DELETED: Project Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RequestTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"List project API keys","tags":["API keys"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["project:manage_api_keys"]},"post":{"description":"Creates a key bound to the selected project using the supplied name, permissions and optional expiry. The secret is returned only in this response and in idempotent replays of it; store it securely because other reads never return it. The key is scoped to this project and does not grant account-level access. Supply the required Idempotency-Key header.","operationId":"createProjectApiKey","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectApiKeyRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectApiKeyResponse"}}},"description":"The created key, with its secret. The secret is returned only in this response and in idempotent replays of it, and cannot be recovered through any other operation.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateProjectApiKeyBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateProjectApiKeyForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectNotFoundProblem"}}},"description":"PROJECT_NOT_FOUND: Project Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ApiKeyLimitReachedProblem"}}},"description":"API_KEY_LIMIT_REACHED: API Key Limit Reached","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectDeletedProblem"}}},"description":"PROJECT_DELETED: Project Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateProjectApiKeyUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RequestTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Create project API key","tags":["API keys"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["project:manage_api_keys"]}},"/v1/projects/{projectId}/api-keys/{apiKeyId}":{"delete":{"description":"Revokes the identified key on the selected project and returns its revoked metadata. Repeating the deletion returns the same revokedAt value. This operation does not rotate the key or return a replacement secret. Supply the required Idempotency-Key header.","operationId":"revokeProjectApiKey","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"apiKeyId","required":true,"schema":{"type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectApiKeyResponse"}}},"description":"The revoked key. Repeating the delete returns the same revokedAt.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RevokeProjectApiKeyBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RevokeProjectApiKeyForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RevokeProjectApiKeyNotFoundProblem"}}},"description":"PROJECT_NOT_FOUND: Project Not Found; API_KEY_NOT_FOUND: API Key Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectDeletedProblem"}}},"description":"PROJECT_DELETED: Project Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RevokeProjectApiKeyUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RequestTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Revoke project API key","tags":["API keys"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["project:manage_api_keys"]},"patch":{"description":"Replaces the identified project key's permission list with the supplied permissions and returns the updated metadata. Sending the permission list the key already has leaves it unchanged. This request does not create a new secret or change the key's project binding. Supply the required Idempotency-Key header.","operationId":"updateProjectApiKey","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"apiKeyId","required":true,"schema":{"type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectApiKeyRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectApiKeyResponse"}}},"description":"The key with its new permission list. Sending the list it already holds returns it unchanged.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateProjectApiKeyBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateProjectApiKeyForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateProjectApiKeyNotFoundProblem"}}},"description":"PROJECT_NOT_FOUND: Project Not Found; API_KEY_NOT_FOUND: API Key Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ApiKeyRevokedProblem"}}},"description":"API_KEY_REVOKED: API Key Revoked","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProjectDeletedProblem"}}},"description":"PROJECT_DELETED: Project Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateProjectApiKeyUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RequestTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]}],"summary":"Update project API key permissions","tags":["API keys"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["project:manage_api_keys"]}},"/v1/projects/{projectId}/billing":{"get":{"description":"Returns the selected project's plan information, entitlements and current billing-period usage. This operation reads project billing state; it does not change plans or the payer's payment method. Organization-level plans are available through the organization billing overview.","operationId":"getBillingOverview","parameters":[{"description":"The project being billed.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetBillingOverviewResponse"}}},"description":"Plan, entitlements, and current-period usage.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetBillingOverviewForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/FailedPreconditionProblem"}}},"description":"FAILED_PRECONDITION: Failed Precondition","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetBillingOverviewInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetBillingOverviewGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:read_usage"]}],"summary":"Get project billing overview","tags":["Project Billing"],"x-required-permissions":["project:read_usage"]}},"/v1/projects/{projectId}/billing/operations/{operationId}":{"get":{"description":"Returns the authoritative state of a billing operation belonging to the selected project. Use it to recover or poll a plan-change request until the operation reaches success or failure. An accepted request is not evidence that the plan change has completed.","operationId":"getBillingOperation","parameters":[{"description":"The project being billed.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"Operation id returned by a purchase or quantity change.","in":"path","name":"operationId","required":true,"schema":{"pattern":"^pho_bop_.*","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingOperation"}}},"description":"Authoritative recovery snapshot for a billing operation.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetBillingOperationForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/OperationNotFoundProblem"}}},"description":"OPERATION_NOT_FOUND: Operation Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/FailedPreconditionProblem"}}},"description":"FAILED_PRECONDITION: Failed Precondition","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetBillingOperationInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetBillingOperationGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:read_usage"]}],"summary":"Get billing operation","tags":["Project Billing"],"x-required-permissions":["project:read_usage"]}},"/v1/projects/{projectId}/billing/plans":{"get":{"description":"Lists the billing plan catalog, grouped by their public plan-metadata type. Use the returned plan information when choosing the category and planCode for a plan change. The catalog is the same for every project, and reading it does not purchase a plan.","operationId":"listBillingPlans","parameters":[{"description":"The project being billed.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListBillingPlansResponse"}}},"description":"Billing plans grouped by their public plan-metadata type.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListBillingPlansForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/FailedPreconditionProblem"}}},"description":"FAILED_PRECONDITION: Failed Precondition","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListBillingPlansInternalServerErrorProblem"}}},"description":"INVALID_AUTH_CONTEXT: Invalid Authentication Context\n\nINTERNAL_ERROR: Internal Server Error","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListBillingPlansGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:read_usage"]}],"summary":"List billing plans","tags":["Project Billing"],"x-required-permissions":["project:read_usage"]}},"/v1/projects/{projectId}/metrics/backfill":{"get":{"description":"Returns historical metrics update progress. Completion reflects lastVerifiedAt; queries remain available during updates.","operationId":"getMessageMetricsBackfill","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"API schema date. Defaults to the latest served version; resolves to the latest served date on or before this value.","in":"header","name":"x-photon-version","schema":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMessageMetricsBackfillResponse"}}},"description":"Project-scoped backfill progress.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetMessageMetricsBackfillForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:read"]}],"summary":"Get metrics backfill status","tags":["Messaging & Voice Metrics"],"x-required-permissions":["project:read"]}},"/v1/projects/{projectId}/metrics/query":{"get":{"description":"Returns the message_events and call_events SQL schema, supported queries, and limits for the selected API version.","operationId":"getMessageMetricsSqlSchema","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"API schema date. Defaults to the latest served version; resolves to the latest served date on or before this value.","in":"header","name":"x-photon-version","schema":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMessageMetricsSqlSchemaResponse"}}},"description":"The Project-scoped SQL surface of the resolved contracts date.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetMessageMetricsSqlSchemaForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:read"]}],"summary":"Get metrics SQL schema","tags":["Messaging & Voice Metrics"],"x-required-permissions":["project:read"]},"post":{"description":"Runs read-only SQL over the Project's message_events or call_events table. Get the SQL schema for supported columns, capabilities, and limits.","operationId":"queryMessageMetrics","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"description":"API schema date. Defaults to the latest served version; resolves to the latest served date on or before this value.","in":"header","name":"x-photon-version","schema":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickHouseSqlQueryRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryMessageMetricsResponse"}}},"description":"Dynamic SQL columns and rows followed by bounded ClickHouse read statistics.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/QueryMessageMetricsForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/QueryMessageMetricsUnprocessableEntityProblem"}}},"description":"QUERY_RESOURCE_LIMIT: Query Resource Limit; VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/QueryConcurrencyLimitProblem"}}},"description":"QUERY_CONCURRENCY_LIMIT: Query Concurrency Limit","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/QueryMessageMetricsGatewayTimeoutProblem"}}},"description":"UPSTREAM_TIMEOUT: Upstream Service Timeout; REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:read"]}],"summary":"Query metrics","tags":["Messaging & Voice Metrics"],"x-required-permissions":["project:read"]}},"/v1/projects/{projectId}/webhooks/api-versions":{"get":{"description":"Lists the published webhook payload API versions and their lifecycle metadata. The list is the same for every project. Use the selectable indicator when choosing a version for a destination. These payload dates are separate from SDK package versions. An authorized conditional request may return 304 without a response body.","operationId":"listWebhookApiVersions","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWebhookApiVersionsResponse"}}},"description":"Published webhook payload API versions.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"304":{"description":"The authorized cached representation is current; no response body.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListWebhookApiVersionsForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListWebhookApiVersionsGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List webhook API versions","tags":["Webhook Event Catalog"],"x-required-permissions":["project:read"]}},"/v1/projects/{projectId}/webhooks/destinations":{"get":{"description":"Returns a cursor-paginated page of active webhook destinations configured for the selected project. Use pageSize and pageToken to navigate it. The listing returns destination configuration, never signing secrets.","operationId":"listWebhookDestinations","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"query","name":"pageSize","schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"pageToken","schema":{"maxLength":2048,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDestinationPage"}}},"description":"One page of active webhook destinations.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListWebhookDestinationsForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListWebhookDestinationsGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List webhook destinations","tags":["Webhook Destinations"],"x-required-permissions":["project:read"]},"post":{"description":"Creates a webhook destination for the selected project using its URL, payload API version, event selection and other documented settings. The response includes the signing secret, which is returned only in this response and in idempotent replays of it, never by destination reads; store it securely for signature verification. The API version must be selectable and selected event types must belong to that version's catalog. Supply the required Idempotency-Key header.","operationId":"createWebhookDestination","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookDestinationRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookDestinationResponse"}}},"description":"The created destination and its signing secret.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWebhookDestinationBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWebhookDestinationForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWebhookDestinationUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/CreateWebhookDestinationGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Create webhook destination","tags":["Webhook Destinations"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["project:write"]}},"/v1/projects/{projectId}/webhooks/destinations/{destinationId}":{"delete":{"description":"Deletes the selected project's destination and returns its stable tombstone. Repeated deletion returns the deletion representation. This operation removes the destination configuration; it is separate from disabling a destination through an update.","operationId":"deleteWebhookDestination","parameters":[{"in":"path","name":"destinationId","required":true,"schema":{"pattern":"^pho_whd_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDestination"}}},"description":"The stable webhook destination tombstone.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteWebhookDestinationForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/WebhookDestinationNotFoundProblem"}}},"description":"WEBHOOK_DESTINATION_NOT_FOUND: Webhook Destination Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DeleteWebhookDestinationGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Delete webhook destination","tags":["Webhook Destinations"],"x-required-permissions":["project:write"]},"get":{"description":"Returns the configuration of one webhook destination belonging to the selected project. Missing or deleted destinations are reported as errors. This read does not disclose the signing secret returned when the destination or a secret rotation was created.","operationId":"getWebhookDestination","parameters":[{"in":"path","name":"destinationId","required":true,"schema":{"pattern":"^pho_whd_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDestination"}}},"description":"The requested webhook destination.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWebhookDestinationForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/WebhookDestinationNotFoundProblem"}}},"description":"WEBHOOK_DESTINATION_NOT_FOUND: Webhook Destination Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/WebhookDestinationDeletedProblem"}}},"description":"WEBHOOK_DESTINATION_DELETED: Webhook Destination Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWebhookDestinationGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get webhook destination","tags":["Webhook Destinations"],"x-required-permissions":["project:read"]},"patch":{"description":"Updates the supplied URL, name, description, status or enabledEvents fields on a project's webhook destination and returns its updated configuration. The payload API version is not a mutable field in this request. Event selections are checked against the destination's versioned catalog; signing-secret rotation is a separate operation. Supply the required Idempotency-Key header.","operationId":"updateWebhookDestination","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"destinationId","required":true,"schema":{"pattern":"^pho_whd_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookDestinationRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDestination"}}},"description":"The updated webhook destination.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookDestinationBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookDestinationForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/WebhookDestinationNotFoundProblem"}}},"description":"WEBHOOK_DESTINATION_NOT_FOUND: Webhook Destination Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/WebhookDestinationDeletedProblem"}}},"description":"WEBHOOK_DESTINATION_DELETED: Webhook Destination Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookDestinationUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookDestinationGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Update webhook destination","tags":["Webhook Destinations"],"x-required-permissions":["project:write"]}},"/v1/projects/{projectId}/webhooks/destinations/{destinationId}/retries":{"post":{"description":"Requests an immediate attempt of the selected delivery if it is still the waiting head for its destination and event type. expectedAttemptCount is the failed-attempt counter recorded on the delivery and fences stale requests. This overrides the current backoff, including Retry-After, once. It preserves event identity and the retry budget. Delivered, active, disabled and dead-lettered deliveries cannot be retried. A 202 acknowledges the wake-up, not successful delivery. Supply an Idempotency-Key and retain it when retrying an ambiguous failure.","operationId":"retryWebhookDelivery","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"destinationId","required":true,"schema":{"pattern":"^pho_whd_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetryWebhookDeliveryRequest"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetryWebhookDeliveryResponse"}}},"description":"The waiting delivery was made eligible for an immediate attempt.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RetryWebhookDeliveryBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RetryWebhookDeliveryForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/FailedPreconditionProblem"}}},"description":"FAILED_PRECONDITION: Failed Precondition","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RequestTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Retry webhook delivery","tags":["Webhook Delivery"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["project:write"]}},"/v1/projects/{projectId}/webhooks/destinations/{destinationId}/secret-rotations":{"post":{"description":"Rotates the signing secret for the selected project's webhook destination and returns the new secret. The optional overlapSeconds controls the requested overlap with the previous secret according to the documented request constraints. Store the new secret securely and update the receiver's signature verification configuration; it is returned only in this response and in idempotent replays of it, never by destination reads. Supply the required Idempotency-Key header.","operationId":"rotateWebhookSigningSecret","parameters":[{"description":"Identifies one logical mutation across retries.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x21-\\x7e]{1,255}$","type":"string"}},{"in":"path","name":"destinationId","required":true,"schema":{"pattern":"^pho_whd_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateWebhookSigningSecretRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateWebhookSigningSecretResponse"}}},"description":"The new signing secret.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RotateWebhookSigningSecretBadRequestProblem"}}},"description":"IDEMPOTENCY_KEY_REQUIRED: Idempotency Key Required; IDEMPOTENCY_KEY_INVALID: Idempotency Key Invalid; INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RotateWebhookSigningSecretForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/WebhookDestinationNotFoundProblem"}}},"description":"WEBHOOK_DESTINATION_NOT_FOUND: Webhook Destination Not Found","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"410":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/WebhookDestinationDeletedProblem"}}},"description":"WEBHOOK_DESTINATION_DELETED: Webhook Destination Deleted","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/PayloadTooLargeProblem"}}},"description":"PAYLOAD_TOO_LARGE: Payload Too Large","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RotateWebhookSigningSecretUnprocessableEntityProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed; IDEMPOTENCY_KEY_REUSED: Idempotency Key Reused","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RotateWebhookSigningSecretGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Rotate webhook signing secret","tags":["Webhook Destinations"],"x-photon-mcp":{"enabled":false},"x-required-permissions":["project:write"]}},"/v1/projects/{projectId}/webhooks/egress-addresses":{"get":{"description":"Returns the public network addresses from which this environment sends webhook deliveries. Use this information when configuring the receiving system's network allowlist. The result is environment-specific and does not describe the API service's ingress addresses.","operationId":"listWebhookEgressAddresses","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWebhookEgressAddressesResponse"}}},"description":"The public addresses webhook deliveries originate from in this environment.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"304":{"description":"The authorized cached representation is current; no response body.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListWebhookEgressAddressesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RequestTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]},{"oauth2":["project:read"]}],"summary":"List webhook egress addresses","tags":["Webhook Delivery"],"x-required-permissions":["project:read"]}},"/v1/projects/{projectId}/webhooks/event-types":{"get":{"description":"Lists the webhook event types available in the requested apiVersion, including their descriptions, audiences and reader-schema URLs. Use this versioned catalog when selecting a destination's enabledEvents. The response may include version-retirement information; an authorized conditional request can return 304 without a body.","operationId":"listWebhookEventTypes","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"query","name":"apiVersion","required":true,"schema":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWebhookEventTypesResponse"}}},"description":"Events available in the selected API version.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"304":{"description":"The authorized cached representation is current; no response body.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListWebhookEventTypesForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ListWebhookEventTypesGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"List webhook event types","tags":["Webhook Event Catalog"],"x-required-permissions":["project:read"]}},"/v1/projects/{projectId}/webhooks/event-types/{eventType}/schema":{"get":{"description":"Returns the published reader JSON Schema for eventType in the requested webhook apiVersion. Use it to interpret events for that exact payload version. The response media type is application/schema+json; an authorized conditional request may return 304 without a body. Unsupported event/version combinations are rejected.","operationId":"getWebhookEventSchema","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"pattern":"^pho_prj_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string"}},{"in":"path","name":"eventType","required":true,"schema":{"pattern":"^[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9_-]*)+$","type":"string"}},{"in":"query","name":"apiVersion","required":true,"schema":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"}}],"responses":{"200":{"content":{"application/schema+json":{"schema":{"$ref":"#/components/schemas/WebhookEventSchema"}}},"description":"The published reader JSON Schema for the event.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"304":{"description":"The authorized cached representation is current; no response body.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentProblem"}}},"description":"INVALID_ARGUMENT: Invalid Argument","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotAuthenticatedProblem"}}},"description":"NOT_AUTHENTICATED: Not Authenticated","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"WWW-Authenticate":{"required":true,"schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWebhookEventSchemaForbiddenProblem"}}},"description":"FORBIDDEN: Forbidden; RESOURCE_MISMATCH: Resource Mismatch\n\nFORBIDDEN: Forbidden; INSUFFICIENT_SCOPE: Insufficient Scope; ORGANIZATION_SSO_REQUIRED: Organization SSO Required","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationFailedProblem"}}},"description":"VALIDATION_FAILED: Request Validation Failed","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalErrorProblem"}}},"description":"INTERNAL_ERROR: Internal Server Error","headers":{"Link":{"description":"Optional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Optional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Optional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Optional retry delay or HTTP date.","schema":{"type":"string"}},"X-Request-ID":{"description":"Application request identifier.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamFailureProblem"}}},"description":"UPSTREAM_FAILURE: Upstream Service Failure","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UpstreamUnavailableProblem"}}},"description":"UPSTREAM_UNAVAILABLE: Upstream Service Unavailable","headers":{"Deprecation":{"description":"RFC 9745 structured-field Date at which the operation was or will be deprecated: `@` followed by Unix seconds, for example `@1767225599`.","schema":{"pattern":"^@-?[0-9]+$","type":"string"}},"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier attempt.","schema":{"type":"boolean"}},"Link":{"description":"Links related to lifecycle or remediation documentation.\n\nOptional related resources.","schema":{"type":"string"}},"RateLimit":{"description":"Current rate-limit state.\n\nOptional rate limit information.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Rate-limit policy applied by the gateway.\n\nOptional rate limit policy.","schema":{"type":"string"}},"Retry-After":{"description":"Delay before retrying, in seconds or as an HTTP date.\n\nOptional retry delay or HTTP date.","schema":{"type":"string"}},"Sunset":{"description":"RFC 8594 HTTP-date (IMF-fixdate) after which the operation may become unavailable, for example `Thu, 31 Dec 2026 23:59:59 GMT`.","schema":{"pattern":"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$","type":"string"}},"X-Request-ID":{"description":"Identifier for this HTTP attempt.\n\nApplication request identifier.","schema":{"type":"string"}},"X-Trace-ID":{"description":"Trace ID of this request. Sent alongside X-Request-ID when a middleware published a trace ID for the request.","schema":{"pattern":"^(?!0{32}$)[0-9a-f]{32}$","type":"string"}}}},"504":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/GetWebhookEventSchemaGatewayTimeoutProblem"}}},"description":"REQUEST_TIMEOUT: Request Timeout; UPSTREAM_TIMEOUT: Upstream Service Timeout","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Idempotent-Replayed":{"$ref":"#/components/headers/Idempotent-Replayed"},"Link":{"$ref":"#/components/headers/Link"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"},"Sunset":{"$ref":"#/components/headers/Sunset"},"X-Request-ID":{"$ref":"#/components/headers/X-Request-ID"},"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}}}},"security":[{"accountServiceKey":[]},{"projectApiKey":[]}],"summary":"Get webhook event schema","tags":["Webhook Event Catalog"],"x-required-permissions":["project:read"]}}},"servers":[{"url":"https://api.photon.codes"}]}