HEX
Server: nginx/1.24.0
System: Linux webserver 6.8.0-85-generic #85-Ubuntu SMP PREEMPT_DYNAMIC Thu Sep 18 15:26:59 UTC 2025 x86_64
User: wpuser (1002)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/botocore/__pycache__/regions.cpython-312.pyc
�

P��e�~��:�dZddlZddlZddlZddlmZddlmZmZddl	m
Z
mZddlm
Z
ddlmZddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZdd	lm Z m!Z!ejDe#�Z$d
Z%diiZ&Gd�d
�Z'Gd�de'�Z(Gd�de)e�Z*Gd�d�Z+y)z�Resolves regions and endpoints.

This module implements endpoint resolution, including resolving endpoints for a
given service and region and resolving the available endpoints for a service
in a specific AWS partition.
�N)�Enum)�UNSIGNED�
xform_name)�AUTH_TYPE_MAPS�HAS_CRT��CRT_SUPPORTED_AUTH_TYPES)�EndpointProvider)�EndpointProviderError�EndpointVariantError�!InvalidEndpointConfigurationError�InvalidHostLabelError�MissingDependencyException�
NoRegionError�ParamValidationError�$UnknownEndpointResolutionBuiltInName�UnknownRegionError�UnknownSignatureVersionError�*UnsupportedS3AccesspointConfigurationError�UnsupportedS3ConfigurationError�UnsupportedS3ControlArnError�&UnsupportedS3ControlConfigurationError)�ensure_boolean�instance_cachez{service}.{region}.{dnsSuffix}�	endpointsc�(�eZdZdZdd�Zd�Z	dd�Zy)�BaseEndpointResolverz3Resolves regions and endpoints. Must be subclassed.Nc��t�)a7Resolves an endpoint for a service and region combination.

        :type service_name: string
        :param service_name: Name of the service to resolve an endpoint for
            (e.g., s3)

        :type region_name: string
        :param region_name: Region/endpoint name to resolve (e.g., us-east-1)
            if no region is provided, the first found partition-wide endpoint
            will be used if available.

        :rtype: dict
        :return: Returns a dict containing the following keys:
            - partition: (string, required) Resolved partition name
            - endpointName: (string, required) Resolved endpoint name
            - hostname: (string, required) Hostname to use for this endpoint
            - sslCommonName: (string) sslCommonName to use for this endpoint.
            - credentialScope: (dict) Signature version 4 credential scope
              - region: (string) region name override when signing.
              - service: (string) service name override when signing.
            - signatureVersions: (list<string>) A list of possible signature
              versions, including s3, v4, v2, and s3v4
            - protocols: (list<string>) A list of supported protocols
              (e.g., http, https)
            - ...: Other keys may be included as well based on the metadata
        ��NotImplementedError)�self�service_name�region_names   �2/usr/lib/python3/dist-packages/botocore/regions.py�construct_endpointz'BaseEndpointResolver.construct_endpoint6s
��6"�!�c��t�)z�Lists the partitions available to the endpoint resolver.

        :return: Returns a list of partition names (e.g., ["aws", "aws-cn"]).
        r)r!s r$�get_available_partitionsz-BaseEndpointResolver.get_available_partitionsSs
��
"�!r&c��t�)a�Lists the endpoint names of a particular partition.

        :type service_name: string
        :param service_name: Name of a service to list endpoint for (e.g., s3)

        :type partition_name: string
        :param partition_name: Name of the partition to limit endpoints to.
            (e.g., aws for the public AWS endpoints, aws-cn for AWS China
            endpoints, aws-us-gov for AWS GovCloud (US) Endpoints, etc.

        :type allow_non_regional: bool
        :param allow_non_regional: Set to True to include endpoints that are
             not regional endpoints (e.g., s3-external-1,
             fips-us-gov-west-1, etc).
        :return: Returns a list of endpoint names (e.g., ["us-east-1"]).
        r)r!r"�partition_name�allow_non_regionals    r$�get_available_endpointsz,BaseEndpointResolver.get_available_endpointsZs
