
    
                         S r SSKJr  SSKJr  SSKJr  SSKJr  SSKrSSKJr  SSK	J
r
   " S	 S
\R                  5      rg)zJImplementation of credentials that refreshes using the iamcredentials API.    )absolute_import)print_function)division)unicode_literalsN)client)IamcredentailsApic                   H   ^  \ rS rSrSrU 4S jr\S 5       rS rS r	Sr
U =r$ )ImpersonationCredentials   z%Y-%m-%dT%H:%M:%SZc                 "  > Xl         [        XC5      U l        U R                  R                  X5      nUR                  U l        U R                  UR                  5      U l        [        [        U ]/  U R
                  S S S U R                  S S US9  g )N)scopes)_service_account_idr   apiGenerateAccessTokenaccessTokenaccess_token_ConvertExpiryTime
expireTimetoken_expirysuperr
   __init__)selfservice_account_idr   credentialsloggerresponse	__class__s         2platform/gsutil/gslib/impersonation_credentials.pyr   !ImpersonationCredentials.__init__    s    1 5DHxx++,>GH ,,D//0C0CDD	
"D243D3D373737373D3D3737:@ 3 B    c                     U R                   $ N)r   )r   s    r   r   +ImpersonationCredentials.service_account_id1   s    ###r    c                     U R                   R                  U R                  [        U R                  5      5      nUR
                  U l        U R                  UR                  5      U l	        g r"   )
r   r   r   listr   r   r   r   r   r   )r   httpr   s      r   _refresh!ImpersonationCredentials._refresh5   sS     xx++D,D,D,0,=?H ,,D//0C0CDDr    c                 ^    [         R                   R                  U[        R                  5      $ r"   )datetimestrptimer
   _EXPIRY_FORMAT)r   values     r   r   +ImpersonationCredentials._ConvertExpiryTime=   s(    %%e&>&M&MO Or    )r   r   r   r   )__name__
__module____qualname____firstlineno__r,   r   propertyr   r'   r   __static_attributes____classcell__)r   s   @r   r
   r
      s4    '.B" $ $EO Or    r
   )__doc__
__future__r   r   r   r   r*   oauth2clientr   gslib.iamcredentials_apir   OAuth2Credentialsr
    r    r   <module>r<      s4    Q & %  '   6"Ov77 "Or    