
    d                        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mZ ddlm	Z	 ddl
mZ ddlmZ d	d
iZe	j                   e	j                   e	j"                  j$                         G d de	j&                                      Z e	j                   e	j"                  j*                         G d de             Z e	j                   e	j"                  j.                         G d de             Zy)z&Update network endpoint group command.    )absolute_import)division)unicode_literals)base_classes)network_endpoint_groups)base)flagsEXAMPLESa  
To add two endpoints to a network endpoint group:

  $ {command} my-neg --zone=us-central1-a --add-endpoint=instance=my-instance1,ip=127.0.0.1,port=1234 --add-endpoint=instance=my-instance2

To remove two endpoints from a network endpoint group:

  $ {command} my-neg --zone=us-central1-a --remove-endpoint=instance=my-instance1,ip=127.0.0.1,port=1234 --remove-endpoint=instance=my-instance2
c                   *    e Zd ZdZeZed        Zd Zy)Update/Update a Compute Engine network endpoint group.c                 t    t        j                         j                  |       t        j                  |       y )N)r	   MakeNetworkEndpointGroupsArgAddArgumentAddUpdateNegArgsToParser)clsparsers     5lib/surface/compute/network_endpoint_groups/update.pyArgszUpdate.Args.   s'    	&&(44V<	""6*    c                    t        j                  | j                               }|j                  }|j                  j                  }|j
                  }t        j                         j                  ||t        j                  |j                              }t        j                  |||      }|j                  d      r|j                  nd }|j                  d      r|j                  nd }|j!                  |||      S )N)scope_listeradd_endpointremove_endpoint)add_endpointsremove_endpoints)r   ComputeApiHolderReleaseTrackclientmessages	resourcesr	   r   ResolveAsResourcecompute_flagsGetDefaultScopeListerr   NetworkEndpointGroupsClientIsSpecifiedr   r   r   )	selfargsholderr   r    r!   neg_refr   r   s	            r   Runz
Update.Run3   s    **4+<+<+>?F]]F}}%%H  I002DD"88G E G %@@)F "--n=4  !% 0 01B C  ==}?O   r   N)	__name__
__module____qualname____doc__DETAILED_HELPdetailed_helpclassmethodr   r+    r   r   r   r   '   s#     8-+ +r   r   c                       e Zd ZdZy)
BetaUpdater   Nr,   r-   r.   r/   r3   r   r   r5   r5   M       7r   r5   c                       e Zd ZdZy)AlphaUpdater   Nr6   r3   r   r   r9   r9   R   r7   r   r9   N)r/   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer	   r#   :googlecloudsdk.command_lib.compute.network_endpoint_groupsr0   UniverseCompatibleReleaseTracksr   GAUpdateCommandr   BETAr5   ALPHAr9   r3   r   r   <module>rE      s    - &  ' 7 B ( E L    D%%(()!T ! * !H D%%**+8 8 ,8 D%%++,8& 8 -8r   