
    >                        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  \	R                  \	R                  " \	R                   R"                  5       " S
 S\	R$                  5      5       5       r\	R                  " \	R                   R(                  5       " S S\5      5       r\	R                  " \	R                   R,                  5       " S S\5      5       rSS0\l        g)z3Command for updating network firewall policy rules.    )base_classes)firewall_policy_rule_utils)client)region_client)base)
exceptions)flags)secure_tags_utilsc                   >    \ rS rSrSrSrSrSrSr\	S 5       r
S rSrg)Update   uUpdates a Compute Engine network firewall policy rule.

*{command}* is used to update network firewall policy rules.
NFc                    [         R                  " SSS9U l        U R                  R                  U5        [         R                  " USS9  [         R
                  " USS9  [         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                  " USS9  [         R                  " USU R                   S9  [         R"                  " U5        [         R$                  " U5        [         R&                  " U5        [         R(                  " U5        [         R*                  " U5        [         R,                  " XR                   S	9  [         R.                  " XR                   S	9  [         R0                  " XR                   S	9  [         R2                  " XR                   S	9  [         R4                  " U5        [         R6                  " U5        U R                   (       an  [         R8                  " U5        [         R:                  " U5        [         R<                  " U5        [         R>                  " U5        [         R@                  " U5        U RB                  (       a,  [         RD                  " U5        [         RF                  " U5        U RH                  (       a-  [         RJ                  " U5        [         RL                  " U5        g g )
NTupdate)required	operationF)r   updated)r   )r   support_network_scopes)r   )'r	   !NetworkFirewallPolicyRuleArgumentNETWORK_FIREWALL_POLICY_ARGAddArgument	AddActionAddRulePriorityAddSrcIpRangesAddDestIpRangesAddLayer4ConfigsAddDirectionAddEnableLoggingAddDisabledAddTargetServiceAccountsAddDescriptionAddNewPriorityAddSrcSecureTagsr   AddTargetSecureTagsAddDestAddressGroupsAddSrcAddressGroupsAddSrcFqdnsAddDestFqdnsAddSrcRegionCodesAddDestRegionCodesAddSrcThreatIntelligenceAddDestThreatIntelligenceAddSecurityProfileGroupAddTlsInspectAddSrcNetworkScopeAddSrcNetworksAddDestNetworkScopeAddSrcNetworkTypeAddDestNetworkTypesupport_target_typeAddTargetTypeAddTargetForwardingRulessupport_network_contextAddSrcNetworkContextAddDestNetworkContext)clsparsers     =lib/surface/compute/network_firewall_policies/rules/update.pyArgsUpdate.Args)   sQ   &+&M&M'C# ##//7	OOFU+	&I6	 	&!	6"	v	6"	f	""6*	 	84	"99
 
f%	v&	f%	f	v	'A'A 
'A'A 
""'A'A 
##'A'A 
!!&)	
!!v&6"'f%v&
&!$$V,
""  (!!&) #    c                 <   0 SS_SS_SS_SS_S	S
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS _n[         R                  " U R                  5       5      nU R                  R	                  XR
                  5      n[        R                  " XCR                  S!9n[        US"5      (       a  [        R                  " XCR                  S#9n[        R                  " UR                  5      n/ n/ n/ n	/ n
S nS nS nS nS$nS n/ n/ nS n/ nS nS nS nS n/ n/ nU HG  nUR                  U5      (       d  M  UR                  U5      (       a  M3  UR!                  UU   5        MI     UR#                  S5      (       a  UR$                  nS%nUR#                  S5      (       a  UR&                  nS%nUR#                  S&5      (       a7  S%n[        R(                  " UR*                  UR                  R,                  5      n	UR#                  S5      (       a  UR.                  n
UR#                  S'5      (       a  UR0                  nUR#                  S(5      (       a  UR2                  nUR#                  S)5      (       a!  [        R                  " UR4                  5      nOUnUR#                  S5      (       a-  [6        R8                  " UR                  UR:                  5      nS%nUR#                  S5      (       a+  [6        R8                  " UR                  UR<                  5      nU R>                  (       GaP  UR#                  S*5      (       a,  UR#                  S+5      (       a  [@        RB                  " S,5      eUR#                  S-5      (       a,  UR#                  S.5      (       a  [@        RB                  " S/5      eUR#                  S*5      (       a  URD                  (       d5  UR                  R,                  RF                  RH                  RJ                  nO9UR                  R,                  RF                  RI                  URD                  5      nS%nUR#                  S5      (       a  URL                  nS%nUR#                  S-5      (       a  URN                  (       d5  UR                  R,                  RF                  RP                  RJ                  nO9UR                  R,                  RF                  RQ                  URN                  5      nS%nUR#                  S+5      (       a  URR                  (       d5  UR                  R,                  RF                  RH                  RJ                  nO9UR                  R,                  RF                  RI                  URR                  5      nS%nUR#                  S.5      (       a  URT                  (       d5  UR                  R,                  RF                  RP                  RJ                  nO9UR                  R,                  RF                  RQ                  URT                  5      nS%nUbI  UUR                  R,                  RF                  RH                  RV                  :w  a  UR!                  S5        U RX                  (       Gaz  UR#                  S05      (       a  URZ                  (       d5  UR                  R,                  RF                  R\                  RJ                  nO9UR                  R,                  RF                  R]                  URZ                  5      nS%nUR#                  S15      (       a  UR^                  (       d5  UR                  R,                  RF                  R`                  RJ                  nO9UR                  R,                  RF                  Ra                  UR^                  5      nS%nUbI  UUR                  R,                  RF                  R\                  RV                  :w  a  UR!                  S5        U R>                  (       a*  UR                  R,                  RG                  UUU	UUUUS29nO&UR                  R,                  RG                  UUU	US39nU RX                  (       a  UUl1        UUl2        UR#                  S5      (       a  URf                  Ul4        S%nUR#                  S5      (       a  URj                  Ul6        S%nUR#                  S	5      (       a  URn                  Ul8        S%nUR#                  S5      (       a  URr                  Ul:        S%nUR#                  S5      (       a  URv                  Ul<        S%nUR#                  S5      (       a  URz                  Ul>        S%nUR#                  S5      (       a  UR~                  Ul@        S%nUR#                  S5      (       a  UR                  UlB        S%nUR#                  S5      (       a  UR                  nO7UR#                  S45      (       a!  UR                  S5:w  a  UR!                  S5        UR#                  S65      (       a  UR                  nU(       d  S nUR#                  S75      (       ay  UR                  S8:X  a5  UR                  R,                  R                  R                  R                  nO4UR                  R,                  R                  R                  R                  nU R                  (       aq  UR#                  S95      (       a9  UR                  R,                  R                  R                  UR                  5      nUR#                  S5      (       a  UR                  nUR                  R,                  R                  UUR                  UUU
UR                  UUUUUS:9nU R                  (       a  UUlP        UUlQ        UR                  R                  R                  U5         UR                  UUR                  US$S;9sS S S 5        $ ! , (       d  f       g = f)<Nsrc_ip_rangeszmatch.srcIpRangesdest_ip_rangeszmatch.destIpRangessrc_region_codeszmatch.srcRegionCodesdest_region_codeszmatch.destRegionCodes	src_fqdnszmatch.srcFqdns
dest_fqdnszmatch.destFqdnssrc_secure_tagszmatch.srcSecureTagssrc_address_groupszmatch.srcAddressGroupsdest_address_groupszmatch.destAddressGroupssrc_threat_intelligencezmatch.srcThreatIntelligencesdest_threat_intelligencezmatch.destThreatIntelligencessrc_networkszmatch.srcNetworkssecurity_profile_groupsecurityProfileGrouptarget_secure_tagstargetSecureTagstarget_service_accountstargetServiceAccountstarget_forwarding_rulestargetForwardingRules)refcompute_clientregion)rV   FTlayer4_configsenable_loggingdisablednew_prioritysrc_network_scopesrc_network_typezGAt most one of src_network_scope and src_network_type can be specified.dest_network_scopedest_network_typezIAt most one of dest_network_scope and dest_network_type can be specified.src_network_contextdest_network_context)srcIpRangesdestIpRangeslayer4ConfigssrcSecureTagssrcNetworkScopesrcNetworksdestNetworkScope)rb   rc   rd   re   actionapply_security_profile_grouptls_inspect	directionINGRESStarget_type)priorityri   matchrl   rR   descriptionenableLoggingrZ   rP   rN   
tlsInspect)ro   firewall_policyfirewall_policy_ruleonly_generate_request)Vr   ComputeApiHolderReleaseTrackr   ResolveAsResource	resourcesr   NetworkFirewallPolicyRulehasattrr   RegionNetworkFirewallPolicyRule
rule_utilsConvertPriorityToIntro   IsKnownAndSpecifiedGetValueappendIsSpecifiedrA   rB   ParseLayer4ConfigsrX   messagesrQ   rY   rZ   r[   r
   $TranslateSecureTagsForFirewallPolicyrG   rO   r   r   ToolExceptionr\   FirewallPolicyRuleMatcherSrcNetworkScopeValueValuesEnumUNSPECIFIEDrL   r^   DestNetworkScopeValueValuesEnumr]   r_   VPC_NETWORKSr7   r`    SrcNetworkContextValueValuesEnumra   !DestNetworkContextValueValuesEnumsrcNetworkContextdestNetworkContextrH   srcAddressGroupsrI   destAddressGroupsrE   srcFqdnsrF   	destFqdnsrC   srcRegionCodesrD   destRegionCodesrJ   srcThreatIntelligencesrK   destThreatIntelligencesrM   ri   rk   rl   FirewallPolicyRuleDirectionValueValuesEnumrm   EGRESSr4   TargetTypeValueValuesEnumrn   rS   rq   
targetTyperT   apitools_clientIncludeFields
UpdateRulert   )selfargs clearable_arg_name_to_field_nameholderrU   #network_firewall_policy_rule_clientro   rA   rB   layer4_config_listrQ   rM   rk   rY   rZ   should_setup_matchtraffic_directrG   rO   r\   rL   r^   r`   ra   rn   rS   cleared_fieldsargr[   matcherru   s                                  r<   Run
Update.Run_   s#   (,(.( 	2( 	4	(
 	%( 	'( 	0( 	6( 	8( 	"#A( 	#$C( 	+( 	!"8( 	0( 	"#:(  	"#:!($$ **4+<+<+>?F

*
*
<
<C +1*J*J+' sH

7
7-- * ..t}}=HMN !KNHNOLK N/		!	!#	&	&t}}S/A/A>sCD 0 ((((m())**n())%88


v}}55 122 $ < <())**n
##h''44T5F5FGll)**)NN
----o  ,--

@
@mmT44 
 """			-	.	.43C3C
4 4 &&
 	
 
		.	/	/D4D4D
5 5 &&
 	
 
		-	.	.%%mm$$>>]]ii  %mm44NNmm$$
 "			.	)	)((!			.	/	/&&mm$$>>^^jj   &}}55OOoo%% 
 "			,	-	- $$mm$$>>]]ii  %mm44NNmm##
 "			-	.	. %%mm$$>>^^jj   &}}55OOoo$$ 
 " 
']]##==\\iij 	12###			/	0	0''mm$$>>__kk  !' 6 6 P P q q&&!
 "			0	1	1((mm$$>>``ll  "(!7!7!Q!Q!s!s''"
 "

)!]]##==^^kkl 	12""&&@@#%*'+"- A g &&@@#%*'	 A g ##"5g#7g ,--!%!8!8g-.."&":":g$$g%%//g*++#44g+,, $ 6 6g122'+'C'Cg$233(,(E(Eg%011#::""KK9923&&$$kg$$	9	$MM""55NNVV 	
 MM""55NNUU 	 			-	(	(MM""55OO   	
 
		3	4	4"&">">!==11DD{{ 5$$$+3 E  (3%3J0		&	&	4	4^	D0;;..3 %	 <  
E	D	Ds   'p
p )__name__
__module____qualname____firstlineno____doc__r   r   r4   r7   classmethodr=   r   __static_attributes__r   r?   r<   r   r      s:    
 !% !3* 3*j_r?   r   c                   $    \ rS rSrSrSrSrSrSrg)
UpdateBetai  r   TFr   N	r   r   r   r   r   r   r4   r7   r   r   r?   r<   r   r     s    
  !r?   r   c                   $    \ rS rSrSrSrSrSrSrg)UpdateAlphai  r   Tr   Nr   r   r?   r<   r   r     s    
   r?   r   EXAMPLESa$      To update a rule with priority ``10'' in a global network firewall policy
    with name ``my-policy'' to change the action to ``allow'' and description to
    ``new example rule'', run:

      $ {command} 10 --firewall-policy=my-policy --action=allow --description="new example rule"
    N)r   googlecloudsdk.api_lib.computer   r   r~   8googlecloudsdk.api_lib.compute.network_firewall_policiesr   r   googlecloudsdk.callioper   r   <googlecloudsdk.command_lib.compute.network_firewall_policiesr	   r
   UniverseCompatibleReleaseTracksrx   GAUpdateCommandr   BETAr   ALPHAr   detailed_helpr   r?   r<   <module>r      s    : 8 S K R ( . N Z D%%(()`T ` * `F D%%**+" " ," D%%++,!& ! -!   r?   