
    gw                     B    d Z ddlmZ ddlmZ ddlmZ  G d de      Zy)z,
Deprecated. Only PostgresSQL is supported.
    )verbose_proxy_logger)DynamoDBArgs)CustomDBc                   :    e Zd ZU ddlmZmZ eed<   defdZd Z	y)DynamoDBWrapperr   )CredentialsStaticCredentialscredentialsdatabase_argumentsc                    ddl m}m} d | _        |j                  dk(  r |       | _        n|j                  dk(  r~|j
                  dt        |j
                  t              rJ|j                  >t        |j                  t              r$ ||j
                  |j                        | _        nt        d|       || _
        |j                  | _        y )Nr   )PayPerRequest
ThroughputPAY_PER_REQUESTPROVISIONED_THROUGHPUT)readwritezhInvalid args passed in. Need to set both read_capacity_units and write_capacity_units. Args passed in - )aiodynamo.modelsr   r   throughput_typebilling_moderead_capacity_units
isinstanceintwrite_capacity_units	Exceptionr   region_name)selfr   r   r   s       O/var/www/openai/venv/lib/python3.12/site-packages/litellm/proxy/db/dynamo_db.py__init__zDynamoDBWrapper.__init__   s    >#**.??#0?D ,,0HH"66B1EEsK&;;G1FFL'17I7]7]ew  fM  fM  (N$~  @R  S  T  #5-99    c                    | j                   j                  y t        j                  d| j                   j                          dd l}dd l}|j                  d      }|j                  | j                   j                  | j                   j                  | j                   j                         |j                  | j                   j                  | j                   j                        }|d   d   }|d   d   }|d   d	   }t        j                  d
|        ||j                  d<   ||j                  d<   ||j                  d<   y )Nz(DynamoDB: setting env vars based on arn=r   sts)RoleArnRoleSessionNameWebIdentityToken)r"   r#   r   AccessKeyIdSecretAccessKeySessionTokenz(Got STS assumed Role, aws_access_key_id=AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN)r   aws_role_namer   debugosboto3clientassume_role_with_web_identityaws_session_nameaws_web_identity_tokenassume_roleassume_role_aws_role_nameassume_role_aws_session_nameenviron)r   r-   r.   
sts_clientassumed_roleaws_access_key_idaws_secret_access_keyaws_session_tokens           r   set_env_vars_based_on_arnz)DynamoDBWrapper.set_env_vars_based_on_arn$   sE   ""008""6t7N7N7\7\6]^	
 	\\%(
 	00++99 33DD!44KK 	1 	
 "--++EE 33PP . 

 )7F ,] ;<M N(7G""67H6IJ	
 +<

&'.C

*+*;

&'r   N)
__name__
__module____qualname__aiodynamo.credentialsr   r	   __annotations__r   r   r<    r   r   r   r   
   s    D:< :*#<r   r   N)__doc__litellm._loggingr   litellm.proxy._typesr   litellm.proxy.db.base_clientr   r   rB   r   r   <module>rG      s!    2 - 1=<h =<r   