
    a                     >   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
l
mZ ddlmZ dddZ ej$                  ej&                  j(                  ej&                  j*                         G d dej,                               Zee_        y)z<Command for adding or updating or patching partner metadata.    )absolute_import)division)unicode_literals)encoding)base_classes)partner_metadata_utils)arg_parsers)base)
exceptions)flagsz|          {command} can be used to remove a specific entry in a namespace, a specific namespace, or all namespaces.
        a          To remove partner metadata specific entry in a namespace
        ``test.compute.googleapis.com/entries/engine''
        an instance named ``INSTANCE_NAME'', run:

          $ {command} INSTANCE_NAME \
          --keys=test.compute.googleapis.com/entries/engine

        To remove specific namespace with its data, run:
          $ {command} INSTANCE_NAME --keys=test.compute.googleapis.com

        To remove all namespaces, run:
          $ {command} INSTANCE_NAME --all

        )DESCRIPTIONEXAMPLESc                   ,    e Zd ZdZed        Zd Zd Zy)InstancesRemovePartnerMetadatazRemove partner metadata.c                     t         j                  j                  | d       | j                         }|j	                  dddd       |j	                  dt        j                  d	
      dd       y )Nzset partner metadata on)operation_type--all
store_trueFz9If provided, all partner metadata namespaces are removed.)actiondefaulthelp--keys   )
min_lengthKEYz*The namespaces partner metadata to remove.)typemetavarr   )r   INSTANCE_ARGAddArgumentadd_mutually_exclusive_groupadd_argumentr	   ArgList)parsergroups     8lib/surface/compute/instances/remove_partner_metadata.pyArgsz#InstancesRemovePartnerMetadata.Args:   s|    	""8 #  //1E	H	   
  A.9	      c                     |j                   j                  d |j                  j                  di |j	                         fS )NGetPartnerMetadata )apitools_client	instancesmessages)ComputeInstancesGetPartnerMetadataRequestAsDict)selfclientinstance_refs      r%   GetGetPartnerMetadataRequestz;InstancesRemovePartnerMetadata.GetGetPartnerMetadataRequestM   sC    ((AAA 	
!!#	
 r'   c           	         |j                   s$|j                  st        j                  ddgd      t	        j
                  | j                               }|j                  }t        j                  j                  ||j                  t        j                  |            }| j                  ||      }|j                  |g      d   }t        j                   |      d   }|j                   r|j                         D ci c]  }|d  }}na|j                  D ]R  }	|	j#                  d      j%                  d      ^}
}|r'|j'                         }||
   }|D ]  }||   }	 d ||<   Nd ||
<   T t)        j*                  ||j,                        }|j.                  j0                  d |j,                  j2                  d
d|j,                  j5                  |	      i|j7                         f}|j                  |g      S c c}w )Nr   r   z,One of [--all] or [--keys] must be provided.)scope_listerr   partnerMetadata/PatchPartnerMetadata)r6   r*   )allkeyscalliope_exceptionsOneOfArgumentsRequiredExceptionr   ComputeApiHolderReleaseTrackr1   r   r   ResolveAsResource	resourcesGetInstanceZoneScopeListerr3   MakeRequestsr   MessageToDictstripsplitpopr   #ConvertPartnerMetadataDictToMessager-   r+   r,   +ComputeInstancesPatchPartnerMetadataRequestPartnerMetadatar/   )r0   argsholderr1   r2   get_requestpartner_metadata_messagepartner_metadata_dictkkey	namespaceentriesdeleted_entry	curr_dictentrypatch_requests                   r%   Runz"InstancesRemovePartnerMetadata.RunV   s    88DII??W

8  **4+<+<+>?F]]F%%7755f= 8 L
 33FLIK%22K=A!D$223KL xx0E0J0J0LM0L1q$w0LM#!iin2237	G!++--+I6)e!%(I %))M
"-1
	
*  	BB!OO	
  	((CCC 	
"OO;; 8 < 	
 !!#		
	M //9 Ns   <
G9N)__name__
__module____qualname____doc__staticmethodr&   r3   rW   r*   r'   r%   r   r   6   s!      $/0r'   r   N)r[   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper	   r
   r   r;   ,googlecloudsdk.command_lib.compute.instancesr   DETAILED_HELPReleaseTracksr>   ALPHABETAUpdateCommandr   detailed_helpr*   r'   r%   <module>rh      s     C &  ' & 7 A / ( E >	, D%%++T->->-C-CDN0T%7%7 N0 EN0b 0=  ,r'   