
    h                     ^   d dl Z d dlmZ d dlZd dlZd dlZd dlmZ ddlm	Z	  ej                         d        Zej                          ej                  dd ej                  d	d
g      d	d      ej                  dej                  ded   fd                     Zej                          ej"                  d       ej                  dedd       ej                  dedd      ej                  dej                  dededefd                                   Zej                          ej"                  d      ej                  dej                  defd                     Zej                          ej"                  d      ej                  dej                  defd                     Zy)    N)Literal)Table   )CredentialsManagementClientc                       y)z/Manage credentials for the LiteLLM proxy serverN r       i/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/proxy/client/cli/commands/credentials.pycredentialsr      s     	r	   z--formatoutput_formattablejsonzOutput format (table or json))typedefaulthelpctx)r   r   c           
      4   t        | j                  d   | j                  d         }|j                         }t        |t              sJ |dk(  rt        j                  |       yt        d      }|j                  dd	       |j                  d
d	       |j                  dg       D ]X  }|j                  di       }|j                  t        |j                  dd            t        |j                  dd                   Z t        j                  |       y)zList all credentialsbase_urlapi_keyr   dataCredentials)titlezCredential Namecyan)stylezCustom LLM Providergreenr   credential_infocredential_name custom_llm_providerN)r   objlist
isinstancedictrich
print_jsonr   
add_columngetadd_rowstrprint)r   r   clientresponser   credinfos          r
   r"   r"      s     ))<cggi>PQF{{}Hh%%%X&M* 	*&9.g> LL3D88-r2DMMDHH.34DHH2B78 4 	

5r	   r   z--infoz&JSON string containing credential infoT)r   r   requiredz--valuesz(JSON string containing credential valuesr/   valuesc                 P   t        | j                  d   | j                  d         }	 t        j                  |      }t        j                  |      }	 |j                  |||      }t        j                  |       y# t        j                  $ r&}t        j                  dt        |             d}~ww xY w# t        j                  j                  $ r}t        j                  d|j                  j                    d       	 |j                  j                         }	t        j                  |	       t        j$                         # t        j                  $ rA t        j                  |j                  j"                  d       Y t        j$                         w xY wd}~ww xY w)	zCreate a new credentialr   r   zInvalid JSON: Nr   Error: HTTP Terr)r   r!   r   loadsJSONDecodeErrorclickBadParameterr*   creater%   r&   requests
exceptions	HTTPErrorechor-   status_codetextAbort)
r   r   r/   r1   r,   r   credential_valueser-   
error_bodys
             r
   r:   r:   5   s@   " ))<cggi>PQF<**T* JJv.
==/CTUX&  <  >#a&!:;;< (( 

\!**"8"8!9:E	2*JOO, kkm ## 	2JJqzzD1kkm	2sS   *A= )B9 =B6!B11B69F%.F 0E	5F 	>FF FF  F%c                 ~   t        | j                  d   | j                  d         }	 |j                  |      }t        j                  |       y# t
        j                  j                  $ r}t        j                  d|j                  j                   d       	 |j                  j                         }t        j                  |       t        j                         # t        j                  $ rA t        j                  |j                  j                  d       Y t        j                         w xY wd}~ww xY w)zDelete a credential by namer   r   r   r3   Tr4   N)r   r!   deleter%   r&   r;   r<   r=   r8   r>   r-   r?   r   r7   r@   rA   )r   r   r,   r-   rC   rD   s         r
   rF   rF   Z   s    
 ))<cggi>PQF
==1X&(( 

\!**"8"8!9:E	2*JOO, kkm ## 	2JJqzzD1kkm	2s;   'A D<-.D70C D7 >D4D73D44D77D<c                     t        | j                  d   | j                  d         }|j                  |      }t        j                  |       y)zGet a credential by namer   r   r   N)r   r!   r(   r%   r&   )r   r   r,   r-   s       r
   r(   r(   m   s<    
 ))<cggi>PQFzz/*HOO"r	   )r   typingr   r8   r%   r;   
rich.tabler   r   r   groupcommandoptionChoicepass_contextContextr"   argumentr*   r:   rF   r(   r   r	   r
   <module>rQ      s         6 	 	
 	w'	(	( emm GO,D   4 !"		1	 		3	   3    # , !"    #   !"#U]] #S #  # #r	   