o
    ưiw                     @   s<   d Z ddlmZ ddlmZ ddlmZ G dd deZdS )z,
Deprecated. Only PostgresSQL is supported.
    )verbose_proxy_logger)DynamoDBArgs)CustomDBc                   @   s<   e Zd ZU ddlmZmZ eed< defddZdd Z	d	S )
DynamoDBWrapperr   )CredentialsStaticCredentialscredentialsdatabase_argumentsc                 C   s   ddl m}m} d | _|jdkr| | _n,|jdkrA|jd ur:t|jtr:|jd ur:t|jtr:||j|jd| _nt	d| || _
|j| _d S )Nr   )PayPerRequest
ThroughputZPAY_PER_REQUESTZPROVISIONED_THROUGHPUT)readwritezhInvalid args passed in. Need to set both read_capacity_units and write_capacity_units. Args passed in - )Zaiodynamo.modelsr
   r   Zthroughput_typeZbilling_modeZread_capacity_units
isinstanceintZwrite_capacity_units	Exceptionr	   Zregion_name)selfr	   r
   r    r   Q/home/app/Keep/.python/lib/python3.10/site-packages/litellm/proxy/db/dynamo_db.py__init__   s"   






zDynamoDBWrapper.__init__c                 C   s   | j jd u rd S td| j j  dd l}dd l}|d}|j| j j| j j| j j	d |j
| j j| j jd}|d d }|d d }|d d	 }td
|  ||jd< ||jd< ||jd< d S )Nz(DynamoDB: setting env vars based on arn=r   sts)RoleArnRoleSessionNameZWebIdentityToken)r   r   r   ZAccessKeyIdZSecretAccessKeyZSessionTokenz(Got STS assumed Role, aws_access_key_id=ZAWS_ACCESS_KEY_IDZAWS_SECRET_ACCESS_KEYZAWS_SESSION_TOKEN)r	   Zaws_role_namer   debugosboto3clientZassume_role_with_web_identityZaws_session_nameZaws_web_identity_tokenZassume_roleZassume_role_aws_role_nameZassume_role_aws_session_nameenviron)r   r   r   Z
sts_clientZassumed_roleZaws_access_key_idZaws_secret_access_keyZaws_session_tokenr   r   r   set_env_vars_based_on_arn$   s4   


z)DynamoDBWrapper.set_env_vars_based_on_arnN)
__name__
__module____qualname__Zaiodynamo.credentialsr   r   __annotations__r   r   r   r   r   r   r   r   
   s
   
 r   N)__doc__Zlitellm._loggingr   Zlitellm.proxy._typesr   Zlitellm.proxy.db.base_clientr   r   r   r   r   r   <module>   s
    