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

class sinch.domains.conversation.models.v1.sinch_events.inbound.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.inbound.InboundEvent(
*,
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,
contact_event: GenericAppEvent,
<sinch.core.models.internal.unions.ResolveUnion object at 0x7ff1c9e65390>] | None=None,
contact_message_event: ReactionContactMessageEvent,
<sinch.core.models.internal.unions.ResolveUnion object at 0x7ff1c9e80b90>] | 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,
accept_time: datetime | None = None,
processing_mode: Literal['CONVERSATION',
'DISPATCH'] | ~typing.Annotated[str,
~pydantic.types.Strict(strict=True)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

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

Parameters:
id: Annotated[str, Strict(strict=True)] | None
direction: Literal['TO_APP', 'TO_CONTACT'] | Annotated[str, Strict(strict=True)] | None
contact_event: ResolveUnion object at 0x7ff1c9e65390>] | None
contact_message_event: ResolveUnion object at 0x7ff1c9e80b90>] | None
channel_identity: ChannelIdentity | None
contact_id: Annotated[str, Strict(strict=True)] | None
conversation_id: Annotated[str, Strict(strict=True)] | None
accept_time: datetime | 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

class sinch.domains.conversation.models.v1.sinch_events.inbound.ConversationDeletedContactEvent(
*,
conversation_deleted_event: Dict[str, Any],
**extra_data: Any,
)[source]

Bases: SinchEvent

Parameters:
  • conversation_deleted_event (Dict[str, Any])

  • extra_data (Any)

conversation_deleted_event: Dict[str, Any]
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.inbound.CommentContactEvent(
*,
comment_event: CommentEvent,
**extra_data: Any,
)[source]

Bases: SinchEvent

Parameters:
comment_event: CommentEvent
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.inbound.PaymentStatusUpdateContactMessageEvent(
*,
payment_status_update_event: PaymentStatusUpdateEvent,
**extra_data: Any,
)[source]

Bases: SinchEvent

Parameters:
payment_status_update_event: PaymentStatusUpdateEvent
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.inbound.ShortLinkActivatedContactMessageEvent(
*,
shortlink_activated_event: ShortLinkActivatedEvent,
**extra_data: Any,
)[source]

Bases: SinchEvent

Parameters:
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.inbound.ReactionContactMessageEvent(
*,
reaction_event: ReactionEvent,
**extra_data: Any,
)[source]

Bases: SinchEvent

