
                         D   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\5      r\	R                   " \	R"                  R$                  \	R"                  R&                  5      \	R(                   " S S\\	R*                  5      5       5       rg)zARotate in the next Entra ID certificate for a Cloud SQL instance.    )api_util)
exceptions)
operations)validate)entraid_certs)base)flags)
propertiesc                   .    \ rS rSrSr\S 5       rS rSrg)_BaseRotateCert   z,Base class for sql ssl entraid_certs rotate.c                     [         R                  R                  U 5        [        R                  " U 5        U R
                  R                  [        R                  5        g)z=Declare flag and positional arguments for the command parser.N)r   
ASYNC_FLAGAddToParserr	   AddInstancedisplay_info	AddFormatENTRAID_CERTS_FORMAT)parsers    +lib/surface/sql/ssl/entraid_certs/rotate.pyArgs_BaseRotateCert.Args   s>     	OO'	f
!!%"<"<=    c                 &   [         R                  " [         R                  5      nUR                  nUR                  n[
        R                  " UR                  5        UR                  R                  UR                  S[        R                  R                  R                  R                  0SS9n[        R                   " X4U5      u  pgUc  ["        R$                  " S5      eUR&                  R)                  UR+                  UR                  UR                  S95      nUR                  R-                  SUR.                  UR                  S9n	[0        R2                  R5                  X9S5        [6        R8                  " U[        R:                  5      $ )	zRotate in the upcoming Entra ID certificate for a Cloud SQL instance.

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

Returns:
  The Entra ID certificate that was rotated in, if the operation was
  successful.
projectzsql.instances)params
collectionz(No upcoming Entra ID Certificate exists.)r   instancezsql.operations)	operationr   z)Rotating to upcoming Entra ID Certificate)r   	SqlClientAPI_VERSION_DEFAULT
sql_clientsql_messagesr   ValidateInstanceNamer   resource_parserParser
   VALUEScorer   	GetOrFailr   GetNextEntraIdCertificater   ResourceNotFoundError	instancesRotateEntraIdCertificate+SqlInstancesRotateEntraIdCertificateRequestCreatenamer   OperationsV1Beta4WaitForOperationr	   EntraIdCertForPrintACTIVE_CERT_LABEL)
selfargsclientr"   r#   instance_refnext_entraid_cert_result_operationoperation_refs
             r   Run_BaseRotateCert.Run&   sl     < <=F""J&&L!!$--0))//:,,1199CCD" 0 $L
 )BB,  ,,
4  "++DD@@ ((<3H3H 	A 	
 **11"''$$ 2 &M
   11#N
 $$=:: r    N)	__name__
__module____qualname____firstlineno____doc__staticmethodr   r=   __static_attributes__r?   r   r   r   r      s    4> >1r   r   c                       \ rS rSrSrSrg)
RotateCertZ   zERotate in the upcoming Entra ID certificate for a Cloud SQL instance.r?   N)r@   rA   rB   rC   rD   rF   r?   r   r   rH   rH   Z   s    
 Nr   rH   N)rD   googlecloudsdk.api_lib.sqlr   r   r   r   googlecloudsdk.api_lib.sql.sslr   googlecloudsdk.callioper   googlecloudsdk.command_lib.sqlr	   googlecloudsdk.corer
   objectr   ReleaseTracksReleaseTrackBETAALPHADefaultUniverseOnlyCreateCommandrH   r?   r   r   <module>rV      s    H 0 1 1 / 8 ( 0 *;f ;| D--33 $"4"4  r   