Ë
    €ÏÓ  ã                   óª   — 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  G d„ dej                  «      Zy)zCreate a new ekm connection.é    )Úabsolute_import)Údivision)Úunicode_literals)Úbase)Ú
exceptions)Úcerts)Úflags)Úmaps)Úresource_argsc                   ó,   — e Zd ZdZed„ «       Zd„ Zd„ Zy)ÚCreatea™  Create a new ekm connection.

  Creates a new connection within the given location.

  ## EXAMPLES

  The following command creates an ekm connection named `laplace` within the
  location `us-central1`:

    $ {command} laplace \
        --location=us-central1 \
        --service-directory-service="foo" \
        --endpoint-filter="foo > bar" \
        --hostname="hostname.foo" \
        --server-certificates-files=foo.pem,bar.pem

  The following command creates an ekm connection named `laplace` within the
  location `us-central1` in `cloud-kms` key management mode with the required
  crypto-space-path :

    $ {command} laplace \
        --location=us-central1 \
        --service-directory-service="foo" \
        --endpoint-filter="foo > bar" \
        --hostname="hostname.foo" \
        --key-management-mode=cloud-kms
        --crypto-space-path="foo"
        --server-certificates-files=foo.pem,bar.pem
  c                 ó\  — t        j                  | dd«       t        j                  | d«       t        j                  | «       t        j
                  | d«       t        j                  | d«       t        j                  | «       | j                  j                  t        j                  «       y )NTÚekm_connection)r   Ú$AddKmsEkmConnectionResourceArgForKMSr	   ÚAddServiceDirectoryServiceFlagÚAddEndpointFilterFlagÚAddHostnameFlagÚAddServerCertificatesFilesFlagÚAddKeyManagementModeFlagsÚdisplay_infoÚAddCacheUpdaterÚEkmConnectionCompleter)Úparsers    ú)lib/surface/kms/ekm_connections/create.pyÚArgszCreate.Args=   s~   € ä×6Ñ6°v¸tØ7GôIä	×(Ñ(¨°Ô6Ü	×Ñ Ô'Ü	×Ñ˜& $Ô'Ü	×(Ñ(¨°Ô6Ü	×#Ñ# FÔ+Ø
×Ñ×'Ñ'¬×(DÑ(DÕEó    c                 ó@  — t        j                  «       }|j                  j                  j	                  «       }|j                  «       }|j                  dk(  r"|j                  st        j                  dd«      ‚g }|j                  D ]7  }	 |j                  |j                  t        j                  |«      ¬«      «       Œ9 |j%                  |j'                  «       |j)                  «       |j+                  t,        j.                  j1                  |j                  «      |j                  |j3                  |j4                  |j6                  |j8                  |¬«      g¬«      ¬	«      }|S # t        $ r+}t        j                   ddj#                  ||«      «      ‚d }~ww xY w)
Nz	cloud-kmsz--crypto-space-pathz9Must be supplied when --key-management-mode is cloud-kms.)ÚrawDerz--server-certificates-filesz+Error while attempting to read file {} : {})ÚserviceDirectoryServiceÚendpointFilterÚhostnameÚserverCertificates)ÚkeyManagementModeÚcryptoSpacePathÚserviceResolvers)ÚparentÚekmConnectionIdÚekmConnection)Úcloudkms_baseÚGetMessagesModuleÚCONCEPTSr   ÚParseÚParentÚkey_management_modeÚcrypto_space_pathr   ÚRequiredArgumentExceptionÚserver_certificates_filesÚappendÚCertificater   ÚGetDerCertificateÚ	ExceptionÚBadArgumentExceptionÚformatÚ4CloudkmsProjectsLocationsEkmConnectionsCreateRequestÚRelativeNameÚNameÚEkmConnectionr
   ÚKEY_MANAGEMENT_MODE_MAPPERÚGetEnumForChoiceÚServiceResolverÚservice_directory_serviceÚendpoint_filterr!   )	ÚselfÚargsÚmessagesÚekm_connection_refÚ
parent_refÚcertificate_listÚ	cert_fileÚeÚreqs	            r   Ú_CreateRequestzCreate._CreateRequestH   s’  € Ü×.Ñ.Ó0€HàŸ™×5Ñ5×;Ñ;Ó=ÐØ#×*Ñ*Ó,€Jà×Ñ ;Ò.Ø×#Ò#Ü×2Ñ2Ø!ØGóIð 	Ið ÐØ×3Ô3ˆ	ðPØ×ÑØ× Ñ ¬×(?Ñ(?À	Ó(JÐ ÓKõ	Mð 4ð ×
GÑ
GØ×&Ñ&Ó(Ø*×/Ñ/Ó1Ø×,Ñ,Ü"×=Ñ=×NÑNØ×(Ñ(ó*à ×2Ñ2à×(Ñ(Ø,0×,JÑ,JØ#'×#7Ñ#7Ø!Ÿ]™]Ø'7ð	 )ó 9ðð	 -ó 
ð Hó €Cð €Jøô) ò PÜ×-Ñ-Ø)Ø9×@Ñ@ÀÈAÓNóPð 	PûðPús   Â4E)Å)	FÅ2&FÆFc                 ó~   — t        j                  «       }|j                  j                  | j	                  |«      «      S )N)r)   ÚGetClientInstanceÚ!projects_locations_ekmConnectionsr   rJ   )rA   rB   Úclients      r   ÚRunz
Create.Runo   s7   € Ü×,Ñ,Ó.€FØ×3Ñ3×:Ñ:Ø×Ñ˜DÓ!ó#ð #r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   rJ   rO   © r   r   r   r      s(   „ ñð< ñFó ðFò%óN#r   r   N)rS   Ú
__future__r   r   r   Úgooglecloudsdk.api_lib.cloudkmsr   r)   Úgooglecloudsdk.callioper   Úgooglecloudsdk.command_lib.kmsr   r	   r
   r   ÚCreateCommandr   rU   r   r   Ú<module>r[      s<   ðñ #å &Ý Ý 'å AÝ (Ý .Ý 0Ý 0Ý /Ý 8ôT#ˆT×Ñõ T#r   