
    E0j-L                        d dl Z d dlZ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  G d d	          Z G d
 d          Z G d de          Z G d de          Z G d dee          Z G d dee          Z G d dee          Z G d de          Z G d dee          Z G d de          ZdS )    N)urlparseparse_qs)TeaCore)auth_constant)parameter_helper)CredentialException)CredentialModelc                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )

Credentialc                     d S N selfs    l/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/alibabacloud_credentials/credentials.pyget_access_key_idzCredential.get_access_key_id           c                     d S r   r   r   s    r   get_access_key_secretz Credential.get_access_key_secret   r   r   c                     d S r   r   r   s    r   get_security_tokenzCredential.get_security_token   r   r   c                 
   K   d S r   r   r   s    r   get_access_key_id_asyncz"Credential.get_access_key_id_async         r   c                 
   K   d S r   r   r   s    r   get_access_key_secret_asyncz&Credential.get_access_key_secret_async   r   r   c                 
   K   d S r   r   r   s    r   get_security_token_asyncz#Credential.get_security_token_async   r   r   c                     d S r   r   r   s    r   get_credentialzCredential.get_credential!   r   r   c                 
   K   d S r   r   r   s    r   get_credential_asynczCredential.get_credential_async$   r   r   N)__name__
__module____qualname__r   r   r   r   r   r   r!   r#   r   r   r   r   r      s                          r   r   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS ) _AutomaticallyRefreshCredentialsc                 "    || _         || _        d S r   )
expirationprovider)r   r*   r+   s      r   __init__z)_AutomaticallyRefreshCredentials.__init__)   s    $ r   c                     | j         dS t          t          j        t          j                                        | j         dz
  k    S NT   r*   inttimemktime	localtimer   s    r   _with_should_refreshz5_AutomaticallyRefreshCredentials._with_should_refresh-   s;    ?"44;t~//0011do6KLLr   c                 4    | j                                         S r   )r+   get_credentialsr   s    r   _get_new_credentialz4_AutomaticallyRefreshCredentials._get_new_credential2   s    },,...r   c                 V    |                                  r|                                 S d S r   )r5   r8   r   s    r   _refresh_credentialz4_AutomaticallyRefreshCredentials._refresh_credential5   s2    $$&& 	.++---	. 	.r   c                 D   K   | j                                          d {V S r   )r+   get_credentials_asyncr   s    r   _get_new_credential_asyncz:_AutomaticallyRefreshCredentials._get_new_credential_async9   s,      ]88:::::::::r   c                 f   K   |                                  r|                                  d {V S d S r   )r5   r=   r   s    r   _refresh_credential_asyncz:_AutomaticallyRefreshCredentials._refresh_credential_async<   sH      $$&& 	:77999999999	: 	:r   N)	r$   r%   r&   r,   r5   r8   r:   r=   r?   r   r   r   r(   r(   (   sq        ! ! !M M M
/ / /. . .; ; ;: : : : :r   r(   c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
dS )	AccessKeyCredentialc                 D    || _         || _        t          j        | _        d S r   )access_key_idaccess_key_secretac
ACCESS_KEYcredential_type)r   rC   rD   s      r   r,   zAccessKeyCredential.__init__D   s"    *!2!}r   c                     | j         S r   rC   r   s    r   r   z%AccessKeyCredential.get_access_key_idI       !!r   c                     | j         S r   rD   r   s    r   r   z)AccessKeyCredential.get_access_key_secretL       %%r   c                    K   | j         S r   rI   r   s    r   r   z+AccessKeyCredential.get_access_key_id_asyncO         !!r   c                    K   | j         S r   rL   r   s    r   r   z/AccessKeyCredential.get_access_key_secret_asyncR         %%r   c                 N    t          | j        | j        t          j                  S N)rC   rD   typer	   rC   rD   rE   rF   r   s    r   r!   z"AccessKeyCredential.get_credentialU   s*    ,"4
 
 
 	
r   c                 R   K   t          | j        | j        t          j                  S rS   rU   r   s    r   r#   z(AccessKeyCredential.get_credential_async\   s.      ,"4
 
 
 	
r   N)r$   r%   r&   __doc__r,   r   r   r   r   r!   r#   r   r   r   rA   rA   A   s        - - -
" " "& & &" " "& & &
 
 

 
 
 
 
