
    O                        d Z ddlmZ ddlmZ ddlmZ ddlZddlmZ ddl	m
Z
 ddlmZ dd	lmZ d
Zej                  ej                   egZe
j$                   e
j&                  e
j(                  j*                  e
j(                  j,                  e
j(                  j.                         G d de
j0                                      Zy)*Generate an IAM login token for Cloud SQL.    )absolute_import)division)unicode_literalsN)util)base)flags)generate_login_token_utilz0https://www.googleapis.com/auth/sqlservice.loginc                   p    e Zd ZdZ ej
                  d       ej
                  d      dZed        Zd Z	y)GenerateLoginTokenr   zc          {command} generates an IAM token to use for logging in to Cloud SQL instances.
          aQ            To generate an IAM login token using gcloud credentials, run:

            $ {command}

          To generate an IAM login token using application default credentials, run:

            $ {command} --application-default-credential

          To generate an IAM login token using gcloud credentials for instance `my-instance`, run:

            $ {command} --instance=my-instance

          To generate an IAM login token using application default credentials for instance `my-instance`, run:

            $ {command} --instance=my-instance --application-default-credential
          )DESCRIPTIONEXAMPLESc                     t        j                  |        | j                  ddd       | j                  j	                  d       y)zArgs is called by calliope to gather arguments for this command.

    Args:
      parser: An argparse parser that you can use to add arguments that go on
        the command line after this command. Positional arguments are allowed.
    z --application-default-credential
store_truez@Use application default credentials to generate the login token.)actionhelpz$value[teriminator="",private](token)N)r	   AddOptionalInstanceadd_argumentdisplay_info	AddFormat)parsers    'lib/surface/sql/generate_login_token.pyArgszGenerateLoginToken.Args@   sF     
f%
*O  Q !!"HI    c                     |j                   rt        j                  t              S t        j                  t              }d|iS )zDRuns the command to reschedule maintenance for a Cloud SQL instance.token)application_default_credentialr
   generate_login_token_from_adc_SCOPES%generate_login_token_from_gcloud_auth)selfargsr   s      r   RunzGenerateLoginToken.RunO   s:    **&DDWMM'MM
eur   N)
__name__
__module____qualname____doc__textwrapdedentdetailed_helpstaticmethodr   r#    r   r   r   r   !   sS     3 (//   (//  -2 J Jr   r   )r'   
__future__r   r   r   r(   googlecloudsdk.api_lib.authr   	auth_utilgooglecloudsdk.callioper   googlecloudsdk.command_lib.sqlr	   r
   
_SQL_LOGINOPENIDUSER_EMAIL_SCOPEr   DefaultUniverseOnlyReleaseTracksReleaseTrackGABETAALPHACommandr   r,   r   r   <module>r<      s    1 &  '  9 ( 0 D?
Y77
D D%%(($*;*;*@*@%%++-2 2- 2r   