diff --git a/getstream/chat/rest_client.py b/getstream/chat/rest_client.py index 0dd59e01..28389573 100644 --- a/getstream/chat/rest_client.py +++ b/getstream/chat/rest_client.py @@ -26,7 +26,7 @@ def query_campaigns( limit: Optional[int] = None, next: Optional[str] = None, prev: Optional[str] = None, - sort: Optional[List[Optional[SortParamRequest]]] = None, + sort: Optional[List[SortParamRequest]] = None, filter: Optional[Dict[str, object]] = None, ) -> StreamResponse[QueryCampaignsResponse]: json = build_body_dict( @@ -88,7 +88,7 @@ def query_channels( offset: Optional[int] = None, state: Optional[bool] = None, user_id: Optional[str] = None, - sort: Optional[List[Optional[SortParamRequest]]] = None, + sort: Optional[List[SortParamRequest]] = None, filter_conditions: Optional[Dict[str, object]] = None, user: Optional[UserRequest] = None, ) -> StreamResponse[QueryChannelsResponse]: @@ -206,11 +206,11 @@ def update_channel( reject_invite: Optional[bool] = None, skip_push: Optional[bool] = None, user_id: Optional[str] = None, - add_members: Optional[List[Optional[ChannelMember]]] = None, + add_members: Optional[List[ChannelMember]] = None, add_moderators: Optional[List[str]] = None, - assign_roles: Optional[List[Optional[ChannelMember]]] = None, + assign_roles: Optional[List[ChannelMember]] = None, demote_moderators: Optional[List[str]] = None, - invites: Optional[List[Optional[ChannelMember]]] = None, + invites: Optional[List[ChannelMember]] = None, remove_members: Optional[List[str]] = None, data: Optional[ChannelInput] = None, message: Optional[MessageRequest] = None, @@ -823,7 +823,7 @@ def query_message_history( limit: Optional[int] = None, next: Optional[str] = None, prev: Optional[str] = None, - sort: Optional[List[Optional[SortParamRequest]]] = None, + sort: Optional[List[SortParamRequest]] = None, ) -> StreamResponse[QueryMessageHistoryResponse]: json = build_body_dict( filter=filter, limit=limit, next=next, prev=prev, sort=sort @@ -999,7 +999,7 @@ def query_reactions( next: Optional[str] = None, prev: Optional[str] = None, user_id: Optional[str] = None, - sort: Optional[List[Optional[SortParamRequest]]] = None, + sort: Optional[List[SortParamRequest]] = None, filter: Optional[Dict[str, object]] = None, user: Optional[UserRequest] = None, ) -> StreamResponse[QueryReactionsResponse]: @@ -1106,7 +1106,7 @@ def get_replies( created_at_before: Optional[datetime] = None, id_around: Optional[str] = None, created_at_around: Optional[datetime] = None, - sort: Optional[List[Optional[SortParamRequest]]] = None, + sort: Optional[List[SortParamRequest]] = None, ) -> StreamResponse[GetRepliesResponse]: query_params = build_query_param( limit=limit, @@ -1187,7 +1187,7 @@ def create_poll( max_votes_allowed: Optional[int] = None, user_id: Optional[str] = None, voting_visibility: Optional[str] = None, - options: Optional[List[Optional[PollOptionInput]]] = None, + options: Optional[List[PollOptionInput]] = None, custom: Optional[Dict[str, object]] = None, user: Optional[UserRequest] = None, ) -> StreamResponse[PollResponse]: @@ -1221,7 +1221,7 @@ def update_poll( max_votes_allowed: Optional[int] = None, user_id: Optional[str] = None, voting_visibility: Optional[str] = None, - options: Optional[List[Optional[PollOptionRequest]]] = None, + options: Optional[List[PollOptionRequest]] = None, custom: Optional[Dict[str, object]] = None, user: Optional[UserRequest] = None, ) -> StreamResponse[PollResponse]: @@ -1249,7 +1249,7 @@ def query_polls( limit: Optional[int] = None, next: Optional[str] = None, prev: Optional[str] = None, - sort: Optional[List[Optional[SortParamRequest]]] = None, + sort: Optional[List[SortParamRequest]] = None, filter: Optional[Dict[str, object]] = None, ) -> StreamResponse[QueryPollsResponse]: query_params = build_query_param(user_id=user_id) @@ -1399,7 +1399,7 @@ def query_poll_votes( limit: Optional[int] = None, next: Optional[str] = None, prev: Optional[str] = None, - sort: Optional[List[Optional[SortParamRequest]]] = None, + sort: Optional[List[SortParamRequest]] = None, filter: Optional[Dict[str, object]] = None, ) -> StreamResponse[PollVotesResponse]: query_params = build_query_param(user_id=user_id) @@ -1444,7 +1444,7 @@ def query_segments( limit: Optional[int] = None, next: Optional[str] = None, prev: Optional[str] = None, - sort: Optional[List[Optional[SortParamRequest]]] = None, + sort: Optional[List[SortParamRequest]] = None, ) -> StreamResponse[QuerySegmentsResponse]: json = build_body_dict( filter=filter, limit=limit, next=next, prev=prev, sort=sort @@ -1507,7 +1507,7 @@ def query_segment_targets( limit: Optional[int] = None, next: Optional[str] = None, prev: Optional[str] = None, - sort: Optional[List[Optional[SortParamRequest]]] = None, + sort: Optional[List[SortParamRequest]] = None, filter: Optional[Dict[str, object]] = None, ) -> StreamResponse[QuerySegmentTargetsResponse]: path_params = { diff --git a/getstream/common/rest_client.py b/getstream/common/rest_client.py index 898ae252..bd7e9565 100644 --- a/getstream/common/rest_client.py +++ b/getstream/common/rest_client.py @@ -52,21 +52,18 @@ def update_app( sqs_key: Optional[str] = None, sqs_secret: Optional[str] = None, sqs_url: Optional[str] = None, - video_provider: Optional[str] = None, webhook_url: Optional[str] = None, allowed_flag_reasons: Optional[List[str]] = None, image_moderation_block_labels: Optional[List[str]] = None, image_moderation_labels: Optional[List[str]] = None, user_search_disallowed_roles: Optional[List[str]] = None, webhook_events: Optional[List[str]] = None, - agora_options: Optional[Config] = None, apn_config: Optional[APNConfig] = None, async_moderation_config: Optional[AsyncModerationConfiguration] = None, datadog_info: Optional[DataDogInfo] = None, file_upload_config: Optional[FileUploadConfig] = None, firebase_config: Optional[FirebaseConfig] = None, grants: Optional[Dict[str, List[str]]] = None, - hms_options: Optional[Config] = None, huawei_config: Optional[HuaweiConfig] = None, image_upload_config: Optional[FileUploadConfig] = None, push_config: Optional[PushConfig] = None, @@ -99,21 +96,18 @@ def update_app( sqs_key=sqs_key, sqs_secret=sqs_secret, sqs_url=sqs_url, - video_provider=video_provider, webhook_url=webhook_url, allowed_flag_reasons=allowed_flag_reasons, image_moderation_block_labels=image_moderation_block_labels, image_moderation_labels=image_moderation_labels, user_search_disallowed_roles=user_search_disallowed_roles, webhook_events=webhook_events, - agora_options=agora_options, apn_config=apn_config, async_moderation_config=async_moderation_config, datadog_info=datadog_info, file_upload_config=file_upload_config, firebase_config=firebase_config, grants=grants, - hms_options=hms_options, huawei_config=huawei_config, image_upload_config=image_upload_config, push_config=push_config, diff --git a/getstream/models/__init__.py b/getstream/models/__init__.py index c1d27a3a..0399050d 100644 --- a/getstream/models/__init__.py +++ b/getstream/models/__init__.py @@ -31,6 +31,15 @@ class AITextConfig(DataClassJsonMixin): ) +@dataclass +class AIVideoConfig(DataClassJsonMixin): + enabled: bool = dc_field(metadata=dc_config(field_name="enabled")) + rules: "List[AWSRekognitionRule]" = dc_field(metadata=dc_config(field_name="rules")) + _async: Optional[bool] = dc_field( + default=None, metadata=dc_config(field_name="async") + ) + + @dataclass class APIError(DataClassJsonMixin): code: int = dc_field(metadata=dc_config(field_name="code")) @@ -203,6 +212,19 @@ class AggregatedStats(DataClassJsonMixin): ) +@dataclass +class AnyEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field(default="*", metadata=dc_config(field_name="type")) + + @dataclass class AppResponseFields(DataClassJsonMixin): async_url_enrich_enabled: bool = dc_field( @@ -257,7 +279,6 @@ class AppResponseFields(DataClassJsonMixin): suspended_explanation: str = dc_field( metadata=dc_config(field_name="suspended_explanation") ) - video_provider: str = dc_field(metadata=dc_config(field_name="video_provider")) webhook_url: str = dc_field(metadata=dc_config(field_name="webhook_url")) user_search_disallowed_roles: List[str] = dc_field( metadata=dc_config(field_name="user_search_disallowed_roles") @@ -299,21 +320,15 @@ class AppResponseFields(DataClassJsonMixin): allowed_flag_reasons: Optional[List[str]] = dc_field( default=None, metadata=dc_config(field_name="allowed_flag_reasons") ) - geofences: "Optional[List[Optional[GeofenceResponse]]]" = dc_field( + geofences: "Optional[List[GeofenceResponse]]" = dc_field( default=None, metadata=dc_config(field_name="geofences") ) image_moderation_labels: Optional[List[str]] = dc_field( default=None, metadata=dc_config(field_name="image_moderation_labels") ) - agora_options: "Optional[Config]" = dc_field( - default=None, metadata=dc_config(field_name="agora_options") - ) datadog_info: "Optional[DataDogInfo]" = dc_field( default=None, metadata=dc_config(field_name="datadog_info") ) - hms_options: "Optional[Config]" = dc_field( - default=None, metadata=dc_config(field_name="hms_options") - ) @dataclass @@ -396,10 +411,10 @@ class Attachment(DataClassJsonMixin): default=None, metadata=dc_config(field_name="title_link") ) type: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="type")) - actions: "Optional[List[Optional[Action]]]" = dc_field( + actions: "Optional[List[Action]]" = dc_field( default=None, metadata=dc_config(field_name="actions") ) - fields: "Optional[List[Optional[Field]]]" = dc_field( + fields: "Optional[List[Field]]" = dc_field( default=None, metadata=dc_config(field_name="fields") ) giphy: "Optional[Images]" = dc_field( @@ -765,6 +780,26 @@ class BlockUsersResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) +@dataclass +class BlockedUserEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) + type: str = dc_field( + default="call.blocked_user", metadata=dc_config(field_name="type") + ) + blocked_by_user: "Optional[UserResponse]" = dc_field( + default=None, metadata=dc_config(field_name="blocked_by_user") + ) + + @dataclass class BlockedUserResponse(DataClassJsonMixin): blocked_user_id: str = dc_field(metadata=dc_config(field_name="blocked_user_id")) @@ -836,75 +871,23 @@ class BroadcastSettingsResponse(DataClassJsonMixin): @dataclass -class CallDurationReport(DataClassJsonMixin): - histogram: "List[ReportByHistogramBucket]" = dc_field( - metadata=dc_config(field_name="histogram") - ) - - -@dataclass -class CallDurationReportResponse(DataClassJsonMixin): - daily: "List[DailyAggregateCallDurationReportResponse]" = dc_field( - metadata=dc_config(field_name="daily") - ) - - -@dataclass -class CallEvent(DataClassJsonMixin): - description: str = dc_field(metadata=dc_config(field_name="description")) - end_timestamp: int = dc_field(metadata=dc_config(field_name="end_timestamp")) - internal: bool = dc_field(metadata=dc_config(field_name="internal")) - kind: str = dc_field(metadata=dc_config(field_name="kind")) - severity: int = dc_field(metadata=dc_config(field_name="severity")) - timestamp: int = dc_field(metadata=dc_config(field_name="timestamp")) - type: str = dc_field(metadata=dc_config(field_name="type")) - category: Optional[str] = dc_field( - default=None, metadata=dc_config(field_name="category") - ) - component: Optional[str] = dc_field( - default=None, metadata=dc_config(field_name="component") - ) - issue_tags: Optional[List[str]] = dc_field( - default=None, metadata=dc_config(field_name="issue_tags") - ) - - -@dataclass -class CallIngressResponse(DataClassJsonMixin): - rtmp: "RTMPIngress" = dc_field(metadata=dc_config(field_name="rtmp")) - - -@dataclass -class CallParticipantCountReport(DataClassJsonMixin): - histogram: "List[ReportByHistogramBucket]" = dc_field( - metadata=dc_config(field_name="histogram") - ) - - -@dataclass -class CallParticipantCountReportResponse(DataClassJsonMixin): - daily: "List[DailyAggregateCallParticipantCountReportResponse]" = dc_field( - metadata=dc_config(field_name="daily") - ) - - -@dataclass -class CallParticipantResponse(DataClassJsonMixin): - joined_at: datetime = dc_field( +class CallAcceptedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( metadata=dc_config( - field_name="joined_at", + field_name="created_at", encoder=encode_datetime, decoder=datetime_from_unix_ns, mm_field=fields.DateTime(format="iso"), ) ) - role: str = dc_field(metadata=dc_config(field_name="role")) - user_session_id: str = dc_field(metadata=dc_config(field_name="user_session_id")) + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) + type: str = dc_field(default="call.accepted", metadata=dc_config(field_name="type")) @dataclass -class CallRecording(DataClassJsonMixin): +class CallClosedCaption(DataClassJsonMixin): end_time: datetime = dc_field( metadata=dc_config( field_name="end_time", @@ -913,7 +896,7 @@ class CallRecording(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - filename: str = dc_field(metadata=dc_config(field_name="filename")) + speaker_id: str = dc_field(metadata=dc_config(field_name="speaker_id")) start_time: datetime = dc_field( metadata=dc_config( field_name="start_time", @@ -922,46 +905,29 @@ class CallRecording(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - url: str = dc_field(metadata=dc_config(field_name="url")) + text: str = dc_field(metadata=dc_config(field_name="text")) + user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) @dataclass -class CallRequest(DataClassJsonMixin): - created_by_id: Optional[str] = dc_field( - default=None, metadata=dc_config(field_name="created_by_id") - ) - starts_at: Optional[datetime] = dc_field( - default=None, +class CallClosedCaptionsFailedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( metadata=dc_config( - field_name="starts_at", + field_name="created_at", encoder=encode_datetime, decoder=datetime_from_unix_ns, mm_field=fields.DateTime(format="iso"), - ), - ) - team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) - video: Optional[bool] = dc_field( - default=None, metadata=dc_config(field_name="video") - ) - members: "Optional[List[MemberRequest]]" = dc_field( - default=None, metadata=dc_config(field_name="members") - ) - created_by: "Optional[UserRequest]" = dc_field( - default=None, metadata=dc_config(field_name="created_by") - ) - custom: Optional[Dict[str, object]] = dc_field( - default=None, metadata=dc_config(field_name="custom") + ) ) - settings_override: "Optional[CallSettingsRequest]" = dc_field( - default=None, metadata=dc_config(field_name="settings_override") + type: str = dc_field( + default="call.closed_captions_failed", metadata=dc_config(field_name="type") ) @dataclass -class CallResponse(DataClassJsonMixin): - backstage: bool = dc_field(metadata=dc_config(field_name="backstage")) - captioning: bool = dc_field(metadata=dc_config(field_name="captioning")) - cid: str = dc_field(metadata=dc_config(field_name="cid")) +class CallClosedCaptionsStartedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) created_at: datetime = dc_field( metadata=dc_config( field_name="created_at", @@ -970,87 +936,704 @@ class CallResponse(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - current_session_id: str = dc_field( - metadata=dc_config(field_name="current_session_id") + type: str = dc_field( + default="call.closed_captions_started", metadata=dc_config(field_name="type") ) - id: str = dc_field(metadata=dc_config(field_name="id")) - recording: bool = dc_field(metadata=dc_config(field_name="recording")) - transcribing: bool = dc_field(metadata=dc_config(field_name="transcribing")) - type: str = dc_field(metadata=dc_config(field_name="type")) - updated_at: datetime = dc_field( + + +@dataclass +class CallClosedCaptionsStoppedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( metadata=dc_config( - field_name="updated_at", + field_name="created_at", encoder=encode_datetime, decoder=datetime_from_unix_ns, mm_field=fields.DateTime(format="iso"), ) ) - blocked_user_ids: List[str] = dc_field( - metadata=dc_config(field_name="blocked_user_ids") + type: str = dc_field( + default="call.closed_captions_stopped", metadata=dc_config(field_name="type") ) - created_by: "UserResponse" = dc_field(metadata=dc_config(field_name="created_by")) - custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) - egress: "EgressResponse" = dc_field(metadata=dc_config(field_name="egress")) - ingress: "CallIngressResponse" = dc_field(metadata=dc_config(field_name="ingress")) - settings: "CallSettingsResponse" = dc_field( - metadata=dc_config(field_name="settings") + + +@dataclass +class CallCreatedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) ) - ended_at: Optional[datetime] = dc_field( - default=None, + members: "List[MemberResponse]" = dc_field(metadata=dc_config(field_name="members")) + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + type: str = dc_field(default="call.created", metadata=dc_config(field_name="type")) + + +@dataclass +class CallDeletedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( metadata=dc_config( - field_name="ended_at", + field_name="created_at", encoder=encode_datetime, decoder=datetime_from_unix_ns, mm_field=fields.DateTime(format="iso"), - ), + ) ) - join_ahead_time_seconds: Optional[int] = dc_field( - default=None, metadata=dc_config(field_name="join_ahead_time_seconds") + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + type: str = dc_field(default="call.deleted", metadata=dc_config(field_name="type")) + + +@dataclass +class CallDurationReport(DataClassJsonMixin): + histogram: "List[ReportByHistogramBucket]" = dc_field( + metadata=dc_config(field_name="histogram") ) - starts_at: Optional[datetime] = dc_field( - default=None, + + +@dataclass +class CallDurationReportResponse(DataClassJsonMixin): + daily: "List[DailyAggregateCallDurationReportResponse]" = dc_field( + metadata=dc_config(field_name="daily") + ) + + +@dataclass +class CallEndedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( metadata=dc_config( - field_name="starts_at", + field_name="created_at", encoder=encode_datetime, decoder=datetime_from_unix_ns, mm_field=fields.DateTime(format="iso"), - ), - ) - team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) - session: "Optional[CallSessionResponse]" = dc_field( - default=None, metadata=dc_config(field_name="session") + ) ) - thumbnails: "Optional[ThumbnailResponse]" = dc_field( - default=None, metadata=dc_config(field_name="thumbnails") + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + type: str = dc_field(default="call.ended", metadata=dc_config(field_name="type")) + user: "Optional[UserResponse]" = dc_field( + default=None, metadata=dc_config(field_name="user") ) @dataclass -class CallSessionResponse(DataClassJsonMixin): - anonymous_participant_count: int = dc_field( - metadata=dc_config(field_name="anonymous_participant_count") +class CallEvent(DataClassJsonMixin): + description: str = dc_field(metadata=dc_config(field_name="description")) + end_timestamp: int = dc_field(metadata=dc_config(field_name="end_timestamp")) + internal: bool = dc_field(metadata=dc_config(field_name="internal")) + kind: str = dc_field(metadata=dc_config(field_name="kind")) + severity: int = dc_field(metadata=dc_config(field_name="severity")) + timestamp: int = dc_field(metadata=dc_config(field_name="timestamp")) + type: str = dc_field(metadata=dc_config(field_name="type")) + category: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="category") ) - id: str = dc_field(metadata=dc_config(field_name="id")) - participants: "List[CallParticipantResponse]" = dc_field( - metadata=dc_config(field_name="participants") + component: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="component") ) - accepted_by: "Dict[str, datetime]" = dc_field( + issue_tags: Optional[List[str]] = dc_field( + default=None, metadata=dc_config(field_name="issue_tags") + ) + + +@dataclass +class CallHLSBroadcastingFailedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( metadata=dc_config( - field_name="accepted_by", + field_name="created_at", encoder=encode_datetime, decoder=datetime_from_unix_ns, mm_field=fields.DateTime(format="iso"), ) ) - missed_by: "Dict[str, datetime]" = dc_field( + type: str = dc_field( + default="call.hls_broadcasting_failed", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallHLSBroadcastingStartedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( metadata=dc_config( - field_name="missed_by", + field_name="created_at", encoder=encode_datetime, decoder=datetime_from_unix_ns, mm_field=fields.DateTime(format="iso"), ) ) - participants_count_by_role: "Dict[str, int]" = dc_field( + hls_playlist_url: str = dc_field(metadata=dc_config(field_name="hls_playlist_url")) + type: str = dc_field( + default="call.hls_broadcasting_started", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallHLSBroadcastingStoppedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="call.hls_broadcasting_stopped", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallIngressResponse(DataClassJsonMixin): + rtmp: "RTMPIngress" = dc_field(metadata=dc_config(field_name="rtmp")) + + +@dataclass +class CallLiveStartedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + type: str = dc_field( + default="call.live_started", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallMemberAddedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + members: "List[MemberResponse]" = dc_field(metadata=dc_config(field_name="members")) + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + type: str = dc_field( + default="call.member_added", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallMemberRemovedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + members: List[str] = dc_field(metadata=dc_config(field_name="members")) + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + type: str = dc_field( + default="call.member_removed", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallMemberUpdatedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + members: "List[MemberResponse]" = dc_field(metadata=dc_config(field_name="members")) + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + type: str = dc_field( + default="call.member_updated", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallMemberUpdatedPermissionEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + members: "List[MemberResponse]" = dc_field(metadata=dc_config(field_name="members")) + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + capabilities_by_role: "Dict[str, List[str]]" = dc_field( + metadata=dc_config(field_name="capabilities_by_role") + ) + type: str = dc_field( + default="call.member_updated_permission", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallMissedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + notify_user: bool = dc_field(metadata=dc_config(field_name="notify_user")) + session_id: str = dc_field(metadata=dc_config(field_name="session_id")) + members: "List[MemberResponse]" = dc_field(metadata=dc_config(field_name="members")) + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) + type: str = dc_field(default="call.missed", metadata=dc_config(field_name="type")) + + +@dataclass +class CallNotificationEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + session_id: str = dc_field(metadata=dc_config(field_name="session_id")) + members: "List[MemberResponse]" = dc_field(metadata=dc_config(field_name="members")) + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) + type: str = dc_field( + default="call.notification", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallParticipantCountReport(DataClassJsonMixin): + histogram: "List[ReportByHistogramBucket]" = dc_field( + metadata=dc_config(field_name="histogram") + ) + + +@dataclass +class CallParticipantCountReportResponse(DataClassJsonMixin): + daily: "List[DailyAggregateCallParticipantCountReportResponse]" = dc_field( + metadata=dc_config(field_name="daily") + ) + + +@dataclass +class CallParticipantResponse(DataClassJsonMixin): + joined_at: datetime = dc_field( + metadata=dc_config( + field_name="joined_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + role: str = dc_field(metadata=dc_config(field_name="role")) + user_session_id: str = dc_field(metadata=dc_config(field_name="user_session_id")) + user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) + + +@dataclass +class CallReactionEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + reaction: "ReactionResponse" = dc_field(metadata=dc_config(field_name="reaction")) + type: str = dc_field( + default="call.reaction_new", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallRecording(DataClassJsonMixin): + end_time: datetime = dc_field( + metadata=dc_config( + field_name="end_time", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + filename: str = dc_field(metadata=dc_config(field_name="filename")) + start_time: datetime = dc_field( + metadata=dc_config( + field_name="start_time", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + url: str = dc_field(metadata=dc_config(field_name="url")) + + +@dataclass +class CallRecordingFailedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="call.recording_failed", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallRecordingReadyEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + call_recording: "CallRecording" = dc_field( + metadata=dc_config(field_name="call_recording") + ) + type: str = dc_field( + default="call.recording_ready", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallRecordingStartedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="call.recording_started", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallRecordingStoppedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="call.recording_stopped", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallRejectedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) + type: str = dc_field(default="call.rejected", metadata=dc_config(field_name="type")) + reason: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="reason") + ) + + +@dataclass +class CallRequest(DataClassJsonMixin): + created_by_id: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="created_by_id") + ) + starts_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="starts_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + video: Optional[bool] = dc_field( + default=None, metadata=dc_config(field_name="video") + ) + members: "Optional[List[MemberRequest]]" = dc_field( + default=None, metadata=dc_config(field_name="members") + ) + created_by: "Optional[UserRequest]" = dc_field( + default=None, metadata=dc_config(field_name="created_by") + ) + custom: Optional[Dict[str, object]] = dc_field( + default=None, metadata=dc_config(field_name="custom") + ) + settings_override: "Optional[CallSettingsRequest]" = dc_field( + default=None, metadata=dc_config(field_name="settings_override") + ) + + +@dataclass +class CallResponse(DataClassJsonMixin): + backstage: bool = dc_field(metadata=dc_config(field_name="backstage")) + captioning: bool = dc_field(metadata=dc_config(field_name="captioning")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + current_session_id: str = dc_field( + metadata=dc_config(field_name="current_session_id") + ) + id: str = dc_field(metadata=dc_config(field_name="id")) + recording: bool = dc_field(metadata=dc_config(field_name="recording")) + transcribing: bool = dc_field(metadata=dc_config(field_name="transcribing")) + type: str = dc_field(metadata=dc_config(field_name="type")) + updated_at: datetime = dc_field( + metadata=dc_config( + field_name="updated_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + blocked_user_ids: List[str] = dc_field( + metadata=dc_config(field_name="blocked_user_ids") + ) + created_by: "UserResponse" = dc_field(metadata=dc_config(field_name="created_by")) + custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) + egress: "EgressResponse" = dc_field(metadata=dc_config(field_name="egress")) + ingress: "CallIngressResponse" = dc_field(metadata=dc_config(field_name="ingress")) + settings: "CallSettingsResponse" = dc_field( + metadata=dc_config(field_name="settings") + ) + ended_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="ended_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + join_ahead_time_seconds: Optional[int] = dc_field( + default=None, metadata=dc_config(field_name="join_ahead_time_seconds") + ) + starts_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="starts_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + session: "Optional[CallSessionResponse]" = dc_field( + default=None, metadata=dc_config(field_name="session") + ) + thumbnails: "Optional[ThumbnailResponse]" = dc_field( + default=None, metadata=dc_config(field_name="thumbnails") + ) + + +@dataclass +class CallRingEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + session_id: str = dc_field(metadata=dc_config(field_name="session_id")) + video: bool = dc_field(metadata=dc_config(field_name="video")) + members: "List[MemberResponse]" = dc_field(metadata=dc_config(field_name="members")) + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) + type: str = dc_field(default="call.ring", metadata=dc_config(field_name="type")) + + +@dataclass +class CallRtmpBroadcastFailedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + name: str = dc_field(metadata=dc_config(field_name="name")) + type: str = dc_field( + default="call.rtmp_broadcast_failed", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallRtmpBroadcastStartedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + name: str = dc_field(metadata=dc_config(field_name="name")) + type: str = dc_field( + default="call.rtmp_broadcast_started", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallRtmpBroadcastStoppedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + name: str = dc_field(metadata=dc_config(field_name="name")) + type: str = dc_field( + default="call.rtmp_broadcast_stopped", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallSessionEndedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + session_id: str = dc_field(metadata=dc_config(field_name="session_id")) + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + type: str = dc_field( + default="call.session_ended", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallSessionParticipantJoinedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + session_id: str = dc_field(metadata=dc_config(field_name="session_id")) + participant: "CallParticipantResponse" = dc_field( + metadata=dc_config(field_name="participant") + ) + type: str = dc_field( + default="call.session_participant_joined", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallSessionParticipantLeftEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + duration_seconds: int = dc_field(metadata=dc_config(field_name="duration_seconds")) + session_id: str = dc_field(metadata=dc_config(field_name="session_id")) + participant: "CallParticipantResponse" = dc_field( + metadata=dc_config(field_name="participant") + ) + type: str = dc_field( + default="call.session_participant_left", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallSessionResponse(DataClassJsonMixin): + anonymous_participant_count: int = dc_field( + metadata=dc_config(field_name="anonymous_participant_count") + ) + id: str = dc_field(metadata=dc_config(field_name="id")) + participants: "List[CallParticipantResponse]" = dc_field( + metadata=dc_config(field_name="participants") + ) + accepted_by: "Dict[str, datetime]" = dc_field( + metadata=dc_config( + field_name="accepted_by", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + missed_by: "Dict[str, datetime]" = dc_field( + metadata=dc_config( + field_name="missed_by", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + participants_count_by_role: "Dict[str, int]" = dc_field( metadata=dc_config(field_name="participants_count_by_role") ) rejected_by: "Dict[str, datetime]" = dc_field( @@ -1108,6 +1691,24 @@ class CallSessionResponse(DataClassJsonMixin): ) +@dataclass +class CallSessionStartedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + session_id: str = dc_field(metadata=dc_config(field_name="session_id")) + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + type: str = dc_field( + default="call.session_started", metadata=dc_config(field_name="type") + ) + + @dataclass class CallSettings(DataClassJsonMixin): audio: "Optional[AudioSettings]" = dc_field( @@ -1255,9 +1856,7 @@ class CallStatsReportSummaryResponse(DataClassJsonMixin): @dataclass class CallTimeline(DataClassJsonMixin): - events: "List[Optional[CallEvent]]" = dc_field( - metadata=dc_config(field_name="events") - ) + events: "List[CallEvent]" = dc_field(metadata=dc_config(field_name="events")) @dataclass @@ -1282,6 +1881,73 @@ class CallTranscription(DataClassJsonMixin): url: str = dc_field(metadata=dc_config(field_name="url")) +@dataclass +class CallTranscriptionFailedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="call.transcription_failed", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallTranscriptionReadyEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + call_transcription: "CallTranscription" = dc_field( + metadata=dc_config(field_name="call_transcription") + ) + type: str = dc_field( + default="call.transcription_ready", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallTranscriptionStartedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="call.transcription_started", metadata=dc_config(field_name="type") + ) + + +@dataclass +class CallTranscriptionStoppedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="call.transcription_stopped", metadata=dc_config(field_name="type") + ) + + @dataclass class CallType(DataClassJsonMixin): app_pk: int = dc_field(metadata=dc_config(field_name="AppPK")) @@ -1343,6 +2009,44 @@ class CallTypeResponse(DataClassJsonMixin): ) +@dataclass +class CallUpdatedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + call: "CallResponse" = dc_field(metadata=dc_config(field_name="call")) + capabilities_by_role: "Dict[str, List[str]]" = dc_field( + metadata=dc_config(field_name="capabilities_by_role") + ) + type: str = dc_field(default="call.updated", metadata=dc_config(field_name="type")) + + +@dataclass +class CallUserMutedEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + from_user_id: str = dc_field(metadata=dc_config(field_name="from_user_id")) + muted_user_ids: List[str] = dc_field( + metadata=dc_config(field_name="muted_user_ids") + ) + type: str = dc_field( + default="call.user_muted", metadata=dc_config(field_name="type") + ) + + @dataclass class CallsPerDayReport(DataClassJsonMixin): count: int = dc_field(metadata=dc_config(field_name="count")) @@ -1360,16 +2064,44 @@ class CampaignChannelTemplate(DataClassJsonMixin): type: str = dc_field(metadata=dc_config(field_name="type")) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) id: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="id")) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) members: Optional[List[str]] = dc_field( default=None, metadata=dc_config(field_name="members") ) +@dataclass +class CampaignCompletedEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="campaign.completed", metadata=dc_config(field_name="type") + ) + received_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="received_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + campaign: "Optional[CampaignResponse]" = dc_field( + default=None, metadata=dc_config(field_name="campaign") + ) + + @dataclass class CampaignMessageTemplate(DataClassJsonMixin): poll_id: str = dc_field(metadata=dc_config(field_name="poll_id")) text: str = dc_field(metadata=dc_config(field_name="text")) - attachments: "List[Optional[Attachment]]" = dc_field( + attachments: "List[Attachment]" = dc_field( metadata=dc_config(field_name="attachments") ) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) @@ -1402,9 +2134,7 @@ class CampaignResponse(DataClassJsonMixin): ) ) segment_ids: List[str] = dc_field(metadata=dc_config(field_name="segment_ids")) - segments: "List[Optional[Segment]]" = dc_field( - metadata=dc_config(field_name="segments") - ) + segments: "List[Segment]" = dc_field(metadata=dc_config(field_name="segments")) user_ids: List[str] = dc_field(metadata=dc_config(field_name="user_ids")) users: "List[UserResponse]" = dc_field(metadata=dc_config(field_name="users")) stats: "CampaignStatsResponse" = dc_field(metadata=dc_config(field_name="stats")) @@ -1437,6 +2167,33 @@ class CampaignResponse(DataClassJsonMixin): ) +@dataclass +class CampaignStartedEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="campaign.started", metadata=dc_config(field_name="type") + ) + received_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="received_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + campaign: "Optional[CampaignResponse]" = dc_field( + default=None, metadata=dc_config(field_name="campaign") + ) + + @dataclass class CampaignStatsResponse(DataClassJsonMixin): progress: float = dc_field(metadata=dc_config(field_name="progress")) @@ -1532,10 +2289,10 @@ class Channel(DataClassJsonMixin): default=None, metadata=dc_config(field_name="member_count") ) team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) - invites: "Optional[List[Optional[ChannelMember]]]" = dc_field( + invites: "Optional[List[ChannelMember]]" = dc_field( default=None, metadata=dc_config(field_name="invites") ) - members: "Optional[List[Optional[ChannelMember]]]" = dc_field( + members: "Optional[List[ChannelMember]]" = dc_field( default=None, metadata=dc_config(field_name="members") ) config: "Optional[ChannelConfig]" = dc_field( @@ -1668,9 +2425,7 @@ class ChannelConfigWithInfo(DataClassJsonMixin): ) uploads: bool = dc_field(metadata=dc_config(field_name="uploads")) url_enrichment: bool = dc_field(metadata=dc_config(field_name="url_enrichment")) - commands: "List[Optional[Command]]" = dc_field( - metadata=dc_config(field_name="commands") - ) + commands: "List[Command]" = dc_field(metadata=dc_config(field_name="commands")) blocklist: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="blocklist") ) @@ -1697,6 +2452,46 @@ class ChannelConfigWithInfo(DataClassJsonMixin): ) +@dataclass +class ChannelCreatedEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="channel.created", metadata=dc_config(field_name="type") + ) + + +@dataclass +class ChannelDeletedEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_member_count: int = dc_field( + metadata=dc_config(field_name="channel_member_count") + ) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="channel.deleted", metadata=dc_config(field_name="type") + ) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + channel: "Optional[ChannelResponse]" = dc_field( + default=None, metadata=dc_config(field_name="channel") + ) + + @dataclass class ChannelExport(DataClassJsonMixin): cid: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="cid")) @@ -1722,6 +2517,24 @@ class ChannelExport(DataClassJsonMixin): type: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="type")) +@dataclass +class ChannelFrozenEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="channel.frozen", metadata=dc_config(field_name="type") + ) + + @dataclass class ChannelGetOrCreateRequest(DataClassJsonMixin): hide_for_creator: Optional[bool] = dc_field( @@ -1736,14 +2549,42 @@ class ChannelGetOrCreateRequest(DataClassJsonMixin): data: "Optional[ChannelInput]" = dc_field( default=None, metadata=dc_config(field_name="data") ) - members: "Optional[PaginationParams]" = dc_field( - default=None, metadata=dc_config(field_name="members") + members: "Optional[PaginationParams]" = dc_field( + default=None, metadata=dc_config(field_name="members") + ) + messages: "Optional[MessagePaginationParams]" = dc_field( + default=None, metadata=dc_config(field_name="messages") + ) + watchers: "Optional[PaginationParams]" = dc_field( + default=None, metadata=dc_config(field_name="watchers") + ) + + +@dataclass +class ChannelHiddenEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_member_count: int = dc_field( + metadata=dc_config(field_name="channel_member_count") + ) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + clear_history: bool = dc_field(metadata=dc_config(field_name="clear_history")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="channel.hidden", metadata=dc_config(field_name="type") ) - messages: "Optional[MessagePaginationParams]" = dc_field( - default=None, metadata=dc_config(field_name="messages") + channel: "Optional[ChannelResponse]" = dc_field( + default=None, metadata=dc_config(field_name="channel") ) - watchers: "Optional[PaginationParams]" = dc_field( - default=None, metadata=dc_config(field_name="watchers") + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") ) @@ -1768,10 +2609,10 @@ class ChannelInput(DataClassJsonMixin): truncated_by_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="truncated_by_id") ) - invites: "Optional[List[Optional[ChannelMember]]]" = dc_field( + invites: "Optional[List[ChannelMember]]" = dc_field( default=None, metadata=dc_config(field_name="invites") ) - members: "Optional[List[Optional[ChannelMember]]]" = dc_field( + members: "Optional[List[ChannelMember]]" = dc_field( default=None, metadata=dc_config(field_name="members") ) config_overrides: "Optional[ChannelConfig]" = dc_field( @@ -1979,6 +2820,14 @@ class ChannelMemberResponse(DataClassJsonMixin): ) +@dataclass +class ChannelMessages(DataClassJsonMixin): + messages: "List[Message]" = dc_field(metadata=dc_config(field_name="messages")) + channel: "Optional[ChannelResponse]" = dc_field( + default=None, metadata=dc_config(field_name="channel") + ) + + @dataclass class ChannelMute(DataClassJsonMixin): created_at: datetime = dc_field( @@ -2014,6 +2863,19 @@ class ChannelMute(DataClassJsonMixin): ) +@dataclass +class ChannelMutedEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field(default="channel.muted", metadata=dc_config(field_name="type")) + + ChannelOwnCapabilityType = NewType("ChannelOwnCapabilityType", str) @@ -2022,13 +2884,11 @@ class ChannelOwnCapability: CAST_POLL_VOTE: Final[ChannelOwnCapabilityType] = "cast-poll-vote" CONNECT_EVENTS: Final[ChannelOwnCapabilityType] = "connect-events" CREATE_ATTACHMENT: Final[ChannelOwnCapabilityType] = "create-attachment" - CREATE_CALL: Final[ChannelOwnCapabilityType] = "create-call" DELETE_ANY_MESSAGE: Final[ChannelOwnCapabilityType] = "delete-any-message" DELETE_CHANNEL: Final[ChannelOwnCapabilityType] = "delete-channel" DELETE_OWN_MESSAGE: Final[ChannelOwnCapabilityType] = "delete-own-message" FLAG_MESSAGE: Final[ChannelOwnCapabilityType] = "flag-message" FREEZE_CHANNEL: Final[ChannelOwnCapabilityType] = "freeze-channel" - JOIN_CALL: Final[ChannelOwnCapabilityType] = "join-call" JOIN_CHANNEL: Final[ChannelOwnCapabilityType] = "join-channel" LEAVE_CHANNEL: Final[ChannelOwnCapabilityType] = "leave-channel" MUTE_CHANNEL: Final[ChannelOwnCapabilityType] = "mute-channel" @@ -2147,7 +3007,7 @@ class ChannelResponse(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ), ) - members: "Optional[List[Optional[ChannelMember]]]" = dc_field( + members: "Optional[List[ChannelMember]]" = dc_field( default=None, metadata=dc_config(field_name="members") ) own_capabilities: "Optional[List[ChannelOwnCapability]]" = dc_field( @@ -2167,16 +3027,14 @@ class ChannelResponse(DataClassJsonMixin): @dataclass class ChannelStateResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - members: "List[Optional[ChannelMember]]" = dc_field( - metadata=dc_config(field_name="members") - ) + members: "List[ChannelMember]" = dc_field(metadata=dc_config(field_name="members")) messages: "List[MessageResponse]" = dc_field( metadata=dc_config(field_name="messages") ) pinned_messages: "List[MessageResponse]" = dc_field( metadata=dc_config(field_name="pinned_messages") ) - threads: "List[Optional[ThreadStateResponse]]" = dc_field( + threads: "List[ThreadStateResponse]" = dc_field( metadata=dc_config(field_name="threads") ) hidden: Optional[bool] = dc_field( @@ -2194,7 +3052,7 @@ class ChannelStateResponse(DataClassJsonMixin): watcher_count: Optional[int] = dc_field( default=None, metadata=dc_config(field_name="watcher_count") ) - pending_messages: "Optional[List[Optional[PendingMessageResponse]]]" = dc_field( + pending_messages: "Optional[List[PendingMessageResponse]]" = dc_field( default=None, metadata=dc_config(field_name="pending_messages") ) read: "Optional[List[ReadStateResponse]]" = dc_field( @@ -2213,16 +3071,14 @@ class ChannelStateResponse(DataClassJsonMixin): @dataclass class ChannelStateResponseFields(DataClassJsonMixin): - members: "List[Optional[ChannelMember]]" = dc_field( - metadata=dc_config(field_name="members") - ) + members: "List[ChannelMember]" = dc_field(metadata=dc_config(field_name="members")) messages: "List[MessageResponse]" = dc_field( metadata=dc_config(field_name="messages") ) pinned_messages: "List[MessageResponse]" = dc_field( metadata=dc_config(field_name="pinned_messages") ) - threads: "List[Optional[ThreadStateResponse]]" = dc_field( + threads: "List[ThreadStateResponse]" = dc_field( metadata=dc_config(field_name="threads") ) hidden: Optional[bool] = dc_field( @@ -2240,7 +3096,7 @@ class ChannelStateResponseFields(DataClassJsonMixin): watcher_count: Optional[int] = dc_field( default=None, metadata=dc_config(field_name="watcher_count") ) - pending_messages: "Optional[List[Optional[PendingMessageResponse]]]" = dc_field( + pending_messages: "Optional[List[PendingMessageResponse]]" = dc_field( default=None, metadata=dc_config(field_name="pending_messages") ) read: "Optional[List[ReadStateResponse]]" = dc_field( @@ -2257,6 +3113,30 @@ class ChannelStateResponseFields(DataClassJsonMixin): ) +@dataclass +class ChannelTruncatedEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_member_count: int = dc_field( + metadata=dc_config(field_name="channel_member_count") + ) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="channel.truncated", metadata=dc_config(field_name="type") + ) + channel: "Optional[ChannelResponse]" = dc_field( + default=None, metadata=dc_config(field_name="channel") + ) + + @dataclass class ChannelTypeConfig(DataClassJsonMixin): automod: str = dc_field(metadata=dc_config(field_name="automod")) @@ -2303,9 +3183,7 @@ class ChannelTypeConfig(DataClassJsonMixin): ) uploads: bool = dc_field(metadata=dc_config(field_name="uploads")) url_enrichment: bool = dc_field(metadata=dc_config(field_name="url_enrichment")) - commands: "List[Optional[Command]]" = dc_field( - metadata=dc_config(field_name="commands") - ) + commands: "List[Command]" = dc_field(metadata=dc_config(field_name="commands")) permissions: "List[PolicyRequest]" = dc_field( metadata=dc_config(field_name="permissions") ) @@ -2333,6 +3211,91 @@ class ChannelTypeConfig(DataClassJsonMixin): ) +@dataclass +class ChannelUnFrozenEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="channel.unfrozen", metadata=dc_config(field_name="type") + ) + + +@dataclass +class ChannelUnmutedEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="channel.unmuted", metadata=dc_config(field_name="type") + ) + + +@dataclass +class ChannelUpdatedEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_member_count: int = dc_field( + metadata=dc_config(field_name="channel_member_count") + ) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="channel.updated", metadata=dc_config(field_name="type") + ) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + channel: "Optional[ChannelResponse]" = dc_field( + default=None, metadata=dc_config(field_name="channel") + ) + message: "Optional[Message]" = dc_field( + default=None, metadata=dc_config(field_name="message") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + +@dataclass +class ChannelVisibleEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="channel.visible", metadata=dc_config(field_name="type") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + @dataclass class CheckExternalStorageResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) @@ -2483,6 +3446,25 @@ class CheckSQSResponse(DataClassJsonMixin): ) +@dataclass +class ClosedCaptionEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + closed_caption: "CallClosedCaption" = dc_field( + metadata=dc_config(field_name="closed_caption") + ) + type: str = dc_field( + default="call.closed_caption", metadata=dc_config(field_name="type") + ) + + @dataclass class CollectUserFeedbackRequest(DataClassJsonMixin): rating: int = dc_field(metadata=dc_config(field_name="rating")) @@ -2533,18 +3515,6 @@ class CommitMessageRequest(DataClassJsonMixin): pass -@dataclass -class Config(DataClassJsonMixin): - app_certificate: str = dc_field(metadata=dc_config(field_name="app_certificate")) - app_id: str = dc_field(metadata=dc_config(field_name="app_id")) - default_role: Optional[str] = dc_field( - default=None, metadata=dc_config(field_name="default_role") - ) - role_map: "Optional[Dict[str, str]]" = dc_field( - default=None, metadata=dc_config(field_name="role_map") - ) - - @dataclass class ConfigOverrides(DataClassJsonMixin): commands: List[str] = dc_field(metadata=dc_config(field_name="commands")) @@ -2590,6 +3560,7 @@ class ConfigResponse(DataClassJsonMixin): ) ) key: str = dc_field(metadata=dc_config(field_name="key")) + team: str = dc_field(metadata=dc_config(field_name="team")) updated_at: datetime = dc_field( metadata=dc_config( field_name="updated_at", @@ -2604,6 +3575,9 @@ class ConfigResponse(DataClassJsonMixin): ai_text_config: "Optional[AITextConfig]" = dc_field( default=None, metadata=dc_config(field_name="ai_text_config") ) + ai_video_config: "Optional[AIVideoConfig]" = dc_field( + default=None, metadata=dc_config(field_name="ai_video_config") + ) automod_platform_circumvention_config: "Optional[AutomodPlatformCircumventionConfig]" = dc_field( default=None, metadata=dc_config(field_name="automod_platform_circumvention_config"), @@ -3008,7 +3982,7 @@ class CreatePollRequest(DataClassJsonMixin): voting_visibility: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="voting_visibility") ) - options: "Optional[List[Optional[PollOptionInput]]]" = dc_field( + options: "Optional[List[PollOptionInput]]" = dc_field( default=None, metadata=dc_config(field_name="options") ) custom: Optional[Dict[str, object]] = dc_field( @@ -3039,18 +4013,26 @@ class CustomActionRequest(DataClassJsonMixin): @dataclass -class CustomCheckRequest(DataClassJsonMixin): - entity_creator_id: str = dc_field( - metadata=dc_config(field_name="entity_creator_id") - ) - entity_id: str = dc_field(metadata=dc_config(field_name="entity_id")) - entity_type: str = dc_field(metadata=dc_config(field_name="entity_type")) - name: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="name")) +class CustomCheckFlag(DataClassJsonMixin): + type: str = dc_field(metadata=dc_config(field_name="type")) reason: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="reason") ) - recommended_action: Optional[str] = dc_field( - default=None, metadata=dc_config(field_name="recommended_action") + labels: Optional[List[str]] = dc_field( + default=None, metadata=dc_config(field_name="labels") + ) + custom: Optional[Dict[str, object]] = dc_field( + default=None, metadata=dc_config(field_name="custom") + ) + + +@dataclass +class CustomCheckRequest(DataClassJsonMixin): + entity_id: str = dc_field(metadata=dc_config(field_name="entity_id")) + entity_type: str = dc_field(metadata=dc_config(field_name="entity_type")) + flags: "List[CustomCheckFlag]" = dc_field(metadata=dc_config(field_name="flags")) + entity_creator_id: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="entity_creator_id") ) user_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="user_id") @@ -3067,31 +4049,26 @@ class CustomCheckRequest(DataClassJsonMixin): class CustomCheckResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) id: str = dc_field(metadata=dc_config(field_name="id")) - recommended_action: str = dc_field( - metadata=dc_config(field_name="recommended_action") - ) - scored_at: datetime = dc_field( - metadata=dc_config( - field_name="scored_at", - encoder=encode_datetime, - decoder=datetime_from_unix_ns, - mm_field=fields.DateTime(format="iso"), - ) - ) status: str = dc_field(metadata=dc_config(field_name="status")) - report: list = dc_field(metadata=dc_config(field_name="report")) - moderator_action: Optional[str] = dc_field( - default=None, metadata=dc_config(field_name="moderator_action") + item: "Optional[ReviewQueueItemResponse]" = dc_field( + default=None, metadata=dc_config(field_name="item") ) - reviewed_at: Optional[datetime] = dc_field( - default=None, + + +@dataclass +class CustomVideoEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( metadata=dc_config( - field_name="reviewed_at", + field_name="created_at", encoder=encode_datetime, decoder=datetime_from_unix_ns, mm_field=fields.DateTime(format="iso"), - ), + ) ) + custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) + user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) + type: str = dc_field(default="custom", metadata=dc_config(field_name="type")) @dataclass @@ -3473,8 +4450,8 @@ class EnrichedActivity(DataClassJsonMixin): actor: "Optional[Data]" = dc_field( default=None, metadata=dc_config(field_name="actor") ) - latest_reactions: "Optional[Dict[str, List[Optional[EnrichedReaction]]]]" = ( - dc_field(default=None, metadata=dc_config(field_name="latest_reactions")) + latest_reactions: "Optional[Dict[str, List[EnrichedReaction]]]" = dc_field( + default=None, metadata=dc_config(field_name="latest_reactions") ) object: "Optional[Data]" = dc_field( default=None, metadata=dc_config(field_name="object") @@ -3482,7 +4459,7 @@ class EnrichedActivity(DataClassJsonMixin): origin: "Optional[Data]" = dc_field( default=None, metadata=dc_config(field_name="origin") ) - own_reactions: "Optional[Dict[str, List[Optional[EnrichedReaction]]]]" = dc_field( + own_reactions: "Optional[Dict[str, List[EnrichedReaction]]]" = dc_field( default=None, metadata=dc_config(field_name="own_reactions") ) reaction_counts: "Optional[Dict[str, int]]" = dc_field( @@ -3514,10 +4491,10 @@ class EnrichedReaction(DataClassJsonMixin): data: Optional[Dict[str, object]] = dc_field( default=None, metadata=dc_config(field_name="data") ) - latest_children: "Optional[Dict[str, List[Optional[EnrichedReaction]]]]" = dc_field( + latest_children: "Optional[Dict[str, List[EnrichedReaction]]]" = dc_field( default=None, metadata=dc_config(field_name="latest_children") ) - own_children: "Optional[Dict[str, List[Optional[EnrichedReaction]]]]" = dc_field( + own_children: "Optional[Dict[str, List[EnrichedReaction]]]" = dc_field( default=None, metadata=dc_config(field_name="own_children") ) updated_at: "Optional[Time]" = dc_field( @@ -3660,9 +4637,7 @@ class EntityCreatorResponse(DataClassJsonMixin): blocked_user_ids: List[str] = dc_field( metadata=dc_config(field_name="blocked_user_ids") ) - devices: "List[Optional[DeviceResponse]]" = dc_field( - metadata=dc_config(field_name="devices") - ) + devices: "List[DeviceResponse]" = dc_field(metadata=dc_config(field_name="devices")) teams: List[str] = dc_field(metadata=dc_config(field_name="teams")) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) ban_expires: Optional[datetime] = dc_field( @@ -3909,11 +4884,85 @@ class FirebaseConfigFields(DataClassJsonMixin): notification_template: str = dc_field( metadata=dc_config(field_name="notification_template") ) - credentials_json: Optional[str] = dc_field( - default=None, metadata=dc_config(field_name="credentials_json") + credentials_json: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="credentials_json") + ) + server_key: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="server_key") + ) + + +@dataclass +class Flag(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + created_by_automod: bool = dc_field( + metadata=dc_config(field_name="created_by_automod") + ) + updated_at: datetime = dc_field( + metadata=dc_config( + field_name="updated_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + approved_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="approved_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + reason: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="reason") + ) + rejected_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="rejected_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + reviewed_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="reviewed_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + reviewed_by: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="reviewed_by") + ) + target_message_id: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="target_message_id") ) - server_key: Optional[str] = dc_field( - default=None, metadata=dc_config(field_name="server_key") + custom: Optional[Dict[str, object]] = dc_field( + default=None, metadata=dc_config(field_name="custom") + ) + details: "Optional[FlagDetails]" = dc_field( + default=None, metadata=dc_config(field_name="details") + ) + target_message: "Optional[Message]" = dc_field( + default=None, metadata=dc_config(field_name="target_message") + ) + target_user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="target_user") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") ) @@ -4084,6 +5133,37 @@ class FlagResponse(DataClassJsonMixin): item_id: str = dc_field(metadata=dc_config(field_name="item_id")) +@dataclass +class FlagUpdatedEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field(default="flag.updated", metadata=dc_config(field_name="type")) + received_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="received_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + created_by: "Optional[UserResponse]" = dc_field( + default=None, metadata=dc_config(field_name="CreatedBy") + ) + message: "Optional[MessageResponse]" = dc_field( + default=None, metadata=dc_config(field_name="Message") + ) + user: "Optional[UserResponse]" = dc_field( + default=None, metadata=dc_config(field_name="User") + ) + + @dataclass class FullUserResponse(DataClassJsonMixin): banned: bool = dc_field(metadata=dc_config(field_name="banned")) @@ -4118,15 +5198,11 @@ class FullUserResponse(DataClassJsonMixin): blocked_user_ids: List[str] = dc_field( metadata=dc_config(field_name="blocked_user_ids") ) - channel_mutes: "List[Optional[ChannelMute]]" = dc_field( + channel_mutes: "List[ChannelMute]" = dc_field( metadata=dc_config(field_name="channel_mutes") ) - devices: "List[Optional[DeviceResponse]]" = dc_field( - metadata=dc_config(field_name="devices") - ) - mutes: "List[Optional[UserMuteResponse]]" = dc_field( - metadata=dc_config(field_name="mutes") - ) + devices: "List[DeviceResponse]" = dc_field(metadata=dc_config(field_name="devices")) + mutes: "List[UserMuteResponse]" = dc_field(metadata=dc_config(field_name="mutes")) teams: List[str] = dc_field(metadata=dc_config(field_name="teams")) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) deactivated_at: Optional[datetime] = dc_field( @@ -4242,7 +5318,7 @@ class GetBlockListResponse(DataClassJsonMixin): @dataclass class GetBlockedUsersResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - blocks: "List[Optional[BlockedUserResponse]]" = dc_field( + blocks: "List[BlockedUserResponse]" = dc_field( metadata=dc_config(field_name="blocks") ) @@ -4276,7 +5352,7 @@ class GetCallStatsResponse(DataClassJsonMixin): ) quality_score: int = dc_field(metadata=dc_config(field_name="quality_score")) sfu_count: int = dc_field(metadata=dc_config(field_name="sfu_count")) - participant_report: "List[Optional[UserStats]]" = dc_field( + participant_report: "List[UserStats]" = dc_field( metadata=dc_config(field_name="participant_report") ) sfus: "List[SFULocationResponse]" = dc_field(metadata=dc_config(field_name="sfus")) @@ -4384,9 +5460,7 @@ class GetChannelTypeResponse(DataClassJsonMixin): ) uploads: bool = dc_field(metadata=dc_config(field_name="uploads")) url_enrichment: bool = dc_field(metadata=dc_config(field_name="url_enrichment")) - commands: "List[Optional[Command]]" = dc_field( - metadata=dc_config(field_name="commands") - ) + commands: "List[Command]" = dc_field(metadata=dc_config(field_name="commands")) permissions: "List[PolicyRequest]" = dc_field( metadata=dc_config(field_name="permissions") ) @@ -4580,10 +5654,10 @@ class GetOGResponse(DataClassJsonMixin): default=None, metadata=dc_config(field_name="title_link") ) type: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="type")) - actions: "Optional[List[Optional[Action]]]" = dc_field( + actions: "Optional[List[Action]]" = dc_field( default=None, metadata=dc_config(field_name="actions") ) - fields: "Optional[List[Optional[Field]]]" = dc_field( + fields: "Optional[List[Field]]" = dc_field( default=None, metadata=dc_config(field_name="fields") ) giphy: "Optional[Images]" = dc_field( @@ -4639,9 +5713,7 @@ class GetRateLimitsResponse(DataClassJsonMixin): @dataclass class GetReactionsResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - reactions: "List[Optional[Reaction]]" = dc_field( - metadata=dc_config(field_name="reactions") - ) + reactions: "List[Reaction]" = dc_field(metadata=dc_config(field_name="reactions")) @dataclass @@ -4655,7 +5727,7 @@ class GetRepliesResponse(DataClassJsonMixin): @dataclass class GetReviewQueueItemResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - history: "List[Optional[ReviewQueueItemResponse]]" = dc_field( + history: "List[ReviewQueueItemResponse]" = dc_field( metadata=dc_config(field_name="history") ) item: "Optional[ReviewQueueItemResponse]" = dc_field( @@ -4709,12 +5781,10 @@ class GetThreadResponse(DataClassJsonMixin): @dataclass class GetUserModerationReportResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - user_blocks: "List[Optional[UserBlock]]" = dc_field( + user_blocks: "List[UserBlock]" = dc_field( metadata=dc_config(field_name="user_blocks") ) - user_mutes: "List[Optional[UserMute]]" = dc_field( - metadata=dc_config(field_name="user_mutes") - ) + user_mutes: "List[UserMute]" = dc_field(metadata=dc_config(field_name="user_mutes")) user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) @@ -4723,6 +5793,9 @@ class GoLiveRequest(DataClassJsonMixin): recording_storage_name: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="recording_storage_name") ) + start_closed_caption: Optional[bool] = dc_field( + default=None, metadata=dc_config(field_name="start_closed_caption") + ) start_hls: Optional[bool] = dc_field( default=None, metadata=dc_config(field_name="start_hls") ) @@ -4916,7 +5989,7 @@ class ImportTask(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - history: "List[Optional[ImportTaskHistory]]" = dc_field( + history: "List[ImportTaskHistory]" = dc_field( metadata=dc_config(field_name="history") ) size: Optional[int] = dc_field(default=None, metadata=dc_config(field_name="size")) @@ -5040,7 +6113,7 @@ class LimitsSettingsResponse(DataClassJsonMixin): @dataclass class ListBlockListResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - blocklists: "List[Optional[BlockListResponse]]" = dc_field( + blocklists: "List[BlockListResponse]" = dc_field( metadata=dc_config(field_name="blocklists") ) @@ -5064,17 +6137,13 @@ class ListChannelTypesResponse(DataClassJsonMixin): @dataclass class ListCommandsResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - commands: "List[Optional[Command]]" = dc_field( - metadata=dc_config(field_name="commands") - ) + commands: "List[Command]" = dc_field(metadata=dc_config(field_name="commands")) @dataclass class ListDevicesResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - devices: "List[Optional[DeviceResponse]]" = dc_field( - metadata=dc_config(field_name="devices") - ) + devices: "List[DeviceResponse]" = dc_field(metadata=dc_config(field_name="devices")) @dataclass @@ -5212,6 +6281,53 @@ class MediaPubSubHint(DataClassJsonMixin): video_subscribed: bool = dc_field(metadata=dc_config(field_name="video_subscribed")) +@dataclass +class MemberAddedEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field(default="member.added", metadata=dc_config(field_name="type")) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + member: "Optional[ChannelMember]" = dc_field( + default=None, metadata=dc_config(field_name="member") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + +@dataclass +class MemberRemovedEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="member.removed", metadata=dc_config(field_name="type") + ) + member: "Optional[ChannelMember]" = dc_field( + default=None, metadata=dc_config(field_name="member") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + @dataclass class MemberRequest(DataClassJsonMixin): user_id: str = dc_field(metadata=dc_config(field_name="user_id")) @@ -5254,12 +6370,35 @@ class MemberResponse(DataClassJsonMixin): role: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="role")) +@dataclass +class MemberUpdatedEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="member.updated", metadata=dc_config(field_name="type") + ) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + member: "Optional[ChannelMember]" = dc_field( + default=None, metadata=dc_config(field_name="member") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + @dataclass class MembersResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - members: "List[Optional[ChannelMember]]" = dc_field( - metadata=dc_config(field_name="members") - ) + members: "List[ChannelMember]" = dc_field(metadata=dc_config(field_name="members")) @dataclass @@ -5292,16 +6431,16 @@ class Message(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - attachments: "List[Optional[Attachment]]" = dc_field( + attachments: "List[Attachment]" = dc_field( metadata=dc_config(field_name="attachments") ) - latest_reactions: "List[Optional[Reaction]]" = dc_field( + latest_reactions: "List[Reaction]" = dc_field( metadata=dc_config(field_name="latest_reactions") ) mentioned_users: "List[User]" = dc_field( metadata=dc_config(field_name="mentioned_users") ) - own_reactions: "List[Optional[Reaction]]" = dc_field( + own_reactions: "List[Reaction]" = dc_field( metadata=dc_config(field_name="own_reactions") ) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) @@ -5423,6 +6562,35 @@ class MessageChangeSet(DataClassJsonMixin): text: bool = dc_field(metadata=dc_config(field_name="text")) +@dataclass +class MessageDeletedEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + hard_delete: bool = dc_field(metadata=dc_config(field_name="hard_delete")) + type: str = dc_field( + default="message.deleted", metadata=dc_config(field_name="type") + ) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + thread_participants: "Optional[List[User]]" = dc_field( + default=None, metadata=dc_config(field_name="thread_participants") + ) + message: "Optional[Message]" = dc_field( + default=None, metadata=dc_config(field_name="message") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + @dataclass class MessageFlagResponse(DataClassJsonMixin): created_at: datetime = dc_field( @@ -5497,6 +6665,34 @@ class MessageFlagResponse(DataClassJsonMixin): ) +@dataclass +class MessageFlaggedEvent(DataClassJsonMixin): + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="message.flagged", metadata=dc_config(field_name="type") + ) + thread_participants: "Optional[List[User]]" = dc_field( + default=None, metadata=dc_config(field_name="thread_participants") + ) + flag: "Optional[Flag]" = dc_field( + default=None, metadata=dc_config(field_name="flag") + ) + message: "Optional[Message]" = dc_field( + default=None, metadata=dc_config(field_name="message") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + @dataclass class MessageHistoryEntryResponse(DataClassJsonMixin): is_deleted: bool = dc_field(metadata=dc_config(field_name="is_deleted")) @@ -5513,7 +6709,7 @@ class MessageHistoryEntryResponse(DataClassJsonMixin): metadata=dc_config(field_name="message_updated_by_id") ) text: str = dc_field(metadata=dc_config(field_name="text")) - attachments: "List[Optional[Attachment]]" = dc_field( + attachments: "List[Attachment]" = dc_field( metadata=dc_config(field_name="attachments") ) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="Custom")) @@ -5558,6 +6754,35 @@ class MessageModerationResult(DataClassJsonMixin): ) +@dataclass +class MessageNewEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + watcher_count: int = dc_field(metadata=dc_config(field_name="watcher_count")) + type: str = dc_field( + default="notification.thread_message_new", metadata=dc_config(field_name="type") + ) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + thread_participants: "Optional[List[User]]" = dc_field( + default=None, metadata=dc_config(field_name="thread_participants") + ) + message: "Optional[Message]" = dc_field( + default=None, metadata=dc_config(field_name="message") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + @dataclass class MessagePaginationParams(DataClassJsonMixin): pass @@ -5576,7 +6801,7 @@ class MessageReadEvent(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - type: str = dc_field(metadata=dc_config(field_name="type")) + type: str = dc_field(default="message.read", metadata=dc_config(field_name="type")) last_read_message_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="last_read_message_id") ) @@ -5635,7 +6860,7 @@ class MessageRequest(DataClassJsonMixin): user_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="user_id") ) - attachments: "Optional[List[Optional[Attachment]]]" = dc_field( + attachments: "Optional[List[Attachment]]" = dc_field( default=None, metadata=dc_config(field_name="attachments") ) mentioned_users: Optional[List[str]] = dc_field( @@ -5679,7 +6904,7 @@ class MessageResponse(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - attachments: "List[Optional[Attachment]]" = dc_field( + attachments: "List[Attachment]" = dc_field( metadata=dc_config(field_name="attachments") ) latest_reactions: "List[ReactionResponse]" = dc_field( @@ -5777,13 +7002,94 @@ class MessageResponse(DataClassJsonMixin): ) +@dataclass +class MessageUnblockedEvent(DataClassJsonMixin): + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="message.unblocked", metadata=dc_config(field_name="type") + ) + thread_participants: "Optional[List[User]]" = dc_field( + default=None, metadata=dc_config(field_name="thread_participants") + ) + message: "Optional[Message]" = dc_field( + default=None, metadata=dc_config(field_name="message") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + +@dataclass +class MessageUndeletedEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="message.undeleted", metadata=dc_config(field_name="type") + ) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + thread_participants: "Optional[List[User]]" = dc_field( + default=None, metadata=dc_config(field_name="thread_participants") + ) + message: "Optional[Message]" = dc_field( + default=None, metadata=dc_config(field_name="message") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + @dataclass class MessageUpdate(DataClassJsonMixin): old_text: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="old_text") ) - change_set: "Optional[MessageChangeSet]" = dc_field( - default=None, metadata=dc_config(field_name="change_set") + change_set: "Optional[MessageChangeSet]" = dc_field( + default=None, metadata=dc_config(field_name="change_set") + ) + + +@dataclass +class MessageUpdatedEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="message.updated", metadata=dc_config(field_name="type") + ) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + thread_participants: "Optional[List[User]]" = dc_field( + default=None, metadata=dc_config(field_name="thread_participants") + ) + message: "Optional[Message]" = dc_field( + default=None, metadata=dc_config(field_name="message") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") ) @@ -5817,7 +7123,7 @@ class MessageWithChannelResponse(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - attachments: "List[Optional[Attachment]]" = dc_field( + attachments: "List[Attachment]" = dc_field( metadata=dc_config(field_name="attachments") ) latest_reactions: "List[ReactionResponse]" = dc_field( @@ -5926,6 +7232,109 @@ class ModerationActionConfig(DataClassJsonMixin): custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) +@dataclass +class ModerationCustomActionEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="moderation.custom_action", metadata=dc_config(field_name="type") + ) + item: "Optional[ReviewQueueItem]" = dc_field( + default=None, metadata=dc_config(field_name="item") + ) + message: "Optional[Message]" = dc_field( + default=None, metadata=dc_config(field_name="message") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + +@dataclass +class ModerationEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="review_queue_item.new", metadata=dc_config(field_name="type") + ) + received_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="received_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + flags: "Optional[List[Flag2Response]]" = dc_field( + default=None, metadata=dc_config(field_name="flags") + ) + action: "Optional[ActionLogResponse]" = dc_field( + default=None, metadata=dc_config(field_name="action") + ) + review_queue_item: "Optional[ReviewQueueItemResponse]" = dc_field( + default=None, metadata=dc_config(field_name="review_queue_item") + ) + + +@dataclass +class ModerationFlaggedEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="moderation.flagged", metadata=dc_config(field_name="type") + ) + item: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="item")) + object_id: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="object_id") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + +@dataclass +class ModerationMarkReviewedEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="moderation.mark_reviewed", metadata=dc_config(field_name="type") + ) + item: "Optional[ReviewQueueItem]" = dc_field( + default=None, metadata=dc_config(field_name="item") + ) + message: "Optional[Message]" = dc_field( + default=None, metadata=dc_config(field_name="message") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + @dataclass class ModerationPayload(DataClassJsonMixin): images: Optional[List[str]] = dc_field( @@ -6008,7 +7417,7 @@ class ModeratorStats(DataClassJsonMixin): @dataclass class ModeratorStatsResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - moderator_stats: "List[Optional[ModeratorStats]]" = dc_field( + moderator_stats: "List[ModeratorStats]" = dc_field( metadata=dc_config(field_name="moderator_stats") ) @@ -6032,7 +7441,7 @@ class MuteChannelRequest(DataClassJsonMixin): @dataclass class MuteChannelResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - channel_mutes: "Optional[List[Optional[ChannelMute]]]" = dc_field( + channel_mutes: "Optional[List[ChannelMute]]" = dc_field( default=None, metadata=dc_config(field_name="channel_mutes") ) channel_mute: "Optional[ChannelMute]" = dc_field( @@ -6060,7 +7469,7 @@ class MuteRequest(DataClassJsonMixin): @dataclass class MuteResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - mutes: "Optional[List[Optional[UserMute]]]" = dc_field( + mutes: "Optional[List[UserMute]]" = dc_field( default=None, metadata=dc_config(field_name="mutes") ) non_existing_users: Optional[List[str]] = dc_field( @@ -6125,6 +7534,58 @@ class NoiseCancellationSettings(DataClassJsonMixin): mode: str = dc_field(metadata=dc_config(field_name="mode")) +@dataclass +class NotificationMarkUnreadEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_member_count: int = dc_field( + metadata=dc_config(field_name="channel_member_count") + ) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + first_unread_message_id: str = dc_field( + metadata=dc_config(field_name="first_unread_message_id") + ) + last_read_at: datetime = dc_field( + metadata=dc_config( + field_name="last_read_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + total_unread_count: int = dc_field( + metadata=dc_config(field_name="total_unread_count") + ) + unread_channels: int = dc_field(metadata=dc_config(field_name="unread_channels")) + unread_count: int = dc_field(metadata=dc_config(field_name="unread_count")) + unread_messages: int = dc_field(metadata=dc_config(field_name="unread_messages")) + unread_threads: int = dc_field(metadata=dc_config(field_name="unread_threads")) + type: str = dc_field( + default="notification.mark_unread", metadata=dc_config(field_name="type") + ) + last_read_message_id: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="last_read_message_id") + ) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + thread_id: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="thread_id") + ) + channel: "Optional[ChannelResponse]" = dc_field( + default=None, metadata=dc_config(field_name="channel") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + @dataclass class NotificationSettings(DataClassJsonMixin): enabled: bool = dc_field(metadata=dc_config(field_name="enabled")) @@ -6239,13 +7700,11 @@ class OwnUser(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - channel_mutes: "List[Optional[ChannelMute]]" = dc_field( + channel_mutes: "List[ChannelMute]" = dc_field( metadata=dc_config(field_name="channel_mutes") ) - devices: "List[Optional[Device]]" = dc_field( - metadata=dc_config(field_name="devices") - ) - mutes: "List[Optional[UserMute]]" = dc_field(metadata=dc_config(field_name="mutes")) + devices: "List[Device]" = dc_field(metadata=dc_config(field_name="devices")) + mutes: "List[UserMute]" = dc_field(metadata=dc_config(field_name="mutes")) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) deactivated_at: Optional[datetime] = dc_field( default=None, @@ -6333,15 +7792,11 @@ class OwnUserResponse(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - channel_mutes: "List[Optional[ChannelMute]]" = dc_field( + channel_mutes: "List[ChannelMute]" = dc_field( metadata=dc_config(field_name="channel_mutes") ) - devices: "List[Optional[DeviceResponse]]" = dc_field( - metadata=dc_config(field_name="devices") - ) - mutes: "List[Optional[UserMuteResponse]]" = dc_field( - metadata=dc_config(field_name="mutes") - ) + devices: "List[DeviceResponse]" = dc_field(metadata=dc_config(field_name="devices")) + mutes: "List[UserMuteResponse]" = dc_field(metadata=dc_config(field_name="mutes")) teams: List[str] = dc_field(metadata=dc_config(field_name="teams")) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) deactivated_at: Optional[datetime] = dc_field( @@ -6446,6 +7901,24 @@ class Permission(DataClassJsonMixin): ) +@dataclass +class PermissionRequestEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + permissions: List[str] = dc_field(metadata=dc_config(field_name="permissions")) + user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) + type: str = dc_field( + default="call.permission_request", metadata=dc_config(field_name="type") + ) + + @dataclass class PinRequest(DataClassJsonMixin): session_id: str = dc_field(metadata=dc_config(field_name="session_id")) @@ -6524,17 +7997,13 @@ class Poll(DataClassJsonMixin): ) ) vote_count: int = dc_field(metadata=dc_config(field_name="vote_count")) - latest_answers: "List[Optional[PollVote]]" = dc_field( + latest_answers: "List[PollVote]" = dc_field( metadata=dc_config(field_name="latest_answers") ) - options: "List[Optional[PollOption]]" = dc_field( - metadata=dc_config(field_name="options") - ) - own_votes: "List[Optional[PollVote]]" = dc_field( - metadata=dc_config(field_name="own_votes") - ) + options: "List[PollOption]" = dc_field(metadata=dc_config(field_name="options")) + own_votes: "List[PollVote]" = dc_field(metadata=dc_config(field_name="own_votes")) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="Custom")) - latest_votes_by_option: "Dict[str, List[Optional[PollVote]]]" = dc_field( + latest_votes_by_option: "Dict[str, List[PollVote]]" = dc_field( metadata=dc_config(field_name="latest_votes_by_option") ) vote_counts_by_option: "Dict[str, int]" = dc_field( @@ -6633,18 +8102,18 @@ class PollResponseData(DataClassJsonMixin): voting_visibility: str = dc_field( metadata=dc_config(field_name="voting_visibility") ) - latest_answers: "List[Optional[PollVoteResponseData]]" = dc_field( + latest_answers: "List[PollVoteResponseData]" = dc_field( metadata=dc_config(field_name="latest_answers") ) - options: "List[Optional[PollOptionResponseData]]" = dc_field( + options: "List[PollOptionResponseData]" = dc_field( metadata=dc_config(field_name="options") ) - own_votes: "List[Optional[PollVoteResponseData]]" = dc_field( + own_votes: "List[PollVoteResponseData]" = dc_field( metadata=dc_config(field_name="own_votes") ) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="Custom")) - latest_votes_by_option: "Dict[str, List[Optional[PollVoteResponseData]]]" = ( - dc_field(metadata=dc_config(field_name="latest_votes_by_option")) + latest_votes_by_option: "Dict[str, List[PollVoteResponseData]]" = dc_field( + metadata=dc_config(field_name="latest_votes_by_option") ) vote_counts_by_option: "Dict[str, int]" = dc_field( metadata=dc_config(field_name="vote_counts_by_option") @@ -6741,7 +8210,7 @@ class PollVoteResponseData(DataClassJsonMixin): @dataclass class PollVotesResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - votes: "List[Optional[PollVoteResponseData]]" = dc_field( + votes: "List[PollVoteResponseData]" = dc_field( metadata=dc_config(field_name="votes") ) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) @@ -6809,7 +8278,7 @@ class PushNotificationFields(DataClassJsonMixin): ) huawei: "HuaweiConfigFields" = dc_field(metadata=dc_config(field_name="huawei")) xiaomi: "XiaomiConfigFields" = dc_field(metadata=dc_config(field_name="xiaomi")) - providers: "Optional[List[Optional[PushProvider]]]" = dc_field( + providers: "Optional[List[PushProvider]]" = dc_field( default=None, metadata=dc_config(field_name="providers") ) @@ -7118,7 +8587,7 @@ class QueryBannedUsersPayload(DataClassJsonMixin): user_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="user_id") ) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) user: "Optional[UserRequest]" = dc_field( @@ -7129,9 +8598,7 @@ class QueryBannedUsersPayload(DataClassJsonMixin): @dataclass class QueryBannedUsersResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - bans: "List[Optional[BanResponse]]" = dc_field( - metadata=dc_config(field_name="bans") - ) + bans: "List[BanResponse]" = dc_field(metadata=dc_config(field_name="bans")) @dataclass @@ -7143,7 +8610,7 @@ class QueryCallMembersRequest(DataClassJsonMixin): ) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) prev: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="prev")) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) filter_conditions: Optional[Dict[str, object]] = dc_field( @@ -7166,7 +8633,7 @@ class QueryCallStatsRequest(DataClassJsonMixin): ) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) prev: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="prev")) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) filter_conditions: Optional[Dict[str, object]] = dc_field( @@ -7191,7 +8658,7 @@ class QueryCallsRequest(DataClassJsonMixin): ) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) prev: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="prev")) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) filter_conditions: Optional[Dict[str, object]] = dc_field( @@ -7216,7 +8683,7 @@ class QueryCampaignsRequest(DataClassJsonMixin): ) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) prev: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="prev")) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) filter: Optional[Dict[str, object]] = dc_field( @@ -7254,7 +8721,7 @@ class QueryChannelsRequest(DataClassJsonMixin): user_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="user_id") ) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) filter_conditions: Optional[Dict[str, object]] = dc_field( @@ -7321,10 +8788,10 @@ class QueryMembersPayload(DataClassJsonMixin): user_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="user_id") ) - members: "Optional[List[Optional[ChannelMember]]]" = dc_field( + members: "Optional[List[ChannelMember]]" = dc_field( default=None, metadata=dc_config(field_name="members") ) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) user: "Optional[UserRequest]" = dc_field( @@ -7346,7 +8813,7 @@ class QueryMessageFlagsPayload(DataClassJsonMixin): user_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="user_id") ) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) filter_conditions: Optional[Dict[str, object]] = dc_field( @@ -7360,7 +8827,7 @@ class QueryMessageFlagsPayload(DataClassJsonMixin): @dataclass class QueryMessageFlagsResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - flags: "List[Optional[MessageFlagResponse]]" = dc_field( + flags: "List[MessageFlagResponse]" = dc_field( metadata=dc_config(field_name="flags") ) @@ -7373,7 +8840,7 @@ class QueryMessageHistoryRequest(DataClassJsonMixin): ) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) prev: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="prev")) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) @@ -7381,7 +8848,7 @@ class QueryMessageHistoryRequest(DataClassJsonMixin): @dataclass class QueryMessageHistoryResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - message_history: "List[Optional[MessageHistoryEntryResponse]]" = dc_field( + message_history: "List[MessageHistoryEntryResponse]" = dc_field( metadata=dc_config(field_name="message_history") ) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) @@ -7398,7 +8865,7 @@ class QueryModerationConfigsRequest(DataClassJsonMixin): user_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="user_id") ) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) filter: Optional[Dict[str, object]] = dc_field( @@ -7427,7 +8894,7 @@ class QueryModerationLogsRequest(DataClassJsonMixin): user_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="user_id") ) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) filter: Optional[Dict[str, object]] = dc_field( @@ -7441,9 +8908,7 @@ class QueryModerationLogsRequest(DataClassJsonMixin): @dataclass class QueryModerationLogsResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - logs: "List[Optional[ActionLogResponse]]" = dc_field( - metadata=dc_config(field_name="logs") - ) + logs: "List[ActionLogResponse]" = dc_field(metadata=dc_config(field_name="logs")) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) prev: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="prev")) @@ -7455,7 +8920,7 @@ class QueryPollVotesRequest(DataClassJsonMixin): ) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) prev: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="prev")) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) filter: Optional[Dict[str, object]] = dc_field( @@ -7470,7 +8935,7 @@ class QueryPollsRequest(DataClassJsonMixin): ) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) prev: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="prev")) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) filter: Optional[Dict[str, object]] = dc_field( @@ -7496,7 +8961,7 @@ class QueryReactionsRequest(DataClassJsonMixin): user_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="user_id") ) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) filter: Optional[Dict[str, object]] = dc_field( @@ -7539,7 +9004,7 @@ class QueryReviewQueueRequest(DataClassJsonMixin): user_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="user_id") ) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) filter: Optional[Dict[str, object]] = dc_field( @@ -7553,10 +9018,10 @@ class QueryReviewQueueRequest(DataClassJsonMixin): @dataclass class QueryReviewQueueResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - items: "List[Optional[ReviewQueueItemResponse]]" = dc_field( + items: "List[ReviewQueueItemResponse]" = dc_field( metadata=dc_config(field_name="items") ) - action_config: "Dict[str, List[Optional[ModerationActionConfig]]]" = dc_field( + action_config: "Dict[str, List[ModerationActionConfig]]" = dc_field( metadata=dc_config(field_name="action_config") ) stats: "Dict[str, int]" = dc_field(metadata=dc_config(field_name="stats")) @@ -7571,7 +9036,7 @@ class QuerySegmentTargetsRequest(DataClassJsonMixin): ) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) prev: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="prev")) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="Sort") ) filter: Optional[Dict[str, object]] = dc_field( @@ -7582,7 +9047,7 @@ class QuerySegmentTargetsRequest(DataClassJsonMixin): @dataclass class QuerySegmentTargetsResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - targets: "List[Optional[SegmentTargetResponse]]" = dc_field( + targets: "List[SegmentTargetResponse]" = dc_field( metadata=dc_config(field_name="targets") ) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) @@ -7597,7 +9062,7 @@ class QuerySegmentsRequest(DataClassJsonMixin): ) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) prev: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="prev")) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) @@ -7639,7 +9104,7 @@ class QueryThreadsRequest(DataClassJsonMixin): @dataclass class QueryThreadsResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - threads: "List[Optional[ThreadStateResponse]]" = dc_field( + threads: "List[ThreadStateResponse]" = dc_field( metadata=dc_config(field_name="threads") ) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) @@ -7656,7 +9121,7 @@ class QueryUsageStatsRequest(DataClassJsonMixin): user_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="user_id") ) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) filter: Optional[Dict[str, object]] = dc_field( @@ -7670,7 +9135,7 @@ class QueryUsageStatsRequest(DataClassJsonMixin): @dataclass class QueryUsageStatsResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - items: "List[Optional[ModerationUsageStats]]" = dc_field( + items: "List[ModerationUsageStats]" = dc_field( metadata=dc_config(field_name="items") ) next: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="next")) @@ -7697,7 +9162,7 @@ class QueryUsersPayload(DataClassJsonMixin): user_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="user_id") ) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) user: "Optional[UserRequest]" = dc_field( @@ -7813,6 +9278,37 @@ class Reaction(DataClassJsonMixin): ) +@dataclass +class ReactionDeletedEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="reaction.deleted", metadata=dc_config(field_name="type") + ) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + thread_participants: "Optional[List[User]]" = dc_field( + default=None, metadata=dc_config(field_name="thread_participants") + ) + message: "Optional[Message]" = dc_field( + default=None, metadata=dc_config(field_name="message") + ) + reaction: "Optional[Reaction]" = dc_field( + default=None, metadata=dc_config(field_name="reaction") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + @dataclass class ReactionGroupResponse(DataClassJsonMixin): count: int = dc_field(metadata=dc_config(field_name="count")) @@ -7835,6 +9331,35 @@ class ReactionGroupResponse(DataClassJsonMixin): sum_scores: int = dc_field(metadata=dc_config(field_name="sum_scores")) +@dataclass +class ReactionNewEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field(default="reaction.new", metadata=dc_config(field_name="type")) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + thread_participants: "Optional[List[User]]" = dc_field( + default=None, metadata=dc_config(field_name="thread_participants") + ) + message: "Optional[Message]" = dc_field( + default=None, metadata=dc_config(field_name="message") + ) + reaction: "Optional[Reaction]" = dc_field( + default=None, metadata=dc_config(field_name="reaction") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + @dataclass class ReactionRemovalResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) @@ -7907,6 +9432,30 @@ class ReactionResponse(DataClassJsonMixin): user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) +@dataclass +class ReactionUpdatedEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + message: "Message" = dc_field(metadata=dc_config(field_name="message")) + reaction: "Reaction" = dc_field(metadata=dc_config(field_name="reaction")) + type: str = dc_field( + default="reaction.updated", metadata=dc_config(field_name="type") + ) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + @dataclass class ReactivateUserRequest(DataClassJsonMixin): created_by_id: Optional[str] = dc_field( @@ -8042,6 +9591,7 @@ class RestoreUsersRequest(DataClassJsonMixin): @dataclass class ReviewQueueItem(DataClassJsonMixin): + bounce_count: int = dc_field(metadata=dc_config(field_name="bounce_count")) content_changed: bool = dc_field(metadata=dc_config(field_name="content_changed")) created_at: datetime = dc_field( metadata=dc_config( @@ -8074,11 +9624,9 @@ class ReviewQueueItem(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - actions: "List[Optional[ActionLog]]" = dc_field( - metadata=dc_config(field_name="actions") - ) - bans: "List[Optional[Ban]]" = dc_field(metadata=dc_config(field_name="bans")) - flags: "List[Optional[Flag2]]" = dc_field(metadata=dc_config(field_name="flags")) + actions: "List[ActionLog]" = dc_field(metadata=dc_config(field_name="actions")) + bans: "List[Ban]" = dc_field(metadata=dc_config(field_name="bans")) + flags: "List[Flag2]" = dc_field(metadata=dc_config(field_name="flags")) languages: List[str] = dc_field(metadata=dc_config(field_name="languages")) teams: List[str] = dc_field(metadata=dc_config(field_name="teams")) completed_at: "NullTime" = dc_field(metadata=dc_config(field_name="completed_at")) @@ -8130,13 +9678,11 @@ class ReviewQueueItemResponse(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - actions: "List[Optional[ActionLogResponse]]" = dc_field( + actions: "List[ActionLogResponse]" = dc_field( metadata=dc_config(field_name="actions") ) - bans: "List[Optional[Ban]]" = dc_field(metadata=dc_config(field_name="bans")) - flags: "List[Optional[Flag2Response]]" = dc_field( - metadata=dc_config(field_name="flags") - ) + bans: "List[Ban]" = dc_field(metadata=dc_config(field_name="bans")) + flags: "List[Flag2Response]" = dc_field(metadata=dc_config(field_name="flags")) languages: List[str] = dc_field(metadata=dc_config(field_name="languages")) completed_at: Optional[datetime] = dc_field( default=None, @@ -8324,7 +9870,7 @@ class SearchPayload(DataClassJsonMixin): query: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="query") ) - sort: "Optional[List[Optional[SortParamRequest]]]" = dc_field( + sort: "Optional[List[SortParamRequest]]" = dc_field( default=None, metadata=dc_config(field_name="sort") ) message_filter_conditions: Optional[Dict[str, object]] = dc_field( @@ -8382,7 +9928,7 @@ class SearchResultMessage(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - attachments: "List[Optional[Attachment]]" = dc_field( + attachments: "List[Attachment]" = dc_field( metadata=dc_config(field_name="attachments") ) latest_reactions: "List[ReactionResponse]" = dc_field( @@ -8731,7 +10277,15 @@ class StartCampaignResponse(DataClassJsonMixin): @dataclass class StartClosedCaptionsRequest(DataClassJsonMixin): - pass + enable_transcription: Optional[bool] = dc_field( + default=None, metadata=dc_config(field_name="enable_transcription") + ) + external_storage: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="external_storage") + ) + language: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="language") + ) @dataclass @@ -8776,6 +10330,12 @@ class StartRecordingResponse(DataClassJsonMixin): @dataclass class StartTranscriptionRequest(DataClassJsonMixin): + enable_closed_captions: Optional[bool] = dc_field( + default=None, metadata=dc_config(field_name="enable_closed_captions") + ) + language: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="language") + ) transcription_external_storage: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="transcription_external_storage") ) @@ -8803,7 +10363,9 @@ class StopCampaignRequest(DataClassJsonMixin): @dataclass class StopClosedCaptionsRequest(DataClassJsonMixin): - pass + stop_transcription: Optional[bool] = dc_field( + default=None, metadata=dc_config(field_name="stop_transcription") + ) @dataclass @@ -8823,7 +10385,21 @@ class StopHLSBroadcastingResponse(DataClassJsonMixin): @dataclass class StopLiveRequest(DataClassJsonMixin): - pass + continue_closed_caption: Optional[bool] = dc_field( + default=None, metadata=dc_config(field_name="continue_closed_caption") + ) + continue_hls: Optional[bool] = dc_field( + default=None, metadata=dc_config(field_name="continue_hls") + ) + continue_recording: Optional[bool] = dc_field( + default=None, metadata=dc_config(field_name="continue_recording") + ) + continue_rtmp_broadcasts: Optional[bool] = dc_field( + default=None, metadata=dc_config(field_name="continue_rtmp_broadcasts") + ) + continue_transcription: Optional[bool] = dc_field( + default=None, metadata=dc_config(field_name="continue_transcription") + ) @dataclass @@ -8854,7 +10430,9 @@ class StopRecordingResponse(DataClassJsonMixin): @dataclass class StopTranscriptionRequest(DataClassJsonMixin): - pass + stop_closed_captions: Optional[bool] = dc_field( + default=None, metadata=dc_config(field_name="stop_closed_captions") + ) @dataclass @@ -9037,7 +10615,7 @@ class ThreadResponse(DataClassJsonMixin): reply_count: Optional[int] = dc_field( default=None, metadata=dc_config(field_name="reply_count") ) - thread_participants: "Optional[List[Optional[ThreadParticipant]]]" = dc_field( + thread_participants: "Optional[List[ThreadParticipant]]" = dc_field( default=None, metadata=dc_config(field_name="thread_participants") ) channel: "Optional[ChannelResponse]" = dc_field( @@ -9111,7 +10689,7 @@ class ThreadStateResponse(DataClassJsonMixin): read: "Optional[List[ReadStateResponse]]" = dc_field( default=None, metadata=dc_config(field_name="read") ) - thread_participants: "Optional[List[Optional[ThreadParticipant]]]" = dc_field( + thread_participants: "Optional[List[ThreadParticipant]]" = dc_field( default=None, metadata=dc_config(field_name="thread_participants") ) channel: "Optional[ChannelResponse]" = dc_field( @@ -9125,6 +10703,30 @@ class ThreadStateResponse(DataClassJsonMixin): ) +@dataclass +class ThreadUpdatedEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="thread.updated", metadata=dc_config(field_name="type") + ) + thread: "Optional[ThreadResponse]" = dc_field( + default=None, metadata=dc_config(field_name="thread") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + @dataclass class Thresholds(DataClassJsonMixin): explicit: "Optional[LabelThresholds]" = dc_field( @@ -9176,8 +10778,8 @@ class TranscriptionSettings(DataClassJsonMixin): closed_caption_mode: str = dc_field( metadata=dc_config(field_name="closed_caption_mode") ) + language: str = dc_field(metadata=dc_config(field_name="language")) mode: str = dc_field(metadata=dc_config(field_name="mode")) - languages: List[str] = dc_field(metadata=dc_config(field_name="languages")) @dataclass @@ -9186,8 +10788,8 @@ class TranscriptionSettingsRequest(DataClassJsonMixin): closed_caption_mode: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="closed_caption_mode") ) - languages: Optional[List[str]] = dc_field( - default=None, metadata=dc_config(field_name="languages") + language: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="language") ) @@ -9196,8 +10798,8 @@ class TranscriptionSettingsResponse(DataClassJsonMixin): closed_caption_mode: str = dc_field( metadata=dc_config(field_name="closed_caption_mode") ) + language: str = dc_field(metadata=dc_config(field_name="language")) mode: str = dc_field(metadata=dc_config(field_name="mode")) - languages: List[str] = dc_field(metadata=dc_config(field_name="languages")) @dataclass @@ -9307,6 +10909,23 @@ class UnblockUsersResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) +@dataclass +class UnblockedUserEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) + type: str = dc_field( + default="call.unblocked_user", metadata=dc_config(field_name="type") + ) + + @dataclass class UnmuteChannelRequest(DataClassJsonMixin): expiration: Optional[int] = dc_field( @@ -9511,9 +11130,6 @@ class UpdateAppRequest(DataClassJsonMixin): sqs_url: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="sqs_url") ) - video_provider: Optional[str] = dc_field( - default=None, metadata=dc_config(field_name="video_provider") - ) webhook_url: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="webhook_url") ) @@ -9532,9 +11148,6 @@ class UpdateAppRequest(DataClassJsonMixin): webhook_events: Optional[List[str]] = dc_field( default=None, metadata=dc_config(field_name="webhook_events") ) - agora_options: "Optional[Config]" = dc_field( - default=None, metadata=dc_config(field_name="agora_options") - ) apn_config: "Optional[APNConfig]" = dc_field( default=None, metadata=dc_config(field_name="apn_config") ) @@ -9553,9 +11166,6 @@ class UpdateAppRequest(DataClassJsonMixin): grants: "Optional[Dict[str, List[str]]]" = dc_field( default=None, metadata=dc_config(field_name="grants") ) - hms_options: "Optional[Config]" = dc_field( - default=None, metadata=dc_config(field_name="hms_options") - ) huawei_config: "Optional[HuaweiConfig]" = dc_field( default=None, metadata=dc_config(field_name="huawei_config") ) @@ -9717,19 +11327,19 @@ class UpdateChannelRequest(DataClassJsonMixin): user_id: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="user_id") ) - add_members: "Optional[List[Optional[ChannelMember]]]" = dc_field( + add_members: "Optional[List[ChannelMember]]" = dc_field( default=None, metadata=dc_config(field_name="add_members") ) add_moderators: Optional[List[str]] = dc_field( default=None, metadata=dc_config(field_name="add_moderators") ) - assign_roles: "Optional[List[Optional[ChannelMember]]]" = dc_field( + assign_roles: "Optional[List[ChannelMember]]" = dc_field( default=None, metadata=dc_config(field_name="assign_roles") ) demote_moderators: Optional[List[str]] = dc_field( default=None, metadata=dc_config(field_name="demote_moderators") ) - invites: "Optional[List[Optional[ChannelMember]]]" = dc_field( + invites: "Optional[List[ChannelMember]]" = dc_field( default=None, metadata=dc_config(field_name="invites") ) remove_members: Optional[List[str]] = dc_field( @@ -9749,9 +11359,7 @@ class UpdateChannelRequest(DataClassJsonMixin): @dataclass class UpdateChannelResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) - members: "List[Optional[ChannelMember]]" = dc_field( - metadata=dc_config(field_name="members") - ) + members: "List[ChannelMember]" = dc_field(metadata=dc_config(field_name="members")) channel: "Optional[ChannelResponse]" = dc_field( default=None, metadata=dc_config(field_name="channel") ) @@ -10087,7 +11695,7 @@ class UpdatePollRequest(DataClassJsonMixin): voting_visibility: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="voting_visibility") ) - options: "Optional[List[Optional[PollOptionRequest]]]" = dc_field( + options: "Optional[List[PollOptionRequest]]" = dc_field( default=None, metadata=dc_config(field_name="options") ) custom: Optional[Dict[str, object]] = dc_field( @@ -10170,18 +11778,45 @@ class UpdateUsersResponse(DataClassJsonMixin): ) +@dataclass +class UpdatedCallPermissionsEvent(DataClassJsonMixin): + call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + own_capabilities: "List[OwnCapability]" = dc_field( + metadata=dc_config(field_name="own_capabilities") + ) + user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) + type: str = dc_field( + default="call.permissions_updated", metadata=dc_config(field_name="type") + ) + + @dataclass class UpsertConfigRequest(DataClassJsonMixin): key: str = dc_field(metadata=dc_config(field_name="key")) _async: Optional[bool] = dc_field( default=None, metadata=dc_config(field_name="async") ) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + user_id: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="user_id") + ) ai_image_config: "Optional[AIImageConfig]" = dc_field( default=None, metadata=dc_config(field_name="ai_image_config") ) ai_text_config: "Optional[AITextConfig]" = dc_field( default=None, metadata=dc_config(field_name="ai_text_config") ) + ai_video_config: "Optional[AIVideoConfig]" = dc_field( + default=None, metadata=dc_config(field_name="ai_video_config") + ) automod_platform_circumvention_config: "Optional[AutomodPlatformCircumventionConfig]" = dc_field( default=None, metadata=dc_config(field_name="automod_platform_circumvention_config"), @@ -10207,6 +11842,9 @@ class UpsertConfigRequest(DataClassJsonMixin): google_vision_config: "Optional[GoogleVisionConfig]" = dc_field( default=None, metadata=dc_config(field_name="google_vision_config") ) + user: "Optional[UserRequest]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) velocity_filter_config: "Optional[VelocityFilterConfig]" = dc_field( default=None, metadata=dc_config(field_name="velocity_filter_config") ) @@ -10221,15 +11859,209 @@ class UpsertConfigResponse(DataClassJsonMixin): @dataclass -class UpsertModerationTemplateRequest(DataClassJsonMixin): - name: str = dc_field(metadata=dc_config(field_name="name")) - config: "FeedsModerationTemplateConfig" = dc_field( - metadata=dc_config(field_name="config") +class UpsertModerationTemplateRequest(DataClassJsonMixin): + name: str = dc_field(metadata=dc_config(field_name="name")) + config: "FeedsModerationTemplateConfig" = dc_field( + metadata=dc_config(field_name="config") + ) + + +@dataclass +class UpsertModerationTemplateResponse(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + duration: str = dc_field(metadata=dc_config(field_name="duration")) + name: str = dc_field(metadata=dc_config(field_name="name")) + updated_at: datetime = dc_field( + metadata=dc_config( + field_name="updated_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + config: "Optional[FeedsModerationTemplateConfig]" = dc_field( + default=None, metadata=dc_config(field_name="config") + ) + + +@dataclass +class UpsertPushProviderRequest(DataClassJsonMixin): + push_provider: "Optional[PushProvider]" = dc_field( + default=None, metadata=dc_config(field_name="push_provider") + ) + + +@dataclass +class UpsertPushProviderResponse(DataClassJsonMixin): + duration: str = dc_field(metadata=dc_config(field_name="duration")) + push_provider: "PushProviderResponse" = dc_field( + metadata=dc_config(field_name="push_provider") + ) + + +@dataclass +class User(DataClassJsonMixin): + banned: bool = dc_field(metadata=dc_config(field_name="banned")) + id: str = dc_field(metadata=dc_config(field_name="id")) + online: bool = dc_field(metadata=dc_config(field_name="online")) + role: str = dc_field(metadata=dc_config(field_name="role")) + custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) + ban_expires: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="ban_expires", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + created_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + deactivated_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="deactivated_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + deleted_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="deleted_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + invisible: Optional[bool] = dc_field( + default=None, metadata=dc_config(field_name="invisible") + ) + language: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="language") + ) + last_active: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="last_active", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + last_engaged_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="last_engaged_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + revoke_tokens_issued_before: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="revoke_tokens_issued_before", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + updated_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="updated_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + teams: Optional[List[str]] = dc_field( + default=None, metadata=dc_config(field_name="teams") + ) + privacy_settings: "Optional[PrivacySettings]" = dc_field( + default=None, metadata=dc_config(field_name="privacy_settings") + ) + push_notifications: "Optional[PushNotificationSettings]" = dc_field( + default=None, metadata=dc_config(field_name="push_notifications") + ) + + +@dataclass +class UserBannedEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + shadow: bool = dc_field(metadata=dc_config(field_name="shadow")) + created_by: "User" = dc_field(metadata=dc_config(field_name="created_by")) + type: str = dc_field(default="user.banned", metadata=dc_config(field_name="type")) + expiration: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="expiration", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + reason: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="reason") + ) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + +@dataclass +class UserBlock(DataClassJsonMixin): + blocked_by_user_id: str = dc_field( + metadata=dc_config(field_name="blocked_by_user_id") + ) + blocked_user_id: str = dc_field(metadata=dc_config(field_name="blocked_user_id")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + + +@dataclass +class UserCustomEventRequest(DataClassJsonMixin): + type: str = dc_field(metadata=dc_config(field_name="type")) + custom: Optional[Dict[str, object]] = dc_field( + default=None, metadata=dc_config(field_name="custom") ) @dataclass -class UpsertModerationTemplateResponse(DataClassJsonMixin): +class UserDeactivatedEvent(DataClassJsonMixin): created_at: datetime = dc_field( metadata=dc_config( field_name="created_at", @@ -10238,61 +12070,66 @@ class UpsertModerationTemplateResponse(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - duration: str = dc_field(metadata=dc_config(field_name="duration")) - name: str = dc_field(metadata=dc_config(field_name="name")) - updated_at: datetime = dc_field( + created_by: "User" = dc_field(metadata=dc_config(field_name="created_by")) + type: str = dc_field( + default="user.deactivated", metadata=dc_config(field_name="type") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + +@dataclass +class UserDeletedEvent(DataClassJsonMixin): + created_at: datetime = dc_field( metadata=dc_config( - field_name="updated_at", + field_name="created_at", encoder=encode_datetime, decoder=datetime_from_unix_ns, mm_field=fields.DateTime(format="iso"), ) ) - config: "Optional[FeedsModerationTemplateConfig]" = dc_field( - default=None, metadata=dc_config(field_name="config") + delete_conversation_channels: bool = dc_field( + metadata=dc_config(field_name="delete_conversation_channels") ) - - -@dataclass -class UpsertPushProviderRequest(DataClassJsonMixin): - push_provider: "Optional[PushProvider]" = dc_field( - default=None, metadata=dc_config(field_name="push_provider") + hard_delete: bool = dc_field(metadata=dc_config(field_name="hard_delete")) + mark_messages_deleted: bool = dc_field( + metadata=dc_config(field_name="mark_messages_deleted") ) - - -@dataclass -class UpsertPushProviderResponse(DataClassJsonMixin): - duration: str = dc_field(metadata=dc_config(field_name="duration")) - push_provider: "PushProviderResponse" = dc_field( - metadata=dc_config(field_name="push_provider") + type: str = dc_field(default="user.deleted", metadata=dc_config(field_name="type")) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") ) @dataclass -class User(DataClassJsonMixin): +class UserEventPayload(DataClassJsonMixin): banned: bool = dc_field(metadata=dc_config(field_name="banned")) - id: str = dc_field(metadata=dc_config(field_name="id")) - online: bool = dc_field(metadata=dc_config(field_name="online")) - role: str = dc_field(metadata=dc_config(field_name="role")) - custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) - ban_expires: Optional[datetime] = dc_field( - default=None, + created_at: datetime = dc_field( metadata=dc_config( - field_name="ban_expires", + field_name="created_at", encoder=encode_datetime, decoder=datetime_from_unix_ns, mm_field=fields.DateTime(format="iso"), - ), + ) ) - created_at: Optional[datetime] = dc_field( - default=None, + id: str = dc_field(metadata=dc_config(field_name="id")) + language: str = dc_field(metadata=dc_config(field_name="language")) + online: bool = dc_field(metadata=dc_config(field_name="online")) + role: str = dc_field(metadata=dc_config(field_name="role")) + updated_at: datetime = dc_field( metadata=dc_config( - field_name="created_at", + field_name="updated_at", encoder=encode_datetime, decoder=datetime_from_unix_ns, mm_field=fields.DateTime(format="iso"), - ), + ) + ) + blocked_user_ids: List[str] = dc_field( + metadata=dc_config(field_name="blocked_user_ids") ) + teams: List[str] = dc_field(metadata=dc_config(field_name="teams")) + custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) deactivated_at: Optional[datetime] = dc_field( default=None, metadata=dc_config( @@ -10311,12 +12148,12 @@ class User(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ), ) + image: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="image") + ) invisible: Optional[bool] = dc_field( default=None, metadata=dc_config(field_name="invisible") ) - language: Optional[str] = dc_field( - default=None, metadata=dc_config(field_name="language") - ) last_active: Optional[datetime] = dc_field( default=None, metadata=dc_config( @@ -10326,15 +12163,7 @@ class User(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ), ) - last_engaged_at: Optional[datetime] = dc_field( - default=None, - metadata=dc_config( - field_name="last_engaged_at", - encoder=encode_datetime, - decoder=datetime_from_unix_ns, - mm_field=fields.DateTime(format="iso"), - ), - ) + name: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="name")) revoke_tokens_issued_before: Optional[datetime] = dc_field( default=None, metadata=dc_config( @@ -10344,32 +12173,28 @@ class User(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ), ) - updated_at: Optional[datetime] = dc_field( - default=None, - metadata=dc_config( - field_name="updated_at", - encoder=encode_datetime, - decoder=datetime_from_unix_ns, - mm_field=fields.DateTime(format="iso"), - ), - ) - teams: Optional[List[str]] = dc_field( - default=None, metadata=dc_config(field_name="teams") - ) - privacy_settings: "Optional[PrivacySettings]" = dc_field( + privacy_settings: "Optional[PrivacySettingsResponse]" = dc_field( default=None, metadata=dc_config(field_name="privacy_settings") ) - push_notifications: "Optional[PushNotificationSettings]" = dc_field( - default=None, metadata=dc_config(field_name="push_notifications") + + +@dataclass +class UserFeedbackReport(DataClassJsonMixin): + unreported_count: int = dc_field(metadata=dc_config(field_name="unreported_count")) + count_by_rating: "Dict[str, int]" = dc_field( + metadata=dc_config(field_name="count_by_rating") ) @dataclass -class UserBlock(DataClassJsonMixin): - blocked_by_user_id: str = dc_field( - metadata=dc_config(field_name="blocked_by_user_id") +class UserFeedbackReportResponse(DataClassJsonMixin): + daily: "List[DailyAggregateUserFeedbackReportResponse]" = dc_field( + metadata=dc_config(field_name="daily") ) - blocked_user_id: str = dc_field(metadata=dc_config(field_name="blocked_user_id")) + + +@dataclass +class UserFlaggedEvent(DataClassJsonMixin): created_at: datetime = dc_field( metadata=dc_config( field_name="created_at", @@ -10378,28 +12203,15 @@ class UserBlock(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) - - -@dataclass -class UserCustomEventRequest(DataClassJsonMixin): - type: str = dc_field(metadata=dc_config(field_name="type")) - custom: Optional[Dict[str, object]] = dc_field( - default=None, metadata=dc_config(field_name="custom") + type: str = dc_field(default="user.flagged", metadata=dc_config(field_name="type")) + target_user: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="target_user") ) - - -@dataclass -class UserFeedbackReport(DataClassJsonMixin): - unreported_count: int = dc_field(metadata=dc_config(field_name="unreported_count")) - count_by_rating: "Dict[str, int]" = dc_field( - metadata=dc_config(field_name="count_by_rating") + target_users: Optional[List[str]] = dc_field( + default=None, metadata=dc_config(field_name="target_users") ) - - -@dataclass -class UserFeedbackReportResponse(DataClassJsonMixin): - daily: "List[DailyAggregateUserFeedbackReportResponse]" = dc_field( - metadata=dc_config(field_name="daily") + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") ) @@ -10482,6 +12294,46 @@ class UserMuteResponse(DataClassJsonMixin): ) +@dataclass +class UserMutedEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field(default="user.muted", metadata=dc_config(field_name="type")) + target_user: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="target_user") + ) + target_users: Optional[List[str]] = dc_field( + default=None, metadata=dc_config(field_name="target_users") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + +@dataclass +class UserReactivatedEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field( + default="user.reactivated", metadata=dc_config(field_name="type") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + @dataclass class UserRequest(DataClassJsonMixin): id: str = dc_field(metadata=dc_config(field_name="id")) @@ -10538,9 +12390,7 @@ class UserResponse(DataClassJsonMixin): blocked_user_ids: List[str] = dc_field( metadata=dc_config(field_name="blocked_user_ids") ) - devices: "List[Optional[DeviceResponse]]" = dc_field( - metadata=dc_config(field_name="devices") - ) + devices: "List[DeviceResponse]" = dc_field(metadata=dc_config(field_name="devices")) teams: List[str] = dc_field(metadata=dc_config(field_name="teams")) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) ban_expires: Optional[datetime] = dc_field( @@ -10708,7 +12558,7 @@ class UserSessionStats(DataClassJsonMixin): published_tracks: "Optional[List[PublishedTrackInfo]]" = dc_field( default=None, metadata=dc_config(field_name="published_tracks") ) - subsessions: "Optional[List[Optional[Subsession]]]" = dc_field( + subsessions: "Optional[List[Subsession]]" = dc_field( default=None, metadata=dc_config(field_name="subsessions") ) geolocation: "Optional[GeolocationResult]" = dc_field( @@ -10764,6 +12614,93 @@ class UserStats(DataClassJsonMixin): ) +@dataclass +class UserUnbannedEvent(DataClassJsonMixin): + channel_id: str = dc_field(metadata=dc_config(field_name="channel_id")) + channel_type: str = dc_field(metadata=dc_config(field_name="channel_type")) + cid: str = dc_field(metadata=dc_config(field_name="cid")) + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + shadow: bool = dc_field(metadata=dc_config(field_name="shadow")) + type: str = dc_field(default="user.unbanned", metadata=dc_config(field_name="type")) + team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team")) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + +@dataclass +class UserUnmutedEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + type: str = dc_field(default="user.unmuted", metadata=dc_config(field_name="type")) + target_user: Optional[str] = dc_field( + default=None, metadata=dc_config(field_name="target_user") + ) + target_users: Optional[List[str]] = dc_field( + default=None, metadata=dc_config(field_name="target_users") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + +@dataclass +class UserUnreadReminderEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + channels: "Dict[str, Optional[ChannelMessages]]" = dc_field( + metadata=dc_config(field_name="channels") + ) + type: str = dc_field( + default="user.unread_message_reminder", metadata=dc_config(field_name="type") + ) + user: "Optional[User]" = dc_field( + default=None, metadata=dc_config(field_name="user") + ) + + +@dataclass +class UserUpdatedEvent(DataClassJsonMixin): + created_at: datetime = dc_field( + metadata=dc_config( + field_name="created_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + user: "UserEventPayload" = dc_field(metadata=dc_config(field_name="user")) + type: str = dc_field(default="user.updated", metadata=dc_config(field_name="type")) + received_at: Optional[datetime] = dc_field( + default=None, + metadata=dc_config( + field_name="received_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ), + ) + + @dataclass class VelocityFilterConfig(DataClassJsonMixin): cascading_actions: bool = dc_field( @@ -10964,6 +12901,11 @@ class WSEvent(DataClassJsonMixin): ) +@dataclass +class WebhookEvent(DataClassJsonMixin): + type: str = dc_field(metadata=dc_config(field_name="type")) + + @dataclass class WrappedUnreadCountsResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) diff --git a/getstream/video/call.py b/getstream/video/call.py index a2468a34..5d2cb034 100644 --- a/getstream/video/call.py +++ b/getstream/video/call.py @@ -121,6 +121,7 @@ def collect_user_feedback( def go_live( self, recording_storage_name: Optional[str] = None, + start_closed_caption: Optional[bool] = None, start_hls: Optional[bool] = None, start_recording: Optional[bool] = None, start_rtmp_broadcasts: Optional[bool] = None, @@ -131,6 +132,7 @@ def go_live( type=self.call_type, id=self.id, recording_storage_name=recording_storage_name, + start_closed_caption=start_closed_caption, start_hls=start_hls, start_recording=start_recording, start_rtmp_broadcasts=start_rtmp_broadcasts, @@ -228,8 +230,19 @@ def start_hls_broadcasting(self) -> StreamResponse[StartHLSBroadcastingResponse] self._sync_from_response(response.data) return response - def start_closed_captions(self) -> StreamResponse[StartClosedCaptionsResponse]: - response = self.client.start_closed_captions(type=self.call_type, id=self.id) + def start_closed_captions( + self, + enable_transcription: Optional[bool] = None, + external_storage: Optional[str] = None, + language: Optional[str] = None, + ) -> StreamResponse[StartClosedCaptionsResponse]: + response = self.client.start_closed_captions( + type=self.call_type, + id=self.id, + enable_transcription=enable_transcription, + external_storage=external_storage, + language=language, + ) self._sync_from_response(response.data) return response @@ -245,11 +258,16 @@ def start_recording( return response def start_transcription( - self, transcription_external_storage: Optional[str] = None + self, + enable_closed_captions: Optional[bool] = None, + language: Optional[str] = None, + transcription_external_storage: Optional[str] = None, ) -> StreamResponse[StartTranscriptionResponse]: response = self.client.start_transcription( type=self.call_type, id=self.id, + enable_closed_captions=enable_closed_captions, + language=language, transcription_external_storage=transcription_external_storage, ) self._sync_from_response(response.data) @@ -267,13 +285,32 @@ def stop_hls_broadcasting(self) -> StreamResponse[StopHLSBroadcastingResponse]: self._sync_from_response(response.data) return response - def stop_closed_captions(self) -> StreamResponse[StopClosedCaptionsResponse]: - response = self.client.stop_closed_captions(type=self.call_type, id=self.id) + def stop_closed_captions( + self, stop_transcription: Optional[bool] = None + ) -> StreamResponse[StopClosedCaptionsResponse]: + response = self.client.stop_closed_captions( + type=self.call_type, id=self.id, stop_transcription=stop_transcription + ) self._sync_from_response(response.data) return response - def stop_live(self) -> StreamResponse[StopLiveResponse]: - response = self.client.stop_live(type=self.call_type, id=self.id) + def stop_live( + self, + continue_closed_caption: Optional[bool] = None, + continue_hls: Optional[bool] = None, + continue_recording: Optional[bool] = None, + continue_rtmp_broadcasts: Optional[bool] = None, + continue_transcription: Optional[bool] = None, + ) -> StreamResponse[StopLiveResponse]: + response = self.client.stop_live( + type=self.call_type, + id=self.id, + continue_closed_caption=continue_closed_caption, + continue_hls=continue_hls, + continue_recording=continue_recording, + continue_rtmp_broadcasts=continue_rtmp_broadcasts, + continue_transcription=continue_transcription, + ) self._sync_from_response(response.data) return response @@ -282,8 +319,12 @@ def stop_recording(self) -> StreamResponse[StopRecordingResponse]: self._sync_from_response(response.data) return response - def stop_transcription(self) -> StreamResponse[StopTranscriptionResponse]: - response = self.client.stop_transcription(type=self.call_type, id=self.id) + def stop_transcription( + self, stop_closed_captions: Optional[bool] = None + ) -> StreamResponse[StopTranscriptionResponse]: + response = self.client.stop_transcription( + type=self.call_type, id=self.id, stop_closed_captions=stop_closed_captions + ) self._sync_from_response(response.data) return response diff --git a/getstream/video/rest_client.py b/getstream/video/rest_client.py index 408fca2f..3cc590f3 100644 --- a/getstream/video/rest_client.py +++ b/getstream/video/rest_client.py @@ -28,7 +28,7 @@ def query_call_members( limit: Optional[int] = None, next: Optional[str] = None, prev: Optional[str] = None, - sort: Optional[List[Optional[SortParamRequest]]] = None, + sort: Optional[List[SortParamRequest]] = None, filter_conditions: Optional[Dict[str, object]] = None, ) -> StreamResponse[QueryCallMembersResponse]: json = build_body_dict( @@ -50,7 +50,7 @@ def query_call_stats( limit: Optional[int] = None, next: Optional[str] = None, prev: Optional[str] = None, - sort: Optional[List[Optional[SortParamRequest]]] = None, + sort: Optional[List[SortParamRequest]] = None, filter_conditions: Optional[Dict[str, object]] = None, ) -> StreamResponse[QueryCallStatsResponse]: json = build_body_dict( @@ -230,6 +230,7 @@ def go_live( type: str, id: str, recording_storage_name: Optional[str] = None, + start_closed_caption: Optional[bool] = None, start_hls: Optional[bool] = None, start_recording: Optional[bool] = None, start_rtmp_broadcasts: Optional[bool] = None, @@ -242,6 +243,7 @@ def go_live( } json = build_body_dict( recording_storage_name=recording_storage_name, + start_closed_caption=start_closed_caption, start_hls=start_hls, start_recording=start_recording, start_rtmp_broadcasts=start_rtmp_broadcasts, @@ -420,17 +422,28 @@ def start_hls_broadcasting( ) def start_closed_captions( - self, type: str, id: str + self, + type: str, + id: str, + enable_transcription: Optional[bool] = None, + external_storage: Optional[str] = None, + language: Optional[str] = None, ) -> StreamResponse[StartClosedCaptionsResponse]: path_params = { "type": type, "id": id, } + json = build_body_dict( + enable_transcription=enable_transcription, + external_storage=external_storage, + language=language, + ) return self.post( "/api/v2/video/call/{type}/{id}/start_closed_captions", StartClosedCaptionsResponse, path_params=path_params, + json=json, ) def start_recording( @@ -450,14 +463,21 @@ def start_recording( ) def start_transcription( - self, type: str, id: str, transcription_external_storage: Optional[str] = None + self, + type: str, + id: str, + enable_closed_captions: Optional[bool] = None, + language: Optional[str] = None, + transcription_external_storage: Optional[str] = None, ) -> StreamResponse[StartTranscriptionResponse]: path_params = { "type": type, "id": id, } json = build_body_dict( - transcription_external_storage=transcription_external_storage + enable_closed_captions=enable_closed_captions, + language=language, + transcription_external_storage=transcription_external_storage, ) return self.post( @@ -497,29 +517,48 @@ def stop_hls_broadcasting( ) def stop_closed_captions( - self, type: str, id: str + self, type: str, id: str, stop_transcription: Optional[bool] = None ) -> StreamResponse[StopClosedCaptionsResponse]: path_params = { "type": type, "id": id, } + json = build_body_dict(stop_transcription=stop_transcription) return self.post( "/api/v2/video/call/{type}/{id}/stop_closed_captions", StopClosedCaptionsResponse, path_params=path_params, + json=json, ) - def stop_live(self, type: str, id: str) -> StreamResponse[StopLiveResponse]: + def stop_live( + self, + type: str, + id: str, + continue_closed_caption: Optional[bool] = None, + continue_hls: Optional[bool] = None, + continue_recording: Optional[bool] = None, + continue_rtmp_broadcasts: Optional[bool] = None, + continue_transcription: Optional[bool] = None, + ) -> StreamResponse[StopLiveResponse]: path_params = { "type": type, "id": id, } + json = build_body_dict( + continue_closed_caption=continue_closed_caption, + continue_hls=continue_hls, + continue_recording=continue_recording, + continue_rtmp_broadcasts=continue_rtmp_broadcasts, + continue_transcription=continue_transcription, + ) return self.post( "/api/v2/video/call/{type}/{id}/stop_live", StopLiveResponse, path_params=path_params, + json=json, ) def stop_recording( @@ -537,17 +576,19 @@ def stop_recording( ) def stop_transcription( - self, type: str, id: str + self, type: str, id: str, stop_closed_captions: Optional[bool] = None ) -> StreamResponse[StopTranscriptionResponse]: path_params = { "type": type, "id": id, } + json = build_body_dict(stop_closed_captions=stop_closed_captions) return self.post( "/api/v2/video/call/{type}/{id}/stop_transcription", StopTranscriptionResponse, path_params=path_params, + json=json, ) def list_transcriptions( @@ -658,7 +699,7 @@ def query_calls( limit: Optional[int] = None, next: Optional[str] = None, prev: Optional[str] = None, - sort: Optional[List[Optional[SortParamRequest]]] = None, + sort: Optional[List[SortParamRequest]] = None, filter_conditions: Optional[Dict[str, object]] = None, ) -> StreamResponse[QueryCallsResponse]: json = build_body_dict(