r   rA   c                   0    e Zd Zd Zd Zd Zd ZdefdZdS )BearerTokenCredentialc                 6    || _         t          j        | _        d S r   )bearer_tokenrE   BEARERrG   )r   r[   s     r   r,   zBearerTokenCredential.__init__g   s    (!yr   c                 B    t          | j        t          j                  S N)r[   rT   r	   r[   rE   r\   r   s    r   r!   z$BearerTokenCredential.get_credentialk   s$    *
 
 
 	
r   c                 F   K   t          | j        t          j                  S r^   r_   r   s    r   r#   z*BearerTokenCredential.get_credential_asyncq   s(      *
 
 
 	
r   returnc                     | j         S r   )rG   r   s    r   get_typezBearerTokenCredential.get_typew   s    ##r   N)	r$   r%   r&   rW   r,   r!   r#   strrc   r   r   r   rY   rY   d   sb        ) ) )
 
 

 
 
$# $ $ $ $ $ $r   rY   c                   f     e Zd Zd Z fdZ fdZ fdZd Zd Zd Z	d Z
d Zd	 Zd
 Zd Z xZS )EcsRamRoleCredentialc                     t                                          ||           || _        || _        || _        t
          j        | _        d S r   )superr,   rC   rD   security_tokenrE   ECS_RAM_ROLErG   r   rC   rD   ri   r*   r+   	__class__s         r   r,   zEcsRamRoleCredential.__init__~   E    X...*!2,!r   c                     t                                                      }|r2|j        | _        |j        | _        |j        | _        |j        | _        d S d S r   rh   r:   rC   rD   r*   ri   r   
credentialrl   s     r   r:   z(EcsRamRoleCredential._refresh_credential   [    WW0022
 	<!+!9D%/%AD"(3DO",";D		< 	<r   c                    K   t                                                       d {V }|r2|j        | _        |j        | _        |j        | _        |j        | _        d S d S r   rh   r?   rC   rD   r*   ri   rp   s     r   r?   z.EcsRamRoleCredential._refresh_credential_async   q       77<<>>>>>>>>
 	<!+!9D%/%AD"(3DO",";D		< 	<r   c                 8    |                                   | j        S r   r:   rC   r   s    r   r   z&EcsRamRoleCredential.get_access_key_id         """!!r   c                 8    |                                   | j        S r   r:   rD   r   s    r   r   z*EcsRamRoleCredential.get_access_key_secret         """%%r   c                 8    |                                   | j        S r   r:   ri   r   s    r   r   z'EcsRamRoleCredential.get_security_token         """""r   c                 H   K   |                                   d {V  | j        S r   r?   rC   r   s    r   r   z,EcsRamRoleCredential.get_access_key_id_async   3      ,,.........!!r   c                 H   K   |                                   d {V  | j        S r   r?   rD   r   s    r   r   z0EcsRamRoleCredential.get_access_key_secret_async   3      ,,.........%%r   c                 H   K   |                                   d {V  | j        S r   r?   ri   r   s    r   r   z-EcsRamRoleCredential.get_security_token_async   3      ,,.........""r   c                     |                                   t          | j        | j        | j        t
          j                  S N)rC   rD   ri   rT   )r:   r	   rC   rD   ri   rE   rj   r   s    r   r!   z#EcsRamRoleCredential.get_credential   B      ""","4.	
 
 
 	
r   c                    K   |                                   d {V  t          | j        | j        | j        t
          j                  S r   )r?   r	   rC   rD   ri   rE   rj   r   s    r   r#   z)EcsRamRoleCredential.get_credential_async   X      ,,.........,"4.	
 
 
 	
r   r$   r%   r&   rW   r,   r:   r?   r   r   r   r   r   r   r!   r#   __classcell__rl   s   @r   rf   rf   {           / / / / /< < < < << < < < <" " "& & &# # #" " "& & &# # #
 
 

 
 
 
 
 
 
r   rf   c                   f     e Zd Zd Z fdZ fdZ fdZd Zd Zd Z	d Z
d Zd	 Zd
 Zd Z xZS )RamRoleArnCredentialc                     t                                          ||           || _        || _        || _        t
          j        | _        d S r   )rh   r,   rC   rD   ri   rE   RAM_ROLE_ARNrG   rk   s         r   r,   zRamRoleArnCredential.__init__   rm   r   c                     t                                                      }|r2|j        | _        |j        | _        |j        | _        |j        | _        d S d S r   ro   rp   s     r   r:   z(RamRoleArnCredential._refresh_credential   rr   r   c                    K   t                                                       d {V }|r2|j        | _        |j        | _        |j        | _        |j        | _        d S d S r   rt   rp   s     r   r?   z.RamRoleArnCredential._refresh_credential_async   ru   r   c                 8    |                                   | j        S r   rw   r   s    r   r   z&RamRoleArnCredential.get_access_key_id   rx   r   c                 8    |                                   | j        S r   rz   r   s    r   r   z*RamRoleArnCredential.get_access_key_secret   r{   r   c                 8    |                                   | j        S r   r}   r   s    r   r   z'RamRoleArnCredential.get_security_token   r~   r   c                 H   K   |                                   d {V  | j        S r   r   r   s    r   r   z,RamRoleArnCredential.get_access_key_id_async   r   r   c                 H   K   |                                   d {V  | j        S r   r   r   s    r   r   z0RamRoleArnCredential.get_access_key_secret_async   r   r   c                 H   K   |                                   d {V  | j        S r   r   r   s    r   r   z-RamRoleArnCredential.get_security_token_async   r   r   c                     |                                   t          | j        | j        | j        t
          j                  S r   )r:   r	   rC   rD   ri   rE   r   r   s    r   r!   z#RamRoleArnCredential.get_credential   r   r   c                    K   |                                   d {V  t          | j        | j        | j        t
          j                  S r   )r?   r	   rC   rD   ri   rE   r   r   s    r   r#   z)RamRoleArnCredential.get_credential_async   r   r   r   r   s   @r   r   r      r   r   r   c                   f     e Zd Zd Z fdZ fdZ fdZd Zd Zd Z	d Z
