
    T                        S r SSKJr  SSKJr  SSKJr  SSK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r " S S\5      r\R,                  " \R.                  R0                  \R.                  R2                  \R.                  R4                  5       " S S\\R6                  5      5       rg)4Creates an SSL certificate for a Cloud SQL instance.    )absolute_import)division)unicode_literalsN)api_util)
exceptions)validate)base)flags)log)
properties)filesc                   .    \ rS rSrSr\S 5       rS rSrg)_BaseAddCert!   z$Base class for sql ssl_certs create.c                     U R                  SSS9  U R                  SSSS9  [        R                  " U 5        U R                  R	                  [        R
                  5        g)z=Declare flag and positional arguments for the command parser.common_namez7User supplied name. Constrained to ```[a-zA-Z.-_ ]+```.)help	cert_fileNzRLocation of file which the private key of the created ssl-cert will be written to.)defaultr   )add_argumentr   AddInstancedisplay_info	AddFormatCLIENT_CERTS_FORMAT)parsers    #lib/surface/sql/ssl_certs/create.pyArgs_BaseAddCert.Args$   sh     F  H %  '
 
f
!!%";";<    c           
      2   [         R                  R                  UR                  5      (       a-  [        R
                  " SR                  UR                  S95      e [        R                  " UR                  SSSS9  [        R                  " [        R                  5      nUR                   nUR"                  n[$        R&                  " UR(                  5        UR*                  R-                  UR(                  S
[.        R0                  R2                  R4                  R6                  0SS9nUR8                  R;                  UR=                  UR4                  UR(                  UR?                  UR@                  S9S95      nURB                  RD                  n[        R                  " UR                  US-   SS9  UR*                  RG                  SUR4                  UR(                  URB                  RH                  RJ                  S9n	[L        RN                  " U	5        URB                  RH                  $ ! [        R                  [        4 aG  n[        R
                  " SR                  UR                  [        R                  " U5      S95      eS	nAff = f)aX  Creates an SSL certificate for a Cloud SQL instance.

Args:
  args: argparse.Namespace, The arguments that this command was invoked
      with.

Returns:
  A dict object representing the operations resource describing the create
  operation if the create was successful.
Raises:
  ArgumentError: If the file path provided cannot be written to.
zfile [{path}] already exists)pathzplaceholder
TF)privatecreate_pathz!unable to write [{path}]: {error})r"   errorNprojectzsql.instances)params
collection)
commonName)r&   instancesslCertsInsertRequest
)r#   zsql.sslCerts)r(   r&   r*   sha1Fingerprint)(osr"   existsr   r   ArgumentErrorformatr   WriteFileContentsErrorOSErrorsix	text_typer   	SqlClientAPI_VERSION_DEFAULT
sql_clientsql_messagesr	   ValidateInstanceNamer*   resource_parserParser   VALUEScorer&   	GetOrFailsslCertsInsertSqlSslCertsInsertRequestSslCertsInsertRequestr   
clientCertcertPrivateKeyCreatecertInfor-   r   CreatedResource)
selfargseclientr9   r:   instance_refresultprivate_keycert_refs
             r   Run_BaseAddCert.Run2   s0    
ww~~dnn%%$$
(
/
/T^^
/
DF F
8
../4UL  < <=F""J&&L!!$--0))//:,,1199CCD" 0 $L   ''-- ((!**"."D"D++ #E #- 	. 	./F ##22K	DNNK$,>M%%,,!$$&&))22BB	 - DH !%%%E KK! 8$$%H%O%O~~S]]1%5 &P &7 8 88s   !H5 5JAJJ N)	__name__
__module____qualname____firstlineno____doc__staticmethodr   rR   __static_attributes__rT   r    r   r   r   !   s    ,= =9&r    r   c                       \ rS rSrSrSrg)AddCertn   r   rT   N)rU   rV   rW   rX   rY   r[   rT   r    r   r]   r]   n   s
     =r    r]   )rY   
__future__r   r   r   r.   googlecloudsdk.api_lib.sqlr   r   r	   googlecloudsdk.callioper
   googlecloudsdk.command_lib.sqlr   googlecloudsdk.corer   r   googlecloudsdk.core.utilr   r5   objectr   ReleaseTracksReleaseTrackGABETAALPHACreateCommandr]   rT   r    r   <module>rl      s    ; &  ' 	 / 1 / ( 0 # * * 
J&6 J&Z D%%(($*;*;*@*@%%++-lD.. -r    