
    b6i6                         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 j2                  e j4                  d      Z G d d      Z G d d      Zy)    N   )AsyncClientWrapperSyncClientWrapper)RequestOptions)CreatePhoneNumberResponseModel)!InboundSipTrunkConfigRequestModel)LivekitStackType)"OutboundSipTrunkConfigRequestModel   )AsyncRawPhoneNumbersClientRawPhoneNumbersClient)PhoneNumbersCreateRequestBody)PhoneNumbersGetResponse)PhoneNumbersListResponseItem)PhoneNumbersUpdateResponse.c                      e Zd ZdefdZedefd       Zdddej                  e
   dej                  e   fdZddd	edej                  e
   defd
Zdddedej                  e
   defdZdddedej                  e
   dej(                  fdZe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j                  e
   defdZy)PhoneNumbersClientclient_wrapperc                &    t        |      | _        y N)r   )r   _raw_clientselfr   s     |/root/.openclaw/workspace/visionaryfx/venv/lib/python3.12/site-packages/elevenlabs/conversational_ai/phone_numbers/client.py__init__zPhoneNumbersClient.__init__   s    0O    returnc                     | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        RawPhoneNumbersClient
        r   r   s    r   with_raw_responsez$PhoneNumbersClient.with_raw_response        r   Nrequest_optionsr$   c                R    | j                   j                  |      }|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$   	_responses      r   r'   zPhoneNumbersClient.list$   s'    2 $$))/)J	~~r   requestc                T    | j                   j                  ||      }|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*   s       r   r/   zPhoneNumbersClient.create@   s*    J $$++G_+]	~~r   phone_number_idc                T    | j                   j                  ||      }|j                  S )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   r1   r$   r*   s       r   r4   zPhoneNumbersClient.geth   s)    < $$((/(Z	~~r   c                T    | j                   j                  ||      }|j                  S )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(   r5   s       r   r8   zPhoneNumbersClient.delete   s)    8 $$++O_+]	~~r   agent_idlabelinbound_trunk_configoutbound_trunk_configlivekit_stackr$   r:   r;   r<   r=   r>   c          	      ^    | j                   j                  |||||||      }|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]

        label : 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",
        )
        r9   r   updater(   	r   r1   r:   r;   r<   r=   r>   r$   r*   s	            r   rA   zPhoneNumbersClient.update   sA    ` $$++!5"7'+ , 
	 ~~r   )__name__
__module____qualname__r   r   propertyr   r!   typingOptionalr   Listr   r'   r   r   r/   strr   r4   Anyr8   OMITr   r
   r	   r   rA    r   r   r   r      s   P*; P  #8     EI"(//."A	1	2: mq&7&JP//ZhJi&	'&R [_"8>8W	 B bf c v~?^ jpjtjt F *.&*SWUY;?;?99 //#&	9
 s#9 %oo.OP9  &/QR9 '789  89 
$9r   r   c                      e Zd ZdefdZedefd       Zdddej                  e
   dej                  e   fdZddd	edej                  e
   defd
Zdddedej                  e
   defdZdddedej                  e
   dej(                  fdZe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j                  e
   defdZy)AsyncPhoneNumbersClientr   c                &    t        |      | _        y r   )r   r   r   s     r   r   z AsyncPhoneNumbersClient.__init__   s    5^Tr   r   c                     | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        AsyncRawPhoneNumbersClient
        r   r    s    r   r!   z)AsyncPhoneNumbersClient.with_raw_response   r"   r   Nr#   r$   c                n   K   | j                   j                  |       d{   }|j                  S 7 w)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)   s      r   r'   zAsyncPhoneNumbersClient.list   s5     B **///PP	~~ Qs    535r+   c                p   K   | j                   j                  ||       d{   }|j                  S 7 w)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.   r0   s       r   r/   zAsyncPhoneNumbersClient.create  s8     Z **11'Sb1cc	~~ d   !646r1   c                p   K   | j                   j                  ||       d{   }|j                  S 7 w)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#   Nr3   r5   s       r   r4   zAsyncPhoneNumbersClient.getG  s8     L **..P_.``	~~ arT   c                p   K   | j                   j                  ||       d{   }|j                  S 7 w)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#   Nr7   r5   s       r   r8   zAsyncPhoneNumbersClient.deletep  s8     L **11/Sb1cc	~~ drT   r9   r:   r;   r<   r=   r>   c          	      z   K   | j                   j                  |||||||       d{   }|j                  S 7 w)aC  
        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]

        label : 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())
        r9   Nr@   rB   s	            r   rA   zAsyncPhoneNumbersClient.update  sO     p **11!5"7'+ 2 
 
	 ~~
s   &;9;)rC   rD   rE   r   r   rF   r   r!   rG   rH   r   rI   r   r'   r   r   r/   rJ   r   r4   rK   r8   rL   r   r
   r	   r   rA   rM   r   r   rO   rO      s   U*< U  #=     EI""(//."A"	1	2"J mq.7.JP//ZhJi.	'.b [_'"'8>8W'	 'T [_'"'8>8W'	'Z *.&*SWUY;?;?AA //#&	A
 s#A %oo.OPA  &/QRA '78A  8A 
$Ar   rO   )rG   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   castrK   rL   r   rO   rM   r   r   <module>rd      s\     H 2 V ] 8 _ I R E P K v{{6::s#L L^v vr   