��&"�!r&�N)�awsF)�__name__�
__module__�__qualname__�__doc__r%r(r,�r&r$rr3s��=�"�:"�FK�"r&rc��eZdZdZddgZdd�Zdd�Zd�Z			dd�Z	dd	�Z					dd
�Z
d�Z	dd�Zd
�Z
d�Zd�Zd�Zd�Zd�Zd�Zy)�EndpointResolverz7Resolves endpoints based on partition endpoint metadatazaws-isoz	aws-iso-bc�>�d|vrtd��||_||_y)a
        :type endpoint_data: dict
        :param endpoint_data: A dict of partition data.

        :type uses_builtin_data: boolean
        :param uses_builtin_data: Whether the endpoint data originates in the
            package's data directory.
        �
partitionsz%Missing "partitions" in endpoint dataN)�
ValueError�_endpoint_data�uses_builtin_data)r!�
endpoint_datar:s   r$�__init__zEndpointResolver.__init__us(���}�,��D�E�E�+���!2��r&c�d�|jdD]}|d|k7r�|d}||vr�||dcSy)Nr7�	partition�servicesr)r9)r!r"r*r>r?s     r$�get_service_endpoints_dataz+EndpointResolver.get_service_endpoints_data�sQ���,�,�\�:�	7�I���%��7�� ��,�H��8�+���L�)�+�6�6�
	7r&c�Z�g}|jdD]}|j|d��|S)Nr7r>)r9�append)r!�resultr>s   r$r(z)EndpointResolver.get_available_partitions�s7�����,�,�\�:�	2�I��M�M�)�K�0�1�	2��
