
    g                     J    d dl mZmZ d dlmZmZmZmZ d dlZ G d de      Z	y)    )ABCabstractmethod)AnyDictOptionalUnionNc                      e Zd ZdZe	 	 ddedee   deee	e
j                  f      dee   fd       Ze	 	 ddedee   deee	e
j                  f      dee   fd       Ze	 	 	 dded	ed
ee   dee   deee	e
j                  f      deeef   fd       Ze	 	 	 ddedee   dee   deee	e
j                  f      def
d       Zy)BaseSecretManagerzD
    Abstract base class for secret management implementations.
    Nsecret_nameoptional_paramstimeoutreturnc                    K   yw)a  
        Asynchronously read a secret from the secret manager.

        Args:
            secret_name (str): Name/path of the secret to read
            optional_params (Optional[dict]): Additional parameters specific to the secret manager
            timeout (Optional[Union[float, httpx.Timeout]]): Request timeout

        Returns:
            Optional[str]: The secret value if found, None otherwise
        N selfr   r   r   s       `/var/www/openai/venv/lib/python3.12/site-packages/litellm/secret_managers/base_secret_manager.pyasync_read_secretz#BaseSecretManager.async_read_secret   s     $ 	   c                      y)a  
        Synchronously read a secret from the secret manager.

        Args:
            secret_name (str): Name/path of the secret to read
            optional_params (Optional[dict]): Additional parameters specific to the secret manager
            timeout (Optional[Union[float, httpx.Timeout]]): Request timeout

        Returns:
            Optional[str]: The secret value if found, None otherwise
        Nr   r   s       r   sync_read_secretz"BaseSecretManager.sync_read_secret    s    $ 	    secret_valuedescriptionc                    K   yw)ak  
        Asynchronously write a secret to the secret manager.

        Args:
            secret_name (str): Name/path of the secret to write
            secret_value (str): Value to store
            description (Optional[str]): Description of the secret. Some secret managers allow storing a description with the secret.
            optional_params (Optional[dict]): Additional parameters specific to the secret manager
            timeout (Optional[Union[float, httpx.Timeout]]): Request timeout
        Returns:
            Dict[str, Any]: Response from the secret manager containing write operation details
        Nr   )r   r   r   r   r   r   s         r   async_write_secretz$BaseSecretManager.async_write_secret4   s     * 	r   recovery_window_in_daysc                    K   yw)a  
        Async function to delete a secret from the secret manager

        Args:
            secret_name: Name of the secret to delete
            recovery_window_in_days: Number of days before permanent deletion (default: 7)
            optional_params: Additional parameters specific to the secret manager
            timeout: Request timeout

        Returns:
            dict: Response from the secret manager containing deletion details
        Nr   )r   r   r   r   r   s        r   async_delete_secretz%BaseSecretManager.async_delete_secretK   s     ( 	r   )NN)NNN)   NN)__name__
__module____qualname____doc__r   strr   dictr   floathttpxTimeoutr   r   r   r   r   intr   r   r   r   r
   r
      s     +/9=	 "$ %u}} 456	
 
# &  +/9=	 "$ %u}} 456	
 
# & 
 &**.9=  c]	
 "$ %u}} 456 
c3h ,  23*.9= "*# "$	
 %u}} 456 
 r   r
   )
abcr   r   typingr   r   r   r   r(   r
   r   r   r   <module>r-      s    # - - X Xr   