diff --git a/getstream/chat/rest_client.py b/getstream/chat/rest_client.py index 59ac94e3..2bc20e1b 100644 --- a/getstream/chat/rest_client.py +++ b/getstream/chat/rest_client.py @@ -795,19 +795,6 @@ def export_channels( "/api/v2/chat/export_channels", ExportChannelsResponse, json=json ) - def get_export_channels_status( - self, id: str - ) -> StreamResponse[GetExportChannelsStatusResponse]: - path_params = { - "id": id, - } - - return self.get( - "/api/v2/chat/export_channels/{id}", - GetExportChannelsStatusResponse, - path_params=path_params, - ) - def query_members( self, payload: Optional[QueryMembersPayload] = None ) -> StreamResponse[MembersResponse]: diff --git a/getstream/common/rest_client.py b/getstream/common/rest_client.py index ff327ca5..5dca77c3 100644 --- a/getstream/common/rest_client.py +++ b/getstream/common/rest_client.py @@ -37,6 +37,7 @@ def update_app( enforce_unique_usernames: Optional[str] = None, feeds_moderation_enabled: Optional[bool] = None, feeds_v2_region: Optional[str] = None, + guest_user_creation_disabled: Optional[bool] = None, image_moderation_enabled: Optional[bool] = None, migrate_permissions_to_v2: Optional[bool] = None, moderation_enabled: Optional[bool] = None, @@ -81,6 +82,7 @@ def update_app( enforce_unique_usernames=enforce_unique_usernames, feeds_moderation_enabled=feeds_moderation_enabled, feeds_v2_region=feeds_v2_region, + guest_user_creation_disabled=guest_user_creation_disabled, image_moderation_enabled=image_moderation_enabled, migrate_permissions_to_v2=migrate_permissions_to_v2, moderation_enabled=moderation_enabled, diff --git a/getstream/models/__init__.py b/getstream/models/__init__.py index f20ccde3..9cc26cd9 100644 --- a/getstream/models/__init__.py +++ b/getstream/models/__init__.py @@ -246,6 +246,9 @@ class AppResponseFields(DataClassJsonMixin): enforce_unique_usernames: str = dc_field( metadata=dc_config(field_name="enforce_unique_usernames") ) + guest_user_creation_disabled: bool = dc_field( + metadata=dc_config(field_name="guest_user_creation_disabled") + ) image_moderation_enabled: bool = dc_field( metadata=dc_config(field_name="image_moderation_enabled") ) @@ -331,6 +334,135 @@ class AppResponseFields(DataClassJsonMixin): ) +@dataclass +class AsyncExportChannelsEvent(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"), + ) + ) + finished_at: datetime = dc_field( + metadata=dc_config( + field_name="finished_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + started_at: datetime = dc_field( + metadata=dc_config( + field_name="started_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + task_id: str = dc_field(metadata=dc_config(field_name="task_id")) + url: str = dc_field(metadata=dc_config(field_name="url")) + custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) + type: str = dc_field( + default="export.channels.success", 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 AsyncExportErrorEvent(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"), + ) + ) + error: str = dc_field(metadata=dc_config(field_name="error")) + finished_at: datetime = dc_field( + metadata=dc_config( + field_name="finished_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + started_at: datetime = dc_field( + metadata=dc_config( + field_name="started_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + task_id: str = dc_field(metadata=dc_config(field_name="task_id")) + custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) + type: str = dc_field( + default="export.users.error", 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 AsyncExportUsersEvent(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"), + ) + ) + finished_at: datetime = dc_field( + metadata=dc_config( + field_name="finished_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + started_at: datetime = dc_field( + metadata=dc_config( + field_name="started_at", + encoder=encode_datetime, + decoder=datetime_from_unix_ns, + mm_field=fields.DateTime(format="iso"), + ) + ) + task_id: str = dc_field(metadata=dc_config(field_name="task_id")) + url: str = dc_field(metadata=dc_config(field_name="url")) + custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) + type: str = dc_field( + default="export.users.success", 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 AsyncModerationCallbackConfig(DataClassJsonMixin): mode: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="mode")) @@ -907,6 +1039,8 @@ class CallClosedCaption(DataClassJsonMixin): mm_field=fields.DateTime(format="iso"), ) ) + id: str = dc_field(metadata=dc_config(field_name="id")) + language: str = dc_field(metadata=dc_config(field_name="language")) speaker_id: str = dc_field(metadata=dc_config(field_name="speaker_id")) start_time: datetime = dc_field( metadata=dc_config( @@ -920,6 +1054,32 @@ class CallClosedCaption(DataClassJsonMixin): user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) +@dataclass +class CallClosedCaptionTranslated(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"), + ) + ) + id: str = dc_field(metadata=dc_config(field_name="id")) + language: str = dc_field(metadata=dc_config(field_name="language")) + speaker_id: str = dc_field(metadata=dc_config(field_name="speaker_id")) + 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"), + ) + ) + text: str = dc_field(metadata=dc_config(field_name="text")) + i18n_text: "Dict[str, str]" = dc_field(metadata=dc_config(field_name="i18n_text")) + user: "UserResponse" = dc_field(metadata=dc_config(field_name="user")) + + @dataclass class CallClosedCaptionsFailedEvent(DataClassJsonMixin): call_cid: str = dc_field(metadata=dc_config(field_name="call_cid")) @@ -1377,6 +1537,7 @@ class CallRecording(DataClassJsonMixin): ) ) filename: str = dc_field(metadata=dc_config(field_name="filename")) + session_id: str = dc_field(metadata=dc_config(field_name="session_id")) start_time: datetime = dc_field( metadata=dc_config( field_name="start_time", @@ -1552,6 +1713,7 @@ class CallResponse(DataClassJsonMixin): 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")) + translating: bool = dc_field(metadata=dc_config(field_name="translating")) type: str = dc_field(metadata=dc_config(field_name="type")) updated_at: datetime = dc_field( metadata=dc_config( @@ -3050,6 +3212,9 @@ class ChannelOwnCapability: SEND_POLL: Final[ChannelOwnCapabilityType] = "send-poll" SEND_REACTION: Final[ChannelOwnCapabilityType] = "send-reaction" SEND_REPLY: Final[ChannelOwnCapabilityType] = "send-reply" + SEND_RESTRICTED_VISIBILITY_MESSAGE: Final[ChannelOwnCapabilityType] = ( + "send-restricted-visibility-message" + ) SEND_TYPING_EVENTS: Final[ChannelOwnCapabilityType] = "send-typing-events" SET_CHANNEL_COOLDOWN: Final[ChannelOwnCapabilityType] = "set-channel-cooldown" SKIP_SLOW_MODE: Final[ChannelOwnCapabilityType] = "skip-slow-mode" @@ -3648,6 +3813,25 @@ class ClosedCaptionEvent(DataClassJsonMixin): ) +@dataclass +class ClosedCaptionTranslatedEvent(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"), + ) + ) + translated_closed_caption: "CallClosedCaptionTranslated" = dc_field( + metadata=dc_config(field_name="translated_closed_caption") + ) + type: str = dc_field( + default="call.closed_caption.translated", metadata=dc_config(field_name="type") + ) + + @dataclass class CollectUserFeedbackRequest(DataClassJsonMixin): rating: int = dc_field(metadata=dc_config(field_name="rating")) @@ -4811,6 +4995,7 @@ class EntityCreatorResponse(DataClassJsonMixin): deleted_content_count: int = dc_field( metadata=dc_config(field_name="deleted_content_count") ) + flagged_count: int = dc_field(metadata=dc_config(field_name="flagged_count")) id: str = dc_field(metadata=dc_config(field_name="id")) invisible: bool = dc_field(metadata=dc_config(field_name="invisible")) language: str = dc_field(metadata=dc_config(field_name="language")) @@ -4958,15 +5143,6 @@ class ExportChannelsResponse(DataClassJsonMixin): task_id: str = dc_field(metadata=dc_config(field_name="task_id")) -@dataclass -class ExportChannelsResult(DataClassJsonMixin): - url: str = dc_field(metadata=dc_config(field_name="url")) - path: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="path")) - s3_bucket_name: Optional[str] = dc_field( - default=None, metadata=dc_config(field_name="s3_bucket_name") - ) - - @dataclass class ExportUserResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) @@ -5000,6 +5176,12 @@ class ExternalStorageResponse(DataClassJsonMixin): type: str = dc_field(metadata=dc_config(field_name="type")) +@dataclass +class FPSStats(DataClassJsonMixin): + average_fps: float = dc_field(metadata=dc_config(field_name="average_fps")) + tracked: int = dc_field(metadata=dc_config(field_name="tracked")) + + @dataclass class FeedsModerationTemplateConfig(DataClassJsonMixin): config_key: str = dc_field(metadata=dc_config(field_name="config_key")) @@ -5437,6 +5619,15 @@ class FullUserResponse(DataClassJsonMixin): 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")) + 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"), + ), + ) deactivated_at: Optional[datetime] = dc_field( default=None, metadata=dc_config( @@ -5771,35 +5962,6 @@ class GetEdgesResponse(DataClassJsonMixin): edges: "List[EdgeResponse]" = dc_field(metadata=dc_config(field_name="edges")) -@dataclass -class GetExportChannelsStatusResponse(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")) - status: str = dc_field(metadata=dc_config(field_name="status")) - task_id: str = dc_field(metadata=dc_config(field_name="task_id")) - 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"), - ) - ) - error: "Optional[ErrorResult]" = dc_field( - default=None, metadata=dc_config(field_name="error") - ) - result: "Optional[ExportChannelsResult]" = dc_field( - default=None, metadata=dc_config(field_name="result") - ) - - @dataclass class GetImportResponse(DataClassJsonMixin): duration: str = dc_field(metadata=dc_config(field_name="duration")) @@ -6056,9 +6218,6 @@ class GoLiveRequest(DataClassJsonMixin): start_recording: Optional[bool] = dc_field( default=None, metadata=dc_config(field_name="start_recording") ) - start_rtmp_broadcasts: Optional[bool] = dc_field( - default=None, metadata=dc_config(field_name="start_rtmp_broadcasts") - ) start_transcription: Optional[bool] = dc_field( default=None, metadata=dc_config(field_name="start_transcription") ) @@ -6697,6 +6856,9 @@ class Message(DataClassJsonMixin): own_reactions: "List[Reaction]" = dc_field( metadata=dc_config(field_name="own_reactions") ) + restricted_visibility: List[str] = dc_field( + metadata=dc_config(field_name="restricted_visibility") + ) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) reaction_counts: "Dict[str, int]" = dc_field( metadata=dc_config(field_name="reaction_counts") @@ -7129,6 +7291,9 @@ class MessageRequest(DataClassJsonMixin): mentioned_users: Optional[List[str]] = dc_field( default=None, metadata=dc_config(field_name="mentioned_users") ) + restricted_visibility: Optional[List[str]] = dc_field( + default=None, metadata=dc_config(field_name="restricted_visibility") + ) custom: Optional[Dict[str, object]] = dc_field( default=None, metadata=dc_config(field_name="custom") ) @@ -7179,6 +7344,9 @@ class MessageResponse(DataClassJsonMixin): own_reactions: "List[ReactionResponse]" = dc_field( metadata=dc_config(field_name="own_reactions") ) + restricted_visibility: List[str] = dc_field( + metadata=dc_config(field_name="restricted_visibility") + ) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) reaction_counts: "Dict[str, int]" = dc_field( metadata=dc_config(field_name="reaction_counts") @@ -7398,6 +7566,9 @@ class MessageWithChannelResponse(DataClassJsonMixin): own_reactions: "List[ReactionResponse]" = dc_field( metadata=dc_config(field_name="own_reactions") ) + restricted_visibility: List[str] = dc_field( + metadata=dc_config(field_name="restricted_visibility") + ) channel: "ChannelResponse" = dc_field(metadata=dc_config(field_name="channel")) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) reaction_counts: "Dict[str, int]" = dc_field( @@ -7530,9 +7701,6 @@ class ModerationAnalytics(DataClassJsonMixin): sla_metrics: "List[Dict[str, object]]" = dc_field( metadata=dc_config(field_name="sla_metrics") ) - usage_metrics: "List[Dict[str, object]]" = dc_field( - metadata=dc_config(field_name="usage_metrics") - ) action_distribution_over_time: "Dict[str, Dict[str, object]]" = dc_field( metadata=dc_config(field_name="action_distribution_over_time") ) @@ -10290,6 +10458,9 @@ class SearchResultMessage(DataClassJsonMixin): own_reactions: "List[ReactionResponse]" = dc_field( metadata=dc_config(field_name="own_reactions") ) + restricted_visibility: List[str] = dc_field( + metadata=dc_config(field_name="restricted_visibility") + ) custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom")) reaction_counts: "Dict[str, int]" = dc_field( metadata=dc_config(field_name="reaction_counts") @@ -10591,6 +10762,11 @@ class SessionSettingsResponse(DataClassJsonMixin): ) +@dataclass +class ShadowBlockActionRequest(DataClassJsonMixin): + pass + + @dataclass class ShowChannelRequest(DataClassJsonMixin): user_id: Optional[str] = dc_field( @@ -11173,6 +11349,9 @@ class TranscriptionSettings(DataClassJsonMixin): ) language: str = dc_field(metadata=dc_config(field_name="language")) mode: str = dc_field(metadata=dc_config(field_name="mode")) + translation: "Optional[TranslationSettings]" = dc_field( + default=None, metadata=dc_config(field_name="translation") + ) @dataclass @@ -11184,6 +11363,9 @@ class TranscriptionSettingsRequest(DataClassJsonMixin): language: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="language") ) + translation: "Optional[TranslationSettings]" = dc_field( + default=None, metadata=dc_config(field_name="translation") + ) @dataclass @@ -11193,6 +11375,9 @@ class TranscriptionSettingsResponse(DataClassJsonMixin): ) language: str = dc_field(metadata=dc_config(field_name="language")) mode: str = dc_field(metadata=dc_config(field_name="mode")) + translation: "Optional[TranslationSettings]" = dc_field( + default=None, metadata=dc_config(field_name="translation") + ) @dataclass @@ -11200,6 +11385,12 @@ class TranslateMessageRequest(DataClassJsonMixin): language: str = dc_field(metadata=dc_config(field_name="language")) +@dataclass +class TranslationSettings(DataClassJsonMixin): + enabled: bool = dc_field(metadata=dc_config(field_name="enabled")) + languages: List[str] = dc_field(metadata=dc_config(field_name="languages")) + + @dataclass class TruncateChannelRequest(DataClassJsonMixin): hard_delete: Optional[bool] = dc_field( @@ -11472,6 +11663,9 @@ class UpdateAppRequest(DataClassJsonMixin): feeds_v2_region: Optional[str] = dc_field( default=None, metadata=dc_config(field_name="feeds_v2_region") ) + guest_user_creation_disabled: Optional[bool] = dc_field( + default=None, metadata=dc_config(field_name="guest_user_creation_disabled") + ) image_moderation_enabled: Optional[bool] = dc_field( default=None, metadata=dc_config(field_name="image_moderation_enabled") ) @@ -13070,6 +13264,9 @@ class UserSessionStats(DataClassJsonMixin): subsessions: "Optional[List[Subsession]]" = dc_field( default=None, metadata=dc_config(field_name="subsessions") ) + fps: "Optional[FPSStats]" = dc_field( + default=None, metadata=dc_config(field_name="fps") + ) geolocation: "Optional[GeolocationResult]" = dc_field( default=None, metadata=dc_config(field_name="geolocation") ) @@ -13216,6 +13413,7 @@ class VelocityFilterConfig(DataClassJsonMixin): cascading_actions: bool = dc_field( metadata=dc_config(field_name="cascading_actions") ) + cids_per_user: int = dc_field(metadata=dc_config(field_name="cids_per_user")) enabled: bool = dc_field(metadata=dc_config(field_name="enabled")) first_message_only: bool = dc_field( metadata=dc_config(field_name="first_message_only") diff --git a/getstream/video/call.py b/getstream/video/call.py index 17c44b30..8c9e2e7a 100644 --- a/getstream/video/call.py +++ b/getstream/video/call.py @@ -122,7 +122,6 @@ def go_live( start_closed_caption: Optional[bool] = None, start_hls: Optional[bool] = None, start_recording: Optional[bool] = None, - start_rtmp_broadcasts: Optional[bool] = None, start_transcription: Optional[bool] = None, transcription_storage_name: Optional[str] = None, ) -> StreamResponse[GoLiveResponse]: @@ -133,7 +132,6 @@ def go_live( start_closed_caption=start_closed_caption, start_hls=start_hls, start_recording=start_recording, - start_rtmp_broadcasts=start_rtmp_broadcasts, start_transcription=start_transcription, transcription_storage_name=transcription_storage_name, ) diff --git a/getstream/video/rest_client.py b/getstream/video/rest_client.py index 3582d154..1f6607f2 100644 --- a/getstream/video/rest_client.py +++ b/getstream/video/rest_client.py @@ -256,7 +256,6 @@ def go_live( start_closed_caption: Optional[bool] = None, start_hls: Optional[bool] = None, start_recording: Optional[bool] = None, - start_rtmp_broadcasts: Optional[bool] = None, start_transcription: Optional[bool] = None, transcription_storage_name: Optional[str] = None, ) -> StreamResponse[GoLiveResponse]: @@ -269,7 +268,6 @@ def go_live( start_closed_caption=start_closed_caption, start_hls=start_hls, start_recording=start_recording, - start_rtmp_broadcasts=start_rtmp_broadcasts, start_transcription=start_transcription, transcription_storage_name=transcription_storage_name, )