o
    lWi5                     @   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 ddl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 e e jdZG dd dZG dd dZdS )    N   )AsyncClientWrapperSyncClientWrapper)RequestOptions)CreatePhoneNumberResponseModel)!InboundSipTrunkConfigRequestModel)LivekitStackType)"OutboundSipTrunkConfigRequestModel   )AsyncRawPhoneNumbersClientRawPhoneNumbersClient)PhoneNumbersCreateRequestBody)PhoneNumbersGetResponse)PhoneNumbersListResponseItem)PhoneNumbersUpdateResponse.c                   @   
  e Zd ZdefddZedefddZddd	ej	e
 deje fd
dZddded	ej	e
 defddZddded	ej	e
 defddZddded	ej	e
 dejfddZeeeedddedej	e dej	e dej	e dej	e d	ej	e
 defddZdS )PhoneNumbersClientclient_wrapperc                C      t |d| _d S N)r   )r   _raw_clientselfr    r   u/var/www/html/asistente-voz-ia/venv/lib/python3.10/site-packages/elevenlabs/conversational_ai/phone_numbers/client.py__init__      zPhoneNumbersClient.__init__returnc                 C      | j S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        RawPhoneNumbersClient
        r   r   r   r   r   with_raw_response      	z$PhoneNumbersClient.with_raw_responseNrequest_optionsr$   c                C   s   | j j|d}|jS )a  
        Retrieve all Phone Numbers

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

        Returns
        -------
        typing.List[PhoneNumbersListResponseItem]
            Successful Response

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

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.conversational_ai.phone_numbers.list()
        r#   r   listdatar   r$   	_responser   r   r   r&   $   s   zPhoneNumbersClient.listrequestc                C      | j j||d}|jS )a  
        Import Phone Number from provider configuration (Twilio or SIP trunk)

        Parameters
        ----------
        request : PhoneNumbersCreateRequestBody

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

        Returns
        -------
        CreatePhoneNumberResponseModel
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs
        from elevenlabs.conversational_ai.phone_numbers import (
            PhoneNumbersCreateRequestBody_Twilio,
        )

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.conversational_ai.phone_numbers.create(
            request=PhoneNumbersCreateRequestBody_Twilio(
                phone_number="phone_number",
                label="label",
                sid="sid",
                token="token",
            ),
        )
        r*   r$   r   creater'   r   r*   r$   r)   r   r   r   r.   @   s   %zPhoneNumbersClient.createphone_number_idc                C   r+   )a  
        Retrieve Phone Number details by ID

        Parameters
        ----------
        phone_number_id : str
            The id of an agent. This is returned on agent creation.

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

        Returns
        -------
        PhoneNumbersGetResponse
            Successful Response

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

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.conversational_ai.phone_numbers.get(
            phone_number_id="TeaqRRdTcIfIu2i7BYfT",
        )
        r#   r   getr'   r   r0   r$   r)   r   r   r   r2   h   s   zPhoneNumbersClient.getc                C   r+   )a}  
        Delete Phone Number by ID

        Parameters
        ----------
        phone_number_id : str
            The id of an agent. This is returned on agent creation.

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

        Returns
        -------
        typing.Any
            Successful Response

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

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.conversational_ai.phone_numbers.delete(
            phone_number_id="TeaqRRdTcIfIu2i7BYfT",
        )
        r#   r   deleter'   r3   r   r   r   r5      s   zPhoneNumbersClient.deleteagent_idinbound_trunk_configoutbound_trunk_configlivekit_stackr$   r7   r8   r9   r:   c                C   s   | j j||||||d}|jS )a  
        Update assigned agent of a phone number

        Parameters
        ----------
        phone_number_id : str
            The id of an agent. This is returned on agent creation.

        agent_id : typing.Optional[str]

        inbound_trunk_config : typing.Optional[InboundSipTrunkConfigRequestModel]

        outbound_trunk_config : typing.Optional[OutboundSipTrunkConfigRequestModel]

        livekit_stack : typing.Optional[LivekitStackType]

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

        Returns
        -------
        PhoneNumbersUpdateResponse
            Successful Response

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

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.conversational_ai.phone_numbers.update(
            phone_number_id="TeaqRRdTcIfIu2i7BYfT",
        )
        r6   r   updater'   r   r0   r7   r8   r9   r:   r$   r)   r   r   r   r<      s   -zPhoneNumbersClient.update)__name__
