o
    lWi                     @   s   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 G dd dZG dd dZdS )    N)JSONDecodeError   )ApiError)AsyncClientWrapperSyncClientWrapper)AsyncHttpResponseHttpResponse)jsonable_encoder)RequestOptions)construct_type)UnprocessableEntityError)HttpValidationError)SingleUseTokenResponseModel)SingleUseTokenTypec                   @   @   e Zd ZdefddZdddedeje de	e
 fd	d
ZdS )RawSingleUseClientclient_wrapperc                C   
   || _ d S N_client_wrapperselfr    r   k/var/www/html/asistente-voz-ia/venv/lib/python3.10/site-packages/elevenlabs/tokens/single_use/raw_client.py__init__      
zRawSingleUseClient.__init__Nrequest_options
token_typer   returnc             	   C   s   | j jjdt| d|d}z>d|j  krdk r0n ntttt|	 d}t
||dW S |jdkrHtt|jtttt|	 dd	|	 }W n ty`   t|jt|j|jd
w t|jt|j|d
)a  
        Generate a time limited single-use token with embedded authentication for frontend clients.

        Parameters
        ----------
        token_type : SingleUseTokenType

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

        Returns
        -------
        HttpResponse[SingleUseTokenResponseModel]
            Successful Response
        v1/single-use-token/POSTmethodr      ,  type_object_responsedata  headersbodystatus_coder/   r0   )r   httpx_clientrequestr	   r2   typingcastr   r   jsonr   r   dictr/   r   r   r   textr   r   r   	_response_data_response_jsonr   r   r   create   s>   

zRawSingleUseClient.create)__name__
__module____qualname__r   r   r   r5   Optionalr
   r   r   r>   r   r   r   r   r          r   c                   @   r   )AsyncRawSingleUseClientr   c                C   r   r   r   r   r   r   r   r   I   r   z AsyncRawSingleUseClient.__init__Nr   r   r   r    c             	      s   | j jjdt| d|dI dH }z>d|j  krdk r4n ntttt|	 d}t
||dW S |jd	krLtt|jtttt|	 dd
|	 }W n tyd   t|jt|j|jdw t|jt|j|d)a  
        Generate a time limited single-use token with embedded authentication for frontend clients.

        Parameters
        ----------
        token_type : SingleUseTokenType

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

        Returns
        -------
        AsyncHttpResponse[SingleUseTokenResponseModel]
            Successful Response
        r!   r"   r#   Nr%   r&   r'   r*   r-   r.   r1   )r   r3   r4   r	   r2   r5   r6   r   r   r7   r   r   r8   r/   r   r   r   r9   r:   r   r   r   r>   L   s@   

zAsyncRawSingleUseClient.create)r?   r@   rA   r   r   r   r5   rB   r
   r   r   r>   r   r   r   r   rD   H   rC   rD   )r5   json.decoderr   core.api_errorr   core.client_wrapperr   r   core.http_responser   r   core.jsonable_encoderr	   core.request_optionsr
   core.unchecked_base_modelr   !errors.unprocessable_entity_errorr   types.http_validation_errorr   %types.single_use_token_response_modelr   types.single_use_token_typer   r   rD   r   r   r   r   <module>   s   6