
    A                         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r\R                    " S S\R"                  5      5       rSS0\l        g
)z8Command for updating organization firewall policy rules.    )base_classes)firewall_policy_rule_utils)client)base)
exceptions)firewall_policies_utils)flags)secure_tags_utilsNc                   2    \ rS rSrSrSr\S 5       rS rSr	g)Update   zrUpdates a Compute Engine firewall policy rule.

*{command}* is used to update organization firewall policy rules.
Nc                    U R                  5       [        R                   R                  :H  =(       d+    U R                  5       [        R                   R                  :H  n[        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5        [        R&                  " U5        [        R(                  " X5        [        R*                  " X5        [        R,                  " X5        [        R.                  " X5        [        R0                  " U5        [        R2                  " U5        [        R4                  " U5        [        R6                  " U5        [        R8                  " U5        [        R:                  " U5        [        R<                  " U5        [        R>                  " USS9  [        R@                  " USS9  U R                  5       [        R                   R                  :X  d,  U R                  5       [        R                   R                  :X  an  [        RB                  " U5        [        RD                  " U5        [        RF                  " U5        [        RH                  " U5        [        RJ                  " U5        U R                  5       [        R                   R                  :X  a-  [        RL                  " U5        [        RN                  " U5        g g )NTupdate)required	operationF)r   updated)r   )(ReleaseTrackr   ALPHABETAr	   FirewallPolicyRuleArgumentFIREWALL_POLICY_ARGAddArgument	AddActionAddFirewallPolicyIdAddSrcIpRangesAddDestIpRangesAddLayer4ConfigsAddDirectionAddEnableLoggingAddDisabledAddTargetResourcesAddTargetServiceAccountsAddSrcSecureTagsAddTargetSecureTagsAddSrcThreatIntelligenceAddDestThreatIntelligenceAddSrcRegionCodesAddDestRegionCodesAddSrcAddressGroupsAddDestAddressGroupsAddSrcFqdnsAddDestFqdnsAddSecurityProfileGroupAddTlsInspectAddDescriptionAddNewPriorityAddOrganizationAddSrcNetworkScopeAddSrcNetworksAddDestNetworkScopeAddSrcNetworkTypeAddDestNetworkTypeAddSrcNetworkContextAddDestNetworkContext)clsparsersupport_network_scopess      5lib/surface/compute/firewall_policies/rules/update.pyArgsUpdate.Args%   s    	d//555 	8!2!2!7!77  $>>C ''/	OOFU+	f	:	 	&!	6"	v	6"	f	V$	""6*	6"	f%	""6B	##FC	F;	V<	f%	v&	f	v	!!&)		 	84	&51d//555!2!2!7!77v&6"'f%v&
T..444  (!!&) 5    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
                  S!S"9n[        R                  " UUR                  UR
                  [        R                  " U R                  5       5      R                  5       S#9n[        R                  " UUR                  UR
                  [        R                  " U R                  5       5      R                  5       S#9n/ n[        R                  " UR                  5       5      n/ n	/ n
/ n/ n/ n/ n/ n/ n/ n/ n/ n/ n/ n/ n/ nS nS nS!nS nS nS nS nS n/ n S n!S n"S 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R0                  nUR%                  S5      (       a  UR2                  nUR%                  S5      (       a+  [4        R6                  " UR                  UR8                  5      nUR%                  S5      (       a+  [4        R6                  " UR                  UR:                  5      nUR%                  S5      (       a  UR<                  nS$nUR%                  S5      (       a  UR>                  nS$nUR%                  S5      (       a  UR@                  nS$nUR%                  S5      (       a  URB                  nS$nUR%                  S5      (       aH  URD                   V%s/ s H/  n%[F        RH                  " U%URJ                  XQRL                  5      PM1     nn%S$nUR%                  S5      (       aH  URN                   V%s/ s H/  n%[F        RH                  " U%URJ                  XQRL                  5      PM1     nn%S$nUR%                  S	5      (       a  URP                  nS$nUR%                  S5      (       a  URR                  nS$nUR%                  S5      (       a6  [F        RT                  " URV                  URJ                  UURL                  S&9nO7UR%                  S'5      (       a!  URX                  S(:w  a  UR#                  S5        UR%                  S)5      (       a  URZ                  nUR%                  S*5      (       a  UR\                  nUR%                  S+5      (       a  UR^                  nUR%                  S,5      (       a!  [        R                  " UR`                  5      n&OUn&U R                  5       [b        R                  Rd                  :X  d-  U R                  5       [b        R                  Rf                  :X  GaP  UR%                  S-5      (       a,  UR%                  S.5      (       a  [h        Rj                  " S/5      eUR%                  S05      (       a,  UR%                  S15      (       a  [h        Rj                  " S25      eUR%                  S-5      (       a  URl                  (       d5  UR                  R.                  Rn                  Rp                  Rr                  nO9UR                  R.                  Rn                  Rq                  URl                  5      nS$nUR%                  S5      (       a  URt                  n S$nUR%                  S05      (       a  URv                  (       d5  UR                  R.                  Rn                  Rx                  Rr                  n!O9UR                  R.                  Rn                  Ry                  URv                  5      n!S$nUR%                  S.5      (       a  URz                  (       d5  UR                  R.                  Rn                  Rp                  Rr                  nO9UR                  R.                  Rn                  Rq                  URz                  5      nS$nUR%                  S15      (       a  UR|                  (       d5  UR                  R.                  Rn                  Rx                  Rr                  n!O9UR                  R.                  Rn                  Ry                  UR|                  5      n!S$nUbI  UUR                  R.                  Rn                  Rp                  R~                  :w  a  UR#                  S5        U R                  5       [b        R                  Rd                  :X  Gaz  UR%                  S35      (       a  UR                  (       d5  UR                  R.                  Rn                  R                  Rr                  n"O9UR                  R.                  Rn                  R                  UR                  5      n"S$nUR%                  S45      (       a  UR                  (       d5  UR                  R.                  Rn                  R                  Rr                  n#O9UR                  R.                  Rn                  R                  UR                  5      n#S$nU"bI  U"UR                  R.                  Rn                  R                  R~                  :w  a  UR#                  S5        U(       a  U R                  5       [b        R                  Rd                  :X  d,  U R                  5       [b        R                  Rf                  :X  a2  UR                  R.                  Ro                  U	U
UUUUUUUUUUU U!US59nO.UR                  R.                  Ro                  U	U
UUUUUUUUUUS69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                  5       [b        R                  Rd                  :X  a  U"UlI        U#UlJ        UR                  R.                  R                  U&URX                  UUUUUUR                  UUUUS99n'[F        R                  " UURL                  URJ                  S:9n(UR                  R                  R                  U5         UR                  UU(U'S;9sS S S 5        $ s  sn%f s  sn%f ! , (       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_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_resourcestargetResourcestarget_service_accountstargetServiceAccountssrc_secure_tagssrcSecureTagstarget_secure_tagstargetSecureTagsF)with_project)refcompute_client	resourcesversionTlayer4_configs)rL   optional_organizationfirewall_policy_clientfirewall_policy_idactionapply_security_profile_grouptls_inspect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srcAddressGroupsdestAddressGroupssrcFqdns	destFqdnssrcRegionCodesdestRegionCodessrcThreatIntelligencesdestThreatIntelligencessrcNetworkScopesrcNetworksdestNetworkScoperS   )rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rS   	directionINGRESS)priorityr_   matchry   rO   rU   rQ   descriptionenableLoggingrc   rM   
tlsInspect)organization)r{   firewall_policyfirewall_policy_rule)Pr   ComputeApiHolderr   r   ResolveAsResourcerY   r   OrgFirewallPolicysix	text_typelowerOrgFirewallPolicyRule
rule_utilsConvertPriorityToIntNameIsKnownAndSpecifiedGetValueappendIsSpecifiedrA   rB   ParseLayer4Configsr[   messagesrN   rP   r
   $TranslateSecureTagsForFirewallPolicyrR   rT   rI   rJ   rC   rD   rG   r   BuildAddressGroupUrlr   r   rH   rE   rF   BuildSecurityProfileGroupUrlrL   r_   ra   rb   rc   rd   r   r   r   r   ToolExceptionre   FirewallPolicyRuleMatcherSrcNetworkScopeValueValuesEnumUNSPECIFIEDrK   rg   DestNetworkScopeValueValuesEnumrf   rh   VPC_NETWORKSri    SrcNetworkContextValueValuesEnumrj   !DestNetworkContextValueValuesEnumry   FirewallPolicyRuleDirectionValueValuesEnumrz   EGRESSsrcNetworkContextdestNetworkContextr}   GetFirewallPolicyIdapitools_clientIncludeFields
UpdateRule))selfargs clearable_arg_name_to_field_nameholderrW   org_firewall_policyfirewall_policy_rule_clientcleared_fieldsr{   rA   rB   layer4_config_listrN   rP   rR   rT   rG   rH   rE   rF   rC   rD   rI   rJ   rb   rc   should_setup_matchtraffic_directmatcherrL   ra   re   rK   rg   ri   rj   argxrd   r   r^   s)                                            r<   Run
Update.RunV   s   (,(.( 	2( 	4	(
 	%( 	'( 	6( 	8( 	"#A( 	#$C( 	+( 	!"8( 	-( 	"#:( 	?(  	0!($$ **4+<+<+>?F

"
"
4
4U 5 C !22}}""d//1288:	 #)">">}}""d//1288:	# N..sxxz:HMN OIJ !NHNG!KL/		!	!#	&	&t}}S/A/A>sCD 0 ((((m())**n())%88


v}}55 *++..122 $ < <)**)NN
----o ,--

@
@mmT44 
 122 $ < <233!%!>!>*++..+,,00,--
 **	 +a "
6
6""$79M9M +	    -..
 ++	 ,a "
6
6""$79M9M ,	    $$..i%%??j011
!
>
>%)%@%@$($5$5%8!%!5!5	  	""KK9923&&$$k())**n
##h''44T5F5FGll 	t00666$"3"3"8"88			-	.	.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d//555			/	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 



!2!2!8!8
8 D$5$5$:$::--((BB%',/1 +-#:$<-$/) C 
$ --((BB%',/1 +-#:$<) C 
 $$	9	$MM""55NNVV 	
 MM""55NNUU 	 d//555"5g#7g !==11DD{{ (+5$$$3 E  1DD#&& 
	&	&	4	4^	D(33,3 4  
E	D}l 
E	Ds   )6u/6u4u99
v )
__name__
__module____qualname____firstlineno____doc__r   classmethodr=   r   __static_attributes__r   r?   r<   r   r      s(    
 .* .*`Nr?   r   EXAMPLESa!      To update a rule with priority ``10" in an organization firewall policy
    with ID ``123456789" to change the action to ``allow" and description to
    ``new-example-rule", run:

      $ {command} 10 --firewall-policy=123456789 --action=allow
      --description=new-example-rule
    )r   googlecloudsdk.api_lib.computer   r   r   0googlecloudsdk.api_lib.compute.firewall_policiesr   googlecloudsdk.callioper   r   4googlecloudsdk.command_lib.compute.firewall_policiesr   r	   <googlecloudsdk.command_lib.compute.network_firewall_policiesr
   r   UniverseCompatibleUpdateCommandr   detailed_helpr   r?   r<   <module>r      sd    ? 7 S C ( . X F Z 
 GT G GV  	 r?   