r&Nc��g}|jdD]o}|d|k7r�|d}||vr�||d}|D]M}	|	|dv}
|r,|
r*|j||	|�}|s�&|j|	��8|s|
s�=|j|	��O�q|S)Nr7r>r?r�regions)r9�_retrieve_variant_datarB)r!r"r*r+�endpoint_variant_tagsrCr>r?�service_endpoints�
endpoint_name�is_regional_endpoint�variant_datas            r$r,z(EndpointResolver.get_available_endpoints�s������,�,�\�:�	1�I���%��7�� ��,�H��8�+�� (�� 6�{� C��!2�

1�
�'4�	�)�8L�'L�$�(�-A�#'�#>�#>�)�-�8�:O�$�L�$��
�
�m�4�'�+?��M�M�-�0�

1�	1�$�
r&c��|jdD]C}|d|k(s�|r0|j|jd�|�}|s�2d|vs�7|dcS|dcSy)Nr7r>�defaults�	dnsSuffix)r9rF�get)r!r*rGr>�variants     r$�get_partition_dns_suffixz)EndpointResolver.get_partition_dns_suffix�st���,�,�\�:�		2�I���%��7�(�"�9�9�!�
�
�j�1�3H��G��;�'�#9�&�{�3�3�$�[�1�1�		2�r&c��|dk(r|r|�d}|�<d}|jdD]
}|d|k(s�|}�|�|j|||||d�}|Sy|jdD]1}|r|d|jvr�|j|||||�}|s�/|cSy)N�s3z	us-east-1r7r>T)r9�_endpoint_for_partition�!_UNSUPPORTED_DUALSTACK_PARTITIONS)	r!r"r#r*�use_dualstack_endpoint�use_fips_endpoint�valid_partitionr>rCs	         r$r%z#EndpointResolver.construct_endpoint�s���
�D� �&��#�%�K��%�"�O�!�0�0��>�
0�	��[�)�^�;�&/�O�
0��*��5�5�#� ��*�%��
���
���,�,�\�:�	�I�%��+�&��9�9�:���1�1����&�!��F���
�	r&c�v�|jdD]}|j||�s�|dcSt|d���)Nr7r>z,No partition found for provided region_name.)r#�	error_msg)r9�
_region_matchr)r!r#r>s   r$�get_partition_for_regionz)EndpointResolver.get_partition_for_region�sL���,�,�\�:�	.�I��!�!�)�[�9� ��-�-�	.�!�#�D�
�	
r&c��|d}|r!||jvrd|z}tdg|���|dj|t�}	|�d|	vr|	d}n
t	��|||	|||d�}
||	dvr|j
di|
��S|j
||�s|r|	jd�}|	jd	d
�}|r1|s/tjd|||�||
d<|j
di|
��Stjd
||�|j
di|
��Sy)Nr>z@Dualstack endpoints are currently not supported for %s partition�	dualstack��tagsrZr?�partitionEndpoint)r>r"�service_datarIrVrWr�isRegionalizedTz'Using partition endpoint for %s, %s: %srIz*Creating a regex based endpoint for %s, %sr3)	rUrrO�DEFAULT_SERVICE_DATAr�_resolver[�LOG�debug)
r!r>r"r#rVrW�force_partitionr*rZrb�resolve_kwargs�partition_endpoint�is_regionalizeds
             r$rTz(EndpointResolver._endpoint_for_partition�sh��#�;�/��"��$�"H�"H�H�$�&4�5�
�'�[�M�Y�O�O�!��,�0�0��.�
����"�l�2�*�+>�?��#�o�%�#�(�(�(�&<�!2�

���,�{�3�3� �4�=�=�2�>�2�2����i��5��!-�!1�!1�2E�!F��*�.�.�/?��F�O�!�/��	�	�=� ��&�	�3E���/�$�t�}�}�6�~�6�6��I�I�<���
�
!�4�=�=�2�>�2�2�%:Ir&c�j�||dvryd|vr'tj|d�j|�Sy)NrET�regionRegexF)�re�compile�match)r!r>r#s   r$r[zEndpointResolver._region_match9s<���)�I�.�.���I�%��:�:�i�
�6�7�=�=�k�J�J�r&c��|jdg�}|D]0}t|d�t|�k(s�|j�}|cSy)N�variantsr`)rO�set�copy)r!r;r`rrrPrCs      r$rFz'EndpointResolver._retrieve_variant_data@sH�� �$�$�Z��4���	�G��7�6�?�#�s�4�y�0� ������
�	r&c�V�g}|r|jd�|r|jd�|S)Nr^�fips)rB)r!rVrWr`s    r$�_create_tag_listz!EndpointResolver._create_tag_listGs*����!��K�K��$���K�K����r&c�l�i}|||fD])}|j||�}|s�|j||��+|Sr-)rF�_merge_keys)r!r`r;�service_defaults�partition_defaultsrCrrrPs        r$�_resolve_variantz!EndpointResolver._resolve_variantOsM����&�(8�:L�M�	2�H��1�1�(�D�A�G��� � ��&�1�	2��
r&c��|jdi�j|i�}|jd�rtjd|z�|jdi�}|jdi�}	|j||�}
|
rA|j	|
|||	�}|ik(rd|�d|��}t|
|���|j
||�n|}d|vr|d|d<|d	|d	<||d
<|j
||�|j
|	|�|j||d|||d�|d<d|vr|j||d|||d�|d<|S)
Nr�
deprecatedz5Client is configured with the deprecated endpoint: %srMzEndpoint does not exist for z in region r_rNr>�endpointName�hostname�
sslCommonName)rOrf�warningrwr|rry�_expand_template)
r!r>r"rbrIrVrWr;rzr{r`rCrZs
             r$rezEndpointResolver._resolveYs���%�(�(��b�9�=�=��2�
�
����\�*��K�K�G� �"�
�
(�+�+�J��;��&�]�]�:�r�:���$�$�%;�=N�O����*�*��m�%5�7I��F���|�2�<�.�A!�!.��1��+��	�J�J����]�F�3�"�F��f�$�"+�K�"8�F�;��'��4��{��!.��~��	
���)�6�2����+�V�4�!�2�2���:�����;��
��z���f�$�&*�&;�&;����'����{�#�'�F�?�#��
r&c�,�|D]}||vs�||||<�yr-r3)r!�	from_datarC�keys    r$ryzEndpointResolver._merge_keys�s&���	-�C��&� �'��n��s��	-r&c�*�|j|||��S)N)�service�regionrN)�format)r!r>�templater"rIrNs      r$r�z!EndpointResolver._expand_template�s!����� ��)��
�	
r&)F)r.)r.FNr-)NNFF)r/r0r1r2rUr<r@r(r,rQr%r\rTr[rFrwr|reryr�r3r&r$r5r5ps���A�)2�K�(@�%�3�7��� �"��:59�
�$��$��
0�d
� �?3�B����@�D-�

r&r5c�8�eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
y)
�EndpointResolverBuiltinszAWS::RegionzAWS::UseFIPSzAWS::UseDualStackzAWS::STS::UseGlobalEndpointzAWS::S3::UseGlobalEndpointzAWS::S3::AcceleratezAWS::S3::ForcePathStylezAWS::S3::UseArnRegionzAWS::S3Control::UseArnRegionz'AWS::S3::DisableMultiRegionAccessPointsz
SDK::EndpointN)r/r0r1�
AWS_REGION�AWS_USE_FIPS�AWS_USE_DUALSTACK�AWS_STS_USE_GLOBAL_ENDPOINT�AWS_S3_USE_GLOBAL_ENDPOINT�AWS_S3_ACCELERATE�AWS_S3_FORCE_PATH_STYLE�AWS_S3_USE_ARN_REGION�AWS_S3CONTROL_USE_ARN_REGION�AWS_S3_DISABLE_MRAP�SDK_ENDPOINTr3r&r$r�r��sO���J�"�L�,��#@��">��-��7��4��$B� �C��"�Lr&r�c��eZdZdZ		dd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zed��Z
ed��Zed
��Zd�Zd�Zd�Zd�Zd�Zy)�EndpointRulesetResolverz5Resolves endpoints using a service's endpoint rulesetNc	���t||��|_|jjj|_||_||_||_||_||_	||_
i|_y)N)�ruleset_data�partition_data)r
�	_provider�ruleset�
parameters�_param_definitions�_service_model�	_builtins�_client_context�_event_emitter�_use_ssl�_requested_auth_scheme�_instance_cache)	r!�endpoint_ruleset_datar��
service_model�builtins�client_context�
event_emitter�use_ssl�requested_auth_schemes	         r$r<z EndpointRulesetResolver.__init__�sf��*�.�)�
���#'�.�.�"8�"8�"C�"C���+���!���-���+�����
�&;��#�!��r&c	�\�|�i}|�i}|j|||�}tjd|z�	|jjd
i|��}tjd|jz�|js=|jjd�r"|jd|jdd����}|j|jj�D��	cic]\}}	||	d��
c}	}�	�}|S#t
$r}|j
||�}|��||�d}~wwxYwcc}	}w)zAInvokes the provider with params defined in the service's rulesetNz-Calling endpoint provider with parameters: %szEndpoint provider result: %szhttps://zhttp://�)�urlr)�headersr3)
�_get_provider_paramsrfrgr��resolve_endpointr�#ruleset_error_to_botocore_exceptionr�r��
startswith�_replacer��items)
r!�operation_model�	call_args�request_context�provider_params�provider_result�ex�botocore_exceptionr��vals
          r$r%z*EndpointRulesetResolver.construct_endpoint�sY�����I��"� �O��3�3��Y��
