
    ÁjC                        d dl 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mZmZmZ ddlmZ ddlmZmZ d	d
lmZmZmZmZmZmZ ddlmZ ddlmZ ddl m!Z! ddl"m#Z#  G d de      Z$ G d de      Z%y)    )annotations)AnyMappingSequence)SelfoverrideN   )OmitHeadersTimeoutNotGiven	not_given)asyncify)	AnthropicAsyncAnthropic   )resolve_regionresolve_api_keyresolve_base_urlresolve_auth_moderesolve_workspace_idvalidate_credentials)AnthropicError)MiddlewareInput)DEFAULT_MAX_RETRIES   )AccessTokenProviderc                      e Zd ZU ded<   ded<   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eedddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZeed fd              Z	eed fd              Z
ed fd       Zedd       Zeddddddddddddededdddei d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd       ZeZ xZS )AnthropicAWS
str | Noneaws_access_keyaws_secret_key
aws_regionaws_profileaws_session_tokenworkspace_idbool
_use_sigv4
_skip_authNFapi_keyr!   r"   r#   r$   r%   r&   	skip_authbase_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client
middleware_strict_response_validation
auth_tokenwebhook_keyc                  || _         t        ||       |r
d| _        d }n+t        ||||      | _        t	        || j                        }t        |      }| j                  r|t        d      || _        || _        || _	        || _
        || _        |r|| _        nt        |      }|t        d      || _        |s)t        |	t        |	      nd |      }|t        d      |}	t         | E  ||||	|
||||||	       y 
N)r!   r"   F)r+   r!   r"   r$   )r+   	use_sigv4zxNo AWS region was provided. Set the `aws_region` argument or the `AWS_REGION`/`AWS_DEFAULT_REGION` environment variable.zpNo workspace ID found. Set the `workspace_id` argument or the `ANTHROPIC_AWS_WORKSPACE_ID` environment variable.)regionzNo AWS region was provided and no base_url was given. Set the `aws_region` argument, the `AWS_REGION`/`AWS_DEFAULT_REGION` environment variable, or provide a `base_url` directly.)r+   r5   r6   r-   r.   r/   r0   r1   r2   r3   r4   r)   r   r(   r   r   r   r   r!   r"   r#   r$   r%   r&   r   r   strsuper__init__selfr+   r!   r"   r#   r$   r%   r&   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   resolved_api_keyresolved_regionresolved_workspace_idresolved_base_url	__class__s                          @/tmp/pip-target-k_scjv0h/lib/python/anthropic/lib/aws/_client.pyr>   zAnthropicAWS.__init__#   O   . $N>Z#DO#/--'	DO  /w$//Z(4??6  K  -,)&!2 ,D$8$F!$,$ G  !6D 0!)!5H4&! !($8 
 )H$!##+'#!(C 	 	
    c                V    i t         |   }| j                  | j                  |d<   |S Nzanthropic-workspace-idr=   r0   r&   r@   headersrE   s     rF   r0   zAnthropicAWS.default_headers|   6     .UW,-(040A0AG,-rH   c                L    | j                   s| j                  ri S t        |   S Nr(   r)   r=   _api_key_authr@   rE   s    rF   rR   zAnthropicAWS._api_key_auth   "     ??dooIw$$rH   c                X    | j                   s| j                  ry t        |   ||       y rP   r(   r)   r=   _validate_headersr@   rM   custom_headersrE   s      rF   rW   zAnthropicAWS._validate_headers   "    ??doo!'>:rH   c                r   | j                   sy ddlm} |j                         j	                         } ||j
                  t        |j                        |j                  | j                  | j                  | j                  | j                  | j                  |d
      }|j                  j                  |       y Nr   )get_auth_headerszaws-external-anthropic)
methodurlrM   r!   r"   r%   r:   profiledataservice_name)r(   _authr]   readdecoder^   r<   r_   rM   r!   r"   r%   r#   r$   updater@   requestr]   ra   rM   s        rF   _prepare_requestzAnthropicAWS._prepare_request   s    +||~$$&">>GKK OO...."44??$$1
 	w'rH   r+   r!   r"   r#   r$   r%   r&   r,   r5   credentialsr6   r-   r.   r2   r/   r0   set_default_headersr1   set_default_queryr3   _extra_kwargsc               r   |
t        d      |xs |rd n| j                  }t        |   |xs | j                  |	|||||||||||xs | j
                  |xs | j                  |xs | j                  |xs | j                  |xs | j                  |xs | j                  ||n| j                  d|      S NzYAnthropicAWS does not support a `credentials` provider (it authenticates with AWS SigV4).)r!   r"   r#   r$   r%   r&   r,   )r+   r5   r6   r-   r.   r2   r/   r0   rl   r1   rm   r3   rn   	TypeErrorr-   r=   copyr+   r!   r"   r#   r$   r%   r&   r)   r@   r+   r!   r"   r#   r$   r%   r&   r,   r5   rk   r6   r-   r.   r2   r/   r0   rl   r1   rm   r3   rn   rD   rE   s                          rF   rs   zAnthropicAWS.copy       > "wxx %Ow|+t||!#&##+ 3'/!"0"GD4G4G"0"GD4G4G(;DOO*>d.>.>%6%P$:P:P , A0A0A*3*?YT__	  	  
 	