Parameters:
reaction_event: ReactionEvent
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.inbound.CommentEvent(
*,
id: Annotated[str, Strict(strict=True)] | None = None,
text: Annotated[str, Strict(strict=True)],
comment_type: Literal['FEED', 'LIVE'] | Annotated[str, Strict(strict=True)] | None = None,
commented_on: Annotated[str, Strict(strict=True)] | None = None,
user: Annotated[str, Strict(strict=True)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

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

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

  • comment_type (Literal['FEED', 'LIVE'] | ~typing.Annotated[str, ~pydantic.types.Strict(strict=True)] | None)

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

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

  • extra_data (Any)

id: Annotated[str, Strict(strict=True)] | None
text: Annotated[str, Strict(strict=True)]
comment_type: Literal['FEED', 'LIVE'] | Annotated[str, Strict(strict=True)] | None
commented_on: Annotated[str, Strict(strict=True)] | None
user: 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.inbound.ShortLinkActivatedEvent(
*,
payload: Annotated[str, Strict(strict=True)] | None = None,
title: Annotated[str, Strict(strict=True)] | None = None,
ref: Annotated[str, Strict(strict=True)] | None = None,
source: Annotated[str, Strict(strict=True)] | None = None,
type: Annotated[str, Strict(strict=True)] | None = None,
existing_thread: Annotated[bool, Strict(strict=True)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

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

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

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

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

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

  • existing_thread (Annotated[bool, Strict(strict=True)] | None)

  • extra_data (Any)

payload: Annotated[str, Strict(strict=True)] | None
title: Annotated[str, Strict(strict=True)] | None
ref: Annotated[str, Strict(strict=True)] | None
source: Annotated[str, Strict(strict=True)] | None
type: Annotated[str, Strict(strict=True)] | None
existing_thread: Annotated[bool, 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.inbound.ReactionEvent(
*,
emoji: Annotated[str, Strict(strict=True)],
action: Literal['REACTION_ACTION_UNKNOWN', 'REACTION_ACTION_REACT', 'REACTION_ACTION_UNREACT'] | Annotated[str, Strict(strict=True)],
message_id: Annotated[str, Strict(strict=True)],
reaction_category: Annotated[str, Strict(strict=True)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

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

  • action (Literal['REACTION_ACTION_UNKNOWN', 'REACTION_ACTION_REACT', 'REACTION_ACTION_UNREACT'] | ~typing.Annotated[str, ~pydantic.types.Strict(strict=True)])

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

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

  • extra_data (Any)

emoji: Annotated[str, Strict(strict=True)]
action: Literal['REACTION_ACTION_UNKNOWN', 'REACTION_ACTION_REACT', 'REACTION_ACTION_UNREACT'] | Annotated[str, Strict(strict=True)]
message_id: Annotated[str, Strict(strict=True)]
reaction_category: 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.inbound.PaymentStatusUpdateEvent(
*,
reference_id: Annotated[str, Strict(strict=True)] | None = None,
payment_status: Literal['PAYMENT_STATUS_UNKNOWN', 'PAYMENT_STATUS_NEW', 'PAYMENT_STATUS_PENDING', 'PAYMENT_STATUS_CAPTURED', 'PAYMENT_STATUS_CANCELED', 'PAYMENT_STATUS_FAILED'] | Annotated[str, Strict(strict=True)] | None = None,
payment_transaction_status: Literal['PAYMENT_STATUS_TRANSACTION_UNKNOWN', 'PAYMENT_STATUS_TRANSACTION_PENDING', 'PAYMENT_STATUS_TRANSACTION_FAILED', 'PAYMENT_STATUS_TRANSACTION_SUCCESS', 'PAYMENT_STATUS_TRANSACTION_CANCELED'] | Annotated[str, Strict(strict=True)] | None = None,
payment_transaction_id: Annotated[str, Strict(strict=True)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

Message specific only for Payments feature to reflect current state of particular Payment Flow.

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

  • payment_status (Literal['PAYMENT_STATUS_UNKNOWN', 'PAYMENT_STATUS_NEW', 'PAYMENT_STATUS_PENDING', 'PAYMENT_STATUS_CAPTURED', 'PAYMENT_STATUS_CANCELED', 'PAYMENT_STATUS_FAILED'] | ~typing.Annotated[str, ~pydantic.types.Strict(strict=True)] | None)

  • payment_transaction_status (Literal['PAYMENT_STATUS_TRANSACTION_UNKNOWN', 'PAYMENT_STATUS_TRANSACTION_PENDING', 'PAYMENT_STATUS_TRANSACTION_FAILED', 'PAYMENT_STATUS_TRANSACTION_SUCCESS', 'PAYMENT_STATUS_TRANSACTION_CANCELED'] | ~typing.Annotated[str, ~pydantic.types.Strict(strict=True)] | None)

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

  • extra_data (Any)

reference_id: Annotated[str, Strict(strict=True)] | None
payment_status: Literal['PAYMENT_STATUS_UNKNOWN', 'PAYMENT_STATUS_NEW', 'PAYMENT_STATUS_PENDING', 'PAYMENT_STATUS_CAPTURED', 'PAYMENT_STATUS_CANCELED', 'PAYMENT_STATUS_FAILED'] | Annotated[str, Strict(strict=True)] | None
payment_transaction_status: Literal['PAYMENT_STATUS_TRANSACTION_UNKNOWN', 'PAYMENT_STATUS_TRANSACTION_PENDING', 'PAYMENT_STATUS_TRANSACTION_FAILED', 'PAYMENT_STATUS_TRANSACTION_SUCCESS', 'PAYMENT_STATUS_TRANSACTION_CANCELED'] | Annotated[str, Strict(strict=True)] | None
payment_transaction_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