@@ -12,12 +12,25 @@ 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 , description = "Whether the websocket is bidirectional." 
24+     )
25+ 
26+     def  model_dump (self , * args , ** kwargs ):
27+         data  =  super ().model_dump (* args , ** kwargs )
28+         if  self .bidirectional  is  not   True  and  'bidirectional'  in  data :
29+             del  data ['bidirectional' ]
30+ 
31+         if  'audioRate'  in  data  and  isinstance (data ['audioRate' ], AudioSampleRate ):
32+             data ['audioRate' ] =  data ['audioRate' ].value 
33+         return  data 
2134
2235
2336class  AudioConnectorOptions (BaseModel ):
@@ -33,6 +46,12 @@ class AudioConnectorOptions(BaseModel):
3346    token : str 
3447    websocket : AudioConnectorWebSocket 
3548
49+     def  model_dump (self , * args , ** kwargs ):
50+         data  =  super ().model_dump (* args , ** kwargs )
51+         if  isinstance (self .websocket , AudioConnectorWebSocket ):
52+             data ['websocket' ] =  self .websocket .model_dump (* args , ** kwargs )
53+         return  data 
54+ 
3655
3756class  AudioConnectorData (BaseModel ):
3857    """Class containing Audio Connector WebSocket ID and connection ID. 
0 commit comments