
    "                         d Z ddlmZ ddlmZ ddlmZ ddlZddlm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dZy)z1Convenience functions for dealing with instances.    )absolute_import)division)unicode_literalsN)alias_ip_range_utils)	constants)utils)scope)flagsc"                 `	   |t         j                  j                  k(  r(t        j                  |j                  d      d         }"n|t         j                  j                  k(  r|}"|j                  }#|#j                         }$|,| j                  |d|"d      }%|%j                         |$_        |,| j                  |d|id      }&|&j                         |$_        n=|;|9| j                  t        j                  d|id      }&|&j                         |$_        |||$_        |!r|!|$_        |
0	 t#        j$                  t'        j(                  |
             |
|$_        | |#j                  j3                  |      |$_        |||$_        |rt9        j:                  |#d	|      |$_        | |#j                  j?                  |      |$_         |d
k(  }'|'s|s||#jC                  t        jD                  |#jB                  jF                  jH                        }(| |#jB                  jK                  |      |(_&        t/        jN                  | ||	"      })|)r|)|(_(        |rd|(_)        n	|rd	|(_)        |rd|(_*        n	|rd	|(_*        |s	|||(_+        |(g|$_,        ||}||}|||rG|#jC                  t        jZ                  |#jB                  jF                  j\                        }*|*g|$_/        | |#jB                  jK                  |      *_&        ||*_+        |rA	 t#        j$                  t'        j(                  |             |*_0        |r||*_1        nd|*_1        |p	 dt'        j(                  |      v r)t#        jd                  t'        j(                  |             n(t#        j$                  t'        j(                  |             ||$_3        |||$_4        |||$_5        |||$_6        |  |#j                  jo                  |       |$_8        |$S # t,        $ r. t/        j0                  | |
"      j                         |$_        Y w xY w# t,        $ r. t/        j0                  | |"      j                         *_0        Y 2w xY w# t,        $ r- t/        j0                  | |"      j                         |$_3        Y w xY w)z'Returns a new NetworkInterface message./zcompute.subnetworks)projectregion)
collectionparamsr   zcompute.networks)r   r   T	IPV6_ONLY)nametypeF`   )9compute_scopes	ScopeEnumZONEr   ZoneNameToRegionNamesplitREGIONmessagesNetworkInterfaceParseSelfLink
subnetworknetworkr   DEFAULT_NETWORKnetworkAttachmentenableVpcScopedDns	ipaddress
ip_addresssix	text_type	networkIP
ValueErrorinstances_flagsGetAddressRefNicTypeValueValuesEnumnicType
queueCountr   $CreateAliasIpRangeMessagesFromStringaliasIpRangesStackTypeValueValuesEnum	stackTypeAccessConfigDEFAULT_ACCESS_CONFIG_NAMETypeValueValuesEnumONE_TO_ONE_NATNetworkTierValueValuesEnumnetworkTierExpandAddressFlagnatIPsetPublicDnssetPublicPtrpublicPtrDomainNameaccessConfigsDEFAULT_IPV6_ACCESS_CONFIG_NAMEDIRECT_IPV6ipv6AccessConfigsexternalIpv6externalIpv6PrefixLength
ip_networkipv6AddressinternalIpv6PrefixLengthparentNicNamevlanIgmpQueryValueValuesEnum	igmpQuery)+	resourcescompute_clientr!   subnetr   locationr	   nic_type
no_addressaddressprivate_network_ipalias_ip_ranges_stringnetwork_tierno_public_dns
public_dnsno_public_ptr
public_ptrno_public_ptr_domainpublic_ptr_domain
stack_typeipv6_network_tieripv6_public_ptr_domainqueue_countipv6_addressipv6_prefix_lengthinternal_ipv6_addressinternal_ipv6_prefix_lengthnetwork_attachmentexternal_ipv6_addressexternal_ipv6_prefix_lengthparent_nic_namerI   
igmp_queryenable_vpc_scoped_dnsr   r   network_interface
subnet_refnetwork_refno_access_configaccess_configaddress_resourceipv6_access_configs+                                              5lib/googlecloudsdk/api_lib/compute/instances/utils.pyCreateNetworkInterfaceMessagerr      s   L n&&+++''s(;B(?@F((///F$$(//1 ("f5 ! J
 $.#6#6#8 //w
 & " K !, 4 4 6 ~,4//!!7#% " K
 !, 4 4 6#*<'+@(#3==);<=$6! !!88B  #. AAd2	
 # !!:::F   ;. 
*1C1K))11""66EE * M 



:
:<
H  '88>7F ,m#(m 	#'m #(m 	#'m $5$A*;m''4o# "( ("4 #		+	!..66""66BB /  ,>*>'"889JK " '-C*3==)>?@(=% #4O1461&	34	4S]]+@ABS]]+@AB&;# !,1L. &5#	!!!:::F  
S  $3$A$A
'%
 !D  (7(E(E
*F)
 %&  &5&C&C
*F'
 #s7   //P /P= A/Q7 3P:9P:=3Q43Q473R-,R-)NNNNNNNNNNNNNNNNNNNNNNNNNNN)__doc__
__future__r   r   r   r%   googlecloudsdk.api_lib.computer   r   r   "googlecloudsdk.command_lib.computer	   r   ,googlecloudsdk.command_lib.compute.instancesr
   r+   r'   rr        rq   <module>rz      s    8 &  '  ? 4 0 F Q 
  $ $	E^ry   