o
    lWi                      @   s   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 e jd
ZG dd dZG dd dZdS )    N   )AsyncClientWrapperSyncClientWrapper)RequestOptions),ConversationInitiationClientDataRequestInput)TwilioOutboundCallResponse   )AsyncRawTwilioClientRawTwilioClient)LBodyRegisterATwilioCallAndReturnTwiMlV1ConvaiTwilioRegisterCallPostDirection.c                   @      e Zd ZdefddZedefddZeddd	e	d
e	de	de
je de
je defd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dZdS )TwilioClientclient_wrapperc                C      t |d| _d S N)r   )r
   _raw_clientselfr    r   n/var/www/html/asistente-voz-ia/venv/lib/python3.10/site-packages/elevenlabs/conversational_ai/twilio/client.py__init__      zTwilioClient.__init__returnc                 C      | j S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        RawTwilioClient
        r   r   r   r   r   with_raw_response      	zTwilioClient.with_raw_responseN#conversation_initiation_client_datarequest_optionsagent_idagent_phone_number_id	to_numberr   r    c                C   s   | j j|||||d}|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    	_responser   r   r   r&   !   s   +zTwilioClient.outbound_call	directionr   r    from_numberr+   c                C   s   | j j||||||d}|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)   r   r   r   r/   U   s   -zTwilioClient.register_call)__name__
__module____qualname__r   r   propertyr
   r   OMITstrtypingOptionalr   r   r   r&   r   r/   r   r   r   r   r      sJ    
:	r   c                   @   r   )AsyncTwilioClientr   c                C   r   r   )r	   r   r   r   r   r   r      r   zAsyncTwilioClient.__init__r   c                 C   r   )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        AsyncRawTwilioClient
        r   r   r   r   r   r      r   z#AsyncTwilioClient.with_raw_responseNr   r!   r"   r#   r   r    c                   s$   | j j|||||dI dH }|jS )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(   r   r   r   r&      s   3zAsyncTwilioClient.outbound_callr*   r,   r+   c                   s&   | j j||||||dI dH }|jS )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-   Nr.   r0   r   r   r   r/      s   5zAsyncTwilioClient.register_call)r1   r2   r3   r   r   r4   r	   r   r5   r6   r7   r8   r   r   r   r&   r   r/   r   r   r   r   r9      sJ    
B	r9   )r7   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Anyr5   r   r9   r   r   r   r   <module>   s   {