
    Bf#%                        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"dS )    )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dS )ClientCreatorContextc                 "    || _         d | _        d S N)_coro_client)selfcoros     b/home/panchajanya/Development/work/volatility3/lib/python3.11/site-packages/aiobotocore/session.py__init__zClientCreatorContext.__init__   s    
    returnc                 h   K   | j          d {V | _        | j                                         d {V S r   )r   r   
__aenter__r   s    r    r%   zClientCreatorContext.__aenter__   sG      !Z''''''\,,.........r"   c                 N   K   | j                             |||           d {V  d S r   )r   	__aexit__)r   exc_typeexc_valexc_tbs       r    r(   zClientCreatorContext.__aexit__   s8      l$$Xw???????????r"   N)__name__
__module____qualname__r!   r   r%   r(    r"   r    r   r      sR          /- / / / /@ @ @ @ @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 )
AioSessionNTc                     |t                      }t                                          ||||           |                                  d S r   )r   superr!   _set_user_agent_for_session)r   session_varsevent_hooksinclude_builtin_handlersprofile	__class__s        r    r!   zAioSession.__init__"   sV     022K+'?	
 	
 	
 	((*****r"   c                 J    d| _         t          | _        dt          z  | _        d S )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                 .    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                             d|           d S )Nc                  n                         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   sG    &*&B&B)' '# $9#F#F#F 5')=  r"   smart_defaults_factory)_internal_componentslazy_register_component)r   rL   s   ` r     _register_smart_defaults_factoryz+AioSession._register_smart_defaults_factoryB   sI    	 	 	 	 	 	!99$&C	
 	
 	
 	
 	
r"   c                 T    | j                             dt                                 d S )Nresponse_parser_factory)_componentsregister_componentr   r&   s    r    !_register_response_parser_factoryz,AioSession._register_response_parser_factoryP   s3    ++%'?'A'A	
 	
 	
 	
 	
r"   c                 2    t          |||          | _        d S r   )r   _credentials)r   
access_key
secret_keytokens       r    set_credentialszAioSession.set_credentialsU   s    *:z5IIr"   c                    K   | j         7| j                            d                                           d {V | _         | j         S )Ncredential_provider)rW   rS   get_componentload_credentialsr&   s    r    get_credentialszAioSession.get_credentialsX   sb      $&*&6&D&D%' '  !! !! !! !! !! !!D   r"   c                 `   K   |                      ||           d {V }t          ||          S )N)service_name)get_service_datar   )r   rb   api_versionservice_descriptions       r    get_service_modelzAioSession.get_service_model_   sU      $($9$9+%
 %
 
 
 
 
 
 
 /lKKKKr"   c                    K   |}|                      d                              |d|          }t          j        ||          }| j                            d|z  |||            d{V  |S )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8KK+ L 
 
 #&|\BB
l$z1%%	   
 
 	
 	
 	
 	
 	
 	
 	
 r"   c                 6    t           | j        |i |          S r   )r   _create_client)r   argskwargss      r    create_clientzAioSession.create_clientv   s#    #$7D$7$H$H$HIIIr"   c                   K   |                                  }|
||                    |
          }
n||}
|                     ||
          }||                     d          }|)|                     d                              |d           }|                     d          }|                     d          }|                     d          }|
|
j        t          u rd }nl||t          |||	          }nU| 	                    ||          r%t          d| 	                    ||                    |                                  d {V }|                                 }|                     d	          }|                     d
          }t          j        |                     d                    }|                     d          }|                    | j        | j        | j                   |                     |
|          }|dk    r2|                     d          }|                    |||           d {V  |                     ||           t-          |||                                 |t0          t2          ||||
  
        }|                    |||||||                                 |
||
  
         d {V }|                     d          }||                    |j        j                   |S )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88FF #.*F//VDD >--k::F22>BBFFd K ##M22**?;;"&"4"45N"O"O&":h"F"FKK).C.O(,0'  KK
 $$%68MNN 	7)#00%'<     !% 4 4 6 6666666K((**
 889LMM!99:NOOy!3!3N!C!CDD!//0DEE 	--$($8'+'>%)%: 	. 	
 	
 	

 33FLIIH$$%)%A%A(& &" )==m[         	..$% 	/ 	
 	
 	
 *OO#1
 
 
 &33%#%#0022 #! 4 
 
 
 
 
 
 
 
 ..y99V[/000r"   awsFc                    K   |                      d          }g }	 |                     |           d {V }|d                             d|          }|                    |||          }n# t          $ r Y nw xY w|S )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D		!%!6!6|!D!DDDDDDDL*:6:: , O 661C GG # 	 	 	D	s   AA* *
A76A7)NNTNr   )	NNTNNNNNN)r   F)r,   r-   r.   r!   r4   rA   rE   rP   rU   r[   r`   rf   rc   ru   rr   r   __classcell__)r9   s   @r    r1   r1       sO        !%+ + + + + + A A A+ + +
 
 


 
 

 
 

J J J J! ! !L L L L   "J J J "m m m 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      s         4 4 4 4 4 4       7 7 7 7 7 7 8 8 8 8 8 8 8 8 4 4 4 4 4 4 6 6 6 6 6 6 6 6 ' ' ' ' ' ' ' ' 3 3 3 3 3 3 3 3 > > > > > > C C C C C C C C ) ) ) ) ) ) - - - - - - ) ) ) ) ) ) ( ( ( ( ( (
@ 
@ 
@ 
@ 
@ 
@ 
@ 
@W W W W W W W Wt           r"   