https://t.me/RX1948
Server : nginx/1.24.0
System : Linux ip-172-31-33-48 6.14.0-1011-aws #11~24.04.1-Ubuntu SMP Fri Aug 1 02:07:25 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 8.3.6
Disable Function : NONE
Directory :  /lib/python3/dist-packages/botocore/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/botocore/__pycache__/client.cpython-312.pyc
�

P��e)����ddlZddlmZmZddlmZddlmZddlm	Z	ddl
mZddlm
Z
ddlmZdd	lmZmZmZdd
lmZmZddlmZmZmZmZmZddlmZdd
lm Z ddl!m"Z"m#Z#ddl$m%Z%ddl&m'Z'ddl(m)Z)m*Z*ddl+m,Z,ddl-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4ddlm5Z5ddl-m6Z6ddl-m7Z7ddl-m8Z8ddl-m9Z9ddl-m:Z:ddlm;Z;e<d�Z=ej|e?�Z@e�ZAGd�d�ZBGd�d�ZCGd �d!�ZDGd"�d#�ZEd$�ZFy)%�N)�waiter�
xform_name)�ClientArgsCreator)�AUTH_TYPE_MAPS)�prepare_request_dict)�maybe_compress_request)�Config)�RefreshableCredentials)�EndpointDiscoveryHandler�EndpointDiscoveryManager�,block_endpoint_discovery_required_operations)�ClientMethodDocstring�PaginatorDocstring)�DataNotFoundError�*InvalidEndpointDiscoveryConfigurationError�OperationNotPageableError�UnknownServiceError�UnknownSignatureVersionError)�get_global_history_recorder)�first_non_none_response)�apply_request_checksum�resolve_checksum_context)�ServiceModel)�	Paginator)�adaptive�standard)�UserAgentString)�CachedProperty�EventbridgeSignerSetter�S3ControlArnParamHandlerv2�S3ExpressIdentityResolver�S3RegionRedirectorv2�ensure_boolean�get_service_module_name)�ClientError)�S3ArnParamHandler)�S3ControlArnParamHandler)�S3ControlEndpointSetter)�S3EndpointSetter)�S3RegionRedirector)�UNSIGNED)�v2�v3�v3https�v4�s3�s3v4c���eZdZdZ				dd�Z								dd�Zdd�Zd�Zd�Zdd�Z	dd	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Z				dd�Zd�Z				dd�Zd�Zd�Zd�Zd�Zd�Zd�Zy) �
ClientCreatorz%Creates client objects for a service.Nc��||_||_||_||_||_||_||_||_|	|_|
|_	y�N)
�_loader�_endpoint_resolver�_user_agent�_event_emitter�_retry_handler_factory�_retry_config_translator�_response_parser_factory�_exceptions_factory�
_config_store�_user_agent_creator)�self�loader�endpoint_resolver�
user_agent�
event_emitter�retry_handler_factory�retry_config_translator�response_parser_factory�exceptions_factory�config_store�user_agent_creators           �1/usr/lib/python3/dist-packages/botocore/client.py�__init__zClientCreator.__init__WsU�����"3���%���+���&;��#�(?��%�(?��%�#5�� �
*���#5�� �c�.�|jjd|��}t||��}|j||�}	|j	||�}
|j
j
d�}|j||�}|j||	�\}}	t|j||	|jjd�|j |jjd���}|j#||||||||	||
|
|�}|di|��}|j%|�|j'|dd|	|�	�|j)|�
�|j+|�
�|j-|||	�|S#t$rd}
d}tjd|�Y��(wxYw)Nzchoose-service-name��service_name��default�
partitionszSNo endpoints ruleset found for service %s, falling back to legacy endpoint routing.�signingName�signatureVersion)�service_signing_namerI�service_signature_version)�client�endpoint_bridge�endpoint_url�
client_config�
scoped_config�rX�)r9�emitr�_load_service_model�_load_service_endpoints_rulesetr6�	load_datar�logger�info�_create_client_class�_normalize_fips_region�ClientEndpointBridger7�metadata�getr>�_get_client_args�_register_retries�_register_s3_events�_register_s3express_events�_register_s3_control_events�_register_endpoint_discovery)r@rP�region_name�	is_securerZ�verify�credentialsr\�api_versionr[�
auth_token�	responses�
service_model�endpoints_ruleset_data�partition_data�clsrY�client_args�service_clients                   rK�
create_clientzClientCreator.create_clientss����'�'�,�,�!��-�
�	�/�y�,�O���0�0��{�K�
�	�%)�%I�%I��k�&�"�"�\�\�3�3�L�A�N��'�'��m�D��%)�%@�%@���&
�"��]�/��#�#���!.�!7�!7�!;�!;�M�!J��+�+�&3�&<�&<�&@�&@�"�'�
	
���+�+�����������"��

���+�{�+�����~�.�� � �!� ��'�'�	!�	
�	
�'�'�~�'�>��(�(��(�?��)�)��L�-�	
����g#�	�%)�"�!�N��K�K�+��
�	�s�-E-�-#F�Fc�J�|j||�}|j||�Sr5)r`re)r@rPrtrws    rK�create_client_classz!ClientCreator.create_client_class�s'���0�0��{�K�
��(�(��}�E�ErMc�,�|j|�}|j|�}||d<tg}|jj	�}|j
j
d|z||��t|�}tt|�t|�|�}|S)N�_PY_TO_OP_NAMEzcreating-client-class.%s)�class_attributes�base_classes)�_create_methods�_create_name_mapping�
BaseClient�
service_id�	hyphenizer9r_r$�type�str�tuple)	r@rPrwr��py_name_to_operation_name�basesr��
class_namerzs	         rKrez"ClientCreator._create_client_class�s����/�/�
�>��$(�$=�$=�m�$L�!�-F��)�*����"�-�-�7�7�9�
���� � �&��3�-��	!�	
�
-�]�;�
��3�z�?�E�%�L�2B�C���
rMc���|�g|jdd�jdd�}||k7r@td��}|r|j|�}n|}tj	d|�d|�d��|}||fS)	Nzfips-�z-fipsT)�use_fips_endpointztransforming region from z to zb and setting use_fips_endpoint to true. client should not be configured with a fips psuedo region.)�replacer	�mergerc�warning)r@rpr[�normalized_region_name�config_use_fips_endpoints     rKrfz$ClientCreator._normalize_fips_region�s����"�%0�%8�%8��"�%E�%M�%M���&�"�&��4�+1�D�+I�(� �$1�$7�$7�0�%�M�%=�M����#�$:�<��5���M�)�)rMc�\�|jj|d|��}t||��}|S)Nz	service-2�rtrO)r6�load_service_modelr)r@rPrt�
json_modelrws     rKr`z!ClientCreator._load_service_model�s6���\�\�4�4��+�;�5�
�
�%�Z�l�K�
��rMc�>�|jj|d|��S)Nzendpoint-rule-set-1r�)r6r�)r@rPrts   rKraz-ClientCreator._load_service_endpoints_ruleset�s&���|�|�.�.��/�[�/�
�	
rMc��|jjjd}|dk(r|j|�y|dk(r#|j|�|j	|�y|dk(r|j|�yy)N�moderr�legacy)�meta�config�retries�_register_v2_standard_retries�_register_v2_adaptive_retries�_register_legacy_retries)r@rX�
retry_modes   rKrkzClientCreator._register_retries�sq���[�[�'�'�/�/��7�
���#��.�.�v�6�
�:�
%��.�.�v�6��.�.�v�6�
�8�
#��)�)�&�1�$rMc��|jjjjd�}d|i}|�||d<t	j
di|��y)N�total_max_attemptsrX�max_attemptsr^)r�r�r�rir�register_retry_handler)r@rXr��kwargss    rKr�z+ClientCreator._register_v2_standard_retriessN���{�{�)�)�1�1�5�5�6J�K���F�#���#�%1�F�>�"��'�'�1�&�1rMc�.�tj|�yr5)rr�)r@rXs  rKr�z+ClientCreator._register_v2_adaptive_retriess���'�'��/rMc��|jjj}|jjj}|j	�}|j
j
d�}|sy|j|jjj�}|jj||jdi�|jdi�|�}tjd|jjj�|j j#||�}d|z}	|jj$j'd|��||	��y)N�_retry�retry�definitionsz*Registering retry handlers for service: %szretry-config-%szneeds-retry.)�	unique_id)r�rw�endpoint_prefixr�r�r6rb�_transform_legacy_retriesr�r�r;�build_retry_configrirc�debugrPr:�create_retry_handler�events�register)
r@rXr�r��service_event_name�original_configr��retry_config�handlerr�s
          rKr�z&ClientCreator._register_legacy_retries
s.�� �+�+�3�3�C�C���[�[�.�.�9�9�
�'�1�1�3���,�,�0�0��:�����0�0����1C�1C�1K�1K�L���4�4�G�G�������,����
�r�2��	
��	���8��K�K�%�%�2�2�	
��-�-�B�B��/�
��&�(:�:�	������#�#��-�.�/��I�	$�	
rMc��|�y|j�}d|vr'|j�}|jd�dz
|d<|S)Nr��r�)�copy�pop)r@r��copied_argss   rKr�z'ClientCreator._transform_legacy_retries)sL���?���l�l�n���7�*�!�,�,�.�K���� 4�5��9�
��'��rMc��|jjj}|�|jd��|dS|j	d�xsdS)Nr�r�r�)r�r�r�ri�get_config_variable)r@rXrI�client_retriess    rK�_get_retry_modezClientCreator._get_retry_mode4sO�����+�+�3�3���&��"�"�6�*�6�!�&�)�)��/�/��=�I��IrMc�0�|�y|jjj�y|jj}|jjjj�}d}|r|j�
|j}n'|jr|jjd�}|j|�}|rA|j||�r/|du}t||��}t|�}	|	j||�y|jdt�y)NF�endpoint_discovery_enabledT)�always_discoverzbefore-parameter-build)r�rw�endpoint_discovery_operationr�r�r�r�r>r��$_normalize_endpoint_discovery_config�_requires_endpoint_discoveryrrr�r
)
r@rXrZr�r�r��enabled�discover�managerr�s
          rKroz*ClientCreator._register_endpoint_discovery=s����#���;�;�$�$�A�A�I�����#�#���[�[�.�.�9�9�C�C�E�
����f�7�7�C��7�7�G�
�
�
��(�(�<�<�,��G��;�;�G�D���t�8�8���I��$��H�.����G�/�w�7�G����V�Z�0��O�O�(�<�
rMc���t|t�r4|j�j�}|dk(r|S|dvrt	|�St|t
�r|St
|���)z?Config must either be a boolean-string or string-literal 'auto'�auto)�true�false)�config_value)�
isinstancer��lower�stripr#�boolr)r@r�s  rKr�z2ClientCreator._normalize_endpoint_discovery_config\s[���g�s�#��m�m�o�+�+�-�G��&� ����-�-�%�g�.�.�
���
&��N�8�g�N�NrMc�P�|dk(r |jjjS|S)Nr�)r�rw�endpoint_discovery_required)r@rXr�s   rKr�z*ClientCreator._requires_endpoint_discoveryis%���f���;�;�,�,�H�H�H��rMc���|jjjdk7ryt|j|jj
|��j
|jj�y)Nr�)rB�regionrZ)r�rwrPrr7rpr�r�)r@rXrYrZs    rK�_register_eventbridge_eventsz*ClientCreator._register_eventbridge_eventsnsV���;�;�$�$�1�1�X�=���"�5�5��;�;�*�*�%�	
��(�6�;�;�%�%�
&rMc��|jjjdk7ryt|t�j�y�Nr0)r�rwrPr!r
r��r@rXrYrZr[r\s      rKrmz(ClientCreator._register_s3express_eventsys3���;�;�$�$�1�1�T�9��!�&�*@�A�J�J�LrMc��|jjjdk7rytd|�j	�|j|j||�yr�)r�rwrPr"r��!_set_s3_presign_signature_versionr�s      rKrlz!ClientCreator._register_s3_events�sK���;�;�$�$�1�1�T�9���T�6�*�3�3�5��.�.��K�K��
�	
rMc��|jjjdk7ryt�j	|jj
�y)N�	s3control)r�rwrPr r�r�r�s      rKrnz)ClientCreator._register_s3_control_events�s:���;�;�$�$�1�1�[�@��"�$�-�-�f�k�k�.@�.@�ArMc�X�td||�}|�y|jjd|j�}|jdk7r|j|vry|jjd|j�}|d}d|vry|jjd|j�y)Nr0z
aws-global�signatureVersionszchoose-signer.s3)	�!_get_configured_signature_versionr7�get_available_endpoints�	partitionrp�construct_endpointr�r��_default_s3_presign_to_sigv2)r@�client_metar[r\�provided_signature_version�regions�endpoint�signature_versionss        rKr�z/ClientCreator._set_s3_presign_signature_version�s���&G��-��&
�"�&�1���)�)�A�A��+�'�'�
��
�#�#�|�3��'�'�w�6���*�*�=�=��+�)�)�
��&�&9�:���)�)��
	���#�#��� A� A�	
rMc��|jd�ry|jd�r|�SdD]}|j|�s�d|��cSy)a@
        Returns the 's3' (sigv2) signer if presigning an s3 request. This is
        intended to be used to set the default signature version for the signer
        to sigv2. Situations where an asymmetric signature is required are the
        exception, for example MRAP needs v4a.

        :type signature_version: str
        :param signature_version: The current client signature version.

        :type signing_name: str
        :param signing_name: The signing name of the service.

        :return: 's3' if the request is an s3 presign request, None otherwise
        �v4aNzv4-s3express)z-queryz
-presign-postr0)�
startswith�endswith)r@�signature_versionr��suffixs    rKr�z*ClientCreator._default_s3_presign_to_sigv2�sU���'�'��.���'�'��7�'�(�)�1�	%�F� �)�)�&�1��F�8�}�$�	%rMc
���t|j|j|j|j|j
|j|j��}
|
j|||||||||	|
||�S)N)rIrJ)	rr9r8r<r6r=r>r?�get_client_args)r@rwrprqrZrrrsr\r[rYrurxry�args_creators              rKrjzClientCreator._get_client_args�s���)��������)�)��L�L��$�$��+�+�#�7�7�
���+�+�����������"��

�
	
rMc�n�i}|jD]#}t|�}|j|||�||<�%|Sr5)�operation_namesr�_create_api_method)r@rw�op_dict�operation_name�py_operation_names     rKr�zClientCreator._create_methodssK����+�;�;�	�N� *�>� :��)-�)@�)@�!�>�=�*�G�%�&�	�
�rMc�L�i}|jD]}t|�}|||<�|Sr5)r�r)r@rw�mappingr�r�s     rKr�z"ClientCreator._create_name_mappings;����+�;�;�	8�N� *�>� :��)7�G�%�&�	8��rMc������fd�}t��|_|j��}t|�|j|j
d�zd��}||_|S)Nc�H��|rt��d���|j�|�S)Nz"() only accepts keyword arguments.)�	TypeError�_make_api_call)r@�argsr�r�r�s   ��rK�	_api_callz3ClientCreator._create_api_method.<locals>._api_call s6�����(�)�)K�L����&�&�~�v�>�>rMzresponse = client.%sF)�operation_model�method_namerD�method_description�example_prefix�include_signature)r��__name__rrr9�
documentation�__doc__)r@r�r�rwrr�	docstrings ``    rKr�z ClientCreator._create_api_methodsh���		?�!�!2�3�	��(�7�7��G��)�+�&��-�-�.�<�<�1�4E�E�#�

�	�&�	���rM)NNNN)TNNNNNNNr5)r�
__module__�__qualname__r
rLr}rrerfr`rarkr�r�r�r�r�ror�r�r�rmrlrnr�r�rjr�r�r�r^rMrKr3r3Ts���/�!%����6�@��������J�XF�
�*�0�
�
2�2�0�
�>	�J��>O��
	'�����
M�

�$����
B�)
�V%�2%
�N��rMr3c��eZdZdZdZddgZ						dd�Z	dd�Zd�Zd	�Z	d
�Z
d�Zd�Zd
�Z
d�Zd�Zd�Zd�Zd�Zd�Zy)rga�Bridges endpoint data and client creation

    This class handles taking out the relevant arguments from the endpoint
    resolver and determining which values to use, taking into account any
    client configuration options and scope configuration options.

    This class also handles determining what, if any, region to use if no
    explicit region setting is provided. For example, Amazon S3 client will
    utilize "us-east-1" by default if no region can be resolved.z {service}.{region}.amazonaws.comr0z
