
    g^                         d dl Z d dlmZmZmZ d dlZ	 	 	 	 	 	 	 	 ddee   dee   dee   dee   dee   dee   d	ee   d
eeeej                  f      fdZ		 ddee   defdZ
y)    N)AnyOptionalUnionaws_access_key_idaws_secret_access_keyaws_region_nameaws_session_nameaws_profile_nameaws_role_nameaws_web_identity_tokentimeoutc                    ddl m}  |dd       }	 |dd       }
| ||||||g}t        |      D ]%  \  }}|s	|j                  d      s ||      ||<   ' |\  } }}}}}}|}|r|}n|	r|	}n|
r|
}nt	        d      dd l}t        |t              r|j                  j                  ||      }nft        |t        j                        r2|j                  j                  |j                  |j                        }n|j                  j                         }|||z|x	 t        |      j                         }|t	        d      |j                  d	      }|j!                  |||d
      }|j                  d|d   d   |d   d   |d   d   ||      }|S |T|R|j                  d	| |      }|j#                  ||      }|j                  d|d   d   |d   d   |d   d   ||      }|S | |j                  d| |||      }|S |&|j%                  |      j                  d||      }|S |j                  d||      }|S # t        $ r  ||      }Y  w xY w)Nr   )
get_secretAWS_REGION_NAME
AWS_REGIONzos.environ/zRAWS region not set: set AWS_REGION_NAME or AWS_REGION env variable or in .env file)connect_timeoutread_timeoutz6OIDC token could not be retrieved from secret manager.stsi  )RoleArnRoleSessionNameWebIdentityTokenDurationSecondsrdsCredentialsAccessKeyIdSecretAccessKeySessionToken)service_namer   r   aws_session_tokenregion_nameconfig)r   r   )r   r   )r   r   r   r    r!   )profile_name)r   r    r!   )litellm.secret_managers.mainr   	enumerate
startswith	Exceptionboto3
isinstancefloatsessionConfighttpxTimeoutconnectreadopenclientassume_role_with_web_identityassume_roleSession)r   r   r   r	   r
   r   r   r   r   litellm_aws_region_namestandard_aws_region_nameparams_to_checkiparamr    r'   r!   
oidc_token
sts_clientsts_responser1   s                        U/var/www/openai/venv/lib/python3.12/site-packages/litellm/proxy/auth/rds_iam_token.pyinit_rds_clientr>      sB    8 )):DA),= 	O o.5U%%m4!+E!2OA / 	 "K%	 -	!.`
 	
 '5!%%gG%T	GU]]	+%%#OO',, & 
 %%' 	*%(	<45::<J H  \\%(
 "??!,' 	 @ 
 *=9-H".}"=>O"P*=9.I#  
v Me 
	"'7'C\\/"7 " 

 "--!3C . 
 *=9-H".}"=>O"P*=9.I#  
L M= 
	& /"7#  
4 M' 
	% ,<=DD# E 
  M #  
 M]  	<#$:;J	<s   H? ?IIr1   returnc                    ddl m} |t        t        j                  d      t        j                  d      t        j                  d      t        j                  d      t        j                  d      t        j                  dt        j                  d	            t        j                  d
t        j                  d                  }n|}|j                  | ||      } ||d      }|S )Nr   )quoter   AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_NAMEAWS_PROFILE_NAMEAWS_ROLE_NAMEAWS_ROLE_ARNAWS_WEB_IDENTITY_TOKENAWS_WEB_IDENTITY_TOKEN_FILE)r   r   r   r	   r
   r   r   )
DBHostnamePort
DBUsername )safe)urllib.parserA   r>   osgetenvgenerate_db_auth_token)db_hostdb_portdb_userr1   rA   boto_clienttokencleaned_tokens           r=   generate_iam_auth_tokenrY      s     #~%II&78 ii(;<"$)),C"DYY'9:YY'9:))ORYY~5NO#%99("))4Q*R$

 ..W / E %b)M    )NNNNNNNN)N)rP   typingr   r   r   r,   strr)   r-   r>   rY    rZ   r=   <module>r^      s    	 ' '  (,+/%)&*&*#',059X}X#C=X c]X sm	X
 smX C=X %SMX eE5==012Xx 8<'/}rZ   