
                             d 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 ddlmZ  G d d	ej                         Z G d
 dej                         Zd ZddZy)z Manages logic for refresh token.    )absolute_import)division)unicode_literals)
exceptions)store)clientc                       e Zd ZdZy)LoadingCredentialsErrorz/Reraise on oauth2client and google-auth errors.N__name__
__module____qualname____doc__     0lib/googlecloudsdk/api_lib/auth/refresh_token.pyr
   r
      s    7r   r
   c                       e Zd ZdZy)UnsupportedCredentialsTypez2Raised when credentials do not have refresh token.Nr   r   r   r   r   r   "   s    :r   r   c                 `    t        j                  |d      }t        j                  | |       |S )zAActivates credentials for given account with given refresh token.Tuse_google_auth)c_storeAcquireFromTokenActivateCredentials)accountrefresh_tokencredss      r   r   r   &   s0     
"
"T+% 
gu-	,r   Nc                    	 t        j                  | d      }t        |dd      }|t        dj                  |             |S # t        j                  t        j
                  f$ r t        j                  t              w xY w)a	  Returns refresh token for given account.

  Args:
    account: str, usually email like string,
        if not provided current account is used.

  Returns:
    str: refresh token

  Raises:
    UnsupportedCredentialsType: if credentials are not user credentials.
  Tr   r   Nz:Credentials for account {0} do not support refresh tokens.)r   Loadr   Errorgoogle_auth_exceptionsGoogleAuthErrorcalliope_exceptionsNewErrorFromCurrentExceptionr
   getattrr   format)r   r   r   s      r   GetForAccountr'   1   s    !LL$7E
 %$7-
$D	  
 ,,.>>	? !

:
:! !!s   A =B)N)r   
__future__r   r   r   googlecloudsdk.callioper   r#   googlecloudsdk.coregooglecloudsdk.core.credentialsr   r   oauth2clientr   google.authr!   r    r
   r   r   r'   r   r   r   <module>r.      sP     ' &  ' E * <  <8j.. 8;!1!1 ;r   