
    Yjb                       d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZ d dlmZmZmZ d dlmZmZ d dlZddlmZmZ ddlmZmZmZ dd	lmZ dd
lmZm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/m0Z0m1Z1m2Z2 e	g e3f   Z4e	g df   Z5ed   Z6e7e6e
e8   f   Z9 ejt                  d      Z; ed       G d d             Z< ed       G d d             Z=d.dZ>d/dZ?d0dZ@d1dZAd2dZB	 	 	 	 	 	 	 	 	 	 	 	 d3d ZCd4d!ZDdd"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d5d#ZE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d6d$ZF	 	 	 	 	 	 d7d%ZG	 	 	 	 	 	 d8d&ZHd9d'ZId9d(ZJ G d) d*e      ZK G d+ d,e       ZLg d-ZMy):    )annotationsN)AnyLiteralMappingCallableOptional	Awaitablecast)fieldreplace	dataclass)Selfoverride   )WorkloadIdentityX509WorkloadIdentity)	NOT_GIVENTimeoutNotGiven)is_given)OpenAIAsyncOpenAI)normalize_httpx_url)FinalRequestOptions)	_Provider_configure_provider)OpenAIError)DEFAULT_MAX_RETRIES)DataResidency)AwsCredentialsProviderbedrock_BedrockProviderRuntime _parse_bedrock_endpoint_hostnamezstr | Awaitable[str])bearertoken_provideraws    T)frozenc                  H    e Zd ZU ded<   ded<   ded<    ed      Zd	ed
<   y)_LegacyRuntimeSignature_LegacyAuthModemodestrbase_url
str | NoneregionFreprobjectcredential_identityN)__name__
__module____qualname____annotations__r   r4        Q/var/www/html/vmm-quimica/venv/lib/python3.12/site-packages/openai/lib/bedrock.pyr*   r*   $   s#    
M"'U"33r:   r*   c                     e Zd ZU  ed      Zded<    edd      Zded<   ded<   d	ed
<   ded<    ed      Zded<    ed      Zded<    ed      Z	ded<    edd      Z
ded<   d	ed<    ed      Zded<   d	ed<   y)_LegacyBedrockStateFr1   r/   explicit_api_key)r2   compare7BedrockTokenProvider | AsyncBedrockTokenProvider | Noner%   
aws_regionboolregion_was_explicitaws_profileaws_access_key_idaws_secret_access_keyaws_session_tokenAwsCredentialsProvider | Noneaws_credentials_provideruses_environment_bearerenvironment_bearer_tokenuses_region_derived_base_urlN)r5   r6   r7   r   r>   r8   r%   rE   rF   rG   rI   rK   r9   r:   r;   r=   r=   ,   s    #(e#4j4NSY^hmNnNKn$)u$5z5(-5(9:9$)u$5z5>CX]>^;^!!+0e+<j<"&&r:   r=   c                Z    | j                   xs | j                  r| j                  ndxs dS )N )r>   rJ   rK   )states    r;   _state_api_keyrP   <   s*    !!tHeHee&D&Dkmtrttr:   c                    	 t        j                  |       j                  }||v xs  t        d |j                         D              S # t        t        f$ r Y yw xY w)NFc              3  h   K   | ]*  }|j                   t        j                  j                  u  , y wN)kindinspect	ParameterVAR_KEYWORD).0	parameters     r;   	<genexpr>z/_constructor_accepts_keyword.<locals>.<genexpr>F   s*      %<E	'++777%s   02)rU   	signature
parameters	TypeError
ValueErroranyvalues)constructornamer\   s      r;   _constructor_accepts_keywordrc   @   sg    &&{3>>
 :  %ISIZIZI\% "  z" s   A AAc                    | xs@ t         j                  j                  d      xs t         j                  j                  d      }| |j                         r|j                         S d S )N
AWS_REGIONAWS_DEFAULT_REGION)osenvirongetstrip)r0   
configureds     r;   _configured_regionrl   K   sQ    _2::>>,7_2::>>J^;_J!+!7J<L<L<N:XTXXr:   c                    t        | t              rt        j                  j	                  d      n| }| t        |t
              r|j                         sy t        t        |      j                        d S dS )NAWS_BEDROCK_BASE_URLmantle)