��	�	�	�;�o�M�	
�	1�=�d�n�n�=�=��!��O�	�	�	�0�?�3F�3F�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�
�����3%�	1�!%�!I�!I��O�"��"�)��(�b�0��	1��(s�C?�$D(
�?	D%�D � D%c��i}|j|||�}|jj�D]L\}}|j|||��}|�)|j�|j|j|��}|��H|||<�N|S)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, ...
        )�
param_namer�r�)�builtin_namer�)�_get_customized_builtinsr�r��_resolve_param_from_context�builtin�_resolve_param_as_builtin)	r!r�r�r�r��customized_builtinsr��	param_def�	param_vals	         r$r�z,EndpointRulesetResolver._get_provider_paramss�����#�;�;��Y��
��&*�%<�%<�%B�%B�%D�	8�!�J�	��8�8�%� /�#�9��I�
� �Y�%6�%6�%B� �:�:�!*�!2�!2�0�;��	��$�.7��
�+�	8��r&c�~�|j||�}|�|S|j|||�}|�|S|j|�Sr-)�&_resolve_param_as_static_context_param�'_resolve_param_as_dynamic_context_param�&_resolve_param_as_client_context_param)r!r�r�r��static�dynamics      r$r�z3EndpointRulesetResolver._resolve_param_from_context5s[���<�<���
�����M��>�>����
�����N��:�:�:�F�Fr&c�F�|j|�}|j|�Sr-)�_get_static_context_paramsrO)r!r�r��static_ctx_paramss    r$r�z>EndpointRulesetResolver._resolve_param_as_static_context_paramDs&��!�;�;�O�L�� �$�$�Z�0�0r&c�Z�|j|�}||vr||}|j|�Syr-)�_get_dynamic_context_paramsrO)r!r�r�r��dynamic_ctx_params�member_names      r$r�z?EndpointRulesetResolver._resolve_param_as_dynamic_context_paramJs<��"�=�=�o�N���+�+�,�Z�8�K��=�=��-�-�,r&c�l�|j�}||vr ||}|jj|�Syr-)�_get_client_context_paramsr�rO)r!r��client_ctx_params�client_ctx_varnames    r$r�z>EndpointRulesetResolver._resolve_param_as_client_context_paramRsB�� �;�;�=���*�*�!2�:�!>���'�'�+�+�,>�?�?�+r&c�|�|tjj�vrt|���|j	|�S)N)�name)r��__members__�valuesrrO)r!r�r�s   r$r�z1EndpointRulesetResolver._resolve_param_as_builtinXs4���7�C�C�J�J�L�L�6�L�I�I��|�|�L�)�)r&c�j�|jD�cic]}|j|j��c}Scc}w)z=Mapping of param names to static param value for an operation)�static_context_parametersr��value�r!r��params   r$r�z2EndpointRulesetResolver._get_static_context_params]s7��
)�B�B�
��
�J�J����#�
�	
��
��0c�j�|jD�cic]}|j|j��c}Scc}w)z7Mapping of param names to member names for an operation)�context_parametersr�r�r�s   r$r�z3EndpointRulesetResolver._get_dynamic_context_paramses9��
)�;�;�
��
�J�J��)�)�)�
�	
��
r�c��|jjD�cic]"}|jt|j���$c}Scc}w)z7Mapping of param names to client configuration variable)r��client_context_parametersr�r)r!r�s  r$r�z2EndpointRulesetResolver._get_client_context_paramsmsB��
�,�,�F�F�
��
�J�J�
�5�:�:�.�.�
�	
��
s�'Ac���|jjj�}tj|j�}|j
j
d|z||||��|S)Nzbefore-endpoint-resolution.%s)r��model�params�context)r��
service_id�	hyphenizertr�r��emit)r!r�r�r�r�r�s      r$r�z0EndpointRulesetResolver._get_customized_builtinsusf���(�(�3�3�=�=�?�
�"�i�i����7����� � �+�j�8�(�!��#�	!�	
�#�"r&c����t|t�rt|�dk(rtd��tjddj
|D�cgc]}d|jd��d���c}��j��jtk(rdifS|D�cgc]}i|�d�j|d�i���}}�j�	t�fd	�|D��\}}n	td
�|D��\}}i}d|vr	|d|d<n d|vrt|d�dkDr|dd|d<d|vr|j#|d��d|vrt%|d�|d<tjd|d||�||fScc}wcc}w#t$rdifcYSwxYw#t$r\d}|D�cgc]}|d��	ncc}w}}tstd�|D��}|rtd
���t!dj
|����wxYw)a�Convert an Endpoint's authSchemes property to a signing_context dict

        :type auth_schemes: list
        :param auth_schemes: A list of dictionaries taken from the
            ``authSchemes`` property of an Endpoint object returned by
            ``EndpointProvider``.

        :rtype: str, dict
        :return: Tuple of auth type string (to be used in
            ``request_context['auth_type']``) and signing context dict (for use
            in ``request_context['signing']``).
        rz&auth_schemes must be a non-empty list.z_Selecting from endpoint provider's list of auth schemes: %s. User selected auth scheme is: "%s"z, �"r��noneNc3�x�K�|]1}�j�j|d�r�j|f���3y�w�r�N)�._does_botocore_authname_match_ruleset_authnamer�)�.0�sr!s  �r$�	<genexpr>zFEndpointRulesetResolver.auth_schemes_to_signing_ctx.<locals>.<genexpr>�sA�����$���J�J��3�3�Q�v�Y���0�0�!�4�$�s�7:c3�@K�|]}|dtvr	|d|f���y�wr�)r)r�r�s  r$r�zFEndpointRulesetResolver.auth_schemes_to_signing_ctx.<locals>.<genexpr>�s,����$����y�N�2��v�Y��N�$�s�Fc3�,K�|]}|tv���y�wr-r)r��schemes  r$r�zFEndpointRulesetResolver.auth_schemes_to_signing_ctx.<locals>.<genexpr>�s����+�"��":�:�+�s�zbThis operation requires an additional dependency. Use pip install botocore[crt] before proceeding.��msg)�signature_version�
