
    ^h^                         S SK r S SKJrJrJr  S SKr        SS\\   S\\   S\\   S\\   S\\   S\\   S	\\   S
\\\\R                  4      4S jjr	 SS\\   S\4S jjr
g)    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           	         SSK Jn  U" SS 5      n	U" SS 5      n
U UUUUUU/n[        U5       H0  u  pU(       d  M  UR                  S5      (       d  M&  U" U5      X'   M2     Uu  n nnnnnnUnU(       a  UnOU	(       a  U	nOU
(       a  U
nO[	        S5      eSS Kn[        U[        5      (       a  UR                  R                  XwS9nOh[        U[        R                  5      (       a/  UR                  R                  UR                  UR                  S9nOUR                  R                  5       nUby  Ubv  Ubs   [        U5      R                  5       nUc  [	        S5      eUR                  S	5      nUR!                  UUUS
S9nUR                  SUS   S   US   S   US   S   UUS9nU$ UbK  UbH  UR                  S	U US9nUR#                  XSS9nUR                  SUS   S   US   S   US   S   UUS9nU$ U b  UR                  SU UUUS9nU$ Ub   UR%                  US9R                  SUUS9nU$ UR                  SUUS9nU$ ! [         a    U" U5      n GN
f = f)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                        Z/home/james-whalen/.local/lib/python3.13/site-packages/litellm/proxy/auth/rds_iam_token.pyinit_rds_clientr>      sD    8 )):DA),= 	O o.5U%%m44!+E!2O / 	 "K%	 -	!.`
 	
 '5!!%%g%T	GU]]	+	+%%#OO',, & 
 %%' 	*%(	<45::<J H  \\%(
 "??!,' 	 @ 
 *=9-H".}"=>O"P*=9.I#  
v Me 
	"'7'C\\/"7 " 

 "--! . 
 *=9-H".}"=>O"P*=9.I#  
L M= 
	& /"7#  
4 M' 
	% ,<=DD# E 
  M #  
 M]  	<#$:;J	<s   ;I	 	IIr1   returnc                    SSK Jn  Uc  [        [        R                  " S5      [        R                  " S5      [        R                  " S5      [        R                  " S5      [        R                  " S5      [        R                  " S[        R                  " S	5      5      [        R                  " S
[        R                  " S5      5      S9nOUnUR                  XUS9nU" USS9nU$ )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   