
    ]                         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
\\   4S jrS\S
\4S jrS\\   S\S
\\   4S jrS\S
\4S jrg)zACode that's shared between multiple network policies subcommands.    )absolute_import)division)unicode_literals)Any)layer4_config_utils)
exceptions)	tag_utilssecure_tagsreturnc                 r    U Vs/ s H%  nU R                   R                  [        U5      S9PM'     sn$ s  snf )zReturns a list of network policy rule secure tags, translating namespaced tags if needed.

Args:
  client: compute client
  secure_tags: array of secure tag values

Returns:
  List of network policy rule secure tags
)name)messages/NetworkPolicyTrafficClassificationRuleSecureTag_TranslateSecureTag)clientr
   tags      Flib/googlecloudsdk/command_lib/compute/network_policies/rules_utils.pyTranslateSecureTagsr      sJ     	
 # ooEE"3' F  	
  
s   ,4
secure_tagc                     U R                  S5      (       a  U $ [        R                  " U [        R                  5      R                  $ )zReturns a unified secure tag identifier.

Translates the namespaced tag if required.

Args:
  secure_tag: secure tag value in format tagValues/ID or
    ORG_ID/TAG_KEY_NAME/TAG_VALUE_NAME

Returns:
  Secure tag name in unified format tagValues/ID
z
tagValues/)
startswithr	   GetNamespacedResource
TAG_VALUESr   )r   s    r   r   r   /   s:     <((		(	(Y5I5I	J	O	OO    layer4_configsmessage_classesc                     S U  5        Vs/ s H;  nUR                  UR                  UR                  (       a  UR                  /O/ S9PM=     sn$ s  snf )z@Parses protocol:port mappings for --layer4-configs command line.c              3   N   #    U  H  n[         R                  " U5      v   M     g 7f)N)r   ParseLayer4Config).0layer4_configs     r   	<genexpr>%ParseLayer4Configs.<locals>.<genexpr>J   s%      -m 
/
/
>
>-s   #%)
ipProtocolports)9NetworkPolicyTrafficClassificationRuleMatcherLayer4Configip_protocolr%   )r   r   configs      r   ParseLayer4Configsr)   @   s`    -	

&	 OO''"(,,B P 	
 	 	
s   AApriorityc                      [        U 5      nUS:  a  [        R                  " SS5      eU$ ! [         a  n[        R                  " SS5      UeS nAff = f)Nr*   z.priority must be a valid non-negative integer.r   )int
ValueErrorcalliope_exceptionsInvalidArgumentException)r*   int_priorityes      r   ConvertPriorityToIntr2   Q   si    x=L
 A

6
6D  
 
 

6
6Ds   , 
AAAN)__doc__
__future__r   r   r   typingr   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   r.   +googlecloudsdk.command_lib.resource_managerr	   liststrr   r   r)   r,   r2    r   r   <module>r<      s    H &  '  > E AT#Y 49 &PC PC P"I 
#Y"3 3 r   