sinch.domains.conversation.models.v1.messages.shared.reason module

class sinch.domains.conversation.models.v1.messages.shared.reason.Reason(
*,
code: Literal['UNKNOWN', 'INTERNAL_ERROR', 'RATE_LIMITED', 'RECIPIENT_INVALID_CHANNEL_IDENTITY', 'RECIPIENT_NOT_REACHABLE', 'RECIPIENT_NOT_OPTED_IN', 'OUTSIDE_ALLOWED_SENDING_WINDOW', 'CHANNEL_FAILURE', 'CHANNEL_BAD_CONFIGURATION', 'CHANNEL_CONFIGURATION_MISSING', 'MEDIA_TYPE_UNSUPPORTED', 'MEDIA_TOO_LARGE', 'MEDIA_NOT_REACHABLE', 'NO_CHANNELS_LEFT', 'TEMPLATE_NOT_FOUND', 'TEMPLATE_INSUFFICIENT_PARAMETERS', 'TEMPLATE_NON_EXISTING_LANGUAGE_OR_VERSION', 'DELIVERY_TIMED_OUT', 'DELIVERY_REJECTED_DUE_TO_POLICY', 'CONTACT_NOT_FOUND', 'BAD_REQUEST', 'UNKNOWN_APP', 'NO_CHANNEL_IDENTITY_FOR_CONTACT', 'CHANNEL_REJECT', 'NO_PERMISSION', 'NO_PROFILE_AVAILABLE', 'UNSUPPORTED_OPERATION'] | Annotated[str, Strict(strict=True)] | None = None,
description: Annotated[str, Strict(strict=True)] | None = None,
sub_code: Literal['UNSPECIFIED_SUB_CODE', 'ATTACHMENT_REJECTED', 'MEDIA_TYPE_UNDETERMINED', 'INACTIVE_SENDER'] | Annotated[str, Strict(strict=True)] | None = None,
channel_code: Annotated[str, Strict(strict=True)] | None = None,
**extra_data: Any,
)[source]

Bases: SnakeCaseExtrasModel

Parameters:
  • code (Literal['UNKNOWN', 'INTERNAL_ERROR', 'RATE_LIMITED', 'RECIPIENT_INVALID_CHANNEL_IDENTITY', 'RECIPIENT_NOT_REACHABLE', 'RECIPIENT_NOT_OPTED_IN', 'OUTSIDE_ALLOWED_SENDING_WINDOW', 'CHANNEL_FAILURE', 'CHANNEL_BAD_CONFIGURATION', 'CHANNEL_CONFIGURATION_MISSING', 'MEDIA_TYPE_UNSUPPORTED', 'MEDIA_TOO_LARGE', 'MEDIA_NOT_REACHABLE', 'NO_CHANNELS_LEFT', 'TEMPLATE_NOT_FOUND', 'TEMPLATE_INSUFFICIENT_PARAMETERS', 'TEMPLATE_NON_EXISTING_LANGUAGE_OR_VERSION', 'DELIVERY_TIMED_OUT', 'DELIVERY_REJECTED_DUE_TO_POLICY', 'CONTACT_NOT_FOUND', 'BAD_REQUEST', 'UNKNOWN_APP', 'NO_CHANNEL_IDENTITY_FOR_CONTACT', 'CHANNEL_REJECT', 'NO_PERMISSION', 'NO_PROFILE_AVAILABLE', 'UNSUPPORTED_OPERATION'] | ~typing.Annotated[str, ~pydantic.types.Strict(strict=True)] | None)

  • description (Annotated[str, Strict(strict=True)] | None)

  • sub_code (Literal['UNSPECIFIED_SUB_CODE', 'ATTACHMENT_REJECTED', 'MEDIA_TYPE_UNDETERMINED', 'INACTIVE_SENDER'] | ~typing.Annotated[str, ~pydantic.types.Strict(strict=True)] | None)

  • channel_code (Annotated[str, Strict(strict=True)] | None)

  • extra_data (Any)

code: Literal['UNKNOWN', 'INTERNAL_ERROR', 'RATE_LIMITED', 'RECIPIENT_INVALID_CHANNEL_IDENTITY', 'RECIPIENT_NOT_REACHABLE', 'RECIPIENT_NOT_OPTED_IN', 'OUTSIDE_ALLOWED_SENDING_WINDOW', 'CHANNEL_FAILURE', 'CHANNEL_BAD_CONFIGURATION', 'CHANNEL_CONFIGURATION_MISSING', 'MEDIA_TYPE_UNSUPPORTED', 'MEDIA_TOO_LARGE', 'MEDIA_NOT_REACHABLE', 'NO_CHANNELS_LEFT', 'TEMPLATE_NOT_FOUND', 'TEMPLATE_INSUFFICIENT_PARAMETERS', 'TEMPLATE_NON_EXISTING_LANGUAGE_OR_VERSION', 'DELIVERY_TIMED_OUT', 'DELIVERY_REJECTED_DUE_TO_POLICY', 'CONTACT_NOT_FOUND', 'BAD_REQUEST', 'UNKNOWN_APP', 'NO_CHANNEL_IDENTITY_FOR_CONTACT', 'CHANNEL_REJECT', 'NO_PERMISSION', 'NO_PROFILE_AVAILABLE', 'UNSUPPORTED_OPERATION'] | Annotated[str, Strict(strict=True)] | None
description: Annotated[str, Strict(strict=True)] | None
sub_code: Literal['UNSPECIFIED_SUB_CODE', 'ATTACHMENT_REJECTED', 'MEDIA_TYPE_UNDETERMINED', 'INACTIVE_SENDER'] | Annotated[str, Strict(strict=True)] | None
channel_code: Annotated[str, Strict(strict=True)] | None
model_config = {'extra': 'allow', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].