Skip to content

Commit 75f355c

Browse files
authored
Merge pull request #148 from GetStream/hifi-audio-support
hifi audio model added
2 parents ac4c834 + 227d8e3 commit 75f355c

File tree

3 files changed

+277
-7
lines changed

3 files changed

+277
-7
lines changed

getstream/models/__init__.py

Lines changed: 191 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,32 @@ class ActivityResponse(DataClassJsonMixin):
841841

842842
@dataclass
843843
class ActivitySelectorConfig(DataClassJsonMixin):
844+
cutoff_time: Optional[datetime] = dc_field(
845+
default=None,
846+
metadata=dc_config(
847+
field_name="CutoffTime",
848+
encoder=encode_datetime,
849+
decoder=datetime_from_unix_ns,
850+
mm_field=fields.DateTime(format="iso"),
851+
),
852+
)
853+
cutoff_time: Optional[str] = dc_field(
854+
default=None, metadata=dc_config(field_name="cutoff_time")
855+
)
856+
min_popularity: Optional[int] = dc_field(
857+
default=None, metadata=dc_config(field_name="min_popularity")
858+
)
859+
type: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="type"))
860+
sort: "Optional[List[SortParam]]" = dc_field(
861+
default=None, metadata=dc_config(field_name="sort")
862+
)
863+
filter: Optional[Dict[str, object]] = dc_field(
864+
default=None, metadata=dc_config(field_name="filter")
865+
)
866+
867+
868+
@dataclass
869+
class ActivitySelectorConfigResponse(DataClassJsonMixin):
844870
cutoff_time: Optional[datetime] = dc_field(
845871
default=None,
846872
metadata=dc_config(
@@ -1042,9 +1068,11 @@ class AddCommentReactionResponse(DataClassJsonMixin):
10421068

10431069
@dataclass
10441070
class AddCommentRequest(DataClassJsonMixin):
1045-
comment: str = dc_field(metadata=dc_config(field_name="comment"))
10461071
object_id: str = dc_field(metadata=dc_config(field_name="object_id"))
10471072
object_type: str = dc_field(metadata=dc_config(field_name="object_type"))
1073+
comment: Optional[str] = dc_field(
1074+
default=None, metadata=dc_config(field_name="comment")
1075+
)
10481076
create_notification_activity: Optional[bool] = dc_field(
10491077
default=None, metadata=dc_config(field_name="create_notification_activity")
10501078
)
@@ -1212,6 +1240,9 @@ class AppResponseFields(DataClassJsonMixin):
12121240
image_moderation_enabled: bool = dc_field(
12131241
metadata=dc_config(field_name="image_moderation_enabled")
12141242
)
1243+
max_aggregated_activities_length: int = dc_field(
1244+
metadata=dc_config(field_name="max_aggregated_activities_length")
1245+
)
12151246
moderation_bulk_submit_action_enabled: bool = dc_field(
12161247
metadata=dc_config(field_name="moderation_bulk_submit_action_enabled")
12171248
)
@@ -1235,9 +1266,11 @@ class AppResponseFields(DataClassJsonMixin):
12351266
permission_version: str = dc_field(
12361267
metadata=dc_config(field_name="permission_version")
12371268
)
1269+
region: str = dc_field(metadata=dc_config(field_name="region"))
12381270
reminders_interval: int = dc_field(
12391271
metadata=dc_config(field_name="reminders_interval")
12401272
)
1273+
shard: str = dc_field(metadata=dc_config(field_name="shard"))
12411274
sns_key: str = dc_field(metadata=dc_config(field_name="sns_key"))
12421275
sns_secret: str = dc_field(metadata=dc_config(field_name="sns_secret"))
12431276
sns_topic_arn: str = dc_field(metadata=dc_config(field_name="sns_topic_arn"))
@@ -1430,7 +1463,8 @@ class AsyncExportErrorEvent(DataClassJsonMixin):
14301463
task_id: str = dc_field(metadata=dc_config(field_name="task_id"))
14311464
custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom"))
14321465
type: str = dc_field(
1433-
default="export.channels.error", metadata=dc_config(field_name="type")
1466+
default="export.bulk_image_moderation.error",
1467+
metadata=dc_config(field_name="type"),
14341468
)
14351469
received_at: Optional[datetime] = dc_field(
14361470
default=None,
@@ -1625,6 +1659,9 @@ class AudioSettings(DataClassJsonMixin):
16251659
speaker_default_on: bool = dc_field(
16261660
metadata=dc_config(field_name="speaker_default_on")
16271661
)
1662+
hifi_audio_enabled: Optional[bool] = dc_field(
1663+
default=None, metadata=dc_config(field_name="hifi_audio_enabled")
1664+
)
16281665
noise_cancellation: "Optional[NoiseCancellationSettings]" = dc_field(
16291666
default=None, metadata=dc_config(field_name="noise_cancellation")
16301667
)
@@ -1636,6 +1673,9 @@ class AudioSettingsRequest(DataClassJsonMixin):
16361673
access_request_enabled: Optional[bool] = dc_field(
16371674
default=None, metadata=dc_config(field_name="access_request_enabled")
16381675
)
1676+
hifi_audio_enabled: Optional[bool] = dc_field(
1677+
default=None, metadata=dc_config(field_name="hifi_audio_enabled")
1678+
)
16391679
mic_default_on: Optional[bool] = dc_field(
16401680
default=None, metadata=dc_config(field_name="mic_default_on")
16411681
)
@@ -1667,6 +1707,9 @@ class AudioSettingsResponse(DataClassJsonMixin):
16671707
speaker_default_on: bool = dc_field(
16681708
metadata=dc_config(field_name="speaker_default_on")
16691709
)
1710+
hifi_audio_enabled: Optional[bool] = dc_field(
1711+
default=None, metadata=dc_config(field_name="hifi_audio_enabled")
1712+
)
16701713
noise_cancellation: "Optional[NoiseCancellationSettings]" = dc_field(
16711714
default=None, metadata=dc_config(field_name="noise_cancellation")
16721715
)
@@ -7494,7 +7537,7 @@ class FeedGroupResponse(DataClassJsonMixin):
74947537
activity_processors: "Optional[List[ActivityProcessorConfig]]" = dc_field(
74957538
default=None, metadata=dc_config(field_name="activity_processors")
74967539
)
7497-
activity_selectors: "Optional[List[ActivitySelectorConfig]]" = dc_field(
7540+
activity_selectors: "Optional[List[ActivitySelectorConfigResponse]]" = dc_field(
74987541
default=None, metadata=dc_config(field_name="activity_selectors")
74997542
)
75007543
aggregation: "Optional[AggregationConfig]" = dc_field(
@@ -7871,7 +7914,7 @@ class FeedViewResponse(DataClassJsonMixin):
78717914
activity_processors: "Optional[List[ActivityProcessorConfig]]" = dc_field(
78727915
default=None, metadata=dc_config(field_name="activity_processors")
78737916
)
7874-
activity_selectors: "Optional[List[ActivitySelectorConfig]]" = dc_field(
7917+
activity_selectors: "Optional[List[ActivitySelectorConfigResponse]]" = dc_field(
78757918
default=None, metadata=dc_config(field_name="activity_selectors")
78767919
)
78777920
aggregation: "Optional[AggregationConfig]" = dc_field(
@@ -8634,6 +8677,28 @@ class GetCallResponse(DataClassJsonMixin):
86348677
call: "CallResponse" = dc_field(metadata=dc_config(field_name="call"))
86358678

86368679

8680+
@dataclass
8681+
class GetCallSessionParticipantStatsDetailsResponse(DataClassJsonMixin):
8682+
call_id: str = dc_field(metadata=dc_config(field_name="call_id"))
8683+
call_session_id: str = dc_field(metadata=dc_config(field_name="call_session_id"))
8684+
call_type: str = dc_field(metadata=dc_config(field_name="call_type"))
8685+
duration: str = dc_field(metadata=dc_config(field_name="duration"))
8686+
user_id: str = dc_field(metadata=dc_config(field_name="user_id"))
8687+
user_session_id: str = dc_field(metadata=dc_config(field_name="user_session_id"))
8688+
ingress: "Optional[ParticipantSeriesIngressSection]" = dc_field(
8689+
default=None, metadata=dc_config(field_name="ingress")
8690+
)
8691+
publisher: "Optional[ParticipantSeriesPublisherSection]" = dc_field(
8692+
default=None, metadata=dc_config(field_name="publisher")
8693+
)
8694+
subscriber: "Optional[ParticipantSeriesSubscriberSection]" = dc_field(
8695+
default=None, metadata=dc_config(field_name="subscriber")
8696+
)
8697+
timeframe: "Optional[ParticipantSeriesTimeframe]" = dc_field(
8698+
default=None, metadata=dc_config(field_name="timeframe")
8699+
)
8700+
8701+
86378702
@dataclass
86388703
class GetCallTypeResponse(DataClassJsonMixin):
86398704
created_at: datetime = dc_field(
@@ -9547,25 +9612,51 @@ class IngressSettingsResponse(DataClassJsonMixin):
95479612
)
95489613

95499614

9615+
@dataclass
9616+
class IngressSource(DataClassJsonMixin):
9617+
fps: int = dc_field(metadata=dc_config(field_name="fps"))
9618+
height: int = dc_field(metadata=dc_config(field_name="height"))
9619+
width: int = dc_field(metadata=dc_config(field_name="width"))
9620+
9621+
9622+
@dataclass
9623+
class IngressSourceRequest(DataClassJsonMixin):
9624+
fps: int = dc_field(metadata=dc_config(field_name="fps"))
9625+
height: int = dc_field(metadata=dc_config(field_name="height"))
9626+
width: int = dc_field(metadata=dc_config(field_name="width"))
9627+
9628+
9629+
@dataclass
9630+
class IngressSourceResponse(DataClassJsonMixin):
9631+
fps: int = dc_field(metadata=dc_config(field_name="fps"))
9632+
height: int = dc_field(metadata=dc_config(field_name="height"))
9633+
width: int = dc_field(metadata=dc_config(field_name="width"))
9634+
9635+
95509636
@dataclass
95519637
class IngressVideoEncodingOptions(DataClassJsonMixin):
95529638
layers: "List[IngressVideoLayer]" = dc_field(
95539639
metadata=dc_config(field_name="layers")
95549640
)
9641+
source: "Optional[IngressSource]" = dc_field(
9642+
default=None, metadata=dc_config(field_name="source")
9643+
)
95559644

95569645

95579646
@dataclass
95589647
class IngressVideoEncodingOptionsRequest(DataClassJsonMixin):
95599648
layers: "List[IngressVideoLayerRequest]" = dc_field(
95609649
metadata=dc_config(field_name="layers")
95619650
)
9651+
source: "IngressSourceRequest" = dc_field(metadata=dc_config(field_name="source"))
95629652

95639653

95649654
@dataclass
95659655
class IngressVideoEncodingResponse(DataClassJsonMixin):
95669656
layers: "List[IngressVideoLayerResponse]" = dc_field(
95679657
metadata=dc_config(field_name="layers")
95689658
)
9659+
source: "IngressSourceResponse" = dc_field(metadata=dc_config(field_name="source"))
95699660

95709661

95719662
@dataclass
@@ -10531,9 +10622,7 @@ class MessageNewEvent(DataClassJsonMixin):
1053110622
)
1053210623
)
1053310624
watcher_count: int = dc_field(metadata=dc_config(field_name="watcher_count"))
10534-
type: str = dc_field(
10535-
default="notification.thread_message_new", metadata=dc_config(field_name="type")
10536-
)
10625+
type: str = dc_field(default="message.new", metadata=dc_config(field_name="type"))
1053710626
team: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="team"))
1053810627
thread_participants: "Optional[List[User]]" = dc_field(
1053910628
default=None, metadata=dc_config(field_name="thread_participants")
@@ -12062,6 +12151,101 @@ class ParticipantReportResponse(DataClassJsonMixin):
1206212151
)
1206312152

1206412153

12154+
@dataclass
12155+
class ParticipantSeriesAggregate(DataClassJsonMixin):
12156+
label: str = dc_field(metadata=dc_config(field_name="label"))
12157+
series: "Dict[str, List[List[float]]]" = dc_field(
12158+
metadata=dc_config(field_name="series")
12159+
)
12160+
12161+
12162+
@dataclass
12163+
class ParticipantSeriesIngressSection(DataClassJsonMixin):
12164+
top_charts: "Optional[List[ParticipantSeriesTopChart]]" = dc_field(
12165+
default=None, metadata=dc_config(field_name="top_charts")
12166+
)
12167+
12168+
12169+
@dataclass
12170+
class ParticipantSeriesPublisherSection(DataClassJsonMixin):
12171+
top_charts: "Optional[List[ParticipantSeriesTopChart]]" = dc_field(
12172+
default=None, metadata=dc_config(field_name="top_charts")
12173+
)
12174+
aggregate: "Optional[ParticipantSeriesAggregate]" = dc_field(
12175+
default=None, metadata=dc_config(field_name="aggregate")
12176+
)
12177+
by_track_type: "Optional[Dict[str, List[ParticipantSeriesTrack]]]" = dc_field(
12178+
default=None, metadata=dc_config(field_name="by_track_type")
12179+
)
12180+
12181+
12182+
@dataclass
12183+
class ParticipantSeriesSubscriberSection(DataClassJsonMixin):
12184+
subscriptions: "Optional[List[ParticipantSeriesSubscriptionsCharts]]" = dc_field(
12185+
default=None, metadata=dc_config(field_name="subscriptions")
12186+
)
12187+
top_charts: "Optional[List[ParticipantSeriesTopChart]]" = dc_field(
12188+
default=None, metadata=dc_config(field_name="top_charts")
12189+
)
12190+
aggregate: "Optional[ParticipantSeriesAggregate]" = dc_field(
12191+
default=None, metadata=dc_config(field_name="aggregate")
12192+
)
12193+
12194+
12195+
@dataclass
12196+
class ParticipantSeriesSubscriptionsCharts(DataClassJsonMixin):
12197+
publisher_user_id: str = dc_field(
12198+
metadata=dc_config(field_name="publisher_user_id")
12199+
)
12200+
publisher_name: Optional[str] = dc_field(
12201+
default=None, metadata=dc_config(field_name="publisher_name")
12202+
)
12203+
publisher_user_session_id: Optional[str] = dc_field(
12204+
default=None, metadata=dc_config(field_name="publisher_user_session_id")
12205+
)
12206+
by_track_type: "Optional[Dict[str, List[ParticipantSeriesTrack]]]" = dc_field(
12207+
default=None, metadata=dc_config(field_name="by_track_type")
12208+
)
12209+
12210+
12211+
@dataclass
12212+
class ParticipantSeriesTimeframe(DataClassJsonMixin):
12213+
since: datetime = dc_field(
12214+
metadata=dc_config(
12215+
field_name="since",
12216+
encoder=encode_datetime,
12217+
decoder=datetime_from_unix_ns,
12218+
mm_field=fields.DateTime(format="iso"),
12219+
)
12220+
)
12221+
step_seconds: int = dc_field(metadata=dc_config(field_name="step_seconds"))
12222+
until: datetime = dc_field(
12223+
metadata=dc_config(
12224+
field_name="until",
12225+
encoder=encode_datetime,
12226+
decoder=datetime_from_unix_ns,
12227+
mm_field=fields.DateTime(format="iso"),
12228+
)
12229+
)
12230+
12231+
12232+
@dataclass
12233+
class ParticipantSeriesTopChart(DataClassJsonMixin):
12234+
label: str = dc_field(metadata=dc_config(field_name="label"))
12235+
metric: str = dc_field(metadata=dc_config(field_name="metric"))
12236+
series: "List[List[float]]" = dc_field(metadata=dc_config(field_name="series"))
12237+
12238+
12239+
@dataclass
12240+
class ParticipantSeriesTrack(DataClassJsonMixin):
12241+
label: str = dc_field(metadata=dc_config(field_name="label"))
12242+
track_id: str = dc_field(metadata=dc_config(field_name="track_id"))
12243+
track_type: str = dc_field(metadata=dc_config(field_name="track_type"))
12244+
series: "Dict[str, List[List[float]]]" = dc_field(
12245+
metadata=dc_config(field_name="series")
12246+
)
12247+
12248+
1206512249
@dataclass
1206612250
class PendingMessageEvent(DataClassJsonMixin):
1206712251
created_at: datetime = dc_field(

getstream/video/async_rest_client.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -851,6 +851,49 @@ async def delete_transcription(
851851
path_params=path_params,
852852
)
853853

854+
@telemetry.operation_name(
855+
"getstream.api.video.get_call_session_participant_stats_details"
856+
)
857+
async def get_call_session_participant_stats_details(
858+
self,
859+
call_type: str,
860+
call_id: str,
861+
session: str,
862+
user: str,
863+
user_session: str,
864+
metrics: Optional[str] = None,
865+
since: Optional[str] = None,
866+
until: Optional[str] = None,
867+
step: Optional[int] = None,
868+
max_points: Optional[int] = None,
869+
track_type: Optional[str] = None,
870+
remote_user_id: Optional[str] = None,
871+
remote_user_session_id: Optional[str] = None,
872+
) -> StreamResponse[GetCallSessionParticipantStatsDetailsResponse]:
873+
query_params = build_query_param(
874+
metrics=metrics,
875+
since=since,
876+
until=until,
877+
step=step,
878+
max_points=max_points,
879+
track_type=track_type,
880+
remote_user_id=remote_user_id,
881+
remote_user_session_id=remote_user_session_id,
882+
)
883+
path_params = {
884+
"call_type": call_type,
885+
"call_id": call_id,
886+
"session": session,
887+
"user": user,
888+
"user_session": user_session,
889+
}
890+
return await self.get(
891+
"/api/v2/video/call_stats/{call_type}/{call_id}/{session}/participant/{user}/{user_session}/details",
892+
GetCallSessionParticipantStatsDetailsResponse,
893+
query_params=query_params,
894+
path_params=path_params,
895+
)
896+
854897
@telemetry.operation_name(
855898
"getstream.api.video.query_call_session_participant_stats"
856899
)

0 commit comments

Comments
 (0)