isinstancer   rg   rh   ri   r-   rj   r#   r   host)r.   rk   s     r;   _legacy_endpointrr   P   sa    ;EhPX;Y 67_gJZ
C8AQAQAS34G
4S4X4XYe4skssr:   c                    t        | t              r| j                         sd } | yt        j                  j                  d      }|d u xs |j                          S )NFrn   )rp   r-   rj   rg   rh   ri   )r.   environment_base_urls     r;   _uses_region_derived_base_urlru   W   sT    (C )9::>>*@A4'K/C/I/I/K+KKr:   c                0    t        d | ||||fD              S )Nc              3  $   K   | ]  }|d u 
 y wrS   r9   )rX   values     r;   rZ   z)_has_explicit_aws_auth.<locals>.<genexpr>i   s      	 	T	s   )r_   rD   rE   rF   rG   rI   s        r;   _has_explicit_aws_authrz   a   s1      	 !$
	 	 	r:   c                 ^    t         j                  j                  d      } | st        d      | S )NAWS_BEARER_TOKEN_BEDROCKzuCould not find credentials for Bedrock. Set `AWS_BEARER_TOKEN_BEDROCK` or configure the default AWS credential chain.)rg   rh   ri   r   )tokens    r;   _environment_bearer_tokenr~   u   s1    JJNN56E$
 	
 Lr:   )rC   c        
           t        t        t        |             rt        d      | dk(  rt        d      | |t        d      t	        |||||      }
| ||
rt        d      t
        j                  j                  d      }| d u xr |d u xr |
 xr t        |      }t        |      }t        |      }t        |t              r|j                         sd }n|t        }n|}t        t!        |      ||| | n	|r|nt        ||||||
      }t#        | |||	t        |xr |j                               n|	|||||||r|nd |      }||| xs
 |r|ndxs dfS )	NQPass refreshable Bedrock credentials via `bedrock_token_provider`, not `api_key`.rN   z)The `api_key` argument must not be empty.Bedrock authentication is ambiguous. Configure exactly one explicit mode: bearer credential, static AWS credentials, profile, or credential provider.ry   r|   )
endpointr0   r.   api_keyr%   access_key_idsecret_access_keysession_tokenprofilecredential_provider)r>   r%   rA   rC   rD   rE   rF   rG   rI   rJ   rK   rL   )callabler
   r3   r   rz   rg   rh   ri   rB   rl   ru   rp   r-   rj   r   r!   rr   r=   )r   r%   rA   rD   rE   rF   rG   rI   r.   rC   explicit_aws_authenvironment_tokenrJ   resolved_regionrL   provider_base_urlproviderrO   s                     r;   _legacy_providerr      s    VW%&mnn"}EFF~9G
 	

 /+3+!9 	~9?PG
 	

 

'AB4hNd2h;L7LhQUVgQh  )4O#@#J  (C )9 		%$!"34"".I`4Efo%'/'4H   %"7J7RD2
 0 0 23Xk+3+!9 76M!2SW%AE  UGc=T(9Z\cacccr:   c       	   
     8   t        |        | j                  }
| j                  xs d}|
j                  d u xr |t	        |
      k7  }t        |||||      }|d uxs |d u}|r|rt        d      ||n	|r||s|nd }|d uxs |d u}|d uxs |	d u}|s(|s&|s$t        |        i | j                  | j                  fS |r|}|}d }d }d }d }d }n|rd }d }|}|}|}|}|}nz|
j                  }|
j                  }|
j                  r|
j                  xs
 t               }d }|
