
                         \   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)z9`gcloud certificate-manager certificates update` command.    )absolute_import)division)unicode_literals)certificates)base)flags)resource_args)util)labels_util)
exceptions)logc                   &    e Zd ZdZed        Zd Zy)Updatea  Update a certificate.

  This command updates existing certificate.

  ## EXAMPLES

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

    $ {command} simple-cert --description="desc" --update-labels="key=value"
        --certificate-file=cert.pem --private-key-file=key.pem
  c                     t        j                  | d       t        j                  |        t	        j
                  | d       t	        j                  | d       t	        j                  |        y )Nz	to updatecertificateF)is_required)r	   AddCertificateResourceArgr   AddUpdateLabelsFlagsr   AddDescriptionFlagToParser*AddSelfManagedCertificateDataFlagsToParserAddAsyncFlagToParser)parsers    6lib/surface/certificate_manager/certificates/update.pyArgszUpdate.Args.   sN    ++FK@$$V,	$$V];	44VO	v&    c                    t        j                         }|j                  j                  j	                         }d }|j                  d      r`|j                  d      rO|j                  j                  |j                  j                  d      |j                  j                  d            }d }|j                  d      r|j                  }d }t        j                  j                  |      }|j                         rY|j!                  |      }|j#                  |j                  j$                  j&                  |j(                        j+                         }|||t-        j.                  d      |j1                  ||||      }	t3        j4                  |	|j6                        }	t9        j:                  |j=                         d	|j6                         |	S )
Ncertificate_fileprivate_key_filezutf-8)pemCertificatepemPrivateKeydescriptionzNothing to update.)self_managed_cert_datalabelsr!   )is_asyncr   )r   CertificateClientCONCEPTSr   ParseIsSpecifiedmessagesSelfManagedCertificater   encoder   r!   r   DiffFromUpdateArgsMayHaveUpdatesGetApplyCertificateLabelsValuer#   	GetOrNoner   ErrorPatchr
   WaitForOperationasync_r   UpdatedResourceName)
selfargsclientcert_refnew_self_managed_cert_datanew_descriptionlabels_updatelabels_difforig_resourceresponses
             r   Runz
Update.Run9   s   ++-F}}((..0H!% *+0@0@1#)??#I#I..55g>--44W= $J $ 
 O&((oM""11$7K!!#jj*m!''(C(C(O(O(5(<(<>>Gik  =#8=W=_122||9#	  %H
 $$XDHMOr   N)__name__
__module____qualname____doc__staticmethodr   rD    r   r   r   r      s     
 ' '#r   r   N)rH   
__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   rJ   r   r   <module>rW      s    @ &  ' C ( @ H ? < * # D%%++T->->-C-C%%((*;T ;*;r   