
                         2   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 rS r\
R&                  \
R(                  " \
R*                  R,                  5       " S S\
R.                  5      5       5       r\
R&                  \
R(                  " \
R*                  R2                  5       " S S\5      5       5       r\
R&                  \
R(                  " \
R*                  R6                  5       " S S\5      5       5       rg)z!gcloud dns policy update command.    )absolute_import)division)unicode_literals)util)apis)base)flags)resource_args)logc                    [         R                  " 5       R                  U 5        [         R                  " 5       R                  U 5        [         R                  " 5       R                  U 5        [         R
                  " 5       R                  U 5        [         R                  " 5       R                  U 5        [         R                  " 5       R                  U 5        [         R                  " SS9R                  U 5        g )NT)update)	r	   GetPolicyDescriptionArgAddToParserGetPolicyNetworksArgGetPolicyInboundForwardingArgGetPolicyAltNameServersArgGetPolicyLoggingArg!GetPolicyPrivateAltNameServersArgGetEnableDns64AllQueriesArgparsers    "lib/surface/dns/policies/update.py_AddArgsCommonr      s    !--f5**62%%'33F;""$008))&1))+77?##40<<VD    c                      g)N)networksdescriptionenable_inbound_forwardingenable_loggingalternative_name_serversenable_dns64_all_queries r"   r   r   _ArgsNeededForUpdateCommonr#   (   s    
r   c                   4    \ rS rSrSrS r\S 5       rS rSr	g)UpdateGA3   Update an existing Cloud DNS policy.

Update an existing Cloud DNS policy.

## EXAMPLES

To change the description of a policy, run:

  $ {command} mypolicy --description="Hello, world!"

c                     [         R                  " U5      n[        R                  " SU5      nUR	                  UR                  5       UR                  S9nUR                  R                  U5      $ )zGet policy to be Updated.dns)policyproject)	r   GetApiClientr   GetMessagesModuleDnsPoliciesGetRequestNamer+   policiesGet)self
policy_refapi_versionclientmget_requests         r   _FetchPolicyUpdateGA._FetchPolicyB   s`    {+Fuk2A)) **<*< * >K??{++r   c                 |    [         R                  " U SSS9  [        U 5        U R                  R	                  S5        g )N	to updatev1verbr4   jsonr
   AddPolicyResourceArgr   display_info	AddFormatr   s    r   ArgsUpdateGA.ArgsJ   s3    &&[d46
!!&)r   c                   ^ [         R                  " U R                  5       5      n[         R                  " U5      n[        R
                  " SU5      nTR                  R                  R                  5       nU R                  XR5      n[        5       n[        U4S jU 5       5      (       d!  [        R                  R                  S5        U$ TR                  S5      (       aI  TR                   S/:X  a  / Tl        ["        R$                  " TR                   UR&                  U5      Ul        TR                  S5      (       d  TR                  S5      (       a_  TR(                  S/:X  a  / Tl        TR*                  S/:X  a  / Tl        ["        R,                  " UTR(                  TR*                  S9Ul        TR                  S	5      (       a  TR0                  Ul        TR                  S
5      (       a  TR4                  Ul        TR                  S5      (       a+  UR9                  UR;                  TR<                  S9S9Ul        TR                  S5      (       a  TR@                  Ul         URC                  URD                  UUR&                  S9nURF                  RI                  U5      R                  n	[        RJ                  " U	RD                  SS9  U	$ )Nr)   c              3   F   >#    U  H  nTR                  U5      v   M     g 7fNIsSpecified.0argargss     r   	<genexpr>UpdateGA.Run.<locals>.<genexpr>Z   !     G0Ft$$0F   !Nothing to update.r    r     private_alternative_name_serversversionserver_listprivate_server_listr   r   r!   
allQueriesscoper   r*   policyResourcer+   Policykind&r   GetApiFromTrackReleaseTrackr,   r   r-   CONCEPTSr*   Parser8   r#   anyr   statusPrintrJ   r   command_utilParsePolicyNetworksr+   r    rU   ParseAltNameServersalternativeNameServerConfigr   enableInboundForwardingr   enableLoggingPolicyDns64ConfigPolicyDns64ConfigScoper!   dns64Configr   DnsPoliciesUpdateRequestnamer0   UpdateUpdatedResource
r2   rN   r4   r5   messagesr3   	to_updateargs_needed_for_update
update_requpdated_policys
    `        r   RunUpdateGA.RunQ   sq   &&t'8'8':;K{+F%%e[9H %%++-J!!*:I79G0FGGG	jj+,