j                  }|
j                  }|
j                  }|
j                   }|
j"                  }||n| j$                  }|d uxs |
j&                  }t)        |	t*              xr |	j-                          }|||s|s|	|
j.                  sd }|||
j&                  sd }|	|	}n|
j.                  rd}n| j0                  }|||||||||d	}t3        | j4                  j6                  d      r||d<   |d d fS )NrN   ry   r   	r   bedrock_token_providerrA   rD   rE   rF   rG   rI   r.   _region_was_explicit)!_synchronize_legacy_routing_state_bedrock_stater   r%   rP   rz   r    _refresh_legacy_provider_runtime_bedrock_providerr>   rJ   rK   r~   rD   rE   rF   rG   rI   rA   rC   rp   r-   rj   rL   r.   rc   	__class____init__)clientr   r%   rA   rD   rE   rF   rG   rI   r.   rO   current_api_keyapi_key_was_mutatedaws_overrideexplicit_bearer_overrideeffective_api_keybearer_overriderouting_overridenext_api_keynext_token_providernext_profilenext_access_key_idnext_secret_access_keynext_session_tokennext_credentials_providernext_regionnext_region_was_explicit restores_region_derived_base_urlnext_base_urlprovider_kwargss                                 r;   _copy_configurationr      s    &f-!!Enn*O..$6c?n]bNc;c)+3+!9L  'd2PnD6PLG
 	
  	 >#9,   (t3Q~T7QO!-E1E<8H(06++V-B-BBB(,!!%!$(!	"".!6.$<!--#22(( 99X=V=XL"&(("44!&!<!<"44$)$B$B! * 6*F<M<MK)5R9R9R'1(C'@'YIYEY$		!%8%D(0!)K)K:#5e>W>W19		+	+  "5!#/!7/$=!
*O $F$4$4$=$=?UV2J./D$&&r:   c                   |\  }}t        |t              r7t        j                  |j	                         t
              j                         n
t        |      }t        |t        | j                        | j                  |      S )N)key)r,   r.   r0   r4   )rp   r-   hashlibblake2sencode_LEGACY_SIGNATURE_KEYdigestidr*   r.   rA   )r   configurationr,   
credentialr4   s        r;   _legacy_runtime_signaturer   ?  ss     %D* j#& 	
))+1FGNNP
^ 
 #V__%  /	 r:   c           
     B   |\  }}| j                   }|j                  r| j                  nd }|dk(  rIt        |t              r|st        d      t        t        | j                        || j                  |      S |dk(  r6t        t        | j                        || j                  t        d|            S t        t        | j                        | j                  | j                  |j                  |j                  |j                  |j                  |j                        S )Nr$   z0The Bedrock bearer credential must not be empty.)r   r0   r.   r   r%   AsyncBedrockTokenProvider)r   r0   r.   r%   )r   r0   r.   r   r   r   r   r   )r   rC   rA   rp   r-   r   r!   rr   r.   r
   rD   rE   rF   rG   rI   )r   r   r,   r   rO   bearer_regions         r;   _provider_for_legacy_clientr   Q  s    %D*!!E).)B)BF%%Mx*c**PQQ%foo6 __	
 	
 %foo6 __ ;ZH	
 	
 !&//2  !!--55--!::	 	r:   c                   | j                   }t        | j                        |j                  k7  }| j                  |j                  k7  }|r#t        | j                  d      | _        d| _        |rmt        | j                  | j                  | j                  d u      | _        | j                  j                  r#| j                  d| j                   d| _        y y y y )NF)rL   )rA   rC   zhttps://bedrock-mantle.z.api.aws/openai/v1)	_bedrock_runtime_signaturer-   r.   rA   r0   r   r   ru   rL   )r   previous_signaturebase_url_changedregion_changeds       r;   r   r   u  s    ::6??+/A/J/JJ&&*<*C*CCN '(=(=\a b/4, '!!(( & 1 1 =!

   ==&BSBSB_ 78I8I7JJ\]FO C`= r:   c                   t        |        | j                         }t        | |      }|| j                  k(  ry t	        | |      }|| _        || _        t        |      | _        t        | j                  t              rc| j                  W| j                  j                  A| j                  j                  | _        t        | j                  | j                        | _        t        | |      | _        y )NrA   )r   _legacy_auth_configurationr   r   r   r   	_providerr   _provider_runtimerp   r"   rA   r0   r   r   )r   r   r[   r   s       r;   r   r     s    %f-557M)&-@IF555*6=AH'FF28<F6++-DE%$$++7"44;; '(=(=&J[J[ \(A&-(XF%r:   c                      e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   ded<   dddddddddddddeeddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZddZddZ	e
dd       Ze
d fd       Ze
dddedddddddddddedededddddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       ZeZ xZS )BedrockOpenAIzECompatibility client for Amazon Bedrock's OpenAI-compatible endpoint.r   r   r=   r   BedrockTokenProvider | None_bedrock_token_providerrB   ru   r*   r   r/   rA   NFTr   r   rA   rD   rE   rF   rG   rI   organizationprojectwebhook_secretr.   websocket_base_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validation_enforce_credentialsr   _stater   c                  ||t        ||||||||||
      \  }}}n,|j                  xs |j                  r|j                  ndxs d}t        |   ||	|
||||||||d       || _        || _        t        d|j                        | _
        |j                  | _        t        | j                  j                        }t!        | j"                  t$              r| j"                  j&                  nd }|j(                  xs |xs	 ||d   nd | _        t+        || j(                        | _        |xs d| _        t/        | | j1                               | _        y )N
r   r%   rA   rD   rE   rF   rG   rI   r.   rC   rN   Fr   r   r   r   r   r   r   r   r   r   r   r   r      r   r   r>   rJ   rK   superr   r   r   r
   r%   r   rL   ru   r#   r.   rq   rp   r   r"   r0   rA   r   r   r   r   r   selfr   r   rA   rD   rE   rF   rG   rI   r   r   r   r.   r   r   r   r   r   r   r   r   r   r   r   public_api_keycanonical_endpointprovider_regionr   s                              r;   r   zBedrockOpenAI.__init__  s}   6 0@5%'"3&;"3)A!$81-Iv~ '' 7=7U7UF33[]  	%)1#+'#(C!& 	 	
 "+$'+,I6K`K`'a$-3-P-P*=dmm>P>PQ-78N8NPg-hD""))nr 	 wwN`Nl5G5Jrv 	 &fI%+*CD$JiJiJk*l'r:   c                    | j                   d| j                   fS | j                  j                  "| j                  j                  s| j                  rd| j                  fS yNr%   r$   )r&   Nr   r   r>   rJ   r   r   s    r;   r   z(BedrockOpenAI._legacy_auth_configuration  Y    ''3$d&B&BCC00<""::||dll++r:   c                    | j                   j                  d u xr6 | j                   xr' | j                  d u xr | j                   j                   S rS   r   r>   r   r   rJ   r   s    r;   _uses_aws_authzBedrockOpenAI._uses_aws_auth  Y    00D8 @LL @,,4@ ''???		
