
    u                     t   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\
R$                  " \
R&                  R(                  \
R&                  R*                  \
R&                  R,                  5      \
R.                   " S S\
R0                  5      5       5       rg)z,gcloud dns response-policies 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        g N)r	   GetResponsePolicyDescriptionArgAddToParserGetResponsePolicyNetworksArgGetResponsePolicyGkeClustersArgGetLocationArg)parsers    +lib/surface/dns/response_policies/update.py_AddArgsCommonr      s^    '')55f=$$&226:'')55f=$$V,    c                   D    \ rS rSrSrS r\S 5       r\S 5       rS r	Sr
g)	Update%   au  Updates a Cloud DNS response policy.

This command updates a Cloud DNS response policy.

## EXAMPLES

To update a response policy with minimal arguments, run:

  $ {command} myresponsepolicy --description='My updated response policy.'
  --networks=''

To update a response policy with all optional arguments, run:

  $ {command} myresponsepolicy --description='My updated response policy.'
  --networks=network1,network2

To update a new zonal response policy scoped to a GKE cluster in
us-central1-a, run:

  $ {command} myresponsepolicy --description='My new response policy.'
  --gkeclusters=cluster1 --location=us-central1-a
c                    [         R                  " U5      n[        R                  " SU5      nUR	                  UR                  5       UR                  S9nUS:X  a  UR                  Ul        UR                  R                  U5      $ )z"Get response policy to be Updated.dns)responsePolicyprojectv2)
r   GetApiClientr   GetMessagesModuleDnsResponsePoliciesGetRequestNamer   locationresponsePoliciesGet)selfresponse_policy_refapi_versionargsclientmessage_moduleget_requests          r   _FetchResponsePolicyUpdate._FetchResponsePolicy@   s{    {+F++E;?N >>*//1#++ ? -K d!]]k""&&{33r   c                     U R                  5       [        R                   R                  [        R                   R                  4;   $ r   )ReleaseTrackr   BETAALPHA)clss    r   _BetaOrAlphaUpdate._BetaOrAlphaK   s:    $"3"3"8"8"&"3"3"9"9"; ; ;r   c                     [         R                  " US[        R                  " U R	                  5       5      S9  [        U5        UR                  R                  S5        g )Nz	to update)verbr(   json)r
   AddResponsePolicyResourceArgr   GetApiFromTrackr0   r   display_info	AddFormat)r3   r   s     r   ArgsUpdate.ArgsP   sK    ..(()9)9);<> 6
!!&)r   c                    [         R                  " U R                  5       U5      n[         R                  " U5      n[        R
                  " SU5      n[         R                  " U5      nUR                  UR                  [         R                  " X!5      SS9nU R                  XbU5      nUR                  S5      (       dM  UR                  S5      (       d7  UR                  S5      (       d!  [        R                  R                  S5        U$ UR                  S5      (       aI  UR                  S/:X  a  / Ul        [         R"                  " UR                  UR$                  U5      Ul        UR                  S5      (       a1  UR&                  nU V	s/ s H  n	UR)                  U	S	9PM     sn	Ul        UR                  S5      (       a  UR,                  Ul        UR/                  UR1                  5       UUR$                  S
9n
US:X  a  UR2                  U
l        UR4                  R7                  U
5      n[        R8                  " UR:                  SS9  U$ s  sn	f )Nr   zdns.responsePolicies)
collectionnetworksdescriptiongkeclusterszNothing to update. )gkeClusterName)r   responsePolicyResourcer   r   ResponsePolicy)kind)r   GetApiFromTrackAndArgsr0   r   r   r    GetRegistryParseresponse_policiesGetParamsForRegistryr-   IsSpecifiedr   statusPrintrA   command_utilParseResponsePolicyNetworksr   rC   ResponsePolicyGKEClustergkeClustersrB    DnsResponsePoliciesUpdateRequestr"   r#   r$   r   UpdatedResourcer   )r&   r)   r(   r*   messagesregistryr'   	to_updaterC   name
update_requpdated_response_policys               r   Run
Update.RunY   s    --d.?.?.A4HK{+F%%e[9H ,H"..!!+4) ) 
 ))$I
 	$$M**M**	jj+,
##	2$	'CC
--,44kCi &&$$k "!d 
+
+4
+
@!i
 &&"..i::*//1(#++ ; -J
 d MMj$55<<ZH/>>-/ #"+s   I N)__name__
__module____qualname____firstlineno____doc__r-   classmethodr4   r=   r]   __static_attributes__r_   r   r   r   r   %   s9    .	4 ; ; * *5#r   r   N)rd   
__future__r   r   r   googlecloudsdk.api_lib.dnsr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   googlecloudsdk.command_lib.dnsr	   r
   rQ   googlecloudsdk.corer   r   ReleaseTracksr0   GAr1   r2   UniverseCompatibleUpdateCommandr   r_   r   r   <module>rq      s    3 &  ' + , ( 0 8 ? #- D%%(($*;*;*@*@%%++-f#T f# -f#r   