
                             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	K
Jr  SS
K
Jr   " S S\R                  5      rg)zCreate a new ekm connection.    )absolute_import)division)unicode_literals)base)
exceptions)certs)flags)maps)resource_argsc                   4    \ rS rSrSr\S 5       rS rS rSr	g)Create   am  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                 h   [         R                  " U SS5        [        R                  " U S5        [        R                  " U 5        [        R
                  " U S5        [        R                  " U S5        [        R                  " U 5        U R                  R                  [        R                  5        g )NTekm_connection)r   $AddKmsEkmConnectionResourceArgForKMSr	   AddServiceDirectoryServiceFlagAddEndpointFilterFlagAddHostnameFlagAddServerCertificatesFilesFlagAddKeyManagementModeFlagsdisplay_infoAddCacheUpdaterEkmConnectionCompleter)parsers    )lib/surface/kms/ekm_connections/create.pyArgsCreate.Args=   s~    66vt7GI	((6	'	&$'	((6	##F+
''(D(DE    c                 @   [         R                  " 5       nUR                  R                  R	                  5       nUR                  5       nUR                  S:X  a(  UR                  (       d  [        R                  " SS5      e/ nUR                   H6  n UR                  UR                  [        R                  " U5      S95        M8     UR%                  UR'                  5       UR)                  5       UR+                  [,        R.                  R1                  UR                  5      UR                  UR3                  UR4                  UR6                  UR8                  US9/S9S	9nU$ ! [         a+  n[        R                   " SSR#                  Xg5      5      eS nAff = f)
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format4CloudkmsProjectsLocationsEkmConnectionsCreateRequest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   _CreateRequestCreate._CreateRequestH   s   ..0H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@@NP 	PPs   2E((
F2&FFc                     [         R                  " 5       nUR                  R                  U R	                  U5      5      $ )N)r+   GetClientInstance!projects_locations_ekmConnectionsr   rL   )rC   rD   clients      r   Run
Create.Runo   s7    ,,.F33::D!# #r    N)
__name__
__module____qualname____firstlineno____doc__staticmethodr   rL   rR   __static_attributes__rT   r   r   r   r      s(    < F F%N#r   r   N)rY   
__future__r   r   r   googlecloudsdk.api_lib.cloudkmsr   r+   googlecloudsdk.callioper   googlecloudsdk.command_lib.kmsr   r	   r
   r   CreateCommandr   rT   r   r   <module>ra      s<    # &  ' A ( . 0 0 / 8T#T T#r   