
                         
   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Jr  SSKJ	r	  SSK
Jr  SS	K
Jr  SS
KJr  SSS.rS rS rS rS r\	R(                  " \	R*                  R,                  5       " S S\	R.                  5      5       r\	R(                  " \	R*                  R2                  5       " S S\	R.                  5      5       r\	R(                  " \	R*                  R6                  5       " S S\	R.                  5      5       rg)zReplaces a user's password policy in a given instance.

Replaces a user's password policy in a given instance with specified policy.
    )absolute_import)division)unicode_literals)api_util)
operations)base)flags)users)
propertiesz{description}a            To replace the password policy with 2 minutes password
          expiration time for ``my-user'' in instance ``prod-instance'', run:

            $ {command} my-user --instance=prod-instance --password-policy-password-expiration-duration=2m

          To clear the existing password policy of ``my-user'' in instance
          ``prod-instance'', run:

            $ {command} my-user --instance=prod-instance --clear-password-policy
          )DESCRIPTIONEXAMPLESc                    [         R                  " U 5        [         R                  " U 5        [         R                  " U 5        [         R                  " U 5        [         R
                  " U 5        [         R                  " U 5        [         R                  " U 5        [         R                  " U 5        [        R                  R                  U 5        U R                  R                  S5        gzArgs is called by calliope to gather arguments for this command.

Args:
  parser: An argparse parser that you can use it to add arguments that go on
    the command line after this command. Positional arguments are allowed.
N)r	   AddInstanceAddUsernameAddHost&AddPasswordPolicyAllowedFailedAttempts+AddPasswordPolicyPasswordExpirationDuration*AddPasswordPolicyEnableFailedAttemptsCheck+AddPasswordPolicyEnablePasswordVerification$AddPasswordPolicyClearPasswordPolicyr   
ASYNC_FLAGAddToParserdisplay_infoAddCacheUpdaterparsers    ,lib/surface/sql/users/set_password_policy.pyAddBaseArgsr   2   s     FF--..v633F;226:33F;,,V4//f%%%d+    c                     A g N r   s    r   AddBetaArgsr$   E       r    c                     A g r"   r#   r   s    r   AddAlphaArgsr'   J   r%   r    c                 b   [         R                  " [         R                  5      nUR                  nUR                  nUR
                  R                  U R                  S[        R                  R                  R                  R                  0SS9nSnUR                  R                  UR                  UR                  U R                  U R                   U R"                  S95      n[        R$                  " X6R&                  U 5      nUR                  R)                  UR+                  UR                  U R                  U R                   U R"                  UR-                  UR                  U R                  U R                   U R"                  US9S95      nUR
                  R/                  SUR0                  UR                  S	9nU R2                  (       a=  UR4                  R                  UR7                  UR                  UR8                  S
95      $ [4        R:                  R=                  X%S5        g)zChanges a user's password in a given instance.

Args:
  args: argparse.Namespace, The arguments that this command was invoked
    with.

Returns:
  SQL user resource iterator.
projectzsql.instances)params
collectionN)r)   instancenamehost)r)   r,   r-   r.   passwordPolicy)r)   r,   r-   r.   userzsql.operations)	operationr)   )r)   r1   zUpdating Cloud SQL user)r   	SqlClientAPI_VERSION_DEFAULT
sql_clientsql_messagesresource_parserParser,   r   VALUEScorer)   	GetOrFailr
   GetSqlUsersGetRequestusernamer.   CreatePasswordPolicyFromArgsr/   UpdateSqlUsersUpdateRequestUserCreater-   async_r   SqlOperationsGetRequestr1   OperationsV1Beta4WaitForOperation)	argsclientr4   r5   instance_refoperation_refr0   password_policyresult_operations	            r   RunBaseSetPasswordCommandrM   O   s    h::;&  *$$,''--
mm**//77AAB  . ", -					%%&&==}}yy	 & 
$ 66''//  %%,,((&&==}}yy  "**}}==99, ! . ) 
/0 ((// %%"" 0 $- 
[[  $$,,!))]5L5L 	- 	NO O //
0IKr    c                   2    \ rS rSrSr\r\S 5       rS r	Sr
g)SetPasswordPolicy   Replaces a user's password policy in a given instance.

Replaces a user's password policy in a given instance with a specified
username and host.
c                     [        U 5        gr   )r   r   s    r   ArgsSetPasswordPolicy.Args   s     r    c                     [        U5        g r"   rM   selfrG   s     r   RunSetPasswordPolicy.Run   
    d#r    r#   N__name__
__module____qualname____firstlineno____doc__DETAILED_HELPdetailed_helpstaticmethodrS   rY   __static_attributes__r#   r    r   rO   rO      s%      - $r    rO   c                   2    \ rS rSrSr\r\S 5       rS r	Sr
g)SetPasswordPolicyBeta   rQ   c                 0    [        U 5        [        U 5        gr   )r$   r   r   s    r   rS   SetPasswordPolicyBeta.Args   s     r    c                     [        U5        g r"   rV   rW   s     r   rY   SetPasswordPolicyBeta.Run   r[   r    r#   Nr\   r#   r    r   rg   rg      s%      - $r    rg   c                   2    \ rS rSrSr\r\S 5       rS r	Sr
g)SetPasswordPolicyAlpha   rQ   c                 F    [        U 5        [        U 5        [        U 5        gr   )r'   r$   r   r   s    r   rS   SetPasswordPolicyAlpha.Args   s     r    c                     [        U5        g r"   rV   rW   s     r   rY   SetPasswordPolicyAlpha.Run   r[   r    r#   Nr\   r#   r    r   rn   rn      s%      -	 	$r    rn   N)ra   
__future__r   r   r   googlecloudsdk.api_lib.sqlr   r   googlecloudsdk.callioper   googlecloudsdk.command_lib.sqlr	   r
   googlecloudsdk.corer   rb   r   r$   r'   rM   ReleaseTracksReleaseTrackGAUpdateCommandrO   BETArg   ALPHArn   r#   r    r   <module>r      s   
 '  ' / 1 ( 0 0 *
 	
		$,&

3Kl D%%(()$** $ *$. D%%**+$D.. $ ,$0 D%%++,$T// $ -$r    