sinch.domains.conversation.models.v1.sinch_events package

class sinch.domains.conversation.models.v1.sinch_events.ConversationSinchEventBase(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

Base fields present on every Conversation API Sinch Event payload.

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • extra_data (Any)

app_id: Annotated[str, Strict(strict=True)]
project_id: Annotated[str, Strict(strict=True)]
accepted_time: datetime | None
event_time: datetime | None
message_metadata: Annotated[str, Strict(strict=True)] | None
correlation_id: Annotated[str, Strict(strict=True)] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.MessageInboundEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
message: InboundMessage,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for MESSAGE_INBOUND (inbound message from user).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • message (InboundMessage)

  • extra_data (Any)

message: InboundMessage
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.MessageSubmitEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
message_submit_notification: MessageSubmitNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for MESSAGE_SUBMIT (message submission notification).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • message_submit_notification (MessageSubmitNotification)

  • extra_data (Any)

message_submit_notification: MessageSubmitNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.MessageDeliveryReceiptEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
message_delivery_report: MessageDeliveryReport,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for MESSAGE_DELIVERY (delivery receipt for app messages).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • message_delivery_report (MessageDeliveryReport)

  • extra_data (Any)

message_delivery_report: MessageDeliveryReport
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.MessageInboundSmartConversationRedactionEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
message_redaction: InboundMessage,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for MESSAGE_INBOUND_SMART_CONVERSATION_REDACTION (inbound message after Smart Conversations redaction).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • message_redaction (InboundMessage)

  • extra_data (Any)

message_redaction: InboundMessage
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.EventInboundEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
event: InboundEvent,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for EVENT_INBOUND (inbound event from user).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • event (InboundEvent)

  • extra_data (Any)

event: InboundEvent
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.EventDeliveryReceiptEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
event_delivery_report: EventDeliveryReport,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for EVENT_DELIVERY (delivery receipt for app events).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • event_delivery_report (EventDeliveryReport)

  • extra_data (Any)

event_delivery_report: EventDeliveryReport
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.ConversationStartEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
conversation_start_notification: ConversationNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for CONVERSATION_START (a new conversation between the subscribed app and a contact is started).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • conversation_start_notification (ConversationNotification)

  • extra_data (Any)

conversation_start_notification: ConversationNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.ConversationStopEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
conversation_stop_notification: ConversationNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for CONVERSATION_STOP (a conversation between the subscribed app and a contact is stopped).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • conversation_stop_notification (ConversationNotification)

  • extra_data (Any)

conversation_stop_notification: ConversationNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.ConversationDeleteEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
conversation_delete_notification: ConversationNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for CONVERSATION_DELETE (a conversation between the subscribed app and a contact is deleted).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • conversation_delete_notification (ConversationNotification)

  • extra_data (Any)

conversation_delete_notification: ConversationNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.ContactCreateEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
contact_create_notification: ContactNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for CONTACT_CREATE (a new contact is created).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • contact_create_notification (ContactNotification)

  • extra_data (Any)

contact_create_notification: ContactNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.ContactDeleteEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
contact_delete_notification: ContactNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for CONTACT_DELETE (a contact is deleted).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • contact_delete_notification (ContactNotification)

  • extra_data (Any)

contact_delete_notification: ContactNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.ContactUpdateEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
contact_update_notification: ContactNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for CONTACT_UPDATE (a contact is updated).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • contact_update_notification (ContactNotification)

  • extra_data (Any)

contact_update_notification: ContactNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.ContactMergeEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
contact_merge_notification: ContactMergeNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for CONTACT_MERGE (two contacts are merged).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • contact_merge_notification (ContactMergeNotification)

  • extra_data (Any)

contact_merge_notification: ContactMergeNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.ContactIdentitiesDuplicationEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
duplicated_contact_identities_notification: DuplicatedContactIdentitiesNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for CONTACT_IDENTITIES_DUPLICATION (duplicates of channel identities are found between multiple contacts during message and event processing).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • duplicated_contact_identities_notification (DuplicatedContactIdentitiesNotification)

  • extra_data (Any)

duplicated_contact_identities_notification: DuplicatedContactIdentitiesNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.CapabilityEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
capability_notification: CapabilityNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for CAPABILITY (result of an asynchronous capability check).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • capability_notification (CapabilityNotification)

  • extra_data (Any)

capability_notification: CapabilityNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.OptInEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
opt_in_notification: OptInNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for OPT_IN (opt-in notification from the channels).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • opt_in_notification (OptInNotification)

  • extra_data (Any)

opt_in_notification: OptInNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.OptOutEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
opt_out_notification: OptOutNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for OPT_OUT (opt-out notification from the channels).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • opt_out_notification (OptOutNotification)

  • extra_data (Any)

opt_out_notification: OptOutNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.ChannelEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
channel_event_notification: ChannelEventNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for CHANNEL_EVENT (notification of channel-specific information and updates, for example a WhatsApp quality rating change).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • channel_event_notification (ChannelEventNotification)

  • extra_data (Any)

channel_event_notification: ChannelEventNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.RecordNotificationEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
record_notification: RecordNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for RECORD_NOTIFICATION (record notification for an entity).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • record_notification (RecordNotification)

  • extra_data (Any)

record_notification: RecordNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.UnsupportedSinchEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
unsupported_callback: UnsupportedEvent,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for UNSUPPORTED (events received from the channels that have no native mapping in the Conversation API yet).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • unsupported_callback (UnsupportedEvent)

  • extra_data (Any)

unsupported_event: UnsupportedEvent
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.SmartConversationsEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
smart_conversation_notification: SmartConversationNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for SMART_CONVERSATION (Machine Learning and Artificial Intelligence analyses of the Smart Conversations functionality).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

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

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

  • smart_conversation_notification (SmartConversationNotification)

  • extra_data (Any)

smart_conversation_notification: SmartConversationNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.InboundMessage(
*,
accept_time: datetime | None = None,
channel_identity: ChannelIdentity | None = None,
contact_id: Annotated[str,
~pydantic.types.Strict(strict=True)] | None = None,
conversation_id: Annotated[str,
~pydantic.types.Strict(strict=True)] | None = None,
direction: Literal['TO_APP',
'TO_CONTACT'] | ~typing.Annotated[str,
~pydantic.types.Strict(strict=True)] | None = None,
id: Annotated[str,
~pydantic.types.Strict(strict=True)] | None = None,
metadata: Annotated[str,
~pydantic.types.Strict(strict=True)] | None = None,
injected: Annotated[bool,
~pydantic.types.Strict(strict=True)] | None = None,
sender_id: Annotated[str,
~pydantic.types.Strict(strict=True)] | None = None,
processing_mode: Literal['CONVERSATION',
'DISPATCH'] | ~typing.Annotated[str,
~pydantic.types.Strict(strict=True)] | None = None,
contact_message: TextContactMessage,
<sinch.core.models.internal.unions.ResolveUnion object at 0x7ff1ca2a0fd0>] | None=None,
**extra_data: Any,
)[source]

