@@ -12,12 +12,26 @@ class AudioConnectorWebSocket(BaseModel):
1212 streams (list[str]): Stream IDs to include. If not provided, all streams are included.
1313 headers (dict): The headers to send to your WebSocket server.
1414 audio_rate (AudioSampleRate): The audio sample rate in Hertz.
15+ bidirectional (bool): Whether the websocket is bidirectional.
1516 """
1617
1718 uri : str
1819 streams : Optional [list [str ]] = None
1920 headers : Optional [dict ] = None
2021 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
2135
2236
2337class AudioConnectorOptions (BaseModel ):
@@ -29,10 +43,17 @@ class AudioConnectorOptions(BaseModel):
2943 websocket (AudioConnectorWebSocket): The audio connector websocket.
3044 """
3145
46+
3247 session_id : str = Field (..., serialization_alias = 'sessionId' )
3348 token : str
3449 websocket : AudioConnectorWebSocket
3550
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+
3657
3758class AudioConnectorData (BaseModel ):
3859 """Class containing Audio Connector WebSocket ID and connection ID.
0 commit comments