__module____qualname__r   r   propertyr   r!   typingOptionalr   Listr   r&   r   r   r.   strr   r2   Anyr5   OMITr   r	   r   r   r<   r   r   r   r   r      s^    

)
$!#	r   c                   @   r   )AsyncPhoneNumbersClientr   c                C   r   r   )r   r   r   r   r   r   r      r   z AsyncPhoneNumbersClient.__init__r   c                 C   r   )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        AsyncRawPhoneNumbersClient
        r   r    r   r   r   r!      r"   z)AsyncPhoneNumbersClient.with_raw_responseNr#   r$   c                   s   | j j|dI dH }|jS )ai  
        Retrieve all Phone Numbers

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

        Returns
        -------
        typing.List[PhoneNumbersListResponseItem]
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.conversational_ai.phone_numbers.list()


        asyncio.run(main())
        r#   Nr%   r(   r   r   r   r&      s   !zAsyncPhoneNumbersClient.listr*   c                      | j j||dI dH }|jS )a-  
        Import Phone Number from provider configuration (Twilio or SIP trunk)

        Parameters
        ----------
        request : PhoneNumbersCreateRequestBody

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

        Returns
        -------
        CreatePhoneNumberResponseModel
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs
        from elevenlabs.conversational_ai.phone_numbers import (
            PhoneNumbersCreateRequestBody_Twilio,
        )

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.conversational_ai.phone_numbers.create(
                request=PhoneNumbersCreateRequestBody_Twilio(
                    phone_number="phone_number",
                    label="label",
                    sid="sid",
                    token="token",
                ),
            )


        asyncio.run(main())
        r,   Nr-   r/   r   r   r   r.     s   -zAsyncPhoneNumbersClient.creater0   c                   rI   )a  
        Retrieve Phone Number details by ID

        Parameters
        ----------
        phone_number_id : str
            The id of an agent. This is returned on agent creation.

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

        Returns
        -------
        PhoneNumbersGetResponse
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.conversational_ai.phone_numbers.get(
                phone_number_id="TeaqRRdTcIfIu2i7BYfT",
            )


        asyncio.run(main())
        r#   Nr1   r3   r   r   r   r2   C     &zAsyncPhoneNumbersClient.getc                   rI   )a  
        Delete Phone Number by ID

        Parameters
        ----------
        phone_number_id : str
            The id of an agent. This is returned on agent creation.

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

        Returns
        -------
        typing.Any
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.conversational_ai.phone_numbers.delete(
                phone_number_id="TeaqRRdTcIfIu2i7BYfT",
            )


        asyncio.run(main())
        r#   Nr4   r3   r   r   r   r5   l  rJ   zAsyncPhoneNumbersClient.deleter6   r7   r8   r9   r:   c                   s&   | j j||||||dI dH }|jS )a  
        Update assigned agent of a phone number

        Parameters
        ----------
        phone_number_id : str
            The id of an agent. This is returned on agent creation.

        agent_id : typing.Optional[str]

        inbound_trunk_config : typing.Optional[InboundSipTrunkConfigRequestModel]

        outbound_trunk_config : typing.Optional[OutboundSipTrunkConfigRequestModel]

        livekit_stack : typing.Optional[LivekitStackType]

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

        Returns
        -------
        PhoneNumbersUpdateResponse
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.conversational_ai.phone_numbers.update(
                phone_number_id="TeaqRRdTcIfIu2i7BYfT",
            )


        asyncio.run(main())
        r6   Nr;   r=   r   r   r   r<     s   5zAsyncPhoneNumbersClient.update)r>   r?   r@   r   r   rA   r   r!   rB   rC   r   rD   r   r&   r   r   r.   rE   r   r2   rF   r5   rG   r   r	   r   r   r<   r   r   r   r   rH      sl    
%
1
*
-	rH   )rB   core.client_wrapperr   r   core.request_optionsr   (types.create_phone_number_response_modelr   ,types.inbound_sip_trunk_config_request_modelr   types.livekit_stack_typer   -types.outbound_sip_trunk_config_request_modelr	   
raw_clientr   r   'types.phone_numbers_create_request_bodyr    types.phone_numbers_get_responser   &types.phone_numbers_list_response_itemr   #types.phone_numbers_update_responser   castrF   rG   r   rH   r   r   r   r   <module>   s     L