
    Dh                     f    d dl Z d dlZd dlmZ d dlmZ  ej                  e      Z G d de      Z	y)    N)EndpointProviderError)EndpointRulesetResolverc                       e Zd Zd Zd Zd Zy)AioEndpointRulesetResolverc           	      x  K   |i }|i }| j                  |||       d{   }t        j                  d|z         	  | j                  j                  d
i |}t        j                  d|j                  z         | j                  s=|j                  j                  d      r"|j                  d|j                  dd        }|j                  |j                  j                         D 	ci c]  \  }}	||	d    c}	}	      }|S 7 # t
        $ r}| j                  ||      }| ||d}~ww xY wc c}	}w w)zAInvokes the provider with params defined in the service's rulesetNz-Calling endpoint provider with parameters: %szEndpoint provider result: %szhttps://zhttp://   )urlr   )headers )_get_provider_paramsLOGdebug	_providerresolve_endpointr   #ruleset_error_to_botocore_exceptionr	   _use_ssl
startswith_replacer
   items)
selfoperation_model	call_argsrequest_contextprovider_paramsprovider_resultexbotocore_exceptionkeyvals
             u/var/www/fastuser/data/www/generator.snapmosaic.io/flask_app/venv/lib/python3.12/site-packages/aiobotocore/regions.pyconstruct_endpointz-AioEndpointRulesetResolver.construct_endpoint   sh     I" O $ 9 9Y!
 
 			;oM	
	1=dnn== !O 			0?3F3FFG }}!4!4!?!?
!K-66o11!"567 7 O *22,;,C,C,I,I,K (SSV 3 
 G
 % 	1!%!I!IO" ")(b0	1(s?   D:D	D:D BD:.D4
>D:	D1D,,D11	D:c                   K   i }| j                  |||       d{   }| j                  j                         D ]L  \  }}| j                  |||      }|)|j                  | j                  |j                  |      }|H|||<   N |S 7 ow)a  Resolve a value for each parameter defined in the service's ruleset

        The resolution order for parameter values is:
        1. Operation-specific static context values from the service definition
        2. Operation-specific dynamic context values from API parameters
        3. Client-specific context parameters
        4. Built-in values such as region, FIPS usage, ...
        N)
param_namer   r   )builtin_namebuiltins)_get_customized_builtins_param_definitionsr   _resolve_param_from_contextbuiltin_resolve_param_as_builtin)	r   r   r   r   r   customized_builtinsr#   	param_def	param_vals	            r    r   z/AioEndpointRulesetResolver._get_provider_params=   s       %)$A$AY%
 
 &*%<%<%B%B%D 	8!J	88% /# 9 I
  Y%6%6%B ::!*!2!20 ; 	 $.7
+	8 #
s   BBA%B
Bc                    K   | j                   j                  j                         }t        j                  | j                        }| j
                  j                  d|z  ||||       d {    |S 7 w)Nzbefore-endpoint-resolution.%s)r%   modelparamscontext)_service_model
service_id	hyphenizecopy	_builtins_event_emitteremit)r   r   r   r   r3   r+   s         r    r&   z3AioEndpointRulesetResolver._get_customized_builtins^   sy      ((33==?
"ii7!!&&+j8(!# ' 
 	
 	
 #"	
s   A*A5,A3-A5N)__name__
__module____qualname__r!   r   r&   r       r    r   r   
   s    0dB#r<   r   )
r5   loggingbotocore.exceptionsr   botocore.regionsr   	getLoggerr9   r   r   r   r<   r    <module>rA      s2      5 4g!a#!8 a#r<   