d Zd	 Zd
 Zd Z xZS )OIDCRoleArnCredentialc                     t                                          ||           || _        || _        || _        t
          j        | _        d S r   )rh   r,   rC   rD   ri   rE   OIDC_ROLE_ARNrG   rk   s         r   r,   zOIDCRoleArnCredential.__init__  sF    X...*!2,!/r   c                     t                                                      }|r2|j        | _        |j        | _        |j        | _        |j        | _        d S d S r   ro   rp   s     r   r:   z)OIDCRoleArnCredential._refresh_credential  rr   r   c                    K   t                                                       d {V }|r2|j        | _        |j        | _        |j        | _        |j        | _        d S d S r   rt   rp   s     r   r?   z/OIDCRoleArnCredential._refresh_credential_async  ru   r   c                 8    |                                   | j        S r   rw   r   s    r   r   z'OIDCRoleArnCredential.get_access_key_id  rx   r   c                 8    |                                   | j        S r   rz   r   s    r   r   z+OIDCRoleArnCredential.get_access_key_secret#  r{   r   c                 8    |                                   | j        S r   r}   r   s    r   r   z(OIDCRoleArnCredential.get_security_token'  r~   r   c                 H   K   |                                   d {V  | j        S r   r   r   s    r   r   z-OIDCRoleArnCredential.get_access_key_id_async+  r   r   c                 H   K   |                                   d {V  | j        S r   r   r   s    r   r   z1OIDCRoleArnCredential.get_access_key_secret_async/  r   r   c                 H   K   |                                   d {V  | j        S r   r   r   s    r   r   z.OIDCRoleArnCredential.get_security_token_async3  r   r   c                     |                                   t          | j        | j        | j        t
          j                  S r   )r:   r	   rC   rD   ri   rE   r   r   s    r   r!   z$OIDCRoleArnCredential.get_credential7  sC      ""","4.!	
 
 
 	
r   c                    K   |                                   d {V  t          | j        | j        | j        t
          j                  S r   )r?   r	   rC   rD   ri   rE   r   r   s    r   r#   z*OIDCRoleArnCredential.get_credential_async@  sY      ,,.........,"4.!	
 
 
 	
r   r   r   s   @r   r   r     s        0 0 0 0 0< < < < << < < < <" " "& & &# # #" " "& & &# # #
 
 

 
 
 
 
 
 
r   r   c                   f    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd ZdS )CredentialsURICredentialc                 n    d | _         d | _        d | _        d | _        || _        t
          j        | _        d S r   )rC   rD   ri   r*   credentials_urirE   CREDENTIALS_URIrG   )r   r   s     r   r,   z!CredentialsURICredential.__init__M  s:    !!%".!1r   c                     | j         dS t          t          j        t          j                                        | j         dz
  k    S r.   r0   r   s    r   _need_refreshz&CredentialsURICredential._need_refreshU  s;    ?"44;t~//0011do6KLLr   c                 Z    |                                  r|                                  d S d S r   )r   r8   r   s    r   _ensure_credentialz+CredentialsURICredential._ensure_credential[  s8     	'$$&&&&&	' 	'r   c                 j   K   |                                  r|                                  d {V  d S d S r   )r   r=   r   s    r   _ensure_credential_asyncz1CredentialsURICredential._ensure_credential_async_  sN       	30022222222222	3 	3r   c                    t          | j                  }t          j                    }|j        |j        d<   |j        |_        d|_        |j        |_	        t          |j                                                  D ]\  }}|D ]}||j        |<   t          j        |          }|j        dk    r/t!          d| j        z   dz   t#          |j                  z             |j                            d          }t)          j        |          }|                    d          }	|                    d          }
|                    d	          }|                    d
          }|                    d          }|	dk    rt!          d| j        z   dz   |	z             t/          j        |d          }t3          j        |          }|
| _        || _        || _        || _        d S NhostGET   zGet credentials from z failed,  HttpCode=zutf-8CodeAccessKeyIdAccessKeySecretSecurityToken
ExpirationSuccessz failed,  Code is z%Y-%m-%dT%H:%M:%SZ)r   r   phget_new_requesthostnameheadersportmethodpathpathnamer   queryitemsr   	do_actionstatus_coder   rd   bodydecodejsonloadsgetr2   strptimecalendartimegmrC   rD   ri   r*   )r   rtea_requestkeyvaluesvalueresponser   diccontent_codecontent_access_key_idcontent_access_key_secretcontent_security_tokencontent_expiration
time_array
time_stamps                   r   r8   z,CredentialsURICredential._get_new_credentialc  s   T)**(**&'jF#6" v#AG,,2244 	/ 	/KC / /).!#&&/$[113&&%'$*>>AVVY\]e]qYrYrrt t t}##G,,jwwv # 6 6$'GG,=$>$>!!$!9!9 WW\229$$%'$*>>AUUXddf f f ]#57KLL
_Z00
2!:4$r   c                 t  K   t          | j                  }t          j                    }|j        |j        d<   d|_        |j        |_        t          |j
                  |_
        t          j        |           d {V }|j        dk    r/t          d| j        z   dz   t          |j                  z             |j                            d          }t%          j        |          }|                    d          }|                    d          }|                    d	          }|                    d
          }	|                    d          }
|dk    rt          d| j        z   dz   |z             t+          j        |
d          }t/          j        |          }|| _        || _        |	| _        || _        d S r   )r   r   r   r   netlocr   r   r   r   r   r   r   async_do_actionr   r   rd   r   r   r   r   r   r2   r   r   r   rC   rD   ri   r*   )r   r   r   r   r   r   r   r   r   r   r   r   r   s                r   r=   z2CredentialsURICredential._get_new_credential_async  s     T)**(**&'hF#" v$QW-- 0========3&&%'$*>>AVVY\]e]qYrYrrt t t}##G,,jwwv # 6 6$'GG,=$>$>!!$!9!9 WW\229$$%'$*>>AUUXddf f f ]#57KLL
_Z00
2!:4$r   c                 8    |                                   | j        S r   )r   rC   r   s    r   r   z*CredentialsURICredential.get_access_key_id  s    !!!!!r   c                 8    |                                   | j        S r   )r   rD   r   s    r   r   z.CredentialsURICredential.get_access_key_secret  s    !!!%%r   c                 8    |                                   | j        S r   )r   ri   r   s    r   r   z+CredentialsURICredential.get_security_token  s    !!!""r   c                 H   K   |                                   d {V  | j        S r   )r   rC   r   s    r   r   z0CredentialsURICredential.get_access_key_id_async  s3      ++---------!!r   c                 H   K   |                                   d {V  | j        S r   )r   rD   r   s    r   r   z4CredentialsURICredential.get_access_key_secret_async  s3      ++---------%%r   c                 H   K   |                                   d {V  | j        S r   )r   ri   r   s    r   r   z1CredentialsURICredential.get_security_token_async  s3      ++---------""r   c                     |                                   t          | j        | j        | j        t
          j                  S r   )r   r	   rC   rD   ri   rE   r   r   s    r   r!   z'CredentialsURICredential.get_credential  sC    !!!,"4.#	
 
 
 	
r   c                    K   |                                   d {V  t          | j        | j        | j        t
          j                  S r   )r   r	   rC   rD   ri   rE   r   r   s    r   r#   z-CredentialsURICredential.get_credential_async  sY      ++---------,"4.#	
 
 
 	
r   N)r$   r%   r&   rW   r,   r   r   r   r8   r=   r   r   r   r   r   r   r!   r#   r   r   r   r   r   J  s        ""2 2 2M M M' ' '3 3 3"% "% "%H% % %B" " "& & &# # #" " "& & &# # #
 
 

 
 
 
 
r   r   c                   V     e Zd Z fdZ fdZ fdZd Zd Zd Zd Z	d Z
d	 Z xZS )
RsaKeyPairCredentialc                     t                                          ||           || _        || _        t          j        | _        d S r   )rh   r,   rC   rD   rE   RSA_KEY_PAIRrG   )r   rC   rD   r*   r+   rl   s        r   r,   zRsaKeyPairCredential.__init__  s=    X...*!2!r   c                     t                                                      }|r&|j        | _        |j        | _        |j        | _        d S d S r   )rh   r:   rC   rD   r*   rp   s     r   r:   z(RsaKeyPairCredential._refresh_credential  sN    WW0022
 	4!+!9D%/%AD"(3DOOO	4 	4r   c                    K   t                                                       d {V }|r2|j        | _        |j        | _        |j        | _        |j        | _        d S d S r   rt   rp   s     r   r?   z.RsaKeyPairCredential._refresh_credential_async  ru   r   c                 8    |                                   | j        S r   rw   r   s    r   r   z&RsaKeyPairCredential.get_access_key_id  rx   r   c                 8    |                                   | j        S r   rz   r   s    r   r   z*RsaKeyPairCredential.get_access_key_secret  r{   r   c                 H   K   |                                   d {V  | j        S r   r   r   s    r   r   z,RsaKeyPairCredential.get_access_key_id_async  r   r   c                 H   K   |                                   d {V  | j        S r   r   r   s    r   r   z0RsaKeyPairCredential.get_access_key_secret_async  r   r   c                 v    |                                   t          | j        | j        t          j                  S rS   )r:   r	   rC   rD   rE   r   r   s    r   r!   z#RsaKeyPairCredential.get_credential  s<      ""","4
 
 
 	
r   c                    K   |                                   d {V  t          | j        | j        t          j                  S rS   )r?   r	   rC   rD   rE   r   r   s    r   r#   z)RsaKeyPairCredential.get_credential_async  sR      ,,.........,"4
 
 
 	
r   )r$   r%   r&   r,   r:   r?   r   r   r   r   r!   r#   r   r   s   @r   r   r     s        / / / / /4 4 4 4 4< < < < <" " "& & &" " "& & &
 
 

 
 
 
 
 
 
r   r   c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )StsCredentialc                 R    || _         || _        || _        t          j        | _        d S r   )rC   rD   ri   rE   STSrG   )r   rC   rD   ri   s       r   r,   zStsCredential.__init__  s*    *!2,!vr   c                     | j         S r   rI   r   s    r   r   zStsCredential.get_access_key_id  rJ   r   c                     | j         S r   rL   r   s    r   r   z#StsCredential.get_access_key_secret  rM   r   c                     | j         S r   ri   r   s    r   r   z StsCredential.get_security_token  s    ""r   c                    K   | j         S r   rI   r   s    r   r   z%StsCredential.get_access_key_id_async  rO   r   c                    K   | j         S r   rL   r   s    r   r   z)StsCredential.get_access_key_secret_async  rQ   r   c                    K   | j         S r   r  r   s    r   r   z&StsCredential.get_security_token_async   s      ""r   c                 Z    t          | j        | j        | j        t          j                  S r   r	   rC   rD   ri   rE   r   r   s    r   r!   zStsCredential.get_credential#  s0    ,"4.	
 
 
 	
