
                            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S.r\R$                  \R&                  " \R(                  R*                  \R(                  R,                  \R(                  R.                  5       " S S\R0                  5      5       5       r\\l        g)z*Update endpoint group association command.    )absolute_import)division)unicode_literalsN)
exceptions)api)base) endpoint_group_association_flags)labels_utila  
          Update an intercept endpoint group association. Check the progress of association update
          by using `gcloud network-security intercept-endpoint-group-associations list`.

          For examples refer to the EXAMPLES section below.
        a  
            To update labels k1 and k2, run:

            $ {command} my-association --project=my-project --location=global --update-labels=k1=v1,k2=v2

            To remove labels k3 and k4, run:

            $ {command} my-association --project=my-project --location=global --remove-labels=k3,k4

            To clear all labels from the intercept endpoint group association, run:

            $ {command} my-association --project=my-project --location=global --clear-labels
        )DESCRIPTIONEXAMPLESc                   B    \ rS rSrSr/ SQr\S 5       rS rS r	S r
Srg	)
Update7   z/Update an Intercept Endpoint Group Association.)z--clear-labelsz--remove-labelsz--update-labelsc                 &   [         R                  " U R                  5       U5        [         R                  " US5        [        R
                  R                  U5        [        R
                  R                  US5        [        R                  " U5        g )N20mT)
r	   #AddEndpointGroupAssociationResourceReleaseTrack
AddMaxWaitr   
ASYNC_FLAGAddToParser
SetDefaultr
   AddUpdateLabelsFlags)clsparsers     Llib/surface/network_security/intercept_endpoint_group_associations/update.pyArgsUpdate.ArgsD   sj    $HHF %// 	OO'OOvt,$$V,    c           	         [         R                  " U R                  5       5      nUR                  R                  R                  5       n UR                  UR                  5       5      n0 nU R                  X!U5      nU(       a  XeS'   U(       d   [        R                  " U R                  5      eUR                  UR                  5       US9nUR                   (       a  UR#                  S5      (       d  SUl        U$ U R'                  UUU[(        R*                  " UR,                  S95      $ ! [        R                   a    [        R                  " SS5      ef = f)Nz$intercept-endpoint-group-associationz4Intercept endpoint group association does not exist.labels)nameupdate_fieldsformatdefault)seconds)r   Clientr   CONCEPTS$intercept_endpoint_group_associationParse DescribeEndpointGroupAssociationRelativeNameapitools_exceptionsHttpNotFoundErrorr   InvalidArgumentException_process_label_updatesMinimumArgumentException_valid_argumentsUpdateEndpointGroupAssociationasync_IsSpecifiedr#   _wait_for_operationdatetime	timedeltamax_wait)selfargsclientassociationoriginalr"   r    	operations           r   Run
Update.RunQ   s;   ZZ))+,F--DDJJLK88

"
"
$h M((x@F &H//0E0EFF55%%'# 6 I {{ h''##4==1	 7 00 //
0
@ s   
D- -,Ec                 "   [         R                  R                  U5      nUR                  5       (       d  gUR                  nUR                  UR                  R                  R                  U5      nUR                  (       a  UR                  $ U$ )a5  Processes the label update request.

Args:
  client: the client to use to make the API call.
  args: the args from the command line.
  original_association: the original intercept endpoint group association.

Returns:
  the labels we would like to update if there is any update. Otherwise,
  it returns None.
N)
r
   DiffFromUpdateArgsMayHaveUpdatesr    Applymessages!InterceptEndpointGroupAssociationLabelsValueneeds_update)r9   r;   r:   original_associationlabels_diffr    labels_updates          r   r/   Update._process_label_updates{   sy     ""11$7K%%''!((F%%99EEM !!!!!Mr   c                 ~    UR                  UR                  U5      SR                  UR                  5       5      SUS9$ )NzCwaiting for intercept endpoint group association [{}] to be updatedF)operation_refmessage
has_resultr8   )WaitForOperationGetOperationRefr#   r+   )r9   r;   r>   r<   r8   s        r   r5   Update._wait_for_operation   sF    "",,Y7vk6689 #  r    N)__name__
__module____qualname____firstlineno____doc__r1   classmethodr   r?   r/   r5   __static_attributes__rU   r   r   r   r   7   s3    
 8 
- 
-(T4	r   r   )rZ   
__future__r   r   r   r6   apitools.base.pyr   r,   Mgooglecloudsdk.api_lib.network_security.intercept_endpoint_group_associationsr   googlecloudsdk.callioper   5googlecloudsdk.command_lib.network_security.interceptr	   $googlecloudsdk.command_lib.util.argsr
   DETAILED_HELPDefaultUniverseOnlyReleaseTracksr   ALPHABETAGAUpdateCommandr   detailed_helprU   r   r   <module>rk      s    1 &  '  > ] ( . b <. T..33T5F5F5I5IcT c cL % r   