
    b6im>                        d dl Z d dlmZ ddlmZ ddlmZmZ ddlm	Z	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ  e j:                  e j<                  d      Z G d d      Z  G d d      Z!y)    N)JSONDecodeError   )ApiError)AsyncClientWrapperSyncClientWrapper)AsyncHttpResponseHttpResponse)RequestOptions)'convert_and_respect_annotation_metadata)construct_type)UnprocessableEntityError),ConversationInitiationClientDataRequestInput)HttpValidationError)WhatsAppOutboundCallResponse)WhatsAppOutboundMessageResponse   )YBodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem.c                   
   e Zd ZdefdZedddedededed	ed
ej                  e	   dej                  e
   dee   fdZedddededededej                  e   d	ed
ej                  e	   dej                  e
   dee   fdZy)RawWhatsappClientclient_wrapperc                    || _         y N_client_wrapperselfr   s     {/root/.openclaw/workspace/visionaryfx/venv/lib/python3.12/site-packages/elevenlabs/conversational_ai/whatsapp/raw_client.py__init__zRawWhatsappClient.__init__   
    -    N#conversation_initiation_client_datarequest_optionswhatsapp_phone_number_idwhatsapp_user_id.whatsapp_call_permission_request_template_name7whatsapp_call_permission_request_template_language_codeagent_idr"   r#   returnc                   | j                   j                  j                  dd|||||t        |t        d      dddi|t
              }	 d	|j                  cxk  rd
k  rGn nDt        j                  t        t        t        |j                                     }	t        ||	      S |j                  dk(  rUt        t        |j                        t        j                  t         t        t         |j                                           |j                         }
t%        |j                  t        |j                        |
      # t"        $ r6 t%        |j                  t        |j                        |j&                        w xY w)a  
        Make an outbound call via WhatsApp

        Parameters
        ----------
        whatsapp_phone_number_id : str

        whatsapp_user_id : str

        whatsapp_call_permission_request_template_name : str

        whatsapp_call_permission_request_template_language_code : str

        agent_id : str

        conversation_initiation_client_data : typing.Optional[ConversationInitiationClientDataRequestInput]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[WhatsAppOutboundCallResponse]
            Successful Response
         v1/convai/whatsapp/outbound-callPOSTwriteobject_
annotation	directionr$   r%   r&   r'   r(   r"   content-typeapplication/jsonmethodjsonheadersr#   omit   ,  type_r/   responsedata  r8   bodystatus_coder8   rC   )r   httpx_clientrequestr   r   OMITrE   typingcastr   r   r7   r	   r   dictr8   r   r   r   textr   r$   r%   r&   r'   r(   r"   r#   	_response_data_response_jsons              r   outbound_callzRawWhatsappClient.outbound_call   sp   H ((55==.,D$4Bp LC$7^?K%8  2 ,' > 
	*	ti++1c10": ) 0 $YUCC$$+. !2!23+&"5$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   
AE &A4E ?Ftemplate_nametemplate_language_codetemplate_paramsc                R   | j                   j                  j                  dd||||t        |t        j
                  t           d      |t        |t        d      dddi|t              }		 d	|	j                  cxk  rd
k  rGn nDt	        j                  t        t        t        |	j                                     }
t        |	|
      S |	j                  dk(  rUt        t!        |	j"                        t	        j                  t$        t        t$        |	j                                           |	j                         }t)        |	j                  t!        |	j"                        |      # t&        $ r6 t)        |	j                  t!        |	j"                        |	j*                        w xY w)a  
        Send an outbound message via WhatsApp

        Parameters
        ----------
        whatsapp_phone_number_id : str

        whatsapp_user_id : str

        template_name : str

        template_language_code : str

        template_params : typing.Sequence[BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem]

        agent_id : str

        conversation_initiation_client_data : typing.Optional[ConversationInitiationClientDataRequestInput]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[WhatsAppOutboundMessageResponse]
            Successful Response
        #v1/convai/whatsapp/outbound-messager,   r-   r.   r$   r%   rR   rS   rT   r(   r"   r3   r4   r5   r:   r;   r<   r>   rA   rB   rD   )r   rF   rG   r   rI   Sequencer   r   rH   rE   rJ   r   r   r7   r	   r   rK   r8   r   r   r   rL   r   r$   r%   rR   rS   rT   r(   r"   r#   rN   rO   rP   s               r   outbound_messagez"RawWhatsappClient.outbound_messagep   s   R ((55==1,D$4!.*@#J+%q  &$ %7^?K%8(  2 ,5 > 
	8	ti++1c13"= ) 0 $YUCC$$+. !2!23+&"5$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   ,AE' A4E' '?F&)__name__
__module____qualname__r   r   rH   strrI   Optionalr   r
   r	   r   rQ   rX   r   r   rZ    r    r   r   r      s>   .*; . nr;?Qp #&Qp 	Qp
 9<Qp BEQp Qp .4__=i-jQp  8Qp 
2	3Qp| nr;?]p #&]p 	]p
 ]p !$]p  e
]p ]p .4__=i-j]p  8]p 
5	6]pr    r   c                   
   e Zd ZdefdZedddedededed	ed
