
                            S r SSKJr  SSKrSSKrSSKJr  Sr\R                  " S\R                  5      r
 " S S\5      r\R                  " S	S
9 " S S5      5       rSS jrg)z6Common classes and functions for network policy rules.    )annotationsN)
exceptionszPROTOCOL[:PORT[-PORT]]z

    (?P<protocol>[a-zA-Z0-9+.-]+) # The protocol group.

    (:(?P<ports>\d+(-\d+)?))?     # The optional ports group.
                                  # May specify a range.

    $                             # End of input marker.
    c                      \ rS rSrSrSrg)Layer4ConfigParsingError(   z(Raised when layer4 config parsing fails. N)__name__
__module____qualname____firstlineno____doc____static_attributes__r       9lib/googlecloudsdk/api_lib/compute/layer4_config_utils.pyr   r   (   s    0r   r   T)frozenc                  *    \ rS rSr% S\S'   S\S'   Srg)Layer4Config,   strip_protocolz
str | Noneportsr   N)r	   r
   r   r   __annotations__r   r   r   r   r   r   ,   s    	r   r   c                    [         R                  U 5      nU(       d!  [        R                  " S[         SU  S35      eUR                  S5      nUR                  S5      n[        X#S9$ )z@Parses protocol:port mappings for --layer4-configs command line.z"Layer4 config must be of the form z; received [z].protocolr   )r   r   )LEGAL_SPECSmatchr   ArgumentErrorALLOWED_METAVARgroupr   )layer4_configr   r   r   s       r   ParseLayer4Configr!   2   sj    


M
*%	

"
"
,_,= >"O2	' 
 J'+
++g
%	+	;;r   )r    r   returnr   )r   
__future__r   dataclassesre"googlecloudsdk.command_lib.computer   r   compileVERBOSEr   	Exceptionr   	dataclassr   r!   r   r   r   <module>r+      sn    = "  	 9 +jj JJ1y 1 d#  $
<r   