
    pi&                         d dl mZ d dlZd dlZd Z G d de      Z G d de      Z G d d	e      Z G d
 de      Z G d de      Z	 G d de      Z
y)    )AccessTokenGrantNc                 B     t        j                          fd       }|S )zThis is a decorator which can be used to mark functions
    as deprecated. It will result in a warning being emitted
    when the function is used.c                      t        j                  dt               t        j                  dj	                  j
                        t        d       t        j                  dt                | i |S )NalwayszCall to deprecated function {}.   )category
stackleveldefault)warningssimplefilterDeprecationWarningwarnformat__name__)argskwargsfuncs     `/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/twilio/jwt/access_token/grants.pynew_funczdeprecated.<locals>.new_func   s[    h(:;-44T]]C'	

 	i);<T$V$$    )	functoolswraps)r   r   s   ` r   
deprecatedr      s'    
 __T% % Or   c                   6    e Zd ZdZ	 	 	 	 ddZed        Zd Zy)	ChatGrantzGrant to access Twilio ChatNc                 <    || _         || _        || _        || _        y Nservice_sidendpoint_iddeployment_role_sidpush_credential_sid)selfr   r    r!   r"   s        r   __init__zChatGrant.__init__   s$     '&#6 #6 r   c                      y)Nchat r#   s    r   keyzChatGrant.key(   s    r   c                     i }| j                   r| j                   |d<   | j                  r| j                  |d<   | j                  r| j                  |d<   | j                  r| j                  |d<   |S )Nr   r    r!   r"   r   r#   grants     r   
to_payloadzChatGrant.to_payload,   sr    #'#3#3E- #'#3#3E- ##+/+C+CE'(##+/+C+CE'(r   )NNNNr   
__module____qualname____doc__r$   propertyr)   r-   r'   r   r   r   r      s1    %   
7  r   r   c                   .    e Zd ZdZddZed        Zd Zy)	SyncGrantzGrant to access Twilio SyncNc                      || _         || _        y r   r   r    )r#   r   r    s      r   r$   zSyncGrant.__init__=   s    &&r   c                      y)N	data_syncr'   r(   s    r   r)   zSyncGrant.keyA   s    r   c                 v    i }| j                   r| j                   |d<   | j                  r| j                  |d<   |S )Nr   r    r6   r+   s     r   r-   zSyncGrant.to_payloadE   s>    #'#3#3E- #'#3#3E- r   )NNr.   r'   r   r   r4   r4   :   s#    %'  r   r4   c                   8    e Zd ZdZ	 	 	 	 	 ddZed        Zd Zy)
VoiceGrantz)Grant to access Twilio Programmable VoiceNc                 R    || _         	 || _        	 || _        	 || _        	 || _        y r   incoming_allowoutgoing_application_sidoutgoing_application_paramsr"   r    )r#   r>   r?   r@   r"   r    s         r   r$   zVoiceGrant.__init__R   s;     -(@%+F(#6 &r   c                      y)Nvoicer'   r(   s    r   r)   zVoiceGrant.keye       r   c                 .   i }| j                   du ri |d<   d|d   d<   | j                  r5i |d<   | j                  |d   d<   | j                  r| j                  |d   d<   | j                  r| j                  |d<   | j                  r| j                  |d<   |S )	NTincomingallowoutgoingapplication_sidparamsr"   r    r=   r+   s     r   r-   zVoiceGrant.to_payloadi   s    $& "E*)-E*g&(( "E*373P3PE*/0//.2.N.Nj!(+##+/+C+CE'(#'#3#3E- r   )NNNNNr.   r'   r   r   r;   r;   O   s4    3 !%$( &  r   r;   c                   .    e Zd ZdZddZed        Zd Zy)
VideoGrantzGrant to access Twilio VideoNc                     || _         y r   room)r#   rN   s     r   r$   zVideoGrant.__init__   s	    	r   c                      y)Nvideor'   r(   s    r   r)   zVideoGrant.key   rC   r   c                 @    i }| j                   r| j                   |d<   |S )NrN   rM   r+   s     r   r-   zVideoGrant.to_payload   s     99 IIE&Mr   r   r.   r'   r   r   rK   rK      s#    &  r   rK   c                   .    e Zd ZdZddZed        Zd Zy)TaskRouterGrantz!Grant to access Twilio TaskRouterNc                 .    || _         || _        || _        y r   workspace_sid
worker_sidrole)r#   rV   rW   rX   s       r   r$   zTaskRouterGrant.__init__   s    *$	r   c                      y)Ntask_routerr'   r(   s    r   r)   zTaskRouterGrant.key   s    r   c                     i }| j                   r| j                   |d<   | j                  r| j                  |d<   | j                  r| j                  |d<   |S )NrV   rW   rX   rU   r+   s     r   r-   zTaskRouterGrant.to_payload   sN    %)%7%7E/"??"&//E,99 IIE&Mr   )NNNr.   r'   r   r   rS   rS      s#    +
  	r   rS   c                   .    e Zd ZdZddZed        Zd Zy)PlaybackGrantz"Grant to access Twilio Live streamNc                     || _         y)zFInitialize a PlaybackGrant with a grant retrieved from the Twilio API.Nr,   r+   s     r   r$   zPlaybackGrant.__init__   s	    
r   c                      y)zReturn the grant's key.playerr'   r(   s    r   r)   zPlaybackGrant.key   s     r   c                     | j                   S )zReturn the grant.r_   r(   s    r   r-   zPlaybackGrant.to_payload   s    zzr   r   r.   r'   r   r   r]   r]      s#    ,  r   r]   )twilio.jwt.access_tokenr   r   r   r   r   r4   r;   rK   rS   r]   r'   r   r   <module>rd      sc    4  &  B  *-! -`! $& 0$ r   