r:   c                ^   | j                   j                  rC| j                   j                  xs d}| j                  r| j                  |k7  r| j                  S |S | j                  =t        t        | j	                               }t        |t              r|st        d      |S | j                  S NrN   zHExpected `bedrock_token_provider` argument to return a non-empty string.)
r   rJ   rK   r   r   r
   r3   rp   r-   r^   r   capturedr}   s      r;   _refresh_api_keyzBedrockOpenAI._refresh_api_key  s    66**CCIrH#'<<DLLH4L4<<ZRZZ''3!=!=!?@EeS) !kllL||r:   c                8    t        |        t        | 	  |      S rS   r   r   _prepare_optionsr   optionsr   s     r;   r   zBedrockOpenAI._prepare_options  s    (.w'00r:   r   admin_api_keyworkload_identityr   r   rA   rD   rE   rF   rG   rI   r   r   r   r   r.   data_residencyr   r   r   r   set_default_headersr   set_default_queryr   _extra_kwargsc               r   |t        d      t        |t              rd n|}t        |      rt        d      t        |t              st        d      ||t        d      ||t	        d      ||t	        d      | j
                  }|i ||}n||}| j                  }|i ||}n||}t        | ||||||	|
||
      \  }}}i |||n| j                  ||n| j                  ||n| j                  ||n| j                  t        |t              r| j                  n||xs | j                  t        |      r|n| j                  |||dn|d	
|} |,t!        | j"                  j$                  d
      r|| d