##	2$	';;
--++[:i 233t7G7G*8, 8,		&	&2$	.(*%		.	.2$	602-.:.N.N33"CC/Ei+
 344*.*H*Hi'()) $ 3 3i233&88//66 0  9 i &&"..i22~~ "" 3 $J
 __++J7>>N++(;r   r"   N)
__name__
__module____qualname____firstlineno____doc__r8   staticmethodrD   r~   __static_attributes__r"   r   r   r%   r%   3   s%    
, * *7r   r%   c                   .    \ rS rSrSr\S 5       rS rSrg)
UpdateBeta   r'   c                 |    [         R                  " U SSS9  [        U 5        U R                  R	                  S5        g )Nr;   v1beta2r=   r?   r@   r   s    r   rD   UpdateBeta.Args   s3    &&[i96
!!&)r   c                   ^ [         R                  " U R                  5       5      n[         R                  " U5      n[        R
                  " SU5      nTR                  R                  R                  5       nU R                  XR5      n[        5       n[        U4S jU 5       5      (       d!  [        R                  R                  S5        U$ TR                  S5      (       aI  TR                   S/:X  a  / Tl        ["        R$                  " TR                   UR&                  U5      Ul        TR                  S5      (       d  TR                  S5      (       a_  TR(                  S/:X  a  / Tl        TR*                  S/:X  a  / Tl        ["        R,                  " UTR(                  TR*                  S9Ul        TR                  S	5      (       a  TR0                  Ul        TR                  S
5      (       a  TR4                  Ul        TR                  S5      (       a+  UR9                  UR;                  TR<                  S9S9Ul        TR                  S5      (       a  TR@                  Ul         URC                  URD                  UUR&                  S9nURF                  RI                  U5      R                  n	[        RJ                  " U	RD                  SS9  U	$ )Nr)   c              3   F   >#    U  H  nTR                  U5      v   M     g 7frH   rI   rK   s     r   rO   !UpdateBeta.Run.<locals>.<genexpr>   rQ   rR   rS   r   rT   r    rU   rV   r   r   r!   rZ   r\   r   r^   r`   ra   rc   rx   s
    `        r   r~   UpdateBeta.Run   sq   &&t'8'8':;K{+F%%e[9H %%++-J!!*:I79G0FGGG	jj+,
##	2$	';;
--++[:i 233t7G7G*8, 8,		&	&2$	.(*%		.	.2$	602-.:.N.N33"CC/Ei+
 344*.*H*Hi'()) $ 3 3i233&88//66 0  9 i &&"..i22~~ "" 3 $J
 __++J7>>N++(;r   r"   N)	r   r   r   r   r   r   rD   r~   r   r"   r   r   r   r      s     
 * *5r   r   c                   (    \ rS rSrSr\S 5       rSrg)UpdateAlpha   r'   c                 |    [         R                  " U SSS9  [        U 5        U R                  R	                  S5        g )Nr;   v1alpha2r=   r?   r@   r   s    r   rD   UpdateAlpha.Args   s3    &&[j:6
!!&)r   r"   N)r   r   r   r   r   r   rD   r   r"   r   r   r   r      s    
 * *r   r   N)r   
__future__r   r   r   googlecloudsdk.api_lib.dnsr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   googlecloudsdk.command_lib.dnsr	   r
   rk   googlecloudsdk.corer   r   r#   UniverseCompatibleReleaseTracksre   GAUpdateCommandr%   BETAr   ALPHAr   r"   r   r   <module>r      s   ( &  ' + , ( 0 8 ? #E D%%(()St!! S * Sl D%%**+I I , IX D%%++,** * - *r   