
    
                     \   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lmZ  ej$                  ej&                  j(                  ej&                  j*                  ej&                  j,                         G d dej.                               Zy)z1`gcloud certificate-manager maps update` command.    )absolute_import)division)unicode_literals)certificate_maps)base)flags)resource_args)util)labels_util)
exceptions)logc                   &    e Zd ZdZed        Zd Zy)UpdatezUpdate a certificate map.

  This command updates existing certificate map.

  ## EXAMPLES

  To update a certificate map with name simple-map, run:

    $ {command} simple-map --description="desc" --update-labels="key=value"
  c                     t        j                  | d       t        j                  |        t	        j
                  | d       t	        j                  |        y )Nz	to updatecertificate map)r	   AddCertificateMapResourceArgr   AddUpdateLabelsFlagsr   AddDescriptionFlagToParserAddAsyncFlagToParser)parsers    .lib/surface/certificate_manager/maps/update.pyArgszUpdate.Args-   s?    ..v{C$$V,	$$V->?	v&    c                    t        j                         }|j                  j                  j	                         }d }|j                  d      r|j                  }d }t        j                  j                  |      }|j                         rY|j                  |      }|j                  |j                  j                  j                  |j                         j#                         }||t%        j&                  d      |j)                  |||      }t+        j,                  ||j.                        }t1        j2                  |j5                         d|j.                         |S )NdescriptionzNothing to update.)labelsr   )is_asyncr   )r   CertificateMapClientCONCEPTSmapParseIsSpecifiedr   r   DiffFromUpdateArgsMayHaveUpdatesGetApplymessagesCertificateMapLabelsValuer   	GetOrNoner   ErrorPatchr
   WaitForOperationasync_r   UpdatedResourceName)	selfargsclientmap_refnew_descriptionlabels_updatelabels_difforig_resourceresponses	            r   Runz
Update.Run4   s#   224Fmm%%'GO&((oM""11$7K!!#jj)m!''
//
(
(
4
4


  )	  =#8122||?  DH$$XDH(9DKKPOr   N)__name__
__module____qualname____doc__staticmethodr   r;    r   r   r   r      s     	 ' 'r   r   N)r?   
__future__r   r   r   *googlecloudsdk.api_lib.certificate_managerr   googlecloudsdk.callioper   .googlecloudsdk.command_lib.certificate_managerr   r	   r
   $googlecloudsdk.command_lib.util.argsr   googlecloudsdk.corer   r   ReleaseTracksReleaseTrackALPHABETAGAUpdateCommandr   rA   r   r   <module>rN      s    8 &  ' G ( @ H ? < * # D%%++T->->-C-C%%((*)T )*)r   