s3-controlNc��||_||_||_||_|xs|j|_||_||_yr5)rVrBr\r[�DEFAULT_ENDPOINT�default_endpointrIrW)r@rBr\r[rrVrIrWs        rKrLzClientEndpointBridge.__init__IsG��%9��!�!2���*���*��� 0� I�D�4I�4I���(���)B��&rMc�B�|j||�}|j|�}|jd�}|jj	||||��}|s |jj	||d||��}|r|j|||||�S|j
||||�S)Nr�)�use_dualstack_endpointr��aws)�partition_namerr�)�_check_default_region�_resolve_use_dualstack_endpoint�$_resolve_endpoint_variant_config_varrBr��_create_endpoint�_assume_endpoint)r@rPrprZrqrr��resolveds        rK�resolvezClientEndpointBridge.resolve[s����0�0��{�K��!%�!E�!E��"
��!�E�E��
���)�)�<�<���#9�/�	=�
����-�-�@�@���$�'=�"3�A��H���(�(��,��\�9��
��(�(��k�<���
rMc�.�|jjSr5)rB�uses_builtin_data�r@s rK�resolver_uses_builtin_dataz/ClientEndpointBridge.resolver_uses_builtin_data�s���%�%�7�7�7rMc�~�|�|S|jr-|jj�|jjSyyr5)r[rp)r@rPrps   rKrz*ClientEndpointBridge._check_default_region�sC���"������$�"4�"4�"@�"@�"L��%�%�1�1�1�#M�rMc	��|j|||�\}}|�2|j|jd�||jdg��}|j||�}|j	||�}|j|||||||��S)N�hostname�	protocols)rPrp�signing_region�signing_namerZrhr�)�_pick_region_values�	_make_urlri�_resolve_signature_version�_resolve_signing_name�_create_result)	r@rrPrprZrqr(r�r)s	         rKrz%ClientEndpointBridge._create_endpoint�s���'+�&>�&>��k�<�'
�#��^����>�>����Z�(�����[�"�-��L�
!�;�;��(�
���1�1�,��I���"�"�%�#�)�%�%��/�#�
�	
rMc��|j}d}|rt||��t||�S|j�|jj|�}|S)NF)r[�getattrrIr�)r@�
config_varr[�
config_vals    rKrz9ClientEndpointBridge._resolve_endpoint_variant_config_var�sX���*�*�
��
��W�]�J�?�K��=�*�5�5�
�
�
�
*��*�*�>�>�z�J�J��rMc�N�|j|�}|�|S|jd�S)Nr)�_is_s3_dualstack_moder)r@rP�s3_dualstack_modes   rKrz4ClientEndpointBridge._resolve_use_dualstack_endpoint�s5�� �6�6�|�D���(�$�$��8�8�$�
�	
rMc�
�||jvry|j}|�)|j�d|jvr|jdS|j�1|jj	di�j	d�}|dvryyy)Nrr0)T�Truer�T)�_DUALSTACK_CUSTOMIZED_SERVICESr[r0r\ri)r@rPr[r�s    rKr4z*ClientEndpointBridge._is_s3_dualstack_mode�s����t�B�B�B��
�*�*�
��%�� � �,�(�M�,<�,<�<�!�#�#�$<�=�=����)��(�(�,�,�T�2�6�:�:�(��G��0�0��1�	*rMc	�&�|�2|jj||��}|j||ddg�}tj	d|�d|�d|���|j|ddgi�}|j
|i�	�}|j||||||i�
�S)N)�servicer��http�httpszAssuming an endpoint for z, z: r�r/)r)rPrpr(r)r�rZrh)r�formatr+rcr�r,r-r.)r@rPrprZrqr&r�r)s        rKrz%ClientEndpointBridge._assume_endpoint�s������,�,�3�3�$�[�4��H� �>�>��)�f�g�%6��L�	���'��~�R��}�B�|�n�U�	
�!�;�;��.���7�
���1�1�,��1�L���"�"�%�#�&�%�/�%��#�
�	
rMc��|||||||d�S)N)rPrpr(r)rZr�rhr^)r@rPrpr(r)rZr�rhs        rKr.z#ClientEndpointBridge._create_result�s#��)�&�,�(�(�!2� �
�	
rMc�&�|rd|vrd}nd}|�d|��S)Nr<r;z://r^)r@r&rq�supported_protocols�schemes     rKr+zClientEndpointBridge._make_urls(����$7�7��F��F����X�J�'�'rMc�\�d|vrd|dvr|ddS|jr|jS|S)N�credentialScoper:)rV)r@rPrs   rKr-z*ClientEndpointBridge._resolve_signing_namesF��
��)��X�&7�8�8��-�.�y�9�9��$�$��,�,�,��rMc�F�|}|�|d}|}d|vrd|dvr|dd}||fS)N�endpointNamerCr�r^)r@rrprZr(s     rKr*z(ClientEndpointBridge._pick_region_valuessO��$����#�>�2�K�(�N�!�X�-���):� ;�;�!)�*;�!<�X�!F���N�*�*rMc�"�t||j|j�}|�|S|jdg�}|j�|jt
vr
|jg}d|vr|dk(ryd|vry|D]}|tvs�|cSt|���)Nr�r0r1r/)r�)r�r[r\rirW�_LEGACY_SIGNATURE_VERSIONSrr)r@rPr�configured_version�potential_versions�knowns      rKr,z/ClientEndpointBridge._resolve_signature_version+s���>��$�,�,�d�.@�.@�
���)�%�%�%�\�\�*=�r�B���*�*�6��.�.�-�.�
#'�"@�"@�!A���(�*��t�#���)�)��,�
!���N�*� �L�
!�+�0�
�	
rM)NNNNNN�NNT)rrrr
rr8rLrr#rrrrr4rr.r+r-r*r,r^rMrKrgrg;s~��D�:��&*�L�%9�"�
���!��"&�C�&LP�%�N8�2�
�4
�
��,
�:
�((��+�,
rMrgc��eZdZiZ		dd�Zd�Zd�Zd�Zed��Z	d�Z
d�Z			dd	�Zd
�Z
	dd�Zd�Zd
�Zd�Zd�Zed��Zed��Zd�Zd�Zy)r�Nc
��||_||_||_||_||_i|_||_||_t||j|j||j|	�|_|
|_d|_
||_|j�2tj �j#|j�|_|j%�yr5)�_serializer�	_endpoint�_ruleset_resolver�_response_parser�_request_signer�_cacher6�_client_config�
ClientMeta�hostr�r�r=�_exceptionsr?r�from_environment�with_client_config�_register_handlers)
r@�
serializerr��response_parserrD�request_signerrwrAr[r�rH�endpoint_ruleset_resolverrJs
             rKrLzBaseClient.__init__Us���&���!���!:��� /���-���������+���������M�M������

��	�$6�� ����#5�� ��#�#�+��0�0�2�E�E��'�'��
�$�
	
���!rMc��|jjj�}d|�d|��}|jjj||��\}}|�|St
d|jj�d|�d���)Nzgetattr.�.r]�'z' object has no attribute ')	�_service_modelr�r�r�r��emit_until_response�AttributeError�	__class__r)r@�itemr��
event_namer��event_responses      rK�__getattr__zBaseClient.__getattr__s����(�(�3�3�=�=�?�
��
�|�1�T�F�3�
�"&�)�)�"2�"2�"F�"F��t�#G�#
�����%�!�!������'�'�(�(C�D�6��K�
�	
rMc�8�|jj�y)z'Closes underlying endpoint connections.N)rO�closer"s rKrkzBaseClient.close�s�������rMc���|jjjj�}|jjjd|��|jj�y)Nzrequest-created.)r�rwr�r�r�r�rRr�)r@r�s  rKrZzBaseClient._register_handlers�sP���Y�Y�,�,�7�7�A�A�C�
��	�	���!�!��z�l�+�T�-A�-A�-I�-I�	
rMc�.�|jjSr5)r�rwr"s rKrbzBaseClient._service_model�s���y�y�&�&�&rMc���|jj|�}|jj}tj	d|||d��|j
rtjd||�|jj|jj|j|jd�}|j|||��}|j|||�\}}}|r||d<|j|||||��}	t!|	||�|jj"j%�}
|jj&j)dj+|
|�	�||	|j,|�
�\}}|�|\}
}nBt/|jj|	|�t1|	�|j3||	|�\}
}|jj&j5dj+|
|�	�|
|||��|
j6d
k\rZ|j9di�}|j9d�xs|j9d�}|j:j=|�}|||��|S)N�API_CALL)r:�	operation�paramszWarning: %s.%s() is deprecated)�
client_regionr[�has_streaming_input�	auth_type)�
api_paramsr�context�endpoint_properties)rurrZrv�headersz)before-call.{service_id}.{operation_name}�r�r�)�modelrqr]rvz(after-call.{service_id}.{operation_name})�
http_response�parsedrzrvi,�Error�QueryErrorCode�Code)rbrrP�history_recorder�record�
deprecatedrcr�r�rpr�rsrt�_emit_api_params�_resolve_endpoint_ruleset�_convert_to_request_dictrr�r�r�rcr=rRrr�
_make_requestr_�status_coderi�
exceptions�	from_code)r@r�rurrP�request_contextrZ�additional_headers�
properties�request_dictr�r�rhr;�parsed_response�
error_info�
error_code�error_classs                  rKrzBaseClient._make_api_call�s����-�-�=�=�n�M���*�*�7�7������'�+�$�
�	
��%�%��L�L�0�,��
�"�Y�Y�2�2�!�Y�Y�-�-�#2�#F�#F�(�2�2�	
���*�*�!�+�#�+�
�
�
�*�*��Z��
�		
�����6@�O�1�2��4�4�!�+�%�#�&�5�
��	!���
�K��(�(�3�3�=�=�?�
�"&�)�)�"2�"2�"F�"F�7�>�>�%�n�
?�
�"���/�/�#�#G�#
�����%�$2�!�D�/�"��	�	� � �,��
�
#�<�0�$(�$6�$6����%�!�D�/�	
�	�	�����6�=�=�%�n�
>�
��"�!�#�	�	
����s�"�(�,�,�W�b�9�J�#���(8�9��Z�^�^��>�J��/�/�3�3�J�?�K��o�~�>�>�"�"rMc�*�	|jj||�S#t$rk}|jjjdj
|jjj�|j��||���d}~wwxYw)Nz.after-call-error.{service_id}.{operation_name}ry)�	exceptionrv)rO�make_request�	Exceptionr�r�r_r=rbr�r��name)r@rr�r��es     rKr�zBaseClient._make_request�s���	��>�>�.�.���M�M���		��I�I���!�!�@�G�G�#�2�2�=�=�G�G�I�#2�#7�#7�H���'�

