o
    찓i
                     @  s   d dl mZ d dlZd dlmZ d dlmZ ddlm	Z	 ddl
mZ er*d d	lmZ dadadddZG dd deZdgZdS )    )annotationsN)Mapping)TYPE_CHECKING   )parse_env_vars   )EnvSettingsSource)BaseSettingsreturnNonec               
   C  sB   zddl ma ddlma W d S  ty  }  ztd| d } ~ ww )Nr   )client)SecretsManagerClientzlAWS Secrets Manager dependencies are not installed, run `pip install pydantic-settings[aws-secrets-manager]`)boto3r   boto3_client mypy_boto3_secretsmanager.clientr   ImportError)e r   [/home/ubuntu/.local/lib/python3.10/site-packages/pydantic_settings/sources/providers/aws.pyimport_aws_secrets_manager   s   r   c                      sV   e Zd ZU ded< ded< 								dd fddZd ddZd!ddZ  ZS )"AWSSecretsManagerSettingsSourcestr
_secret_idr   _secretsmanager_clientNT--settings_clstype[BaseSettings]	secret_idregion_name
str | Noneendpoint_urlcase_sensitivebool | None
env_prefixenv_nested_delimiterenv_parse_none_strenv_parse_enums
version_idr
   r   c              	     s@   t   td||d| _|| _|
| _t j||||d||	d d S )Nsecretsmanager)r   r    F)r!   r#   r$   env_ignore_emptyr%   r&   )r   r   r   r   _version_idsuper__init__)selfr   r   r   r    r!   r#   r$   r%   r&   r'   	__class__r   r   r,   #   s   
z(AWSSecretsManagerSettingsSource.__init__Mapping[str, str | None]c                 C  sJ   d| j i}| jr| j|d< | jjdi |}tt|d | j| j| j	S )NSecretId	VersionIdSecretStringr   )
r   r*   r   get_secret_valuer   jsonloadsr!   r)   r%   )r-   requestresponser   r   r   _load_env_vars>   s   

z.AWSSecretsManagerSettingsSource._load_env_varsc                 C  s   | j j d| jd| jdS )Nz(secret_id=z, env_nested_delimiter=))r/   __name__r   r$   )r-   r   r   r   __repr__M   s   z(AWSSecretsManagerSettingsSource.__repr__)NNTNr   NNN)r   r   r   r   r   r   r    r   r!   r"   r#   r   r$   r   r%   r   r&   r"   r'   r   r
   r   )r
   r0   )r
   r   )r;   
__module____qualname____annotations__r,   r9   r<   __classcell__r   r   r.   r   r      s   
 
r   )r
   r   )
__future__r   _annotationsr5   collections.abcr   typingr   utilsr   envr   pydantic_settings.mainr	   r   r   r   r   __all__r   r   r   r   <module>   s    
6