
    S0                     6   S r SSKJr  SSKJr  SSKJr  SSK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Jr  SSKJr  SSKJr  SSKJr  SSKr\R8                  \R:                  " \R<                  R>                  5       " S S\R@                  5      5       5       r!\R:                  " \R<                  RD                  5       " S S\!5      5       r#\R:                  " \R<                  RH                  5       " S S\#5      5       r%g)z2Command for update to instance network interfaces.    )absolute_import)division)unicode_literalsN)alias_ip_range_utils)base_classes)	constants)utils)poller)waiter)base)
exceptions)flagsc                   6    \ rS rSrSrSrSr\S 5       rS r	Sr
g)Update(   J  Update a Compute Engine virtual machine network interface.

*{command}* updates network interfaces of a Compute Engine
virtual machine. For example:

  $ {command} example-instance --zone us-central1-a --aliases r1:172.16.0.1/32

sets 172.16.0.1/32 from range r1 of the default interface's subnetwork
as the interface's alias IP.
FNc                 4   [         R                  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                  " U5        [        R                  " U5        [        R                  " U5        U R                   (       a,  [        R"                  " U5        [        R$                  " U5        [&        R(                  " SS9U l        U R*                  R                  U5        g )Nzinstance network interface)resource)instances_flagsINSTANCE_ARGAddArgumentnetwork_interfaces_flagsAddNetworkInterfaceArgForUpdateAddNetworkArgAddSubnetworkArgAddPrivateNetworkIpArgAddAliasesArgAddStackTypeArgAddIpv6NetworkTierArgAddExternalIpv6AddressArgAddExternalIpv6PrefixLengthArgAddInternalIpv6AddressArgAddInternalIpv6PrefixLengthArgAddIgmpQueryArgsupport_ipv6_assignmentAddIpv6AddressArgAddIpv6PrefixLengthArgsecurity_policy_flags/SecurityPolicyRegionalArgumentForTargetResourceSECURITY_POLICY_ARG)clsparsers     :lib/surface/compute/instances/network_interfaces/update.pyArgsUpdate.Args:   s     ,,V4<<VD**62--f533F;**62,,V4226:66v>;;FC66v>;;FC,,V4
""00855f= 	MM1	
 
 ''/    c                 6   [         R                  " U R                  5       5      nUR                  R                  nUR                  R
                  nUR                  n[        R                  R                  UUR                  [        R                  " UR                  5      S9nUR                  R                  UR                  " S%0 UR                  5       D65      nUR                    H+  nUR"                  UR$                  :X  d  M  UR&                  n	  Of   [(        R*                  " SSR-                  UR$                  SR/                  UR                    Vs/ s H  oR"                  PM     sn5      5      5      e[1        USS 5      Gb2  [1        USS 5      (       a4  U R2                  R                  XR                  5      R5                  5       n
OS n
UR7                  UR$                  /U
S9nUR9                  UR:                  UR<                  UR>                  US9nUR                  RA                  U5      nUR                  RC                  URD                  SS	9n[F        RH                  " UR                  5      n[J        RL                  " UUS
R-                  UR$                  URO                  5       5      5      $ S n[1        USS 5      b5  URC                  URP                  SUR:                  0SS	9R5                  5       nS n[R        RT                  " UR>                  5      n[1        USS 5      b6  URC                  URV                  UR:                  US.SS	9R5                  5       n[1        USS 5      n[1        USS 5      n[1        USS 5      n[1        USS 5      n[1        USS 5      n[1        USS 5      n[1        USS 5      n[1        USS 5      nUGb  URX                  R[                  U5      n[1        USS 5      n/ nUb  UR]                  [^        R`                  UR\                  Rb                  Rd                  S9nUR\                  Rg                  U5      Ul4        U(       d	  U(       a  UnU(       d	  U(       a  UnU(       aH   [j        Rl                  " [n        Rp                  " U5      5        UUl9        U(       a  UUl<        OSUl<        U/nU(       aq   S[n        Rp                  " U5      ;   a+  [j        Rz                  " [n        Rp                  " U5      5        O+[j        Rl                  " [n        Rp                  " U5      5         URY                  [|        R~                  " USUR                  5      UU[1        USS 5      UUU	UUS9	nOoUb.  URX                  R                  U5      n URY                  UUU U	S 9nO>URY                  [|        R~                  " USUR                  5      UU[1        USS 5      U	S!9nUR                  UR:                  UR<                  UR>                  UR$                  US"9n/ n!UR                  (       d  U!R                  S#5        UR                  U!5         UR                  R                  U5      nS S S 5        UR                  RC                  WRD                  SS	9n[F        RH                  " UR                  5      n[J        RL                  " UUS$R-                  UR$                  URO                  5       5      5      $ s  snf ! [t         a/    [        Rv                  " UUU5      R5                  5       Ul9         GNf = f! [t         a*    [        Rv                  " UUU5      R5                  5       n GN>f = f! , (       d  f       GN= f)&N)scope_listerznetwork-interfacezMInstance does not have a network interface [{}], present interfaces are [{}].z, security_policy)networkInterfacessecurityPolicy)projectinstancezone!instancesSetSecurityPolicyRequestzcompute.zoneOperations)
collectionzESetting security policy for network interface [{0}] of instance [{1}]networkr6   zcompute.networks
subnetwork)r6   regionzcompute.subnetworks
igmp_query
stack_typeipv6_addressipv6_prefix_lengthexternal_ipv6_addressexternal_ipv6_prefix_lengthinternal_ipv6_addressinternal_ipv6_prefix_lengthipv6_network_tier)nametype`   /Tprivate_network_ip)	aliasIpRangesr;   r<   	networkIP	stackTypeipv6AccessConfigsfingerprintipv6AddressinternalIpv6PrefixLength)r;   r<   	igmpQueryrP   )rL   r;   r<   rM   rP   )r6   r7   r8   networkInterfacenetworkInterfaceResourcerL   z2Updating network interface [{0}] of instance [{1}] )Gr   ComputeApiHolderReleaseTrackclientapitools_clientmessages	resourcesr   r   ResolveAsResourcer   GetDefaultScopeLister	instancesGetComputeInstancesGetRequestAsDictr4   rG   network_interfacerP   r   UnknownArgumentExceptionformatjoingetattrr*   SelfLink!InstancesSetSecurityPolicyRequest(ComputeInstancesSetSecurityPolicyRequestr6   r7   r8   SetSecurityPolicyParseselfLinkr
   Pollerr   WaitForNamer;   	api_utilsZoneNameToRegionNamer<   NetworkInterfaceStackTypeValueValuesEnumAccessConfigr   DEFAULT_IPV6_ACCESS_CONFIG_NAMETypeValueValuesEnumDIRECT_IPV6NetworkTierValueValuesEnumnetworkTier	ipaddress
ip_addresssix	text_typeexternalIpv6
ValueErrorGetAddressRefexternalIpv6PrefixLength
ip_networkr   $CreateAliasIpRangeMessagesFromStringaliasesIgmpQueryValueValuesEnum-ComputeInstancesUpdateNetworkInterfaceRequestrL   appendIncludeFieldsUpdateNetworkInterface)"selfargsholderrY   r[   r\   instance_refr7   irP   security_policy_refrequest_bodyrequest	operationoperation_refoperation_pollernetwork_urisubnetwork_urir=   r>   r?   r@   rA   rB   rC   rD   rE   stack_type_enumrF   ipv6_access_configsipv6_access_configpatch_network_interfaceigmp_query_enumcleared_fieldss"                                     r-   Run
Update.RunU   s@   **4+<+<+>?F]]**F}}%%H  I"//AA00? B L ##++Dl.A.A.CDH ''	
4))	)mm (
 //
))/$$ii)C)CD)CA)CDE*  t&-9	($	/	/"66HH""

(* 	
 #??!334, @ l AA&&((  ,8	 B g ""44W=i&&,,


)A - m  v'7'78^^

6$00,2C2C2EF	  KtY%1OO
,,l**
+' $  	
	  N++L,=,=>Ft\4(4 
//"**f
=* '  	
	  |T2J|T2J46L ';TB#D*A4H")+T# $D*A4H")+T#  11JJ
o "$(;TB		&%22::&&::FF 3 

 !!<<=NO 	& %".
*/A(:
%   /D!EF.C+ )+ 7 ;=712	
	CMM"788  /D!EF  /D!EF !) 9 9"GGD$,, #D"6=#/!+#> !: ! 
	 11JJ
o !) 9 9##!	 !: ! !) 9 9"GGD$,, #D"6=! !: 
! DD$$&&//!8 E G N"00O,			n	-""99'Bi 
.$$**'? + M }}V%5%56>><CC""L$5$5$7	
 _ E|  .=.K.K0&/hj +(  	"1"?"?.#HJ  	l 
.	-s=   \1\ A] *] )^	5]]0^^	
^rV   )__name__
__module____qualname____firstlineno____doc__r%   r*   classmethodr.   r   __static_attributes__rV   r0   r-   r   r   (   s-    	 "0 04Nr0   r   c                        \ rS rSrSrSrSrSrg)
UpdateBetai&  r   FTrV   Nr   r   r   r   r   r%   support_igmp_queryr   rV   r0   r-   r   r   &  s    	 "r0   r   c                        \ rS rSrSrSrSrSrg)UpdateAlphai7  r   TrV   Nr   rV   r0   r-   r   r   7  s    	 !r0   r   )&r   
__future__r   r   r   r{   googlecloudsdk.api_lib.computer   r   r   r	   rq   )googlecloudsdk.api_lib.compute.operationsr
   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   r   "googlecloudsdk.command_lib.computer   ,googlecloudsdk.command_lib.compute.instancesr   ?googlecloudsdk.command_lib.compute.instances.network_interfacesr   4googlecloudsdk.command_lib.compute.security_policiesr(   r}   UniverseCompatibleReleaseTracksrX   GAUpdateCommandr   BETAr   ALPHAr   rV   r0   r-   <module>r      s    9 &  '  ? 7 4 = < . ( . 4 Q m  D%%(()yT y * yx D%%**+  ,  D%%++,*  -r0   