U
    n/e                     @   sh   d dl Z d dlZd dlZ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 G dd	 d	eZdS )
    N)ClientArgsCreator   )	AioConfig)AioEndpointCreator)AioEndpointRulesetResolver)AioRequestSignerc                   @   s   e Zd ZdddZdd ZdS )AioClientArgsCreatorNc           $      C   s  |  |||	||||}|d }|d }|d }|d }|d }|d }|d dd }|d	 }|d
 }|d }|d }t| j}t|j||d |d |||
}||d< t|tr|j}nd }t|f|}t	|}|j
|||d || j|j|j|j|jf||j|j|jd}tj||}tj|} | ||||||||||	|}!| j|}"|r\|jnd }#|#|_||| |||| j||| j|!|"dS )Nservice_nameparameter_validationendpoint_configprotocolconfig_kwargs	s3_configmetadata	partitionsocket_optionsconfigured_endpoint_urlsigning_regionregion_nameZsigning_namesignature_versions3endpoint_url)r   r   verifyZresponse_parser_factorymax_pool_connectionsproxiestimeoutr   client_certproxies_configconnector_args)
serializerendpointresponse_parserevent_emitterZrequest_signerservice_modelloaderclient_configr   Zexceptions_factoryZendpoint_ruleset_resolverZuser_agent_creator)Zcompute_client_argsgetcopyZ_event_emitterr   Z
service_id
isinstancer   r   r   Zcreate_endpointZ_response_parser_factoryr   r   connect_timeoutread_timeoutr   r   botocore	serializeZcreate_serializerparserscreate_parser_build_endpoint_resolverZ_session_ua_creatorZwith_client_config
user_agentZ_supplied_user_agentZ_loaderZ_exceptions_factory)$selfr#   r   	is_securer   r   credentialsZscoped_configr%   endpoint_bridgeZ
auth_tokenendpoints_ruleset_datapartition_dataZ
final_argsr	   r
   r   r   r   r   r   r   r   r   endpoint_region_namer"   Zsignerr   Z
new_configZendpoint_creatorr    r   r!   Zruleset_resolverZclient_ua_creatorZsupplied_ua r8   4/tmp/pip-unpacked-wheel-8mnez3y6/aiobotocore/args.pyget_client_args   s    



 z$AioClientArgsCreator.get_client_argsc              
   C   s   |d krd S |  |pi }|j}|dks0|d kr6|}n|}| j||||
||jd}| |r`|ni }|d k	rr|jnd }t|||||||	|dS )N)r   sts)r   r	   r   r4   Zclient_endpoint_urlZlegacy_endpoint_url)Zendpoint_ruleset_datar6   r#   builtinsclient_contextr"   Zuse_sslZrequested_auth_scheme)Zcompute_s3_configZendpoint_prefixZ*compute_endpoint_resolver_builtin_defaultshostZ_is_s3_servicer   r   )r1   r5   r6   r%   r#   r7   r   r   r    r2   r4   r"   Zs3_config_rawZservice_name_rawZeprv2_region_nameZresolver_builtinsr=   Zsig_versionr8   r8   r9   r/      s>    z-AioClientArgsCreator._build_endpoint_resolver)NNN)__name__
__module____qualname__r:   r/   r8   r8   r8   r9   r      s
      
tr   )r'   Zbotocore.parsersr+   Zbotocore.serializeZbotocore.argsr   configr   r    r   Zregionsr   Zsignersr   r   r8   r8   r8   r9   <module>   s   