signingRegionr��signingRegionSet�signingName)�signing_name�disableDoubleEncodingz?Selected auth type "%s" as "%s" with signing context params: %s)�
isinstance�list�len�	TypeErrorrfrg�joinrOr�r�_strip_sig_prefix�next�
StopIterationr�anyrr�updater)r!�auth_schemesr�r�r��fixable_with_crt�auth_type_options�signing_contexts`       r$�auth_schemes_to_signing_ctxz3EndpointRulesetResolver.auth_schemes_to_signing_ctx�sp����,��-��\�1B�a�1G��D�E�E��	�	�
1��I�I�\�B���1�5�5��=�/��+�B�C��'�'�		
��&�&�(�2��2�:��'�
��
G�v�F�v�t�5�5�f�V�n�E�F�
��
��&�&�2�
 � $�$�)�$� ���f�
�#�$�)�$� ���f�6���f�$�(.��(?�O�H�%�
�6�
)��6�,�-�.��2�,2�3E�,F�q�,I���)��F�"��"�"��}�0E�"�F�"�f�,�7E��.�/�8�O�3�4�	�	�	�M��6�N���		
��_�$�$��YC��
�� !�
 ��R�x��	
 ��!�
�$)� �8D�$E�1�Q�v�Y�$E��$E�!�$E��'*�+�&7�+�(�$�
$�4�L���
7�*.�)�)�4E�*F���%
�s7�
E1�!E6�E;� F�;
F�
F�G3�F*�)A
G3c�2�|jd�r|ddS|S)z6Normalize auth type names by removing any "sig" prefix�sig�N)r�)r!�	auth_names  r$rz)EndpointRulesetResolver._strip_sig_prefix�s �� )� 4� 4�U� ;�y���}�J��Jr&c��|j|�}|jd�d}|dk7r|jd�r|dd}||k(S)a\
        Whether a valid string provided as signature_version parameter for
        client construction refers to the same auth methods as a string
        returned by the endpoint ruleset provider. This accounts for:

        * The ruleset prefixes auth names with "sig"
        * The s3 and s3control rulesets don't distinguish between v4[a] and
          s3v4[a] signers
        * The v2, v3, and HMAC v1 based signers (s3, s3-*) are botocore legacy
          features and do not exist in the rulesets
        * Only characters up to the first dash are considered

        Example matches:
        * v4, sigv4
        * v4, v4
        * s3v4, sigv4
        * s3v7, sigv7 (hypothetical example)
        * s3v4a, sigv4a
        * s3v4-query, sigv4

        Example mismatches:
        * v4a, sigv4
        * s3, sigv4
        * s3-presign-post, sigv4
        �-rrS�N)r�splitr�)r!�botoname�rsnames   r$r�zFEndpointRulesetResolver._does_botocore_authname_match_ruleset_authname�sR��4�'�'��/���>�>�#�&�q�)���t��� 3� 3�D� 9����|�H���!�!r&c��|jjd�}|�y|jd�r!	|jd�d}t|��S|jj}|dk(r�|dk(s|d	k(rt|�
�S|jd�sU|jd�sD|jd
�s3|jd�s"|jd�s|jd�rt|�
�S|j�jd�rt|��S|dk(rn|jd�r|jd�}t||��S|jd�s|jd�rt|�
�S|dk(rt|��S|dk(r.|jd�rt|�
�S|dk(rt|�
�Sy#t$r|}Y���wxYw)z�Attempts to translate ruleset errors to pre-existing botocore
        exception types by string matching exception strings.
        r�NzInvalid region in ARN: �`�)�labelrSz/S3 Object Lambda does not support S3 Acceleratez#Accelerate cannot be used with FIPSr�zS3 Outposts does not supportzS3 MRAP does not supportz!S3 Object Lambda does not supportzAccess Points do not supportzInvalid configuration:z#Client was configured for partitionzinvalid arn:)�report�	s3controlzInvalid ARN:�Bucket)�arnr�z!AccountId is required but not set�eventszUInvalid Configuration: FIPS is not supported with EventBridge multi-region endpoints.z&EndpointId must be a valid host label.)�kwargsrOr�r�
IndexErrorrr�r"rr�lowerrrrr
)r!�ruleset_exceptionr�r�r"r"r&s       r$r�z;EndpointRulesetResolver.ruleset_error_to_botocore_exception	s��� �&�&�*�*�5�1���;���>�>�3�4�
��	�	�#��q�)��)�u�5�5��*�*�7�7���4���H�H��?�?�6�3�?�?����=�>��>�>�"<�=��>�>�"E�F��>�>�"@�A��>�>�":�;��>�>�"G�H�A�c�J�J��y�y�{�%�%�n�5�+�3�7�7��;�&��~�~�n�-��j�j��*��3���E�E��~�~�6�7�3�>�>�5�<�>�#�F�F��9�9�+�3�7�7��8�#��~�~�6��9�S�A�A��>�>�8�S�A�A���Q�
���
�s�G�G�G)TN)r/r0r1r2r<r%r�r�r�r�r�r�rr�r�r�r�rrr�r�r3r&r$r�r��s���?��"�"�00�d�B
G�1�.�@�*�
�
��
��
��
��
��
�
#�_%�BK�"�@5r&r�),r2rt�loggingrn�enumr�botocorerr�
botocore.authrr�botocore.crtr	�botocore.endpoint_providerr
�botocore.exceptionsrrr
rrrrrrrrrrr�botocore.utilsrr�	getLoggerr/rf�DEFAULT_URI_TEMPLATErdrr5�strr�r�r3r&r$�<module>r7s������	��)�1�1�7����� :��g����!��7��#�R�(��:"�:"�zu
�+�u
�p	#�s�D�#�>w�wr&