<   || d<   n|8| j'                  | j(                  j*                  xs | j(                  j,                  | j(                  j.                  | j(                  j0                  | j(                  j2                  | j(                  j4                  | j(                  j6                  | j(                  j8                  | j(                  j:                  | j(                  j<                  rdn| j>                  	       | jA                         D !"ci c](  \  }!}"t!        | j"                  j$                  |!      r|!|"* } }!}"nW| j"                  tB        urE| jA                         D !"ci c]*  \  }!}"|" t!        | j"                  j$                  |!      r|!|", } }!}" | j"                  di | S c c}"}!w c c}"}!w )N4`data_residency` is only supported by OpenAI clientsr   zHConfigure `provider` on `OpenAI`, not on `BedrockOpenAI.with_options()`.zRBedrockOpenAI only supports Bedrock bearer token or AWS credential authentication.PThe `default_headers` and `set_default_headers` arguments are mutually exclusiveLThe `default_query` and `set_default_query` arguments are mutually exclusive	r   r%   rA   rD   rE   rF   rG   rI   r.   T
r   r   r   r   r   r   r   r   r   r   r   r   rN   r   r9   )"r   rp   r   r   r^   _custom_headers_custom_queryr   r   r   r   r   r   _clientr   r   rc   r   r   updater   r>   rK   r%   rA   rD   rE   rF   rG   rI   rL   r.   itemsr   #r   r   r   r   r   r   rA   rD   rE   rF   rG   rI   r   r   r   r   r.   r   r   r   r   r   r   r   r   r   r   headersparamsr   inherited_providerinherited_stateconstructor_kwargsrb   rx   s#                                      r;   copyzBedrockOpenAI.copy  so   > %TUU%h94xGqrr(H-hii$(9(Erss&+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F?R1!#/"7/%=@
<+_.
.
,8,DL$J[J[")"5w4<<0>0JnPTPcPc8J8V"4\`\s\s'1'8'Dt||'&6$,,*2;*?;TEUEU&#,@,HDNb.
 .
 ).J4>>KbKbdo.p.@{++:x(+%%++<<l@S@S@l@l'+':':'I'I..99 //;;"&"5"5"G"G&*&9&9&O&O"&"5"5"G"G)-)<)<)U)U#22OOUYUbUb & 
 $6#;#;#="D%/0G0GN e" "
 ^^=0 $6#;#;#="D%$(DT^^E\E\^b(c e" "
 t~~3 233""   -L-)/L3)0r   r/   r   r   rA   r/   rD   r/   rE   r/   rF   r/   rG   r/   rI   rH   r   r/   r   r/   r   r/   r.   str | httpx2.URL | Noner   r  r   !float | Timeout | None | NotGivenr   intr   Mapping[str, str] | Noner   Mapping[str, object] | Noner   httpx2.Client | Noner   rB   r   rB   r   _Provider | Noner   _LegacyBedrockState | Noner   bool | NonereturnNoner  _LegacyAuthConfigurationr  rB   r  r-   r   r   r  r   )6r   z!str | BedrockTokenProvider | Noner   r/   r   .WorkloadIdentity | X509WorkloadIdentity | Noner   _Provider | None | NotGivenr   r   rA   r/   rD   r/   rE   r/   rF   r/   rG   r/   rI   rH   r   r/   r   r/   r   r/   r   r  r.   "str | httpx2.URL | None | NotGivenr   DataResidency | Noner   r  r   r  r   int | NotGivenr   r  r   r  r   r  r   r  r   r  r   Mapping[str, Any]r  r   r5   r6   r7   __doc__r8   r   r   r   r   r   r   r   r   r  with_options__classcell__r   s   @r;   r   r     se   O  ''88#'' 77
 #>B!%"&(,,0(,BF#'"%),06:5>.4859,0,1%)&*-1,03Km Km !<	Km
 Km  Km &Km  *Km &Km #@Km !Km Km #Km *Km 4Km  3!Km" #Km$ 2%Km& 3'Km( *)Km* &*+Km, #-Km. $/Km0 +1Km2 *3Km4 
5KmZ	
 	 	 1 1  6:$(LP09>B!%"&(,,0(,BF#'"%)6:7@/35>,0&/488<599=,0+-9k4 3k4 "	k4
 Jk4 .k4 !<k4 k4  k4 &k4  *k4 &k4 #@k4 !k4 k4  #!k4" 4#k4$ 5%k4& -'k4( 3)k4* *+k4, $-k4. 2/k40 61k42 33k44 75k46 *7k48 )9k4: 
