
                         &   S 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S.r\	R                  " \	R                   R"                  \	R                   R$                  5       " S S\	R&                  5      5       r\\l        g)z<Command for adding or updating or patching partner metadata.    )absolute_import)division)unicode_literals)base_classes)partner_metadata_utils)base)
exceptions)flagsa%            {command} can be used to patch partner metadata of a
        virtual machine instance. Every instance has access to a
        metadata server that can be used to query partner metadata that has
        been set through this tool. For information on metadata, see link:https://cloud.google.com/compute/docs/metadata/overview[About VM metadata].

        Only namespaces keys that are provided are mutated. Existing
        Namespaces entries will remain unaffected.

        In order to retrieve partner metadata, run:

            $ gcloud compute instances describe example-instance --zone
            us-central1-a --view=FULL --format="value(partnerMetadata)"

        where example-instance is the name of the virtual machine instance
        you're querying partner metadata from.

        a          To add partner metadata under namespace ``test.compute.googleapis.com''
        to instance ``TEST_INSTANCE'' run:

          $ {command} TEST_INSTANCE \
          --partner-metadata=test.compute.googleapis.com/entries/engine="{ "engine": { "type": V8 } }"

        To add partner metadata from a file:

          $ {command} TEST_INSTANCE \
          --partner-metadata-from-file=examples/engine.json

        )DESCRIPTIONEXAMPLESc                   4    \ rS rSrSr\S 5       rS rS rSr	g)InstancesPatchPartnerMetadata@   zPatch partner metadata.c                 l    [         R                  R                  U SS9  [        R                  " U 5        g )Nzset partner metadata on)operation_type)r
   INSTANCE_ARGAddArgumentr   AddPartnerMetadataArgs)parsers    7lib/surface/compute/instances/patch_partner_metadata.pyArgs"InstancesPatchPartnerMetadata.ArgsD   s1    	""8 #  11&9    c           
      $   [         R                  " U5      n[         R                  " UUR                  5      nUR                  R
                  SUR                  R                  " SSUR                  R                  US90UR                  5       D64$ )NPatchPartnerMetadatapartnerMetadata)r    )	r   CreatePartnerMetadataDict#ConvertPartnerMetadataDictToMessagemessagesapitools_client	instances+ComputeInstancesPatchPartnerMetadataRequestPartnerMetadataAsDict)selfclientinstance_refargspartner_metadata_dictpartner_metadata_messages         r   $_make_patch_partner_metadata_requestBInstancesPatchPartnerMetadata._make_patch_partner_metadata_requestK   s    2LL 	BB!OO	
  	((CC 	
"OO;; 8 < 	
 !!#		
	 	r   c                    UR                   (       d*  UR                  (       d  [        R                  " SS/S5      e[        R
                  " U R                  5       5      nUR                  n[        R                  R                  UUR                  [        R                  " U5      S9nU R                  X4U5      nUR                  U/5      $ )Nz--partner-metadataz--partner-metadata-from-filezXAt least one of [--partner-metadata] or [--partner-metadata-from-file] must be provided.)scope_lister)partner_metadatapartner_metadata_from_filecalliope_exceptionsOneOfArgumentsRequiredExceptionr   ComputeApiHolderReleaseTrackr'   r
   r   ResolveAsResource	resourcesGetInstanceZoneScopeListerr,   MakeRequests)r&   r)   holderr'   r(   patch_requests         r   Run!InstancesPatchPartnerMetadata.Run`   s      )H)H??!?
@> 
 **4+<+<+>?F]]F%%7755f= 8 L
 ==dM //r   r   N)
__name__
__module____qualname____firstlineno____doc__staticmethodr   r,   r<   __static_attributes__r   r   r   r   r   @   s!    : :*0r   r   N)rB   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   r	   r2   ,googlecloudsdk.command_lib.compute.instancesr
   DETAILED_HELPReleaseTracksr5   ALPHABETAUpdateCommandr   detailed_helpr   r   r   <module>rO      s     C &  ' 7 A ( E >$' F D%%++T->->-C-CD00D$6$6 00 E00f /<  +r   