
    .                        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KJr  SSKJr  S rS rS rS r\
R,                  " \
R.                  R0                  5       " S S\
R2                  5      5       r\
R,                  " \
R.                  R6                  5       " S S\5      5       r\
R,                  " \
R.                  R:                  5       " S S\5      5       rg)zChanges a user's password in a given instance.

Changes a user's password in a given instance with specified username and host.
    )absolute_import)division)unicode_literals)api_util)
operations)
users_util)base)flags)users)
properties)
console_ioc                 x   [         R                  " U 5        [         R                  " U 5        [         R                  " U 5        U R	                  5       n[         R
                  " U5        [         R                  " U5        U R	                  5       n[         R                  " U5        [         R                  " U5        g N)	r
   AddInstanceAddUsernameAddHostadd_mutually_exclusive_groupAddPasswordAddPromptForPasswordAddUserDiscardDualPasswordAddUserRetainPassword)parserpassword_groupdual_password_groups      %lib/surface/sql/users/set_password.pyAddBaseArgsr   "   s    FF--668.N#^,;;=""#6712    c                     A g r    r   s    r   AddBetaArgsr!   .   s    r   c                     [        U 5        g r   )r!   r    s    r   AddAlphaArgsr#   3   s    fr   c                    [         R                  " [         R                  5      nUR                  nU R                  (       a  [
        R                  " S5      U l        [        R                  " U 5        UR                  nUR                  R                  U R                  S[        R                  R                   R"                  R$                  0SS9n[        R&                  " X05      n[(        R*                  " UU UUR"                  5      nUR                  R-                  U5      nUR                  R/                  SUR0                  UR"                  S9nU R2                  (       a=  UR4                  R7                  UR9                  UR"                  UR:                  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.
zNew Password: projectzsql.instances)params
collectionzsql.operations)	operationr%   )r%   r(   zUpdating Cloud SQL userN) r   	SqlClientAPI_VERSION_DEFAULT
sql_clientprompt_for_passwordr   PromptPasswordpasswordr   ValidateSetPasswordRequestsql_messagesresource_parserParseinstancer   VALUEScorer%   	GetOrFailParseDualPasswordTyper   CreateSetPasswordRequestUpdateCreatenameasync_r   GetSqlOperationsGetRequestr(   OperationsV1Beta4WaitForOperation)	argsclientr+   r0   instance_refdual_password_typerequestresult_operationoperation_refs	            r   RunBaseSetPasswordCommandrH   8   s    h::;&  *	--.>?DM""4($$,''--
mm**//77AAB  . ",
 22<F//040B0<0D0DF'  %%,,W5((// %%"" 0 $- 
[[  $$,,!))]5L5L 	- 	NO O //
0IKr   c                   .    \ rS rSrSr\S 5       rS rSrg)r:   a   Changes a user's password in a given instance.

Changes a user's password in a given instance with specified username and
host.
c                     [        U 5        [        R                  R                  U 5        U R                  R                  S 5        g r   )r   r	   
ASYNC_FLAGAddToParserdisplay_infoAddCacheUpdaterr    s    r   ArgsCreate.Argsi   s0    OO'
''-r   c                     [        U5      $ r   rH   selfrA   s     r   Run
Create.Runo       $T**r   r   N	__name__
__module____qualname____firstlineno____doc__staticmethodrQ   rW   __static_attributes__r   r   r   r:   r:   a   s      . .
+r   r:   c                   .    \ rS rSrSr\S 5       rS rSrg)
CreateBetas   rK   c                     [        U 5        [        U 5        [        R                  R	                  U 5        U R
                  R                  S 5        g r   )r   r!   r	   rM   rN   rO   rP   r    s    r   rQ   CreateBeta.Args{   s8    OO'
''-r   c                     [        U5      $ r   rT   rU   s     r   rW   CreateBeta.Run   rY   r   r   NrZ   r   r   r   rc   rc   s         . .+r   rc   c                   .    \ rS rSrSr\S 5       rS rSrg)CreateAlpha   rK   c                     [        U 5        [        U 5        [        R                  R	                  U 5        U R
                  R                  S 5        g r   )r   r#   r	   rM   rN   rO   rP   r    s    r   rQ   CreateAlpha.Args   s8    OO'
''-r   c                     [        U5      $ r   rT   rU   s     r   rW   CreateAlpha.Run   rY   r   r   NrZ   r   r   r   rk   rk      ri   r   rk   N)r_   
__future__r   r   r   googlecloudsdk.api_lib.sqlr   r   r   googlecloudsdk.callioper	   googlecloudsdk.command_lib.sqlr
   r   googlecloudsdk.corer   googlecloudsdk.core.consoler   r   r!   r#   rH   ReleaseTracksReleaseTrackGACreateCommandr:   BETArc   ALPHArk   r   r   r   <module>r}      s   
 '  ' / 1 1 ( 0 0 * 2	3

&KR D%%(()+T + *+" D%%**++ + ,+$ D%%++,+* + -+r   