;k4 k4Z Lr:   r   c                      e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   ded<   dddddddddddddeeddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZddZddZ	e
dd       Ze
d fd       Ze
dddedddddddddddedededddddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       ZeZ xZS )AsyncBedrockOpenAIzKAsync compatibility client for Amazon Bedrock's OpenAI-compatible endpoint.r   r   r=   r    AsyncBedrockTokenProvider | Noner   rB   ru   r*   r   r/   rA   NFTr   c                  ||t        ||||||||||
      \  }}}n,|j                  xs |j                  r|j                  ndxs d}t        |   ||	|
||||||||d       || _        || _        t        d|j                        | _
        |j                  | _        t        | j                  j                        }t!        | j"                  t$              r| j"                  j&                  nd }|j(                  xs |xs	 ||d   nd | _        t+        || j(                        | _        |xs d| _        t/        | | j1                               | _        y )Nr   rN   Fr   r.  r   r   r   r   s                              r;   r   zAsyncBedrockOpenAI.__init__  s~   6 0@5%'"3&;"3)A!$81-Iv~ '' 7=7U7UF33[]  	%)1#+'#(C!& 	 	
 "+$'+,NPVPePe'f$-3-P-P*=dmm>P>PQ-78N8NPg-hD""))nr 	 wwN`Nl5G5Jrv 	 &fI%+*CD$JiJiJk*l'r:   c                    | j                   d| j                   fS | j                  j                  "| j                  j                  s| j                  rd| j                  fS yr   r   r   s    r;   r   z-AsyncBedrockOpenAI._legacy_auth_configuration  r   r:   c                    | j                   j                  d u xr6 | j                   xr' | j                  d u xr | j                   j                   S rS   r   r   s    r;   r   z!AsyncBedrockOpenAI._uses_aws_auth  r   r:   c                  K   | j                   j                  rC| j                   j                  xs d}| j                  r| j                  |k7  r| j                  S |S | j                  \t        t        | j	                               }t        j                  |      r
| d {   }t        |t              r|st        d      |S | j                  S 7 /wr   )r   rJ   rK   r   r   r
   r3   rU   isawaitablerp   r-   r^   r   s      r;   r   z#AsyncBedrockOpenAI._refresh_api_key  s     66**CCIrH#'<<DLLH4L4<<ZRZZ''3!=!=!?@E""5)#eS) !kllL||	 $s   BC C!0Cc                T   K   t        |        t        | 	  |       d {   S 7 wrS   r   r   s     r;   r   z#AsyncBedrockOpenAI._prepare_options  s%     (.W-g6666s   (&(r   c               r   |t        d      t        |t              rd n|}t        |      rt        d      t        |t              st        d      ||t        d      ||t	        d      ||t	        d      | j
                  }|i ||}n||}| j                  }|i ||}n||}t        | ||||||	|
||
      \  }}}i |||n| j                  ||n| j                  ||n| j                  ||n| j                  t        |t              r| j                  n||xs | j                  t        |      r|n| j                  |||dn|d	
|} |,t!        | j"                  j$                  d
      r|| d