"�
�
��		�s��	B�A&B
�
Bc��|jj||�}|jjs|j	dd�|�|dj|�|r|jj�}nd}t||||��|S)N�host_prefixrx)rZrCrv)	rN�serialize_to_requestrT�inject_host_prefixr��updater?�	to_stringr)	r@rurrZrvrx�set_user_agent_headerr�rCs	         rKr�z#BaseClient._convert_to_request_dicts����'�'�<�<���
���"�"�5�5����]�D�1�����#�*�*�7�3� ��1�1�;�;�=�J��J���%�!��		
��rMc�<�|j}|jjj�}|jj
j
d|�d|��|||��}t||��}|jj
j
d|�d|��|||��|S)Nzprovide-client-params.r`)rqrzrvrQzbefore-parameter-build.)r�rbr�r�r�r�r_r)r@rurrvr�r�rvs       rKr�zBaseClient._emit_api_paramss���)�-�-��
�(�(�3�3�=�=�?�
��I�I�$�$�)�)�$�Z�L��.�1A�B��!��	*�
�	�-�Y�
�K�
��	�	�����%�j�\��>�2B�C��!��		�	
��rMc��|j�|jj}i}i}n�|jj|||��}|j}|j
}|j}|jjd�}	|	�L|jj|	�}
|
\}}||d<d|vr|r|d=d|vr|dj|�n||d<|||fS)a�Returns endpoint URL and list of additional headers returned from
        EndpointRulesetResolver for the given operation and params. If the
        ruleset resolver is not available, for example because the service has
        no endpoints ruleset file, the legacy endpoint resolver's value is
        returned.

        Use ignore_signing_region for generating presigned URLs or any other
        situation where the signing region information from the ruleset
        resolver should be ignored.

        Returns tuple of URL and headers dictionary. Additionally, the
        request_context dict is modified in place with any signing information
        returned from the ruleset resolver.
        )r�	call_argsr��authSchemesrtr��signing)
rPr�rZr��urlrxr�ri�auth_schemes_to_signing_ctxr�)
r@rrqr��ignore_signing_regionrZr�rw�
endpoint_info�auth_schemes�	auth_infort�signing_contexts
             rKr�z$BaseClient._resolve_endpoint_ruleset8s	��*�!�!�)��9�9�1�1�L�!#��"$�� �2�2�E�E� /� � /�F��M�
)�,�,�L�!.�!6�!6��"/�":�":��)�3�3�7�7�
�F�L��'� �2�2�N�N� ��	�.7�*�	�?�/8���,���.�3H�'��1���/�#�I�.�5�5�o�F�1@�O�I�.��/�1D�D�DrMc���|j|�st|���|j|}d�}|jd|}t	||j
j|j
j|d��|_t|j
j�}|�d|��}t|tfd|i�}|jj|�}|t||�||�}	|	S)aCreate a paginator for an operation.

        :type operation_name: string
        :param operation_name: The operation name.  This is the same name
            as the method name on the client.  For example, if the
            method name is ``create_foo``, and you'd normally invoke the
            operation as ``client.create_foo(**kwargs)``, if the
            ``create_foo`` operation can be paginated, you can use the
            call ``client.get_paginator("create_foo")``.

        :raise OperationNotPageableError: Raised if the operation is not
            pageable.  You can use the ``client.can_paginate`` method to
            check if an operation is pageable.

        :rtype: ``botocore.paginate.Paginator``
        :return: A paginator object.

        )r�c�.�tj|fi|��Sr5)r�paginate)r@r�s  rKr�z*BaseClient.get_paginator.<locals>.paginate�s�� �)�)�$�9�&�9�9rM�page_configF)�paginator_namerDrw�paginator_configr
z.Paginator.r�)�can_paginaterr�rSrr�r�rwr
r$r�rrbrr0)
r@r��actual_operation_namer�r��service_module_name�paginator_class_name�documented_paginator_clsr�	paginators
          rK�
get_paginatorzBaseClient.get_paginatorls
��&� � ��0�+�>�J�J�$(�$7�$7��$G�!�

:� $�{�{�=�9�%� �� 2�4�"�i�i�.�.�"�i�i�5�5�!1�"'� �H��#:��	�	�'�'�#��'�'�{�3H�2I�J�
!�
(,�$�y�l�Z��4J�(�$�#�1�1�A�A�%��O�1���n�-� ���I�
�rMc�J�d|jvrX	|jj|jjd|jj
�d}||jd<|j|}||jdvS#t$ri|jd<Y�:wxYw)aMCheck if an operation can be paginated.

        :type operation_name: string
        :param operation_name: The operation name.  This is the same name
            as the method name on the client.  For example, if the
            method name is ``create_foo``, and you'd normally invoke the
            operation as ``client.create_foo(**kwargs)``, if the
            ``create_foo`` operation can be paginated, you can use the
            call ``client.get_paginator("create_foo")``.

        :return: ``True`` if the operation can be paginated,
            ``False`` otherwise.

        r�zpaginators-1�
pagination)rSr6r�rbrPrtrr�)r@r�r�r�s    rKr�zBaseClient.can_paginate�s�������+�
0�"�l�l�=�=��'�'�4�4�"��'�'�3�3���	 ��
.9����M�*�!%� 3� 3�N� C��$����M�(B�B�B��%�
0�-/����M�*�
0�s�AB�B"�!B"c�"�d|jvrU	|jj|jjd|jj
�}||jd<|jdS#t$ri|jd<Y�)wxYw)N�
waiter_configz	waiters-2)rSr6r�rbrPrtr)r@r�s  rK�_get_waiter_configzBaseClient._get_waiter_config�s����$�+�+�-�
2� $��� ?� ?��'�'�4�4���'�'�3�3�!�
�
0=����O�,��{�{�?�+�+��%�
2�/1����O�,�
2�s�AA3�3B�
Bc��|j�}|std|z��tj|�}i}|jD]}||t|�<�||vrtd|z��tj||||�S)aKReturns an object that can wait for some condition.

        :type waiter_name: str
        :param waiter_name: The name of the waiter to get. See the waiters
            section of the service docs for a list of available waiters.

        :returns: The specified waiter object.
        :rtype: ``botocore.waiter.Waiter``
        zWaiter does not exist: %s)r��
ValueErrorr�WaiterModel�waiter_namesr�create_waiter_with_client)r@�waiter_namer�rzr�r�s      rK�
get_waiterzBaseClient.get_waiter�s����(�(�*����8�;�F�G�G��"�"�6�*�����&�&�	-�D�(,�G�J�t�$�%�	-��g�%��8�;�F�G�G��/�/��K� �%��
�	
rMc��|j�}|sgStj|�}|jD�cgc]
}t	|���c}Scc}w)z(Returns a list of all available waiters.)r�rr�r�r)r@r�rzr�s    rKr�zBaseClient.waiter_names�sK���(�(�*����I��"�"�6�*��.3�-?�-?�@�T�
�4� �@�@��@s�A
c�\�|j�|j�|_|jSr5)rW�_load_exceptionsr"s rKr�zBaseClient.exceptions�s+�����#�#�4�4�6�D�����rMc�L�|jj|j�Sr5)r=�create_client_exceptionsrbr"s rKr�zBaseClient._load_exceptions�s$���'�'�@�@����
�	
rMc�.�|jjS)z�
        This private interface is subject to abrupt breaking changes, including
        removal, in any botocore release.
        )rR�_credentialsr"s rK�_get_credentialszBaseClient._get_credentialss��
�#�#�0�0�0rM)NNrK)F)rrrr�rLrirkrZ�propertyrbrr�r�r�r�r�r�r�r�rr�r�r�r�r^rMrKr�r�Ls����N�#'��("�T

��
��'��'�V#�p�&��"��8�<$�2E�h?�BC�8,�
�0�A��A�� �� �

�
1rMr�c�v�eZdZdZd�Zed��Zed��Zed��Zed��Z	ed��Z
ed��Zy	)
rUa~Holds additional client methods.

    This class holds additional information for clients.  It exists for
    two reasons:

        * To give advanced functionality to clients
        * To namespace additional client attributes from the operation
          names which are mapped to methods at runtime.  This avoids
          ever running into collisions with operation names.

    c�X�||_||_||_||_||_||_yr5)r�rT�
_endpoint_urlrb�_method_to_api_mapping�
_partition)r@r�r[rZrw�method_to_api_mappingr�s       rKrLzClientMeta.__init__s2�����+���)���+���&;��#�#��rMc��|jSr5)rbr"s rKrwzClientMeta.service_model)����"�"�"rMc�.�|jjSr5)rTrpr"s rKrpzClientMeta.region_name-s���"�"�.�.�.rMc��|jSr5)r�r"s rKrZzClientMeta.endpoint_url1s���!�!�!rMc��|jSr5)rTr"s rKr�zClientMeta.config5r�rMc��|jSr5)r�r"s rKr�z ClientMeta.method_to_api_mapping9s���*�*�*rMc��|jSr5)r�r"s rKr�zClientMeta.partition=s�����rMN)rrrr
rLr�rwrprZr�r�r�r^rMrKrUrUs���
�$� �#��#��/��/��"��"��#��#��+��+����rMrUc���|r|j�|jS|�O|j|�}|�<t|t�r,|jd�}|rtjd||�|Sy)z�
    Gets the manually configured signature version.

    :returns: the customer configured signature version, or None if no
        signature version was configured.
    Nr�zWSwitching signature version for service %s to version %s based on config file override.)r�rir��dictrcr�)rPr[r\�service_config�versions     rKr�r�Bs}����8�8�D��.�.�.�� �'�*�*�<�8���%�*�^�T�*J�$�(�(�)<�=�G�����C� ��	���rM)G�logging�botocorerr�
botocore.argsr�
botocore.authr�botocore.awsrequestr�botocore.compressr�botocore.configr	�botocore.credentialsr
�botocore.discoveryrrr
�botocore.docs.docstringrr�botocore.exceptionsrrrrr�botocore.historyr�botocore.hooksr�botocore.httpchecksumrr�botocore.modelr�botocore.paginater�botocore.retriesrr�botocore.useragentr�botocore.utilsrrr r!r"r#r$r%r&r'r(r)r*r+�	frozensetrG�	getLoggerrrcr�r3rgr�rUr�r^rMrK�<module>r�s����'�+�(�4�4�"�7���
N���9�2��(�'�/�.����,�,�3�2�+�-��'��	��
��	�	�8�	$��.�0��d�d�NN
�N
�b}1�}1�@3�3�lrM

https://t.me/RX1948 - 2025