ej                  e	   dej                  e
   dee   fdZedddededededej                  e   d	ed
ej                  e	   dej                  e
   dee   fdZy)AsyncRawWhatsappClientr   c                    || _         y r   r   r   s     r   r   zAsyncRawWhatsappClient.__init__   r   r    Nr!   r$   r%   r&   r'   r(   r"   r#   r)   c                ,  K   | j                   j                  j                  dd|||||t        |t        d      dddi|t
               d	{   }	 d
|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }	t        ||	      S |j                  dk(  rUt        t        |j                        t        j                  t         t        t         |j                                           |j                         }
t%        |j                  t        |j                        |
      7 # t"        $ r6 t%        |j                  t        |j                        |j&                        w xY ww)a  
        Make an outbound call via WhatsApp

        Parameters
        ----------
        whatsapp_phone_number_id : str

        whatsapp_user_id : str

        whatsapp_call_permission_request_template_name : str

        whatsapp_call_permission_request_template_language_code : str

        agent_id : str

        conversation_initiation_client_data : typing.Optional[ConversationInitiationClientDataRequestInput]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[WhatsAppOutboundCallResponse]
            Successful Response
        r+   r,   r-   r.   r2   r3   r4   r5   Nr:   r;   r<   r>   rA   rB   rD   )r   rF   rG   r   r   rH   rE   rI   rJ   r   r   r7   r   r   rK   r8   r   r   r   rL   rM   s              r   rQ   z$AsyncRawWhatsappClient.outbound_call   s    H ..;;CC.,D$4Bp LC$7^?K%8  2 ,' D 
 
	*	ti++1c10": ) 0 ))%HH$$+. !2!23+&"5$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo[
V  	ty'<'<d9K\K\F]dmdrdrss	ts8   AFEFAE /F0A4E $,F?FFrR   rS   rT   c                p  K   | j                   j                  j                  dd||||t        |t        j
                  t           d      |t        |t        d      dddi|t               d	{   }		 d
|	j                  cxk  rdk  rGn nDt	        j                  t        t        t        |	j                                     }
t        |	|
      S |	j                  dk(  rUt        t!        |	j"                        t	        j                  t$        t        t$        |	j                                           |	j                         }t)        |	j                  t!        |	j"                        |      7 # t&        $ r6 t)        |	j                  t!        |	j"                        |	j*                        w xY ww)a  
        Send an outbound message via WhatsApp

        Parameters
        ----------
        whatsapp_phone_number_id : str

        whatsapp_user_id : str

        template_name : str

        template_language_code : str

        template_params : typing.Sequence[BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem]

        agent_id : str

        conversation_initiation_client_data : typing.Optional[ConversationInitiationClientDataRequestInput]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[WhatsAppOutboundMessageResponse]
            Successful Response
        rV   r,   r-   r.   rW   r3   r4   r5   Nr:   r;   r<   r>   rA   rB   rD   )r   rF   rG   r   rI   rX   r   r   rH   rE   rJ   r   r   r7   r   r   rK   r8   r   r   r   rL   rY   s               r   rZ   z'AsyncRawWhatsappClient.outbound_message'  s    R ..;;CC1,D$4!.*@#J+%q  &$ %7^?K%8(  2 ,5 D 
 
	8	ti++1c13"= ) 0 ))%HH$$+. !2!23+&"5$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooi
d  	ty'<'<d9K\K\F]dmdrdrss	ts8   A.F60E11F66AE4 F6A4E4 ,F64?F33F6)r[   r\   r]   r   r   rH   r^   rI   r_   r   r
   r   r   rQ   rX   r   r   rZ   r`   r    r   rb   rb      s>   .*< . nr;?Qp #&Qp 	Qp
 9<Qp BEQp Qp .4__=i-jQp  8Qp 
7	8Qp| nr;?]p #&]p 	]p
 ]p !$]p  e
]p ]p .4__=i-j]p  8]p 
:	;]pr    rb   )"rI   json.decoderr   core.api_errorr   core.client_wrapperr   r   core.http_responser   r	   core.request_optionsr
   core.serializationr   core.unchecked_base_modelr   !errors.unprocessable_entity_errorr   7types.conversation_initiation_client_data_request_inputr   types.http_validation_errorr   &types.whats_app_outbound_call_responser   )types.whats_app_outbound_message_responser   ptypes.body_send_an_outbound_message_via_whats_app_v_1_convai_whatsapp_outbound_message_post_template_params_itemr   rJ   AnyrH   r   rb   r`   r    r   <module>rt      sh     ( & H A 2 I 7 I s > R X
 v{{6::s#tp tpntp tpr    