sinch.domains.conversation.models.v1.messages.types package

class sinch.domains.conversation.models.v1.messages.types.ListMessageDict[source]

Bases: TypedDict

title: str
sections: List[ListSectionDict]
description: NotRequired[str]
media: NotRequired[MediaPropertiesDict]
message_properties: NotRequired[ListMessagePropertiesDict]
class sinch.domains.conversation.models.v1.messages.types.MediaPropertiesDict[source]

Bases: TypedDict

url: str
thumbnail_url: NotRequired[str]
filename_override: NotRequired[str]
class sinch.domains.conversation.models.v1.messages.types.CardMessageDict[source]

Bases: TypedDict

choices: NotRequired[List[ChoiceOptionDict]]
description: NotRequired[str]
height: NotRequired[Literal['UNSPECIFIED_HEIGHT', 'SHORT', 'MEDIUM', 'TALL'] | Annotated[str, Strict(strict=True)]]
title: NotRequired[str]
media_message: NotRequired[MediaPropertiesDict]
message_properties: NotRequired[MessagePropertiesDict]
class sinch.domains.conversation.models.v1.messages.types.CarouselMessageDict[source]

Bases: TypedDict

cards: List[CardMessageDict]
choices: NotRequired[List[ChoiceOptionDict]]
class sinch.domains.conversation.models.v1.messages.types.ChoiceMessageDict[source]

Bases: TypedDict

choices: List[ChoiceOptionDict]
text_message: NotRequired[TextMessageDict]
message_properties: NotRequired[ChoiceMessagePropertiesDict]
class sinch.domains.conversation.models.v1.messages.types.ContactInfoMessageDict[source]

Bases: TypedDict

name: NameInfoDict
phone_numbers: List[PhoneNumberInfoDict]
addresses: NotRequired[List[AddressInfoDict]]
email_addresses: NotRequired[List[EmailInfoDict]]
organization: NotRequired[OrganizationInfoDict]
urls: NotRequired[List[UrlInfoDict]]
birthday: NotRequired[date]
class sinch.domains.conversation.models.v1.messages.types.LocationMessageDict[source]

Bases: TypedDict

coordinates: CoordinatesDict
title: str
label: NotRequired[str]
class sinch.domains.conversation.models.v1.messages.types.TemplateMessageDict[source]

Bases: TypedDict

channel_template: NotRequired[Dict[str, TemplateReferenceChannelSpecificDict]]
omni_template: NotRequired[TemplateReferenceOmniChannelDict]
class sinch.domains.conversation.models.v1.messages.types.ChannelRecipientIdentityDict[source]

Bases: TypedDict

channel: Literal['WHATSAPP', 'RCS', 'SMS', 'MESSENGER', 'VIBERBM', 'MMS', 'INSTAGRAM', 'TELEGRAM', 'KAKAOTALK', 'KAKAOTALKCHAT', 'LINE', 'WECHAT', 'APPLEBC'] | Annotated[str, Strict(strict=True)]
identity: str
class sinch.domains.conversation.models.v1.messages.types.SendMessageRequestBodyDict[source]

Bases: TypedDict

TypedDict for the message body in send message requests. At least one message type must be provided.

text_message: NotRequired[TextMessageDict]
card_message: NotRequired[CardMessageDict]
carousel_message: NotRequired[CarouselMessageDict]
choice_message: NotRequired[ChoiceMessageDict]
contact_info_message: NotRequired[ContactInfoMessageDict]
list_message: NotRequired[ListMessageDict]
location_message: NotRequired[LocationMessageDict]
media_message: NotRequired[MediaPropertiesDict]
template_message: NotRequired[TemplateMessageDict]
class sinch.domains.conversation.models.v1.messages.types.AppMessageDict[source]

Bases: dict

explicit_channel_message: NotRequired[Dict[str, str]]
explicit_channel_omni_message: NotRequired[Dict[str, Dict[str, Any]]]
channel_specific_message: NotRequired[Dict[str, Dict[str, Any]]]
agent: NotRequired[AgentDict]
text_message: NotRequired[TextMessageDict]
card_message: NotRequired[CardMessageDict]
carousel_message: NotRequired[CarouselMessageDict]
choice_message: NotRequired[ChoiceMessageDict]
contact_info_message: NotRequired[ContactInfoMessageDict]
list_message: NotRequired[ListMessageDict]
location_message: NotRequired[LocationMessageDict]
media_message: NotRequired[MediaPropertiesDict]
template_message: NotRequired[TemplateMessageDict]
class sinch.domains.conversation.models.v1.messages.types.ContactMessageDict[source]

Bases: TypedDict

channel_specific_message: NotRequired[ChannelSpecificContactMessageDict]
choice_response_message: NotRequired[ChoiceResponseMessageDict]
fallback_message: NotRequired[FallbackMessageDict]
location_message: NotRequired[LocationMessageDict]
media_card_message: NotRequired[MediaCardMessageDict]
media_message: NotRequired[MediaPropertiesDict]
product_response_message: NotRequired[ProductResponseMessageDict]
text_message: NotRequired[TextMessageDict]
reply_to: NotRequired[ReplyToDict]
class sinch.domains.conversation.models.v1.messages.types.ChannelSpecificContactMessageDict[source]

Bases: TypedDict

message_type: Literal['nfm_reply'] | str
message: WhatsAppInteractiveNfmReplyMessageDict
class sinch.domains.conversation.models.v1.messages.types.ChoiceResponseMessageDict[source]

Bases: TypedDict

message_id: str
postback_data: str
class sinch.domains.conversation.models.v1.messages.types.FallbackMessageDict[source]

Bases: TypedDict

raw_message: NotRequired[str]
reason: NotRequired[ReasonDict]
class sinch.domains.conversation.models.v1.messages.types.MediaCardMessageDict[source]

Bases: TypedDict

url: str
caption: NotRequired[str]
class sinch.domains.conversation.models.v1.messages.types.ProductResponseMessageDict[source]

Bases: TypedDict

products: NotRequired[List[ProductItemDict]]
title: NotRequired[str]
catalog_id: NotRequired[str]
class sinch.domains.conversation.models.v1.messages.types.ReasonDict[source]

Bases: TypedDict

code: NotRequired[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)]]
description: NotRequired[str]
sub_code: NotRequired[Literal['UNSPECIFIED_SUB_CODE', 'ATTACHMENT_REJECTED', 'MEDIA_TYPE_UNDETERMINED', 'INACTIVE_SENDER'] | Annotated[str, Strict(strict=True)]]
channel_code: NotRequired[str]
class sinch.domains.conversation.models.v1.messages.types.ReplyToDict[source]

Bases: TypedDict

message_id: str
class sinch.domains.conversation.models.v1.messages.types.WhatsAppInteractiveNfmReplyDict[source]

Bases: TypedDict

name: Literal['flow', 'address_message'] | Annotated[str, Strict(strict=True)]
response_json: str
body: str
class sinch.domains.conversation.models.v1.messages.types.WhatsAppInteractiveNfmReplyMessageDict[source]

Bases: TypedDict

type: Literal['nfm_reply'] | str
nfm_reply: WhatsAppInteractiveNfmReplyDict