
    b6i                          d dl 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mZ dd	lmZ  e j                  e j                   d
      Z G d d      Z G d d      Zy)    N   )AsyncClientWrapperSyncClientWrapper)RequestOptions),ConversationInitiationClientDataRequestInput)TwilioOutboundCallResponse   )AsyncRawTwilioClientRawTwilioClient)LBodyRegisterATwilioCallAndReturnTwiMlV1ConvaiTwilioRegisterCallPostDirection.c                      e Zd ZdefdZedefd       Zeddde	de	d	e	d
e
j                  e   de
j                  e   defdZeeddde	de	d	e	de
j                  e   d
e
j                  e   de
j                  e   ddfdZy)TwilioClientclient_wrapperc                &    t        |      | _        y N)r   )r   _raw_clientselfr   s     u/root/.openclaw/workspace/visionaryfx/venv/lib/python3.12/site-packages/elevenlabs/conversational_ai/twilio/client.py__init__zTwilioClient.__init__   s    *.I    returnc                     | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        RawTwilioClient
        r   r   s    r   with_raw_responsezTwilioClient.with_raw_response        r   N#conversation_initiation_client_datarequest_optionsagent_idagent_phone_number_id	to_numberr   r    c                Z    | j                   j                  |||||      }|j                  S )aA  
        Handle an outbound call via Twilio

        Parameters
        ----------
        agent_id : str

        agent_phone_number_id : str

        to_number : str

        conversation_initiation_client_data : typing.Optional[ConversationInitiationClientDataRequestInput]

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

        Returns
        -------
        TwilioOutboundCallResponse
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.conversational_ai.twilio.outbound_call(
            agent_id="agent_id",
            agent_phone_number_id="agent_phone_number_id",
            to_number="to_number",
        )
        r!   r"   r#   r   r    r   outbound_calldatar   r!   r"   r#   r   r    	_responses          r   r'   zTwilioClient.outbound_call!   s;    V $$22"70S+ 3 
	 ~~r   	directionr   r    from_numberr,   c                \    | j                   j                  ||||||      }|j                  S )ay  
        Register a Twilio call and return TwiML to connect the call

        Parameters
        ----------
        agent_id : str

        from_number : str

        to_number : str

        direction : typing.Optional[BodyRegisterATwilioCallAndReturnTwiMlV1ConvaiTwilioRegisterCallPostDirection]

        conversation_initiation_client_data : typing.Optional[ConversationInitiationClientDataRequestInput]

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

        Returns
        -------
        None

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.conversational_ai.twilio.register_call(
            agent_id="agent_id",
            from_number="from_number",
            to_number="to_number",
        )
        r!   r-   r#   r,   r   r    r   register_callr(   r   r!   r-   r#   r,   r   r    r*   s           r   r1   zTwilioClient.register_callU   s>    Z $$22#0S+ 3 
	 ~~r   )__name__
__module____qualname__r   r   propertyr   r   OMITstrtypingOptionalr   r   r   r'   r   r1    r   r   r   r      s    J*; J  ?      nr;?2 2  #	2
 2 .4__=i-j2  82 
$2t txmq;?5 5 	5
 5 ??#op5 .4__=i-j5  85 
5r   r   c                      e Zd ZdefdZedefd       Zeddde	de	d	e	d
e
j                  e   de
j                  e   defdZeeddde	de	d	e	de
j                  e   d
e
j                  e   de
j                  e   ddfdZy)AsyncTwilioClientr   c                &    t        |      | _        y r   )r
   r   r   s     r   r   zAsyncTwilioClient.__init__   s    /~Nr   r   c                     | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        AsyncRawTwilioClient
        r   r   s    r   r   z#AsyncTwilioClient.with_raw_response   r   r   Nr   r!   r"   r#   r   r    c                v   K   | j                   j                  |||||       d{   }|j                  S 7 w)a  
        Handle an outbound call via Twilio

        Parameters
        ----------
        agent_id : str

        agent_phone_number_id : str

        to_number : str

        conversation_initiation_client_data : typing.Optional[ConversationInitiationClientDataRequestInput]

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

        Returns
        -------
        TwilioOutboundCallResponse
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.conversational_ai.twilio.outbound_call(
                agent_id="agent_id",
                agent_phone_number_id="agent_phone_number_id",
                to_number="to_number",
            )


        asyncio.run(main())
        r%   Nr&   r)   s          r   r'   zAsyncTwilioClient.outbound_call   sI     f **88"70S+ 9 
 
	 ~~
s   $979r+   r-   r,   c                x   K   | j                   j                  ||||||       d{   }|j                  S 7 w)a  
        Register a Twilio call and return TwiML to connect the call

        Parameters
        ----------
        agent_id : str

        from_number : str

        to_number : str

        direction : typing.Optional[BodyRegisterATwilioCallAndReturnTwiMlV1ConvaiTwilioRegisterCallPostDirection]

        conversation_initiation_client_data : typing.Optional[ConversationInitiationClientDataRequestInput]

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

        Returns
        -------
        None

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.conversational_ai.twilio.register_call(
                agent_id="agent_id",
                from_number="from_number",
                to_number="to_number",
            )


        asyncio.run(main())
        r/   Nr0   r2   s           r   r1   zAsyncTwilioClient.register_call   sL     j **88#0S+ 9 
 
	 ~~
s   %:8:)r3   r4   r5   r   r   r6   r
   r   r7   r8   r9   r:   r   r   r   r'   r   r1   r;   r   r   r=   r=      s   O*< O  #7      nr;?: :  #	:
 : .4__=i-j:  8: 
$:D txmq;?= = 	=
 = ??#op= .4__=i-j=  8= 
=r   r=   )r9   core.client_wrapperr   r   core.request_optionsr   7types.conversation_initiation_client_data_request_inputr   #types.twilio_outbound_call_responser   
raw_clientr
   r   btypes.body_register_a_twilio_call_and_return_twi_ml_v_1_convai_twilio_register_call_post_directionr   castAnyr7   r   r=   r;   r   r   <module>rJ      sO     H 2 s M =
 v{{6::s#x xvH Hr   