
                         ^    d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlZd Zd Z	d	 Z
d
 Zd Zy)z9Code that's shared between multiple networks subcommands.    )absolute_import)division)unicode_literals)resource_manager_tags_utilsNc                    t        j                  |      }| j                  }t        t	        j
                  |            D cg c]"  \  }}|j                  j                  ||      $ }}} ||j                  |            S c c}}w )N)keyvalue)additionalProperties)resourceManagerTags)r   GetResourceManagerTagsNetworkParamssortedsix	iteritemsResourceManagerTagsValueAdditionalProperty)messagesresource_manager_tagsresource_manager_tags_mapparamsr   r	   additional_propertiess          4lib/googlecloudsdk/api_lib/compute/networks_utils.py_CreateParamsr      s    !88
 
 !!& s}}-FGHH*#u %%88S8NH   
 994 : 
 	s   'Bc                 L    | j                  d      y| j                  d      ryy)z-Returns the subnet mode of the input network.	IPv4RangeLEGACYautoCreateSubnetworksAUTOCUSTOMgetnetworks    r   GetSubnetModer$   *   s'    [[){{*+    c                 D    | j                  di       j                  d      S )z2Returns the BGP routing mode of the input network.routingConfigroutingModer    r"   s    r   GetBgpRoutingModer)   4   s    	_b	)	-	-m	<<r%   c                 B    t        | t        |       t        |             S )N)x_gcloud_subnet_modex_gcloud_bgp_routing_mode)dictr$   r)   )resources    r   AddModesForListFormatr/   9   s"    	(2 1( ;
= =r%   c                    | j                  |j                         |j                        }|j                  dk(  r|j                  |_        n|j                  dk(  rd|_        nd|_        | j                         |_        | j                  j                  |j                  j                               |j                  _        t        |dd      4| j                  j                  |j                        |j                  _        t        |dd      |j"                  |j                  _        t        |d	d      4| j                  j'                  |j(                        |j                  _        t-        |d
      r|j.                  |j.                  |_        |rBt-        |d      r6|j0                  r*| j                   j3                  |j0                        |_        t-        |d      r|j6                  |_        t-        |d      r|j:                  |_        |r|j?                         |_         t        |dd      tC        | |jD                        |_#        |S )z3Creates a new network resource from flag arguments.)namedescriptionlegacycustomFTbgp_best_path_selection_modeNbgp_bps_always_compare_medbgp_bps_inter_region_costmtu)network_firewall_policy_enforcement_orderenable_ula_internal_ipv6internal_ipv6_ranger   )$NetworkNamer2   subnet_moderanger   r   NetworkRoutingConfigr'   RoutingModeValueValuesEnumbgp_routing_modeupperr(   getattr'BgpBestPathSelectionModeValueValuesEnumr5   bgpBestPathSelectionModer6   bgpAlwaysCompareMed!BgpInterRegionCostValueValuesEnumr7   bgpInterRegionCosthasattrr8   r9   4NetworkFirewallPolicyEnforcementOrderValueValuesEnum%networkFirewallPolicyEnforcementOrderr:   enableUlaInternalIpv6r;   internalIpv6RangeSelfLinknetworkProfiler   r   r   )r   network_refnetwork_argsnetwork_profile_refsupport_firewall_orderr#   s         r   CreateNetworkResourceFromArgsrU   @   s(    <+C+C  E' )$**G8+$)G! %)G!"779'##>>

'
'
-
-
/ 
# \94@L%%MM55	
 2 \7>J// - \6=I%%GG22	
 , \5!l&6&6&B""GK?!>>MMBB	D 1 \56$0$I$IG!\01 , @ @G099;G\2D9E"8\-O-OPGN	.r%   )__doc__
__future__r   r   r   "googlecloudsdk.command_lib.computer   r   r   r$   r)   r/   rU    r%   r   <module>rZ      s4    @ &  ' J 
$=
=Dr%   