
                         V    S r SSKJr  SSKJr  SSKJr  SrSrSrS rS	 r	S
 r
S rS rg)zGCommon command-agnostic utility functions for server-ca-certs commands.    )absolute_import)division)unicode_literalsCurrentNextPreviousc                 |    U R                   R                  UR                  UR                  UR                  S95      $ )z<Calls the list server CAs endpoint and returns the response.)projectinstance)	instancesListServerCas SqlInstancesListServerCasRequestr
   r   )
sql_clientsql_messagesinstance_refs      5lib/googlecloudsdk/api_lib/sql/ssl/server_ca_certs.pyr   r      sB    				+	+33&&1F1F 4 H
I I    c                    0 nU R                   nU R                  nSnU H  nUR                  U:X  d  M  Un  O   U(       d  U$ XA[        '   U Vs/ s H  oUR                  U:w  d  M  UPM     nn[	        U5      S:X  a4  US   nUR
                  UR
                  :  a
  Xq[        '   U$ Xq[        '    U$ [	        U5      S:  a#  [        US S9nUS   U[        '   US   U[        '   U$ s  snf )a6  Gets a dictionary mapping Server CA Cert types to certs.

The keys to the dictionary returned will be some combinatiaon of 'Current',
'Next', and 'Previous'.

Args:
  list_server_cas_response: InstancesListServerCasResponse instance.

Returns:
  A dictionary mapping Server CA Cert types to SslCert instances.
N   r   c                     U R                   $ )N)
createTime)certs    r   <lambda>%GetServerCaTypeDict.<locals>.<lambda>I   s    T__r   )key)	activeVersioncertssha1FingerprintACTIVE_CERT_LABELlenr   NEXT_CERT_LABELPREVIOUS_CERT_LABELsorted)list_server_cas_responseserver_ca_types	active_idr   active_certr   inactive_certsinactive_certs           r   GetServerCaTypeDictr+   !   s    /&44) #
(
(%+dy(k  
'2#$ &+PUT.B.Bi.ODU.PA"1%M+"8"88)6o& 
 .;)* 
 >QN0LMN+9!+<O'('5b'9OO$	 Qs   C%&C%c                 V    [        [        XU5      5      nUR                  [        5      $ )z,Returns the currently active Server CA Cert.)r+   r   getr    r   r   r   r&   s       r   GetCurrentServerCar/   P   s(    'Jl;=/			.	//r   c                 V    [        [        XU5      5      nUR                  [        5      $ )z$Returns the upcoming Server CA Cert.)r+   r   r-   r"   r.   s       r   GetNextServerCar1   W   s'    'Jl;=/			_	--r   c                 V    [        [        XU5      5      nUR                  [        5      $ )z-Returns the previously active Server CA Cert.)r+   r   r-   r#   r.   s       r   GetPreviousServerCar3   ^   s(    'Jl;=/			0	11r   N)__doc__
__future__r   r   r   r    r"   r#   r   r+   r/   r1   r3    r   r   <module>r7      s@    N &  '   I,^0.2r   