generated: '2026-10-07' method: derived generator: derive-data-model.py source: - openapi/saperly-openapi.yml notation: has_one = property $ref; has_many = array of $ref; belongs_to = _id field summary: entities: 32 entities_in_spec: 32 relationships: 0 entities: - name: AssistantUnavailable fields: 2 - name: AudioConfigurationError fields: 2 - name: AuthorizationDenied fields: 2 - name: CallNotFound fields: 2 - name: CallStartFailed fields: 2 - name: ConnectionNotFound fields: 2 - name: CountryNotAvailable fields: 3 - name: CustomVoiceConflict fields: 3 - name: CustomVoiceNotFound fields: 2 - name: DestinationNotSupported fields: 2 - name: IdempotencyConflict fields: 2 - name: IdempotencyKeyMismatch fields: 2 - name: InsufficientFunds fields: 3 - name: InternalError fields: 2 - name: InvalidCallerIdName fields: 2 - name: InvalidSmsSenderId fields: 2 - name: InvalidVoiceUpload fields: 2 - name: MessageSendFailed fields: 2 - name: NoNumbersAvailable fields: 3 - name: NumberHasNoConnection fields: 2 - name: NumberNotFound fields: 2 - name: NumberQuotaExceeded fields: 3 - name: PaymentMethodRequired fields: 3 - name: PriceChanged fields: 7 - name: RateLimited fields: 2 - name: RecipientOptedOut fields: 2 - name: SpendLimitExceeded fields: 4 - name: Unauthorized fields: 2 - name: UnsupportedModel fields: 4 - name: UnsupportedVoice fields: 4 - name: UpstreamError fields: 4 - name: WorkspaceNotFound fields: 2 relationships: []