
    'wf#%                         d dl mZ d dl 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mZ dd	lmZmZ dd
l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 ddlmZ  G d d      Z  G d de      Z!ddZ"y)    )UNSIGNED)__version__)	translate)PartialCredentialsError)EVENT_ALIASESServiceModel)Session)UnknownServiceErrorcopy   )r   retryhandler)AioBaseClientAioClientCreator)"AioSmartDefaultsConfigStoreFactory)AioCredentialscreate_credential_resolver)AioHierarchicalEmitter)AioResponseParserFactorycreate_token_resolver)AioIMDSRegionProviderc                   $    e Zd Zd ZdefdZd Zy)ClientCreatorContextc                      || _         d | _        y N)_coro_client)selfcoros     g/home/panchajanya/Development/work/volatility3/venv/lib/python3.12/site-packages/aiobotocore/session.py__init__zClientCreatorContext.__init__   s    
    returnc                    K   | j                    d {   | _        | j                  j                          d {   S 7 +7 wr   )r   r   
__aenter__r   s    r    r%   zClientCreatorContext.__aenter__   s3     !ZZ'\\,,... (.s   A>&AA A Ac                 Z   K   | j                   j                  |||       d {    y 7 wr   )r   	__aexit__)r   exc_typeexc_valexc_tbs       r    r(   zClientCreatorContext.__aexit__   s"     ll$$Xw???s   !+)+N)__name__
__module____qualname__r!   r   r%   r(    r"   r    r   r      s    /- /@r"   r   c                        e Zd Z	 	 	 	 d fd	Zd Zd Zd Zd Zd ZddZ	d Z
dd	Zdd
Zd Z	 	 	 	 	 	 	 	 	 ddZ	 ddZ xZS )
AioSessionc                 b    |
t               }t        | 	  ||||       | j                          y r   )r   superr!   _set_user_agent_for_session)r   session_varsevent_hooksinclude_builtin_handlersprofile	__class__s        r    r!   zAioSession.__init__"   s8     02K+'?	
 	((*r"   c                 D    d| _         t        | _        dt        z  | _        y )Naiobotocorezbotocore/%s)user_agent_namer   user_agent_versionbotocore_versionuser_agent_extrar&   s    r    r4   z&AioSession._set_user_agent_for_session2   s"      -"- -0@ @r"   c                     t        |       S r   r   r&   s    r    _create_token_resolverz!AioSession._create_token_resolver:   s    $T**r"   c                 0    t        | | j                        S )N)region_name)r   _last_client_region_usedr&   s    r    _create_credential_resolverz&AioSession._create_credential_resolver=   s    )d;;
 	
r"   c                 H      fd} j                   j                  d|       y )Nc                  V    j                  d      } t              }t        | |      S )Ndefault_config_resolver)session)_get_internal_componentr   r   )rH   imds_region_providerr   s     r    create_smart_defaults_factoryzRAioSession._register_smart_defaults_factory.<locals>.create_smart_defaults_factoryC   s7    &*&B&B)'# $9#F 5')= r"   smart_defaults_factory)_internal_componentslazy_register_component)r   rL   s   ` r     _register_smart_defaults_factoryz+AioSession._register_smart_defaults_factoryB   s$    	 	!!99$&C	
r"   c                 L    | j                   j                  dt                      y )Nresponse_parser_factory)_componentsregister_componentr   r&   s    r    !_register_response_parser_factoryz,AioSession._register_response_parser_factoryP   s    ++%'?'A	
r"   c                 (    t        |||      | _        y r   )r   _credentials)r   
access_key
secret_keytokens       r    set_credentialszAioSession.set_credentialsU   s    *:z5Ir"   c                    K   | j                   6| j                  j                  d      j                          d {   | _         | j                   S 7 w)Ncredential_provider)rW   rS   get_componentload_credentialsr&   s    r    get_credentialszAioSession.get_credentialsX   sO     $&*&6&6&D&D%' !!D    !!s   9AAAc                 \   K   | j                  ||       d {   }t        ||      S 7 w)N)service_name)get_service_datar   )r   rb   api_versionservice_descriptions       r    get_service_modelzAioSession.get_service_model_   s6     $($9$9+%
 
 /lKK
s   ,*,c                    K   |}| j                  d      j                  |d|      }t        j                  ||      }| j                  j                  d|z  |||        d{    |S 7 w)zK
        Retrieve the fully merged data associated with a service.
        data_loaderz	service-2)	type_namerd   zservice-data-loaded.%s)service_datarb   rI   N)r^   load_service_modelr   get_eventsemit)r   rb   rd   	data_pathrj   
service_ids         r    rc   zAioSession.get_service_datae   s      !	))-8KK+ L 
 #&&|\B
ll$z1%%	   
 	
 	
 	
s   A!A,#A*$A,c                 8    t         | j                  |i |      S r   )r   _create_client)r   argskwargss      r    create_clientzAioSession.create_clientv   s     #$7D$7$7$H$HIIr"   c                 N  K   | j                         }|
||j                  |
      }
n||}
| j                  ||
      }|| j                  d      }|!| j                  d      j	                  |d       }| j                  d      }| j                  d      }| j                  d      }|
|
j                  t        u rd }nZ||t        |||	      }nG| j                  ||      rt        d| j                  ||            | j                          d {   }| j                         }| j                  d	      }| j                  d
      }t        j                  | j                  d            }| j                  d      }|j                  | j                   | j"                  | j$                         | j'                  |
|      }|dk7  r,| j                  d      }|j)                  |||       d {    | j+                  ||       t-        ||| j/                         |t0        t2        ||||
      }|j5                  ||||||| j7                         |
||
       d {   }| j                  d      }|%|j9                  |j:                  j<                         |S 7 7 7 Cw)N	ca_bundleapi_versionsrh   event_emitterrR   )rX   rY   rZ   explicit)providercred_varendpoint_resolverexceptions_factoryconfig_storeuser_agent_creator)session_user_agent_namesession_user_agent_versionsession_user_agent_extralegacyrM   )client_namer   )r   )
rb   rC   	is_secureendpoint_urlverifycredentialsscoped_configclient_configrd   
auth_tokenmonitor)get_default_client_configmerge_resolve_region_nameget_config_variablerl   r^   signature_versionr   r   _missing_cred_varsr   r`   get_auth_tokenrJ   r   set_session_configr<   r=   r?   _resolve_defaults_modemerge_smart_defaults!_add_configured_endpoint_providerr   
user_agentr   r   ru   get_scoped_configregistermetaevents)r   rb   rC   rd   use_sslr   r   aws_access_key_idaws_secret_access_keyaws_session_tokenconfigdefault_client_configloaderry   rR   r   r   r}   r~   r   r   defaults_moderM   client_creatorclientr   s                             r    rr   zAioSession._create_clienty   s     !% > > @ "7"C*008F #.*F//VD >--k:F22>BFFdK ##M2**?;"&"4"45N"O&":":h"FK).C.O(,0'K
 $$%68MN)#00%'<  !% 4 4 66K((*
 889LM!99:NOyy!3!3N!CD!//0DE 	--$($8$8'+'>'>%)%:%: 	. 	

 33FLIH$%)%A%A(&" )==m[   	..$% 	/ 	
 *OO#1
 &33%#%#002 #! 4 
 
 ..y9V[[//0k 7&&
s8   DJ%JCJ%0J!1A.J%J# ?J%!J%#J%c                    K   | j                  d      }g }	 | j                  |       d {   }|d   j                  d|      }|j                  |||      }|S 7 .# t        $ r Y |S w xY ww)Nr}   metadataendpointPrefix)rJ   rc   rl   get_available_endpointsr
   )r   rb   partition_nameallow_non_regionalresolverresultsrj   endpoint_prefixs           r    get_available_regionsz AioSession.get_available_regions   s      //0CD		!%!6!6|!DDL*:6:: ,O 661CG
  E # 		s8   A,A A,A A,A 	A)%A,(A))A,)NNTNr   )	NNTNNNNNN)awsF)r,   r-   r.   r!   r4   rA   rE   rP   rU   r[   r`   rf   rc   ru   rr   r   __classcell__)r9   s   @r    r1   r1       s|     !%+ A+




J!L"J "m` FKr"   r1   Nc                     t        |       S )z&
    Return a new session object.
    )r1   )env_varss    r    get_sessionr      s     hr"   r   )#botocorer   r   r>   r   botocore.exceptionsr   botocore.sessionr   r   r	   _SyncSessionr
   r    r   r   r   r   configproviderr   r   r   r   hooksr   parsersr   tokensr   utilsr   r   r1   r   r/   r"   r    <module>r      sR     4  7 8 4 6 ' 3 > C ) - ) (
@ 
@W Wt r"   