@@ -12,12 +12,26 @@ class AudioConnectorWebSocket(BaseModel):
12
12
streams (list[str]): Stream IDs to include. If not provided, all streams are included.
13
13
headers (dict): The headers to send to your WebSocket server.
14
14
audio_rate (AudioSampleRate): The audio sample rate in Hertz.
15
+ bidirectional (bool): Whether the websocket is bidirectional.
15
16
"""
16
17
17
18
uri : str
18
19
streams : Optional [list [str ]] = None
19
20
headers : Optional [dict ] = None
20
21
audio_rate : Optional [AudioSampleRate ] = Field (None , serialization_alias = 'audioRate' )
22
+ bidirectional : Optional [bool ] = Field (
23
+ None ,
24
+ description = "Whether the websocket is bidirectional."
25
+ )
26
+
27
+ def model_dump (self , * args , ** kwargs ):
28
+ data = super ().model_dump (* args , ** kwargs )
29
+ if self .bidirectional is not True and 'bidirectional' in data :
30
+ del data ['bidirectional' ]
31
+
32
+ if 'audioRate' in data and isinstance (data ['audioRate' ], AudioSampleRate ):
33
+ data ['audioRate' ] = data ['audioRate' ].value
34
+ return data
21
35
22
36
23
37
class AudioConnectorOptions (BaseModel ):
@@ -29,10 +43,17 @@ class AudioConnectorOptions(BaseModel):
29
43
websocket (AudioConnectorWebSocket): The audio connector websocket.
30
44
"""
31
45
46
+
32
47
session_id : str = Field (..., serialization_alias = 'sessionId' )
33
48
token : str
34
49
websocket : AudioConnectorWebSocket
35
50
51
+ def model_dump (self , * args , ** kwargs ):
52
+ data = super ().model_dump (* args , ** kwargs )
53
+ if isinstance (self .websocket , AudioConnectorWebSocket ):
54
+ data ['websocket' ] = self .websocket .model_dump (* args , ** kwargs )
55
+ return data
56
+
36
57
37
58
class AudioConnectorData (BaseModel ):
38
59
"""Class containing Audio Connector WebSocket ID and connection ID.
0 commit comments