# File generated by contrib/scrape-ec2-sizes.py script - DO NOT EDIT manually
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

REGION_DETAILS = {
    "ap-east-1": {
        "api_name": "ec2_ap_east",
        "country": "Hong Kong",
        "endpoint": "ec2.ap-east-1.amazonaws.com",
        "id": "ap-east-1",
        "signature_version": "2"
    },
    "ap-northeast-1": {
        "api_name": "ec2_ap_northeast",
        "country": "Japan",
        "endpoint": "ec2.ap-northeast-1.amazonaws.com",
        "id": "ap-northeast-1",
        "signature_version": "2"
    },
    "ap-northeast-2": {
        "api_name": "ec2_ap_northeast",
        "country": "South Korea",
        "endpoint": "ec2.ap-northeast-2.amazonaws.com",
        "id": "ap-northeast-2",
        "signature_version": "4"
    },
    "ap-northeast-3": {
        "api_name": "ec2_ap_northeast",
        "country": "Japan",
        "endpoint": "ec2.ap-northeast-3.amazonaws.com",
        "id": "ap-northeast-3",
        "signature_version": "4"
    },
    "ap-south-1": {
        "api_name": "ec2_ap_south_1",
        "country": "India",
        "endpoint": "ec2.ap-south-1.amazonaws.com",
        "id": "ap-south-1",
        "signature_version": "4"
    },
    "ap-southeast-1": {
        "api_name": "ec2_ap_southeast",
        "country": "Singapore",
        "endpoint": "ec2.ap-southeast-1.amazonaws.com",
        "id": "ap-southeast-1",
        "signature_version": "2"
    },
    "ap-southeast-2": {
        "api_name": "ec2_ap_southeast_2",
        "country": "Australia",
        "endpoint": "ec2.ap-southeast-2.amazonaws.com",
        "id": "ap-southeast-2",
        "signature_version": "2"
    },
    "ca-central-1": {
        "api_name": "ec2_ca_central_1",
        "country": "Canada",
        "endpoint": "ec2.ca-central-1.amazonaws.com",
        "id": "ca-central-1",
        "signature_version": "4"
    },
    "cn-north-1": {
        "api_name": "ec2_cn_north",
        "country": "China",
        "endpoint": "ec2.cn-north-1.amazonaws.com.cn",
        "id": "cn-north-1",
        "signature_version": "4"
    },
    "cn-northwest-1": {
        "api_name": "ec2_cn_northwest",
        "country": "China",
        "endpoint": "ec2.cn-northwest-1.amazonaws.com.cn",
        "id": "cn-northwest-1",
        "signature_version": "4"
    },
    "eu-central-1": {
        "api_name": "ec2_eu_central",
        "country": "Frankfurt",
        "endpoint": "ec2.eu-central-1.amazonaws.com",
        "id": "eu-central-1",
        "signature_version": "4"
    },
    "eu-north-1": {
        "api_name": "ec2_eu_north_stockholm",
        "country": "Stockholm",
        "endpoint": "ec2.eu-north-1.amazonaws.com",
        "id": "eu-north-1",
        "signature_version": "4"
    },
    "eu-south-1": {
        "api_name": "ec2_eu_south",
        "country": "Italy",
        "endpoint": "ec2.eu-south-1.amazonaws.com",
        "id": "eu-south-1",
        "signature_version": "4"
    },
    "eu-west-1": {
        "api_name": "ec2_eu_west",
        "country": "Ireland",
        "endpoint": "ec2.eu-west-1.amazonaws.com",
        "id": "eu-west-1",
        "signature_version": "2"
    },
    "eu-west-2": {
        "api_name": "ec2_eu_west_london",
        "country": "United Kingdom",
        "endpoint": "ec2.eu-west-2.amazonaws.com",
        "id": "eu-west-2",
        "signature_version": "4"
    },
    "eu-west-3": {
        "api_name": "ec2_eu_west_paris",
        "country": "France",
        "endpoint": "ec2.eu-west-3.amazonaws.com",
        "id": "eu-west-3",
        "signature_version": "4"
    },
    "sa-east-1": {
        "api_name": "ec2_sa_east",
        "country": "Brazil",
        "endpoint": "ec2.sa-east-1.amazonaws.com",
        "id": "sa-east-1",
        "signature_version": "2"
    },
    "us-east-1": {
        "api_name": "ec2_us_east",
        "country": "USA",
        "endpoint": "ec2.us-east-1.amazonaws.com",
        "id": "us-east-1",
        "signature_version": "2"
    },
    "us-east-2": {
        "api_name": "ec2_us_east_ohio",
        "country": "USA",
        "endpoint": "ec2.us-east-2.amazonaws.com",
        "id": "us-east-2",
        "signature_version": "4"
    },
    "us-gov-west-1": {
        "api_name": "ec2_us_govwest",
        "country": "US",
        "endpoint": "ec2.us-gov-west-1.amazonaws.com",
        "id": "us-gov-west-1",
        "signature_version": "2"
    },
    "us-west-1": {
        "api_name": "ec2_us_west",
        "country": "USA",
        "endpoint": "ec2.us-west-1.amazonaws.com",
        "id": "us-west-1",
        "signature_version": "2"
    },
    "us-west-2": {
        "api_name": "ec2_us_west_oregon",
        "country": "US",
        "endpoint": "ec2.us-west-2.amazonaws.com",
        "id": "us-west-2",
        "signature_version": "2"
    }
}