Bases: MessageCommonProps, SinchEvent

Inbound message container (contact message + channel/contact info).

Parameters:
contact_message: ResolveUnion object at 0x7ff1ca2a0fd0>] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.MessageDeliveryReport(
*,
message_id: Annotated[str, Strict(strict=True)] | None = None,
conversation_id: Annotated[str, Strict(strict=True)] | None = None,
status: Literal['QUEUED_ON_CHANNEL', 'DELIVERED', 'READ', 'FAILED', 'SWITCHING_CHANNEL'] | Annotated[str, Strict(strict=True)] | None = None,
channel_identity: ChannelIdentity | None = None,
contact_id: Annotated[str, Strict(strict=True)] | None = None,
metadata: Annotated[str, Strict(strict=True)] | None = None,
processing_mode: Literal['CONVERSATION', 'DISPATCH'] | Annotated[str, Strict(strict=True)] | None = None,
reason: Reason | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

Delivery report for an app message (MESSAGE_DELIVERY trigger).

Parameters:
  • message_id (Annotated[str, Strict(strict=True)] | None)

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

  • status (Literal['QUEUED_ON_CHANNEL', 'DELIVERED', 'READ', 'FAILED', 'SWITCHING_CHANNEL'] | ~typing.Annotated[str, ~pydantic.types.Strict(strict=True)] | None)

  • channel_identity (ChannelIdentity | None)

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

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

  • processing_mode (Literal['CONVERSATION', 'DISPATCH'] | ~typing.Annotated[str, ~pydantic.types.Strict(strict=True)] | None)

  • reason (Reason | None)

  • extra_data (Any)

message_id: Annotated[str, Strict(strict=True)] | None
conversation_id: Annotated[str, Strict(strict=True)] | None
status: Literal['QUEUED_ON_CHANNEL', 'DELIVERED', 'READ', 'FAILED', 'SWITCHING_CHANNEL'] | Annotated[str, Strict(strict=True)] | None
channel_identity: ChannelIdentity | None
contact_id: Annotated[str, Strict(strict=True)] | None
metadata: Annotated[str, Strict(strict=True)] | None
processing_mode: Literal['CONVERSATION', 'DISPATCH'] | Annotated[str, Strict(strict=True)] | None
reason: Reason | None
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.MessageSubmitNotification(
*,
message_id: Annotated[str,
~pydantic.types.Strict(strict=True)] | None = None,
conversation_id: Annotated[str,
~pydantic.types.Strict(strict=True)] | None = None,
channel_identity: ChannelIdentity | None = None,
contact_id: Annotated[str,
~pydantic.types.Strict(strict=True)] | None = None,
submitted_message: TextAppMessage,
<sinch.core.models.internal.unions.ResolveUnion object at 0x7ff1ca469190>] | None=None,
metadata: Annotated[str,
~pydantic.types.Strict(strict=True)] | None = None,
processing_mode: Literal['CONVERSATION',
'DISPATCH'] | ~typing.Annotated[str,
~pydantic.types.Strict(strict=True)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

Notification that an app message was submitted (MESSAGE_SUBMIT trigger).

Parameters:
message_id: Annotated[str, Strict(strict=True)] | None
conversation_id: Annotated[str, Strict(strict=True)] | None
channel_identity: ChannelIdentity | None
contact_id: Annotated[str, Strict(strict=True)] | None
submitted_message: ResolveUnion object at 0x7ff1ca469190>] | None
metadata: Annotated[str, Strict(strict=True)] | None
processing_mode: Literal['CONVERSATION', 'DISPATCH'] | Annotated[str, Strict(strict=True)] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

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

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None