<   || d<   n|8| j'                  | j(                  j*                  xs | j(                  j,                  | j(                  j.                  | j(                  j0                  | j(                  j2                  | j(                  j4                  | j(                  j6                  | j(                  j8                  | j(                  j:                  | j(                  j<                  rdn| j>                  	       | jA                         D !"ci c](  \  }!}"t!        | j"                  j$                  |!      r|!|"* } }!}"nW| j"                  tB        urE| jA                         D !"ci c]*  \  }!}"|" t!        | j"                  j$                  |!      r|!|", } }!}" | j"                  di | S c c}"}!w c c}"}!w )Nr   r   zRConfigure `provider` on `AsyncOpenAI`, not on `AsyncBedrockOpenAI.with_options()`.zWAsyncBedrockOpenAI only supports Bedrock bearer token or AWS credential authentication.r   r  r  Tr  r   r   rN   r   r9   )"r   rp   r   r   r^   r  r  r   r   r   r   r   r   r  r   r   rc   r   r   r  r   r>   rK   r%   rA   rD   rE   rF   rG   rI   rL   r.   r  r-  r	  s#                                      r;   r  zAsyncBedrockOpenAI.copy  sp   > %TUU%h94xGqrr(H-rss$(9(Ewxx&+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F?R1!#/"7/%=@
<+_.
.
,8,DL$J[J[")"5w4<<0>0JnPTPcPc8J8V"4\`\s\s'1'8'Dt||'&6$,,*2;*?;TEUEU&#,@,HDNb.
 .
 ).J4>>KbKbdo.p.@{++:x(+%%++<<l@S@S@l@l'+':':'I'I..99 //;;"&"5"5"G"G&*&9&9&O&O"&"5"5"G"G)-)<)<)U)U#22OOUYUbUb & 
 $6#;#;#="D%/0G0GN e" "
 ^^#55 $6#;#;#="D%$(DT^^E\E\^b(c e" "
 t~~3 233""r  )0r   r/   r   r.  rA   r/   rD   r/   rE   r/   rF   r/   rG   r/   rI   rH   r   r/   r   r/   r   r/   r.   r  r   r  r   r  r   r  r   r  r   r  r   httpx2.AsyncClient | Noner   rB   r   rB   r   r  r   r  r   r  r  r  r  r  r  r   )6r   z&str | AsyncBedrockTokenProvider | Noner   r/   r   r!  r   r"  r   r.  rA   r/   rD   r/   rE   r/   rF   r/   rG   r/   rI   rH   r   r/   r   r/   r   r/   r   r  r.   r#  r   r$  r   r  r   r6  r   r%  r   r  r   r  r   r  r   r  r   r  r   r&  r  r   r'  r+  s   @r;   r-  r-    sg   U  ''==#'' 77
 #CG!%"&(,,0(,BF#'"%),06:5>.485915,1%)&*-1,03Km Km !A	Km
 Km  Km &Km  *Km &Km #@Km !Km Km #Km *Km 4Km  3!Km" #Km$ 2%Km& 3'Km( /)Km* &*+Km, #-Km. $/Km0 +1Km2 *3Km4 
5KmZ	
   7 7  ;?$(LP09CG!%"&(,,0(,BF#'"%)6:7@/35>15&/488<599=,0+-9k4 8k4 "	k4
 Jk4 .k4 !Ak4 k4  k4 &k4  *k4 &k4 #@k4 !k4 k4  #!k4" 4#k4$ 5%k4& -'k4( 3)k4* /+k4, $-k4. 2/k40 61k42 33k44 75k46 *7k48 )9k4: 
;k4 k4Z Lr:   r-  )r   r-  BedrockTokenProviderr   r    )rO   r=   r  r-   )ra   zCallable[..., object]rb   r-   r  rB   )r0   r/   r  r/   )r.   r#  r  zLiteral['mantle'] | None)r.   r  r  rB   )rD   r/   rE   r/   rF   r/   rG   r/   rI   rH   r  rB   r  )r   r/   r%   r@   rA   r/   rD   r/   rE   r/   rF   r/   rG   r/   rI   rH   r.   r  rC   r  r  z*tuple[_Provider, _LegacyBedrockState, str])r   "BedrockOpenAI | AsyncBedrockOpenAIr   r/   r%   r@   rA   r/   rD   r/   rE   r/   rF   r/   rG   r/   rI   rH   r.   r  r  zFtuple[dict[str, object], _Provider | None, _LegacyBedrockState | None])r   r8  r   r  r  r*   )r   r8  r   r  r  r   )r   r8  r  r  )N
__future__r   rg   r   rU   typingr   r   r   r   r   r	   r
   dataclassesr   r   r   typing_extensionsr   r   httpx2authr   r   _typesr   r   r   _utilsr   r  r   r   _httpx2r   _modelsr   r   r   r   _exceptionsr   _base_clientr   _data_residencyr   providers.bedrockr    r!   r"   r#   r-   r7  r   r+   tupler3   r  urandomr   r*   r=   rP   rc   rl   rr   ru   rz   r~   r   r   r   r   r   r   r   r-  __all__r9   r:   r;   <module>rJ     s   " 	   M M M 1 1 ,  9 1 1  ) ) ) 6 % . +   C( $R)?%?@ ;< (62B!BC "

2  $4 4 4 $' ' 'uY
tL " &	
 " < 
(* (,OdOd LOd 	Od
 Od "Od &Od "Od <Od &Od %Od 0Oddk'.k' k' L	k'
 k' k' "k' &k' "k' <k' &k' Lk'\.+ $!.!+! !H^"Y*iF iXk k\r:   