rH   )&r+   r    r!   r    r"   r    r#   r    r$   r    r%   r    r&   r    r,   r'   r-   str | httpx.URL | Noner.   'float | httpx.Timeout | None | NotGivenr/   intr0   Mapping[str, str] | Noner1   Mapping[str, object] | Noner2   httpx.Client | Noner3    Sequence[MiddlewareInput] | Noner4   r'   r5   r    r6   r    returnNoner}   zdict[str, str | Omit]r}   zdict[str, str]rM   r   rY   r   r}   r~   rh   zhttpx.Requestr}   r~   ),r+   r    r!   r    r"   r    r#   r    r$   r    r%   r    r&   r    r,   bool | Noner5   r    rk   AccessTokenProvider | Noner6   r    r-   rv   r.   !float | Timeout | None | NotGivenr2   r{   r/   int | NotGivenr0   ry   rl   ry   r1   rz   rm   rz   r3   +Sequence[MiddlewareInput] | None | NotGivenrn   Mapping[str, Any]r}   r   __name__
__module____qualname____annotations__r   r   r>   propertyr   r0   rR   rW   ri   rs   with_options__classcell__rE   s   @rF   r   r      s   !!
 #%)%)!%"&(,#'+/;D.4859+/7;,1!%"&+W
 W
 #	W

 #W
 W
  W
 &W
 !W
 W
 )W
 9W
 W
 2W
 3W
  )!W
" 5#W
$ &*%W
( )W
*  +W
, 
-W
r    %  %
 ; ;
 ( (,  #%)%)!%"&(,#'!%!%26"&+/5>+/&/488<599=BK+-/;
 ;
 #	;

 #;
 ;
  ;
 &;
 !;
 ;
 ;
 0;
  ;
 );
 3;
  )!;
" $#;
$ 2%;
& 6';
( 3);
* 7+;
, @-;
. )/;
0 
1;
 ;
z LrH   r   c                      e Zd ZU ded<   ded<   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eedddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZeed fd              Z	eed fd              Z
ed fd       Zedd       Zeddddddddddddededdddei d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd       ZeZ xZS )AsyncAnthropicAWSr    r!   r"   r#   r$   r%   r&   r'   r(   r)   NFr*   c                  || _         t        ||       |r
d| _        d }n+t        ||||      | _        t	        || j                        }t        |      }| j                  r|t        d      || _        || _        || _	        || _
        || _        |r|| _        nt        |      }|t        d      || _        |s)t        |	t        |	      nd |      }|t        d      |}	t         | E  ||||	|
||||||	       y r8   r;   r?   s                          rF   r>   zAsyncAnthropicAWS.__init__   rG   rH   c                V    i t         |   }| j                  | j                  |d<   |S rJ   rK   rL   s     rF   r0   z!AsyncAnthropicAWS.default_headersL  rN   rH   c                L    | j                   s| j                  ri S t        |   S rP   rQ   rS   s    rF   rR   zAsyncAnthropicAWS._api_key_authT  rT   rH   c                X    | j                   s| j                  ry t        |   ||       y rP   rV   rX   s      rF   rW   z#AsyncAnthropicAWS._validate_headers[  rZ   rH   c                  K   | j                   sy ddlm} |j                         j	                         } t        |      |j                  t        |j                        |j                  | j                  | j                  | j                  | j                  | j                  |d
       d {   }|j                  j                  |       y 7  wr\   )r(   rc   r]   rd   re   r   r^   r<   r_   rM   r!   r"   r%   r#   r$   rf   rg   s        rF   ri   z"AsyncAnthropicAWS._prepare_requesta  s     +||~$$&2!12>>GKK OO...."44??$$1
 
 	w'
s   B)C+C,!Crj   c               r   |
t        d      |xs |rd n| j                  }t        |   |xs | j                  |	|||||||||||xs | j
                  |xs | j                  |xs | j                  |xs | j                  |xs | j                  |xs | j                  ||n| j                  d|      S rp   rq   rt   s                          rF   rs   zAsyncAnthropicAWS.copyx  ru   rH   )&r+   r    r!   r    r"   r    r#   r    r$   r    r%   r    r&   r    r,   r'   r-   rv   r.   rw   r/   rx   r0   ry   r1   rz   r2   httpx.AsyncClient | Noner3   r|   r4   r'   r5   r    r6   r    r}   r~   r   r   r   r   ),r+   r    r!   r    r"   r    r#   r    r$   r    r%   r    r&   r    r,   r   r5   r    rk   r   r6   r    r-   rv   r.   r   r2   r   r/   r   r0   ry   rl   ry   r1   rz   rm   rz   r3   r   rn   r   r}   r   r   r   s   @rF   r   r      s   !!
 #%)%)!%"&(,#'+/;D.4859047;,1!%"&+W
 W
 #	W

 #W
 W
  W
 &W
 !W
 W
 )W
 9W
 W
 2W
 3W
  .!W
" 5#W
$ &*%W
( )W
*  +W
, 
-W
r    %  %
 ; ;
 ( (,  #%)%)!%"&(,#'!%!%26"&+/5>04&/488<599=BK+-/;
 ;
 #	;

 #;
 ;
  ;
 &;
 !;
 ;
 ;
 0;
  ;
 );
 3;
  .!;
" $#;
$ 2%;
& 6';
( 3);
* 7+;
, @-;
. )/;
0 
1;
 ;
z LrH   r   )&
__future__r   typingr   r   r   typing_extensionsr   r   httpx_typesr
   r   r   r   r   _utilsr   _clientr   r   _credentialsr   r   r   r   r   r   _exceptionsr   _middlewarer   _base_clientr   credentials._typesr   r   r    rH   rF   <module>r      sU    " ) ) ,  A A  0  * * / 4M9 M`M MrH   