o
    h2                     @  sx   d dl mZ d dlZd dlmZ d dlmZ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Optional   )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   {/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/pydantic_settings/sources/providers/aws.pyimport_aws_secrets_manager   s   r   c                      sL   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_clientNsettings_clstype[BaseSettings]	secret_id
env_prefix
str | Noneenv_parse_none_strenv_parse_enumsbool | Noner	   r
   c              	     s4   t   td| _|| _t j|d|dd||d d S )NsecretsmanagerTz--F)case_sensitiver   env_nested_delimiterenv_ignore_emptyr   r   )r   r   r   r   super__init__)selfr   r   r   r   r   	__class__r   r   r&   "   s   

z(AWSSecretsManagerSettingsSource.__init__Mapping[str, Optional[str]]c                 C  s   | j j| jd}t|d S )N)SecretIdSecretString)r   get_secret_valuer   jsonloads)r'   responser   r   r   _load_env_vars7   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__<   s   z(AWSSecretsManagerSettingsSource.__repr__)NNN)r   r   r   r   r   r   r   r   r   r    r	   r
   )r	   r*   )r	   r   )r3   
__module____qualname____annotations__r&   r1   r4   __classcell__r   r   r(   r   r      s   
 
r   )r	   r
   )
__future__r   _annotationsr.   collections.abcr   typingr   r   envr   pydantic_settings.mainr   r   r   r   r   __all__r   r   r   r   <module>   s    
&