r   c                 ^   K   t          | j        | j        | j        t          j                  S r   r  r   s    r   r#   z"StsCredential.get_credential_async+  s4      ,"4.	
 
 
 	
r   N)r$   r%   r&   r,   r   r   r   r   r   r   r!   r#   r   r   r   r   r   
  s        & & &" " "& & &# # #" " "& & &# # #
 
 

 
 
 
 
r   r   )r   r   r2   urllib.parser   r   Tea.corer   alibabacloud_credentials.utilsr   rE   r   r   #alibabacloud_credentials.exceptionsr   alibabacloud_credentials.modelsr	   r   r(   rA   rY   rf   r   r   r   r   r   r   r   r   <module>r     sn      + + + + + + + +       > > > > > > A A A A A A C C C C C C ; ; ; ; ; ;       4: : : : : : : :2 
  
  
  
  
*  
  
  
F$ $ $ $ $J $ $ $.B
 B
 B
 B
 B
:'G B
 B
 B
JB
 B
 B
 B
 B
:'G B
 B
 B
JB
 B
 B
 B
 B
J(H B
 B
 B
JF
 F
 F
 F
 F
z F
 F
 F
R4
 4
 4
 4
 4
:'G 4
 4
 4
n'
 '
 '
 '
 '
J '
 '
 '
 '
 '
r   