File: //home/arjun/projects/env/lib/python3.10/site-packages/botocore/__pycache__/regions.cpython-310.pyc
o
*we�~ � @ s d Z ddlZddlZddlZddlmZ ddlmZmZ ddl m
Z
mZ ddlm
Z
ddlmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZ dd lm Z m!Z! e�"e#�Z$d
Z%di iZ&G dd
� d
�Z'G dd� de'�Z(G dd� de)e�Z*G dd� d�Z+dS )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 @ s. e Zd ZdZddd�Zdd� Z dd d
�ZdS )
�BaseEndpointResolverz3Resolves regions and endpoints. Must be subclassed.Nc C � t �)a7 Resolves 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_name� r"