You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by qu...@apache.org on 2018/06/29 08:19:25 UTC

[01/10] libcloud git commit: Added scrap'n'dump EC2 sizes script

Repository: libcloud
Updated Branches:
  refs/heads/trunk f095641d7 -> 86996f5e7


Added scrap'n'dump EC2 sizes script

Signed-off-by: Quentin Pradet <qu...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/dd546e89
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/dd546e89
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/dd546e89

Branch: refs/heads/trunk
Commit: dd546e89c5e335a2885c9867161842a8fd275327
Parents: f095641
Author: Anthony Monthe <an...@gmail.com>
Authored: Sun May 20 04:23:14 2018 +0100
Committer: Quentin Pradet <qu...@apache.org>
Committed: Fri Jun 29 11:46:13 2018 +0400

----------------------------------------------------------------------
 contrib/scrap-ec2-sizes.py | 271 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 271 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/dd546e89/contrib/scrap-ec2-sizes.py
----------------------------------------------------------------------
diff --git a/contrib/scrap-ec2-sizes.py b/contrib/scrap-ec2-sizes.py
new file mode 100755
index 0000000..20231e3
--- /dev/null
+++ b/contrib/scrap-ec2-sizes.py
@@ -0,0 +1,271 @@
+#!/usr/bin/env python
+#
+#  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.
+"""
+This script downloads and parses AWS EC2 from https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/index.json.
+It writes a Python module with constants about EC2's sizes and regions.
+
+Use it as following:
+    $ python scrap-ec2-sizes.py > ../libcloud/compute/constants.py
+"""
+
+import re
+import os
+import json
+
+import requests
+import ijson
+
+FILEPATH = os.environ.get('TMP_JSON', '/tmp/ec.json')
+URL = "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/index.json"
+IGNORED_FIELDS = ['locationType', 'operatingSystem']
+REG_STORAGE = re.compile('(\d+) x ([0-9,]+)')
+REG_BANDWIDTH = re.compile('\D*(\d+)\D*')
+#  From <https://aws.amazon.com/marketplace/help/200777880>
+REGION_DETAILS = {
+    # America
+    'US East (N. Virginia)': {
+        'id': 'us-east-1',
+        'endpoint': 'ec2.us-east-1.amazonaws.com',
+        'api_name': 'ec2_us_east',
+        'country': 'USA',
+        'signature_version': '2',
+    },
+    'US East (Ohio)': {
+        'id': 'us-east-2',
+        'endpoint': 'ec2.us-east-2.amazonaws.com',
+        'api_name': 'ec2_us_east_ohio',
+        'country': 'USA',
+        'signature_version': '4',
+    },
+    'US West (N. California)': {
+        'id': 'us-west-1',
+        'endpoint': 'ec2.us-west-1.amazonaws.com',
+        'api_name': 'ec2_us_west',
+        'country': 'USA',
+        'signature_version': '2',
+    },
+    'US West (Oregon)': {
+        'id': 'us-west-2',
+        'endpoint': 'ec2.us-west-2.amazonaws.com',
+        'api_name': 'ec2_us_west_oregon',
+        'country': 'US',
+        'signature_version': '2',
+    },
+    'Canada (Central)': {
+        'id': 'ca-central-1',
+        'endpoint': 'ec2.ca-central-1.amazonaws.com',
+        'api_name': 'ec2_ca_central_1',
+        'country': 'Canada',
+        'signature_version': '4',
+    },
+    'South America (Sao Paulo)': {
+        'id': 'sa-east-1',
+        'endpoint': 'ec2.sa-east-1.amazonaws.com',
+        'api_name': 'ec2_sa_east',
+        'country': 'Brazil',
+        'signature_version': '2',
+    },
+    'AWS GovCloud (US)': {
+        'id': 'us-gov-west-1',
+        'endpoint': 'ec2.us-gov-west-1.amazonaws.com',
+        'api_name': 'ec2_us_govwest',
+        'country': 'US',
+        'signature_version': '2',
+    },
+    # EU
+    'eu-west-1': {
+        'id': 'eu-west-1',
+        'endpoint': 'ec2.eu-west-1.amazonaws.com',
+        'api_name': 'ec2_eu_west',
+        'country': 'Ireland',
+        'signature_version': '2',
+    },
+    'EU (Ireland)': {  # Duplicate from AWS' JSON
+        'id': 'eu-west-1',
+        'endpoint': 'ec2.eu-west-1.amazonaws.com',
+        'api_name': 'ec2_eu_west',
+        'country': 'Ireland',
+        'signature_version': '2',
+    },
+    'EU (London)': {
+        'id': 'eu-west-2',
+        'endpoint': 'ec2.eu-west-2.amazonaws.com',
+        'api_name': 'ec2_eu_west_london',
+        'country': 'United Kingdom',
+        'signature_version': '4',
+    },
+    'EU (Paris)': {
+        'id': 'eu-west-3',
+        'endpoint': 'ec2.eu-west-3.amazonaws.com',
+        'api_name': 'ec2_eu_west_paris',
+        'country': 'France',
+        'signature_version': '4',
+    },
+    'EU (Frankfurt)': {
+        'id': 'eu-central-1',
+        'endpoint': 'ec2.eu-central-1.amazonaws.com',
+        'api_name': 'ec2_eu_central',
+        'country': 'Frankfurt',
+        'signature_version': '4',
+    },
+    # Asia
+    'Asia Pacific (Mumbai)': {
+        'id': 'ap-south-1',
+        'endpoint': 'ec2.ap-south-1.amazonaws.com',
+        'api_name': 'ec2_ap_south_1',
+        'country': 'India',
+        'signature_version': '4',
+    },
+    'Asia Pacific (Singapore)': {
+        'id': 'ap-southeast-1',
+        'endpoint': 'ec2.ap-southeast-1.amazonaws.com',
+        'api_name': 'ec2_ap_southeast',
+        'country': 'Singapore',
+        'signature_version': '2',
+    },
+    'Asia Pacific (Sydney)': {
+        'id': 'ap-southeast-2',
+        'endpoint': 'ec2.ap-southeast-2.amazonaws.com',
+        'api_name': 'ec2_ap_southeast_2',
+        'country': 'Australia',
+        'signature_version': '2',
+    },
+    'Asia Pacific (Tokyo)': {
+        'id': 'ap-northeast-1',
+        'endpoint': 'ec2.ap-northeast-1.amazonaws.com',
+        'api_name': 'ec2_ap_northeast',
+        'country': 'Japan',
+        'signature_version': '2',
+    },
+    'Asia Pacific (Seoul)': {
+        'id': 'ap-northeast-2',
+        'endpoint': 'ec2.ap-northeast-2.amazonaws.com',
+        'api_name': 'ec2_ap_northeast',
+        'country': 'South Korea',
+        'signature_version': '4',
+    },
+    'Asia Pacific (Osaka-Local)': {
+        'id': 'ap-northeast-3',
+        'endpoint': 'ec2.ap-northeast-3.amazonaws.com',
+        'api_name': 'ec2_ap_northeast',
+        'country': 'Japan',
+        'signature_version': '4',
+    },
+    # Not in JSON
+    'China (Beijing)': {
+        'id': 'cn-north-1',
+        'endpoint': 'ec2.cn-north-1.amazonaws.com.cn',
+        'api_name': 'ec2_cn_north',
+        'country': 'China',
+        'signature_version': '4',
+    },
+    'China (Ningxia)': {
+        'id': 'cn-northwest-1',
+        'endpoint': 'ec2.cn-northwest-1.amazonaws.com.cn',
+        'api_name': 'ec2_cn_northwest',
+        'country': 'China',
+        'signature_version': '4',
+    },
+}
+
+
+def download_json():
+    response = requests.get(URL, stream=True)
+    try:
+        return open(FILEPATH, 'r')
+    except IOError:
+        with open(FILEPATH, 'wb') as fo:
+            for chunk in response.iter_content(chunk_size=2**20):
+                if chunk:
+                    fo.write(chunk)
+    return open(FILEPATH, 'r')
+
+
+def get_json():
+    try:
+        return open(FILEPATH, 'r')
+    except IOError:
+        return download_json()
+
+
+def parse():
+    # Set vars
+    sizes = {}
+    regions = {r['id']: r for r in REGION_DETAILS.values()}
+    for region_id in regions:
+        regions[region_id]['instance_types'] = []
+    # Parse
+    json_file = get_json()
+    products_data = ijson.items(json_file, 'products')
+    products_data = next(products_data)
+    for sku in products_data:
+        if products_data[sku]['productFamily'] != "Compute Instance":
+            continue
+        location = products_data[sku]['attributes'].pop('location')
+        if location not in REGION_DETAILS:
+            continue
+        # Get region & size ID
+        region_id = REGION_DETAILS[location]['id']
+        instance_type = products_data[sku]['attributes']['instanceType']
+        # Add size to region
+        if instance_type not in regions[region_id]['instance_types']:
+            regions[region_id]['instance_types'].append(instance_type)
+        # Parse sizes
+        if instance_type not in sizes:
+            for field in IGNORED_FIELDS:
+                products_data[sku]['attributes'].pop(field, None)
+            # Compute RAM
+            ram = int(float(products_data[sku]['attributes']['memory'].split()[0]
+                      .replace(',', '')) * 1024)
+            # Compute bandwdith
+            bw_match = REG_BANDWIDTH.match(products_data[sku]['attributes']['networkPerformance'])
+            if bw_match is not None:
+                bandwidth = int(bw_match.groups()[0])
+            else:
+                bandwidth = None
+            sizes[instance_type] = {
+                'id': instance_type,
+                'name': instance_type,
+                'ram': ram,
+                'bandwidth': bandwidth,
+                'extra': products_data[sku]['attributes'],
+            }
+            if products_data[sku]['attributes'].get('storage') != "EBS only":
+                disk_number, disk_size = REG_STORAGE.match(
+                    products_data[sku]['attributes']['storage']).groups()
+                disk_number, disk_size = int(disk_number), int(disk_size.replace(',', ''))
+                sizes[instance_type]['disk'] = disk_number * disk_size
+            else:
+                sizes[instance_type]['disk'] = 0
+            products_data[sku]['attributes']
+    # Sort
+    for region in regions:
+        regions[region]['instance_types'] = sorted(regions[region]['instance_types'])
+    return sizes, regions
+
+
+def dump():
+    sizes, regions = parse()
+    print("# File generated by script")
+    print("INSTANCE_TYPES = " + json.dumps(sizes, indent=4).replace('null', 'None'))
+    print("REGION_DETAILS = " + json.dumps(regions, indent=4))
+
+
+if __name__ == '__main__':
+    dump()


[03/10] libcloud git commit: Cleaned EC2 files and added constants

Posted by qu...@apache.org.
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f803651e/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index d7b6a56..00e3829 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -41,6 +41,7 @@ from libcloud.compute.base import NodeImage, StorageVolume, VolumeSnapshot
 from libcloud.compute.base import KeyPair
 from libcloud.compute.types import NodeState, KeyPairDoesNotExistError, \
     StorageVolumeState, VolumeSnapshotState
+from libcloud.compute.constants import INSTANCE_TYPES, REGION_DETAILS
 
 __all__ = [
     'API_VERSION',
@@ -88,2107 +89,19 @@ EUCA_NAMESPACE = 'http://msgs.eucalyptus.com/%s' % (DEFAULT_EUCA_API_VERSION)
 DEFAULT_OUTSCALE_API_VERSION = '2016-04-01'
 OUTSCALE_NAMESPACE = 'http://api.outscale.com/wsdl/fcuext/2014-04-15/'
 
-"""
-Sizes must be hardcoded, because Amazon doesn't provide an API to fetch them.
-From http://aws.amazon.com/ec2/instance-types/
-and <http://aws.amazon.com/ec2/previous-generation/>
-ram = [MiB], disk = [GB]
-"""
-
-
-def GiB(value):
-    return int(value * 1024)
-
-
-INSTANCE_TYPES = {
-    't1.micro': {
-        'id': 't1.micro',
-        'name': 'Micro Instance',
-        'ram': GiB(0.613),
-        'disk': 15,  # GB
-        'bandwidth': None
-    },
-    'm1.small': {
-        'id': 'm1.small',
-        'name': 'Small Instance',
-        'ram': GiB(1.7),
-        'disk': 160,  # GB
-        'bandwidth': None
-    },
-    'm1.medium': {
-        'id': 'm1.medium',
-        'name': 'Medium Instance',
-        'ram': GiB(3.75),
-        'disk': 410,  # GB
-        'bandwidth': None
-    },
-    'm1.large': {
-        'id': 'm1.large',
-        'name': 'Large Instance',
-        'ram': GiB(7.5),
-        'disk': 2 * 420,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 2
-        }
-    },
-    'm1.xlarge': {
-        'id': 'm1.xlarge',
-        'name': 'Extra Large Instance',
-        'ram': GiB(15),
-        'disk': 4 * 420,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 4
-        }
-    },
-    'c1.medium': {
-        'id': 'c1.medium',
-        'name': 'High-CPU Medium Instance',
-        'ram': GiB(1.7),
-        'disk': 350,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 2
-        }
-    },
-    'c1.xlarge': {
-        'id': 'c1.xlarge',
-        'name': 'High-CPU Extra Large Instance',
-        'ram': GiB(7),
-        'disk': 4 * 420,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'm2.xlarge': {
-        'id': 'm2.xlarge',
-        'name': 'High-Memory Extra Large Instance',
-        'ram': GiB(17.1),
-        'disk': 420,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 2
-        }
-    },
-    'm2.2xlarge': {
-        'id': 'm2.2xlarge',
-        'name': 'High-Memory Double Extra Large Instance',
-        'ram': GiB(34.2),
-        'disk': 850,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 4
-        }
-    },
-    'm2.4xlarge': {
-        'id': 'm2.4xlarge',
-        'name': 'High-Memory Quadruple Extra Large Instance',
-        'ram': GiB(68.4),
-        'disk': 2 * 840,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'm3.medium': {
-        'id': 'm3.medium',
-        'name': 'Medium Instance',
-        'ram': GiB(3.75),
-        'disk': 4,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 1
-        }
-    },
-    'm3.large': {
-        'id': 'm3.large',
-        'name': 'Large Instance',
-        'ram': GiB(7.5),
-        'disk': 32,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 2
-        }
-    },
-    'm3.xlarge': {
-        'id': 'm3.xlarge',
-        'name': 'Extra Large Instance',
-        'ram': GiB(15),
-        'disk': 2 * 40,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 4
-        }
-    },
-    'm3.2xlarge': {
-        'id': 'm3.2xlarge',
-        'name': 'Double Extra Large Instance',
-        'ram': GiB(30),
-        'disk': 2 * 80,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'm4.large': {
-        'id': 'm4.large',
-        'name': 'Large Instance',
-        'ram': GiB(8),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 2
-        }
-    },
-    'm4.xlarge': {
-        'id': 'm4.xlarge',
-        'name': 'Extra Large Instance',
-        'ram': GiB(16),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 4
-        }
-    },
-    'm4.2xlarge': {
-        'id': 'm4.2xlarge',
-        'name': 'Double Extra Large Instance',
-        'ram': GiB(32),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'm4.4xlarge': {
-        'id': 'm4.4xlarge',
-        'name': 'Quadruple Extra Large Instance',
-        'ram': GiB(64),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 16
-        }
-    },
-    'm4.10xlarge': {
-        'id': 'm4.10xlarge',
-        'name': '10 Extra Large Instance',
-        'ram': GiB(160),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 40
-        }
-    },
-    'm4.16xlarge': {
-        'id': 'm4.16xlarge',
-        'name': '16 Extra Large Instance',
-        'ram': GiB(256),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 64
-        }
-    },
-    'm5.large': {
-        'id': 'm5.large',
-        'name': 'Large Instance',
-        'ram': GiB(8),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 2
-        }
-    },
-    'm5.xlarge': {
-        'id': 'm5.xlarge',
-        'name': 'Extra Large Instance',
-        'ram': GiB(16),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 4
-        }
-    },
-    'm5.2xlarge': {
-        'id': 'm5.2xlarge',
-        'name': 'Double Extra Large Instance',
-        'ram': GiB(32),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'm5.4xlarge': {
-        'id': 'm5.4xlarge',
-        'name': 'Quadruple Extra Large Instance',
-        'ram': GiB(64),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 16
-        }
-    },
-    'm5.12xlarge': {
-        'id': 'm5.12xlarge',
-        'name': '12 Extra Large Instance',
-        'ram': GiB(192),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 48
-        }
-    },
-    'm5.24xlarge': {
-        'id': 'm5.24xlarge',
-        'name': '24 Extra Large Instance',
-        'ram': GiB(384),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 96
-        }
-    },
-    'cg1.4xlarge': {
-        'id': 'cg1.4xlarge',
-        'name': 'Cluster GPU Quadruple Extra Large Instance',
-        'ram': GiB(22.5),
-        'disk': 2 * 840,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 16
-        }
-    },
-    'g2.2xlarge': {
-        'id': 'g2.2xlarge',
-        'name': 'Cluster GPU G2 Double Extra Large Instance',
-        'ram': GiB(15),
-        'disk': 60,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'g2.8xlarge': {
-        'id': 'g2.8xlarge',
-        'name': 'Cluster GPU G2 Eight Extra Large Instance',
-        'ram': GiB(60),
-        'disk': 2 * 120,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 32
-        }
-    },
-    'g3.4xlarge': {
-        'id': 'g3.4xlarge',
-        'name': 'Cluster GPU G3 Four Extra Large Instance',
-        'ram': GiB(122),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 16,
-            'gpu': 1,
-            'gpu_ram': GiB(8)
-        }
-    },
-    'g3.8xlarge': {
-        'id': 'g3.8xlarge',
-        'name': 'Cluster GPU G3 Eight Extra Large Instance',
-        'ram': GiB(244),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 32,
-            'gpu': 2,
-            'gpu_ram': GiB(16)
-        }
-    },
-    'g3.16xlarge': {
-        'id': 'g3.16xlarge',
-        'name': 'Cluster GPU G3 16 Extra Large Instance',
-        'ram': GiB(488),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 64,
-            'gpu': 4,
-            'gpu_ram': GiB(32)
-        }
-    },
-    'p2.xlarge': {
-        'id': 'p2.xlarge',
-        'name': 'Cluster GPU P2 Large Instance',
-        'ram': GiB(61),
-        'disk': 4,
-        'bandwidth': None
-    },
-    'p2.8xlarge': {
-        'id': 'p2.8xlarge',
-        'name': 'Cluster GPU P2 Large Instance',
-        'ram': GiB(488),
-        'disk': 32,
-        'bandwidth': None
-    },
-    'p2.16xlarge': {
-        'id': 'p2.16xlarge',
-        'name': 'Cluster GPU P2 Large Instance',
-        'ram': GiB(732),
-        'disk': 64,
-        'bandwidth': None
-    },
-    'cc1.4xlarge': {
-        'id': 'cc1.4xlarge',
-        'name': 'Cluster Compute Quadruple Extra Large Instance',
-        'ram': 23552,
-        'disk': 1690,
-        'bandwidth': None
-    },
-    'cc2.8xlarge': {
-        'id': 'cc2.8xlarge',
-        'name': 'Cluster Compute Eight Extra Large Instance',
-        'ram': GiB(60.5),
-        'disk': 4 * 840,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 32
-        }
-    },
-    # c3 instances have 2 SSDs of the specified disk size
-    'c3.large': {
-        'id': 'c3.large',
-        'name': 'Compute Optimized Large Instance',
-        'ram': GiB(3.75),
-        'disk': 2 * 16,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 2
-        }
-    },
-    'c3.xlarge': {
-        'id': 'c3.xlarge',
-        'name': 'Compute Optimized Extra Large Instance',
-        'ram': GiB(7.5),
-        'disk': 2 * 40,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 4
-        }
-    },
-    'c3.2xlarge': {
-        'id': 'c3.2xlarge',
-        'name': 'Compute Optimized Double Extra Large Instance',
-        'ram': GiB(15),
-        'disk': 2 * 80,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'c3.4xlarge': {
-        'id': 'c3.4xlarge',
-        'name': 'Compute Optimized Quadruple Extra Large Instance',
-        'ram': GiB(30),
-        'disk': 2 * 160,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 16
-        }
-    },
-    'c3.8xlarge': {
-        'id': 'c3.8xlarge',
-        'name': 'Compute Optimized Eight Extra Large Instance',
-        'ram': GiB(60),
-        'disk': 2 * 320,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 32
-        }
-    },
-    'c4.large': {
-        'id': 'c4.large',
-        'name': 'Compute Optimized Large Instance',
-        'ram': GiB(3.75),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 2
-        }
-    },
-    'c4.xlarge': {
-        'id': 'c4.xlarge',
-        'name': 'Compute Optimized Extra Large Instance',
-        'ram': GiB(7.5),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 4
-        }
-    },
-    'c4.2xlarge': {
-        'id': 'c4.2xlarge',
-        'name': 'Compute Optimized Double Large Instance',
-        'ram': GiB(15),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'c4.4xlarge': {
-        'id': 'c4.4xlarge',
-        'name': 'Compute Optimized Quadruple Extra Large Instance',
-        'ram': GiB(30),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 16
-        }
-    },
-    'c4.8xlarge': {
-        'id': 'c4.8xlarge',
-        'name': 'Compute Optimized Eight Extra Large Instance',
-        'ram': GiB(60),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 32
-        }
-    },
-    'c5.large': {
-        'id': 'c5.large',
-        'name': 'Compute Optimized Large Instance',
-        'ram': GiB(4),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 2
-        }
-    },
-    'c5.xlarge': {
-        'id': 'c5.xlarge',
-        'name': 'Compute Optimized Extra Large Instance',
-        'ram': GiB(8),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 4
-        }
-    },
-    'c5.2xlarge': {
-        'id': 'c5.2xlarge',
-        'name': 'Compute Optimized Double Extra Large Instance',
-        'ram': GiB(16),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'c5.4xlarge': {
-        'id': 'c5.4xlarge',
-        'name': 'Compute Optimized Quadruple Extra Large Instance',
-        'ram': GiB(32),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 16
-        }
-    },
-    'c5.9xlarge': {
-        'id': 'c5.9xlarge',
-        'name': 'Compute Optimized Nonuple Extra Large Instance',
-        'ram': GiB(72),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 36
-        }
-    },
-    'c5.18xlarge': {
-        'id': 'c5.18xlarge',
-        'name': 'Compute Optimized Eighteen Extra Large Instance',
-        'ram': GiB(144),
-        'disk': 0,  # EBS only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 72
-        }
-    },
-    'cr1.8xlarge': {
-        'id': 'cr1.8xlarge',
-        'name': 'High Memory Cluster Eight Extra Large',
-        'ram': GiB(244),
-        'disk': 2 * 120,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 32
-        }
-    },
-    'hs1.4xlarge': {
-        'id': 'hs1.4xlarge',
-        'name': 'High Storage Quadruple Extra Large Instance',
-        'ram': GiB(64),
-        'disk': 2 * 1024,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 16
-        }
-    },
-    'hs1.8xlarge': {
-        'id': 'hs1.8xlarge',
-        'name': 'High Storage Eight Extra Large Instance',
-        'ram': GiB(117),
-        'disk': 24 * 2000,
-        'bandwidth': None,
-        'extra': {
-            'cpu': 17
-        }
-    },
-    # i2 instances have up to eight SSD drives
-    'i2.xlarge': {
-        'id': 'i2.xlarge',
-        'name': 'High I/O Storage Optimized Extra Large Instance',
-        'ram': GiB(30.5),
-        'disk': 800,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 4
-        }
-    },
-    'i2.2xlarge': {
-        'id': 'i2.2xlarge',
-        'name': 'High I/O Storage Optimized Double Extra Large Instance',
-        'ram': GiB(61),
-        'disk': 2 * 800,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'i2.4xlarge': {
-        'id': 'i2.4xlarge',
-        'name': 'High I/O Storage Optimized Quadruple Large Instance',
-        'ram': GiB(122),
-        'disk': 4 * 800,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 16
-        }
-    },
-    'i2.8xlarge': {
-        'id': 'i2.8xlarge',
-        'name': 'High I/O Storage Optimized Eight Extra Large Instance',
-        'ram': GiB(244),
-        'disk': 8 * 800,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 32
-        }
-    },
-    'i3.large': {
-        'id': 'i3.large',
-        'name': 'High I/O Instances',
-        'ram': GiB(15.25),
-        'disk': 1 * 475,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 2
-        }
-    },
-    'i3.xlarge': {
-        'id': 'i3.xlarge',
-        'name': 'High I/O Instances',
-        'ram': GiB(30.5),
-        'disk': 1 * 950,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 4
-        }
-    },
-    'i3.2xlarge': {
-        'id': 'i3.2xlarge',
-        'name': 'High I/O Instances',
-        'ram': GiB(61),
-        'disk': 1 * 1900,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'i3.4xlarge': {
-        'id': 'i3.4xlarge',
-        'name': 'High I/O Instances',
-        'ram': GiB(122),
-        'disk': 2 * 1900,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 16
-        }
-    },
-    'i3.8xlarge': {
-        'id': 'i3.8xlarge',
-        'name': 'High I/O Instances',
-        'ram': GiB(244),
-        'disk': 4 * 1900,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 32
-        }
-    },
-    'i3.16xlarge': {
-        'id': 'i3.16xlarge',
-        'name': 'High I/O Instances',
-        'ram': GiB(488),
-        'disk': 8 * 1900,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 64
-        }
-    },
-    'd2.xlarge': {
-        'id': 'd2.xlarge',
-        'name': 'Dense Storage Optimized Extra Large Instance',
-        'ram': GiB(30.5),
-        'disk': 3 * 2000,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 4
-        }
-    },
-    'd2.2xlarge': {
-        'id': 'd2.2xlarge',
-        'name': 'Dense Storage Optimized Double Extra Large Instance',
-        'ram': GiB(61),
-        'disk': 6 * 2000,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'd2.4xlarge': {
-        'id': 'd2.4xlarge',
-        'name': 'Dense Storage Optimized Quadruple Extra Large Instance',
-        'ram': GiB(122),
-        'disk': 12 * 2000,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 16
-        }
-    },
-    'd2.8xlarge': {
-        'id': 'd2.8xlarge',
-        'name': 'Dense Storage Optimized Eight Extra Large Instance',
-        'ram': GiB(244),
-        'disk': 24 * 2000,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 36
-        }
-    },
-    # 1x SSD
-    'r3.large': {
-        'id': 'r3.large',
-        'name': 'Memory Optimized Large instance',
-        'ram': GiB(15.25),
-        'disk': 32,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 2
-        }
-    },
-    'r3.xlarge': {
-        'id': 'r3.xlarge',
-        'name': 'Memory Optimized Extra Large instance',
-        'ram': GiB(30.5),
-        'disk': 80,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 4
-        }
-    },
-    'r3.2xlarge': {
-        'id': 'r3.2xlarge',
-        'name': 'Memory Optimized Double Extra Large instance',
-        'ram': GiB(61),
-        'disk': 160,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'r3.4xlarge': {
-        'id': 'r3.4xlarge',
-        'name': 'Memory Optimized Quadruple Extra Large instance',
-        'ram': GiB(122),
-        'disk': 320,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 16
-        }
-    },
-    'r3.8xlarge': {
-        'id': 'r3.8xlarge',
-        'name': 'Memory Optimized Eight Extra Large instance',
-        'ram': GiB(244),
-        'disk': 2 * 320,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 32
-        }
-    },
-    'r4.large': {
-        'id': 'r4.large',
-        'name': 'Memory Optimized Large instance',
-        'ram': GiB(15.25),
-        'disk': 0,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 2
-        }
-    },
-    'r4.xlarge': {
-        'id': 'r4.xlarge',
-        'name': 'Memory Optimized Extra Large instance',
-        'ram': GiB(30.5),
-        'disk': 0,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 4
-        }
-    },
-    'r4.2xlarge': {
-        'id': 'r4.2xlarge',
-        'name': 'Memory Optimized Double Extra Large instance',
-        'ram': GiB(61),
-        'disk': 0,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'r4.4xlarge': {
-        'id': 'r4.4xlarge',
-        'name': 'Memory Optimized Quadruple Extra Large instance',
-        'ram': GiB(122),
-        'disk': 0,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 16
-        }
-    },
-    'r4.8xlarge': {
-        'id': 'r4.8xlarge',
-        'name': 'Memory Optimized Eight Extra Large instance',
-        'ram': GiB(244),
-        'disk': 0,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 32
-        }
-    },
-    'r4.16xlarge': {
-        'id': 'r4.16xlarge',
-        'name': 'Memory Optimized Sixteen Extra Large instance',
-        'ram': GiB(488),
-        'disk': 0,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 64
-        }
-    },
-    # Burstable Performance General Purpose
-    't2.nano': {
-        'id': 't2.nano',
-        'name': 'Burstable Performance Nano Instance',
-        'ram': 512,
-        'disk': 0,  # EBS Only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 1
-        }
-    },
-    't2.micro': {
-        'id': 't2.micro',
-        'name': 'Burstable Performance Micro Instance',
-        'ram': GiB(1),
-        'disk': 0,  # EBS Only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 1
-        }
-    },
-    't2.small': {
-        'id': 't2.small',
-        'name': 'Burstable Performance Small Instance',
-        'ram': GiB(2),
-        'disk': 0,  # EBS Only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 1
-        }
-    },
-    't2.medium': {
-        'id': 't2.medium',
-        'name': 'Burstable Performance Medium Instance',
-        'ram': GiB(4),
-        'disk': 0,  # EBS Only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 2
-        }
-    },
-    't2.large': {
-        'id': 't2.large',
-        'name': 'Burstable Performance Medium Instance',
-        'ram': GiB(8),
-        'disk': 0,  # EBS Only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 2
-        }
-    },
-    't2.xlarge': {
-        'id': 't2.xlarge',
-        'name': 'Burstable Performance Extra Large Instance',
-        'ram': GiB(16),
-        'disk': 0,  # EBS Only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 4
-        }
-    },
-    't2.2xlarge': {
-        'id': 't2.2xlarge',
-        'name': 'Burstable Performance Double Extra Large Instance',
-        'ram': GiB(32),
-        'disk': 0,  # EBS Only
-        'bandwidth': None,
-        'extra': {
-            'cpu': 8
-        }
-    },
-    'x1.16xlarge': {
-        'id': 'x1.16xlarge',
-        'name': 'Memory Optimized Sixteen Extra Large instance',
-        'ram': GiB(976),
-        'disk': 1920,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 64
-        }
-    },
-    'x1e.32xlarge': {
-        'id': 'x1e.32xlarge',
-        'name': 'Memory Optimized ThirtyTwo E Extra Large instance',
-        'ram': GiB(3904),
-        'disk': 2 * 1920,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 128
-        }
-    },
-    'x1.32xlarge': {
-        'id': 'x1.32xlarge',
-        'name': 'Memory Optimized ThirtyTwo Extra Large instance',
-        'ram': GiB(1952),
-        'disk': 2 * 1920,  # GB
-        'bandwidth': None,
-        'extra': {
-            'cpu': 128
-        }
-    }
-}
-
-#  From <https://aws.amazon.com/marketplace/help/200777880>
-REGION_DETAILS = {
-    # US East (Northern Virginia) Region
-    'us-east-1': {
-        'endpoint': 'ec2.us-east-1.amazonaws.com',
-        'api_name': 'ec2_us_east',
-        'country': 'USA',
-        'signature_version': '2',
-        'instance_types': [
-            't1.micro',
-            'm1.small',
-            'm1.medium',
-            'm1.large',
-            'm1.xlarge',
-            'm2.xlarge',
-            'm2.2xlarge',
-            'm2.4xlarge',
-            'm3.medium',
-            'm3.large',
-            'm3.xlarge',
-            'm3.2xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'm5.large',
-            'm5.xlarge',
-            'm5.2xlarge',
-            'm5.4xlarge',
-            'm5.12xlarge',
-            'm5.24xlarge',
-            'c1.medium',
-            'c1.xlarge',
-            'cc2.8xlarge',
-            'c3.large',
-            'c3.xlarge',
-            'c3.2xlarge',
-            'c3.4xlarge',
-            'c3.8xlarge',
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'c5.large',
-            'c5.xlarge',
-            'c5.2xlarge',
-            'c5.4xlarge',
-            'c5.9xlarge',
-            'c5.18xlarge',
-            'cg1.4xlarge',
-            'g2.2xlarge',
-            'g2.8xlarge',
-            'g3.4xlarge',
-            'g3.8xlarge',
-            'g3.16xlarge',
-            'cr1.8xlarge',
-            'hs1.8xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'd2.xlarge',
-            'd2.2xlarge',
-            'd2.4xlarge',
-            'd2.8xlarge',
-            'r3.large',
-            'r3.xlarge',
-            'r3.2xlarge',
-            'r3.4xlarge',
-            'r3.8xlarge',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            't2.nano',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large',
-            'x1.16xlarge',
-            'x1.32xlarge',
-            'x1e.32xlarge',
-        ]
-    },
-    # US West (Northern California) Region
-    'us-west-1': {
-        'endpoint': 'ec2.us-west-1.amazonaws.com',
-        'api_name': 'ec2_us_west',
-        'country': 'USA',
-        'signature_version': '2',
-        'instance_types': [
-            't1.micro',
-            'm1.small',
-            'm1.medium',
-            'm1.large',
-            'm1.xlarge',
-            'm2.xlarge',
-            'm2.2xlarge',
-            'm2.4xlarge',
-            'm3.medium',
-            'm3.large',
-            'm3.xlarge',
-            'm3.2xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'c1.medium',
-            'c1.xlarge',
-            'g2.2xlarge',
-            'g2.8xlarge',
-            'g3.4xlarge',
-            'g3.8xlarge',
-            'g3.16xlarge',
-            'c3.large',
-            'c3.xlarge',
-            'c3.2xlarge',
-            'c3.4xlarge',
-            'c3.8xlarge',
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'c5.large',
-            'c5.xlarge',
-            'c5.2xlarge',
-            'c5.4xlarge',
-            'c5.9xlarge',
-            'c5.18xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'r3.large',
-            'r3.xlarge',
-            'r3.2xlarge',
-            'r3.4xlarge',
-            'r3.8xlarge',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            't2.nano',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large'
-        ]
-    },
-    # US East (Ohio) Region
-    'us-east-2': {
-        'endpoint': 'ec2.us-east-2.amazonaws.com',
-        'api_name': 'ec2_us_east_ohio',
-        'country': 'USA',
-        'signature_version': '4',
-        'instance_types': [
-            't1.micro',
-            'm1.small',
-            'm1.medium',
-            'm1.large',
-            'm1.xlarge',
-            'm2.xlarge',
-            'm2.2xlarge',
-            'm2.4xlarge',
-            'm3.medium',
-            'm3.large',
-            'm3.xlarge',
-            'm3.2xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'c1.medium',
-            'c1.xlarge',
-            'cc2.8xlarge',
-            'c3.large',
-            'c3.xlarge',
-            'c3.2xlarge',
-            'c3.4xlarge',
-            'c3.8xlarge',
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'cg1.4xlarge',
-            'g2.2xlarge',
-            'g2.8xlarge',
-            'g3.4xlarge',
-            'g3.8xlarge',
-            'g3.16xlarge',
-            'cr1.8xlarge',
-            'hs1.8xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'd2.xlarge',
-            'd2.2xlarge',
-            'd2.4xlarge',
-            'd2.8xlarge',
-            'r3.large',
-            'r3.xlarge',
-            'r3.2xlarge',
-            'r3.4xlarge',
-            'r3.8xlarge',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            't2.nano',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large',
-            'x1.16xlarge',
-            'x1.32xlarge',
-            'x1e.32xlarge',
-        ]
-    },
-    # US West (Oregon) Region
-    'us-west-2': {
-        'endpoint': 'ec2.us-west-2.amazonaws.com',
-        'api_name': 'ec2_us_west_oregon',
-        'country': 'US',
-        'signature_version': '2',
-        'instance_types': [
-            't1.micro',
-            'm1.small',
-            'm1.medium',
-            'm1.large',
-            'm1.xlarge',
-            'm2.xlarge',
-            'm2.2xlarge',
-            'm2.4xlarge',
-            'm3.medium',
-            'm3.large',
-            'm3.xlarge',
-            'm3.2xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'm5.large',
-            'm5.xlarge',
-            'm5.2xlarge',
-            'm5.4xlarge',
-            'm5.12xlarge',
-            'm5.24xlarge',
-            'c1.medium',
-            'c1.xlarge',
-            'g2.2xlarge',
-            'g2.8xlarge',
-            'g3.4xlarge',
-            'g3.8xlarge',
-            'g3.16xlarge',
-            'p2.xlarge',
-            'p2.8xlarge',
-            'p2.16xlarge',
-            'c3.large',
-            'c3.xlarge',
-            'c3.2xlarge',
-            'c3.4xlarge',
-            'c3.8xlarge',
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'hs1.8xlarge',
-            'cc2.8xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'd2.xlarge',
-            'd2.2xlarge',
-            'd2.4xlarge',
-            'd2.8xlarge',
-            'r3.large',
-            'r3.xlarge',
-            'r3.2xlarge',
-            'r3.4xlarge',
-            'r3.8xlarge',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            't2.nano',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large',
-            'x1.16xlarge',
-            'x1.32xlarge',
-            'x1e.32xlarge',
-        ]
-    },
-    # EU (Ireland) Region
-    'eu-west-1': {
-        'endpoint': 'ec2.eu-west-1.amazonaws.com',
-        'api_name': 'ec2_eu_west',
-        'country': 'Ireland',
-        'signature_version': '2',
-        'instance_types': [
-            't1.micro',
-            'm1.small',
-            'm1.medium',
-            'm1.large',
-            'm1.xlarge',
-            'm2.xlarge',
-            'm2.2xlarge',
-            'm2.4xlarge',
-            'm3.medium',
-            'm3.large',
-            'm3.xlarge',
-            'm3.2xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'm5.large',
-            'm5.xlarge',
-            'm5.2xlarge',
-            'm5.4xlarge',
-            'm5.12xlarge',
-            'm5.24xlarge',
-            'c1.medium',
-            'c1.xlarge',
-            'g2.2xlarge',
-            'g2.8xlarge',
-            'g3.4xlarge',
-            'g3.8xlarge',
-            'g3.16xlarge',
-            'c3.large',
-            'c3.xlarge',
-            'c3.2xlarge',
-            'c3.4xlarge',
-            'c3.8xlarge',
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'c5.large',
-            'c5.xlarge',
-            'c5.2xlarge',
-            'c5.4xlarge',
-            'c5.9xlarge',
-            'c5.18xlarge',
-            'hs1.8xlarge',
-            'cc2.8xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'd2.xlarge',
-            'd2.2xlarge',
-            'd2.4xlarge',
-            'd2.8xlarge',
-            'r3.large',
-            'r3.xlarge',
-            'r3.2xlarge',
-            'r3.4xlarge',
-            'r3.8xlarge',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            't2.nano',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large',
-            'x1.16xlarge',
-            'x1.32xlarge',
-            'x1e.32xlarge',
-        ]
-    },
-    # EU (London) Region
-    'eu-west-2': {
-        'endpoint': 'ec2.eu-west-2.amazonaws.com',
-        'api_name': 'ec2_eu_west_london',
-        'country': 'United Kingdom',
-        'signature_version': '4',
-        'instance_types': [
-            't1.micro',
-            'm1.small',
-            'm1.medium',
-            'm1.large',
-            'm1.xlarge',
-            'm2.xlarge',
-            'm2.2xlarge',
-            'm2.4xlarge',
-            'm3.medium',
-            'm3.large',
-            'm3.xlarge',
-            'm3.2xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'c1.medium',
-            'c1.xlarge',
-            'cc2.8xlarge',
-            'c3.large',
-            'c3.xlarge',
-            'c3.2xlarge',
-            'c3.4xlarge',
-            'c3.8xlarge',
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'cg1.4xlarge',
-            'g2.2xlarge',
-            'g2.8xlarge',
-            'cr1.8xlarge',
-            'hs1.8xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'd2.xlarge',
-            'd2.2xlarge',
-            'd2.4xlarge',
-            'd2.8xlarge',
-            'r3.large',
-            'r3.xlarge',
-            'r3.2xlarge',
-            'r3.4xlarge',
-            'r3.8xlarge',
-            't2.nano',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large',
-            'x1.16xlarge',
-            'x1.32xlarge',
-            'x1e.32xlarge',
-        ]
-    },
-    # EU (Paris) Region
-    'eu-west-3': {
-        'endpoint': 'ec2.eu-west-3.amazonaws.com',
-        'api_name': 'ec2_eu_west_paris',
-        'country': 'France',
-        'signature_version': '4',
-        'instance_types': [
-            'c5.large',
-            'c5.xlarge',
-            'c5.2xlarge',
-            'c5.4xlarge',
-            'c5.9xlarge',
-            'c5.18xlarge',
-            'm5.large',
-            'm5.xlarge',
-            'm5.2xlarge',
-            'm5.4xlarge',
-            'm5.12xlarge',
-            'm5.24xlarge',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            't2.nano',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large',
-            'd2.xlarge',
-            'd2.2xlarge',
-            'd2.4xlarge',
-            'd2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'x1.16xlarge',
-            'x1.32xlarge',
-            'x1e.32xlarge',
-        ]
-    },
-    # EU (Frankfurt) Region
-    'eu-central-1': {
-        'endpoint': 'ec2.eu-central-1.amazonaws.com',
-        'api_name': 'ec2_eu_central',
-        'country': 'Frankfurt',
-        'signature_version': '4',
-        'instance_types': [
-            'm3.medium',
-            'm3.large',
-            'm3.xlarge',
-            'm3.2xlarge',
-            'c3.large',
-            'c3.xlarge',
-            'c3.2xlarge',
-            'c3.4xlarge',
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'c3.8xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'd2.xlarge',
-            'd2.2xlarge',
-            'd2.4xlarge',
-            'd2.8xlarge',
-            'r3.large',
-            'r3.xlarge',
-            'r3.2xlarge',
-            'r3.4xlarge',
-            'r3.8xlarge',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large',
-            'x1.16xlarge',
-            'x1.32xlarge',
-            'x1e.32xlarge',
-        ]
-    },
-    # Asia Pacific (Mumbai, India) Region
-    'ap-south-1': {
-        'endpoint': 'ec2.ap-south-1.amazonaws.com',
-        'api_name': 'ec2_ap_south_1',
-        'country': 'India',
-        'signature_version': '4',
-        'instance_types': [
-            't2.nano',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'r3.large',
-            'r3.xlarge',
-            'r3.2xlarge',
-            'r3.4xlarge',
-            'r3.8xlarge',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'd2.xlarge',
-            'd2.2xlarge',
-            'd2.4xlarge',
-            'd2.8xlarge'
-        ]
-    },
-    # Asia Pacific (Singapore) Region
-    'ap-southeast-1': {
-        'endpoint': 'ec2.ap-southeast-1.amazonaws.com',
-        'api_name': 'ec2_ap_southeast',
-        'country': 'Singapore',
-        'signature_version': '2',
-        'instance_types': [
-            't1.micro',
-            'm1.small',
-            'm1.medium',
-            'm1.large',
-            'm1.xlarge',
-            'm2.xlarge',
-            'm2.2xlarge',
-            'm2.4xlarge',
-            'm3.medium',
-            'm3.large',
-            'm3.xlarge',
-            'm3.2xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'c1.medium',
-            'c1.xlarge',
-            'c3.large',
-            'c3.xlarge',
-            'c3.2xlarge',
-            'c3.4xlarge',
-            'c3.8xlarge',
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'hs1.8xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'd2.xlarge',
-            'd2.2xlarge',
-            'd2.4xlarge',
-            'd2.8xlarge',
-            't2.nano',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            'x1.16xlarge',
-            'x1.32xlarge',
-            'x1e.32xlarge',
-        ]
-    },
-    # Asia Pacific (Tokyo) Region
-    'ap-northeast-1': {
-        'endpoint': 'ec2.ap-northeast-1.amazonaws.com',
-        'api_name': 'ec2_ap_northeast',
-        'country': 'Japan',
-        'signature_version': '2',
-        'instance_types': [
-            't1.micro',
-            'm1.small',
-            'm1.medium',
-            'm1.large',
-            'm1.xlarge',
-            'm2.xlarge',
-            'm2.2xlarge',
-            'm2.4xlarge',
-            'm3.medium',
-            'm3.large',
-            'm3.xlarge',
-            'm3.2xlarge',
-            'c1.medium',
-            'g2.2xlarge',
-            'g2.8xlarge',
-            'c1.xlarge',
-            'c3.large',
-            'c3.xlarge',
-            'c3.2xlarge',
-            'c3.4xlarge',
-            'c3.8xlarge',
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'hs1.8xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'd2.xlarge',
-            'd2.2xlarge',
-            'd2.4xlarge',
-            'd2.8xlarge',
-            'r3.large',
-            'r3.xlarge',
-            'r3.2xlarge',
-            'r3.4xlarge',
-            'r3.8xlarge',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            't2.nano',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large',
-            'x1.16xlarge',
-            'x1.32xlarge',
-            'x1e.32xlarge',
-        ]
-    },
-    # Asia Pacific (Seoul) Region
-    'ap-northeast-2': {
-        'endpoint': 'ec2.ap-northeast-2.amazonaws.com',
-        'api_name': 'ec2_ap_northeast',
-        'country': 'South Korea',
-        'signature_version': '4',
-        'instance_types': [
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'd2.xlarge',
-            'd2.2xlarge',
-            'd2.4xlarge',
-            'd2.8xlarge',
-            'r3.large',
-            'r3.xlarge',
-            'r3.2xlarge',
-            'r3.4xlarge',
-            'r3.8xlarge',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            't2.nano',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large',
-            'x1.16xlarge',
-            'x1.32xlarge',
-            'x1e.32xlarge',
-        ]
-    },
-    # South America (Sao Paulo) Region
-    'sa-east-1': {
-        'endpoint': 'ec2.sa-east-1.amazonaws.com',
-        'api_name': 'ec2_sa_east',
-        'country': 'Brazil',
-        'signature_version': '2',
-        'instance_types': [
-            't1.micro',
-            'm1.small',
-            'm1.medium',
-            'm1.large',
-            'm1.xlarge',
-            'm2.xlarge',
-            'm2.2xlarge',
-            'm2.4xlarge',
-            'm3.medium',
-            'm3.large',
-            'm3.xlarge',
-            'm3.2xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'c1.medium',
-            'c1.xlarge',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            't2.nano',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large'
-        ]
-    },
-    # Asia Pacific (Sydney) Region
-    'ap-southeast-2': {
-        'endpoint': 'ec2.ap-southeast-2.amazonaws.com',
-        'api_name': 'ec2_ap_southeast_2',
-        'country': 'Australia',
-        'signature_version': '2',
-        'instance_types': [
-            't1.micro',
-            'm1.small',
-            'm1.medium',
-            'm1.large',
-            'm1.xlarge',
-            'm2.xlarge',
-            'm2.2xlarge',
-            'm2.4xlarge',
-            'm3.medium',
-            'm3.large',
-            'm3.xlarge',
-            'm3.2xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'c1.medium',
-            'c1.xlarge',
-            'c3.large',
-            'c3.xlarge',
-            'c3.2xlarge',
-            'c3.4xlarge',
-            'c3.8xlarge',
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'hs1.8xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'd2.xlarge',
-            'd2.2xlarge',
-            'd2.4xlarge',
-            'd2.8xlarge',
-            'r3.large',
-            'r3.xlarge',
-            'r3.2xlarge',
-            'r3.4xlarge',
-            'r3.8xlarge',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large',
-            'x1.16xlarge',
-            'x1.32xlarge',
-            'x1e.32xlarge',
-        ]
-    },
-    # Canada (Central) Region
-    'ca-central-1': {
-        'endpoint': 'ec2.ca-central-1.amazonaws.com',
-        'api_name': 'ec2_ca_central_1',
-        'country': 'Canada',
-        'signature_version': '4',
-        'instance_types': [
-            't1.micro',
-            'm1.small',
-            'm1.medium',
-            'm1.large',
-            'm1.xlarge',
-            'm2.xlarge',
-            'm2.2xlarge',
-            'm2.4xlarge',
-            'm3.medium',
-            'm3.large',
-            'm3.xlarge',
-            'm3.2xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'c1.medium',
-            'c1.xlarge',
-            'cc2.8xlarge',
-            'c3.large',
-            'c3.xlarge',
-            'c3.2xlarge',
-            'c3.4xlarge',
-            'c3.8xlarge',
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'cg1.4xlarge',
-            'g2.2xlarge',
-            'g2.8xlarge',
-            'cr1.8xlarge',
-            'hs1.8xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'd2.xlarge',
-            'd2.2xlarge',
-            'd2.4xlarge',
-            'd2.8xlarge',
-            'r3.large',
-            'r3.xlarge',
-            'r3.2xlarge',
-            'r3.4xlarge',
-            'r3.8xlarge',
-            't2.nano',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large',
-            'x1.16xlarge',
-            'x1.32xlarge',
-            'x1e.32xlarge',
-        ]
-    },
-    # GovCloud Region
-    'us-gov-west-1': {
-        'endpoint': 'ec2.us-gov-west-1.amazonaws.com',
-        'api_name': 'ec2_us_govwest',
-        'country': 'US',
-        'signature_version': '2',
-        'instance_types': [
-            't1.micro',
-            'm1.small',
-            'm1.medium',
-            'm1.large',
-            'm1.xlarge',
-            'm2.xlarge',
-            'm2.2xlarge',
-            'm2.4xlarge',
-            'm3.medium',
-            'm3.large',
-            'm3.xlarge',
-            'm3.2xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'c1.medium',
-            'c1.xlarge',
-            'g2.2xlarge',
-            'g2.8xlarge',
-            'g3.4xlarge',
-            'g3.8xlarge',
-            'g3.16xlarge',
-            'c3.large',
-            'c3.xlarge',
-            'c3.2xlarge',
-            'c3.4xlarge',
-            'c3.8xlarge',
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'hs1.4xlarge',
-            'hs1.8xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-            'r3.large',
-            'r3.xlarge',
-            'r3.2xlarge',
-            'r3.4xlarge',
-            'r3.8xlarge',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            't2.nano',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large'
-        ]
-    },
-    # China (North) Region
-    'cn-north-1': {
-        'endpoint': 'ec2.cn-north-1.amazonaws.com.cn',
-        'api_name': 'ec2_cn_north',
-        'country': 'China',
-        'signature_version': '4',
-        'instance_types': [
-            't1.micro',
-            't2.micro',
-            't2.small',
-            't2.medium',
-            't2.large',
-            't2.xlarge',
-            't2.2xlarge',
-            'm4.large',
-            'm4.xlarge',
-            'm4.2xlarge',
-            'm4.4xlarge',
-            'm4.10xlarge',
-            'm4.16xlarge',
-            'm3.medium',
-            'm3.large',
-            'm3.xlarge',
-            'm3.2xlarge',
-            'm1.small',
-            'c4.large',
-            'c4.xlarge',
-            'c4.2xlarge',
-            'c4.4xlarge',
-            'c4.8xlarge',
-            'c3.large',
-            'c3.xlarge',
-            'c3.2xlarge',
-            'c3.4xlarge',
-            'c3.8xlarge',
-            'r4.large',
-            'r4.xlarge',
-            'r4.2xlarge',
-            'r4.4xlarge',
-            'r4.8xlarge',
-            'r4.16xlarge',
-            'r3.large',
-            'r3.xlarge',
-            'r3.2xlarge',
-            'r3.4xlarge',
-            'r3.8xlarge',
-            'd2.xlarge',
-            'd2.2xlarge',
-            'd2.4xlarge',
-            'd2.8xlarge',
-            'i2.xlarge',
-            'i2.2xlarge',
-            'i2.4xlarge',
-            'i2.8xlarge',
-            'i3.large',
-            'i3.xlarge',
-            'i3.2xlarge',
-            'i3.4xlarge',
-            'i3.8xlarge',
-            'i3.16xlarge',
-        ]
-    },
-    'nimbus': {
-        # Nimbus clouds have 3 EC2-style instance types but their particular
-        # RAM allocations are configured by the admin
-        'country': 'custom',
-        'signature_version': '2',
-        'instance_types': [
-            'm1.small',
-            'm1.large',
-            'm1.xlarge'
-        ]
-    }
+# Add Nimbus region
+REGION_DETAILS['nimbus'] = {
+    # Nimbus clouds have 3 EC2-style instance types but their particular
+    # RAM allocations are configured by the admin
+    'country': 'custom',
+    'signature_version': '2',
+    'instance_types': [
+        'm1.small',
+        'm1.large',
+        'm1.xlarge'
+    ]
 }
 
-
 """
 Sizes must be hardcoded because Outscale doesn't provide an API to fetch them.
 Outscale cloud instances share some names with EC2 but have different


[02/10] libcloud git commit: committer guide: update EC2 constants on release

Posted by qu...@apache.org.
committer guide: update EC2 constants on release


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/91e7e006
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/91e7e006
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/91e7e006

Branch: refs/heads/trunk
Commit: 91e7e006ec13fb68fd900fe572692373e3d7a9c2
Parents: caeac1a
Author: Quentin Pradet <qu...@apache.org>
Authored: Fri Jun 29 10:07:15 2018 +0400
Committer: Quentin Pradet <qu...@apache.org>
Committed: Fri Jun 29 11:46:26 2018 +0400

----------------------------------------------------------------------
 docs/committer_guide.rst | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/91e7e006/docs/committer_guide.rst
----------------------------------------------------------------------
diff --git a/docs/committer_guide.rst b/docs/committer_guide.rst
index 0f99808..5dd548d 100644
--- a/docs/committer_guide.rst
+++ b/docs/committer_guide.rst
@@ -91,12 +91,17 @@ Making a release (for release managers)
 This section contains information a release manager should follow when
 preparing a release.
 
-1. Pre-release check list
+0. Update committed files
 ~~~~~~~~~~~~~~~~~~~~~~~~~
 
-* Make sure tests pass on all the supported Python versions (``tox``)
 * Make sure ``CHANGES`` file is up to date
 * Make sure ``__version__`` string in ``libcloud/__init__.py`` is up to date
+* Update constants: ``python contrib/scrap-ec2-sizes.py > libcloud/compute/constants.py``
+
+1. Pre-release check list
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* Make sure tests pass on all the supported Python versions (``tox``)
 * Remove the ``tox`` directory with ``rm -rf .tox``
 * Remove the _secrets_ file with ``rm libcloud/test/secrets.py``
 * Remove leftover builds from previous releases. ``rm -f dist/apache*``


[07/10] libcloud git commit: Updated tests

Posted by qu...@apache.org.
Updated tests

Signed-off-by: Quentin Pradet <qu...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/a4af92cb
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/a4af92cb
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/a4af92cb

Branch: refs/heads/trunk
Commit: a4af92cb572c2618c21b08f37d784636998963b3
Parents: f803651
Author: Anthony Monthe <an...@gmail.com>
Authored: Sun May 20 04:24:42 2018 +0100
Committer: Quentin Pradet <qu...@apache.org>
Committed: Fri Jun 29 11:46:26 2018 +0400

----------------------------------------------------------------------
 .pylintrc                         |  1 +
 libcloud/test/compute/test_ec2.py | 34 +---------------------------------
 setup.cfg                         |  4 ++++
 tox.ini                           |  8 ++++----
 4 files changed, 10 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/a4af92cb/.pylintrc
----------------------------------------------------------------------
diff --git a/.pylintrc b/.pylintrc
index 14d137f..21b7711 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -2,6 +2,7 @@
 # Add <file or directory> to the black list. It should be a base name, not a
 # path. You may set this option multiple times.
 ignore=test
+ignore=constants
 
 
 # Pickle collected data for later comparisons.

http://git-wip-us.apache.org/repos/asf/libcloud/blob/a4af92cb/libcloud/test/compute/test_ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_ec2.py b/libcloud/test/compute/test_ec2.py
index 05ac026..2fb93cd 100644
--- a/libcloud/test/compute/test_ec2.py
+++ b/libcloud/test/compute/test_ec2.py
@@ -435,39 +435,7 @@ class EC2Tests(LibcloudTestCase, TestCaseMixin):
             self.driver.api_name = api_name
             self.driver.region_name = region_name
             sizes = self.driver.list_sizes()
-
-            ids = [s.id for s in sizes]
-
-            if region_name not in ['ap-south-1']:
-                self.assertTrue('t1.micro' in ids)
-                self.assertTrue('m1.small' in ids)
-                self.assertTrue('m1.large' in ids)
-                self.assertTrue('m1.xlarge' in ids)
-                self.assertTrue('c1.medium' in ids)
-                self.assertTrue('c1.xlarge' in ids)
-                self.assertTrue('m2.xlarge' in ids)
-                self.assertTrue('m2.2xlarge' in ids)
-                self.assertTrue('m2.4xlarge' in ids)
-
-            if region_name == 'us-east-1':
-                self.assertEqual(len(sizes), 84)
-                self.assertTrue('cg1.4xlarge' in ids)
-                self.assertTrue('cc2.8xlarge' in ids)
-                self.assertTrue('cr1.8xlarge' in ids)
-                self.assertTrue('x1.32xlarge' in ids)
-            elif region_name == 'us-west-1':
-                self.assertEqual(len(sizes), 67)
-            if region_name == 'us-west-2':
-                self.assertEqual(len(sizes), 79)
-            elif region_name == 'ap-southeast-1':
-                self.assertEqual(len(sizes), 59)
-            elif region_name == 'ap-southeast-2':
-                self.assertEqual(len(sizes), 63)
-            elif region_name == 'eu-west-1':
-                self.assertEqual(len(sizes), 82)
-            elif region_name == 'ap-south-1':
-                self.assertEqual(len(sizes), 41)
-
+            self.assertNotEqual(len(sizes), 0)
         self.driver.region_name = region_old
 
     def test_ex_create_node_with_ex_iam_profile(self):

http://git-wip-us.apache.org/repos/asf/libcloud/blob/a4af92cb/setup.cfg
----------------------------------------------------------------------
diff --git a/setup.cfg b/setup.cfg
index eeb81dc..56ebd7c 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -10,3 +10,7 @@ test=pytest
 [tool:pytest]
 python_classes=*Test
 testpaths=libcloud/test
+
+[flake8]
+exclude=libcloud/compute/constants.py,libcloud/test
+ignore=E402

http://git-wip-us.apache.org/repos/asf/libcloud/blob/a4af92cb/tox.ini
----------------------------------------------------------------------
diff --git a/tox.ini b/tox.ini
index 854f8df..b6706eb 100644
--- a/tox.ini
+++ b/tox.ini
@@ -77,10 +77,10 @@ deps = -r{toxinidir}/requirements-tests.txt
        backports.ssl_match_hostname
        lockfile
 
-commands = flake8 --ignore=E402 --exclude="test" libcloud/
-           flake8 --ignore=E402 --max-line-length=160 libcloud/test/
-           flake8 --ignore=E402 demos/
-           flake8 --ignore=E402 integration/
+commands = flake8 libcloud/
+           flake8 --max-line-length=160 libcloud/test/
+           flake8 demos/
+           flake8 integration/
            flake8 --ignore=E402,E902 docs/examples/
            flake8 --ignore=E402,E902 --max-line-length=160 contrib/
            python -mjson.tool libcloud/data/pricing.json /dev/null


[04/10] libcloud git commit: Cleaned EC2 files and added constants

Posted by qu...@apache.org.
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f803651e/libcloud/compute/constants.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/constants.py b/libcloud/compute/constants.py
new file mode 100644
index 0000000..f889f82
--- /dev/null
+++ b/libcloud/compute/constants.py
@@ -0,0 +1,4688 @@
+# File generated by script
+INSTANCE_TYPES = {
+    "p3.16xlarge": {
+        "extra": {
+            "gpu": "8",
+            "dedicatedEbsThroughput": "14000 Mbps",
+            "ecu": "188",
+            "vcpu": "64",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0010",
+            "instanceFamily": "GPU instance",
+            "memory": "488 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "storage": "EBS only",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "UGW1-DedicatedUsage:p3.16xlarge",
+            "networkPerformance": "25 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "p3.16xlarge",
+            "normalizationSizeFactor": "128",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "p3.16xlarge",
+        "ram": 499712,
+        "disk": 0,
+        "name": "p3.16xlarge",
+        "bandwidth": 25
+    },
+    "c5.4xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "Upto 2250 Mbps",
+            "ecu": "62",
+            "vcpu": "16",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances",
+            "instanceFamily": "Compute optimized",
+            "memory": "32 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
+            "storage": "EBS only",
+            "tenancy": "Dedicated",
+            "clockSpeed": "3.0 Ghz",
+            "usagetype": "EUW2-DedicatedUsage:c5.4xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "c5.4xlarge",
+            "normalizationSizeFactor": "32",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "c5.4xlarge",
+        "ram": 32768,
+        "disk": 0,
+        "name": "c5.4xlarge",
+        "bandwidth": 10
+    },
+    "t2.xlarge": {
+        "extra": {
+            "ecu": "Variable",
+            "vcpu": "4",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances",
+            "instanceFamily": "General purpose",
+            "memory": "16 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon Family",
+            "storage": "EBS only",
+            "tenancy": "Shared",
+            "clockSpeed": "Up to 3.0 GHz",
+            "usagetype": "USE2-BoxUsage:t2.xlarge",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "t2.xlarge",
+            "normalizationSizeFactor": "8",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "t2.xlarge",
+        "ram": 16384,
+        "disk": 0,
+        "name": "t2.xlarge",
+        "bandwidth": None
+    },
+    "hs1.8xlarge": {
+        "extra": {
+            "ecu": "35",
+            "vcpu": "17",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0006",
+            "instanceFamily": "Storage optimized",
+            "memory": "117 GiB",
+            "physicalProcessor": "Intel Xeon E5-2650",
+            "storage": "24 x 2000",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2 GHz",
+            "usagetype": "APS2-DedicatedUsage:hs1.8xlarge",
+            "networkPerformance": "10 Gigabit",
+            "preInstalledSw": "SQL Std",
+            "capacitystatus": "Used",
+            "instanceType": "hs1.8xlarge",
+            "normalizationSizeFactor": "64",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "hs1.8xlarge",
+        "ram": 119808,
+        "disk": 48000,
+        "name": "hs1.8xlarge",
+        "bandwidth": 10
+    },
+    "i2.xlarge": {
+        "extra": {
+            "storage": "1 x 800 SSD",
+            "ecu": "14",
+            "vcpu": "4",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0202",
+            "instanceFamily": "Storage optimized",
+            "memory": "30.5 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "Host",
+            "clockSpeed": "2.5 GHz",
+            "usagetype": "APS3-HostBoxUsage:i2.xlarge",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "SQL Web",
+            "capacitystatus": "Used",
+            "instanceType": "i2.xlarge",
+            "normalizationSizeFactor": "8",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "i2.xlarge",
+        "ram": 31232,
+        "disk": 800,
+        "name": "i2.xlarge",
+        "bandwidth": None
+    },
+    "c5.2xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "Upto 2250 Mbps",
+            "ecu": "31",
+            "vcpu": "8",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0100",
+            "instanceFamily": "Compute optimized",
+            "memory": "16 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
+            "storage": "EBS only",
+            "tenancy": "Shared",
+            "clockSpeed": "3.0 Ghz",
+            "usagetype": "EUW2-BoxUsage:c5.2xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "instanceType": "c5.2xlarge",
+            "normalizationSizeFactor": "16",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "c5.2xlarge",
+        "ram": 16384,
+        "disk": 0,
+        "name": "c5.2xlarge",
+        "bandwidth": 10
+    },
+    "x1.32xlarge": {
+        "extra": {
+            "storage": "2 x 1,920",
+            "intelTurboAvailable": "Yes",
+            "ecu": "349",
+            "vcpu": "128",
+            "currentGeneration": "Yes",
+            "intelAvx2Available": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:000g",
+            "instanceFamily": "Memory optimized",
+            "memory": "1,952 GiB",
+            "physicalProcessor": "High Frequency Intel Xeon E7-8880 v3 (Haswell)",
+            "enhancedNetworkingSupported": "Yes",
+            "intelAvxAvailable": "Yes",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "EUW2-DedicatedUsage:x1.32xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "x1.32xlarge",
+            "normalizationSizeFactor": "256",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "x1.32xlarge",
+        "ram": 1998848,
+        "disk": 3840,
+        "name": "x1.32xlarge",
+        "bandwidth": None
+    },
+    "x1e.2xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "1000 Mbps",
+            "ecu": "23",
+            "vcpu": "8",
+            "currentGeneration": "Yes",
+            "intelAvx2Available": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0100",
+            "instanceFamily": "Memory optimized",
+            "memory": "244 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2",
+            "physicalProcessor": "High Frequency Intel Xeon E7-8880 v3 (Haswell)",
+            "storage": "1 x 240",
+            "intelAvxAvailable": "Yes",
+            "tenancy": "Host",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "APS2-HostBoxUsage:x1e.2xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "instanceType": "x1e.2xlarge",
+            "normalizationSizeFactor": "16",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "x1e.2xlarge",
+        "ram": 249856,
+        "disk": 240,
+        "name": "x1e.2xlarge",
+        "bandwidth": 10
+    },
+    "i3.2xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "1750 Mbps",
+            "ecu": "27",
+            "vcpu": "8",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0100",
+            "instanceFamily": "Storage optimized",
+            "memory": "61 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "storage": "1 x 1.9 NVMe SSD",
+            "tenancy": "Shared",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "APS2-BoxUsage:i3.2xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "instanceType": "i3.2xlarge",
+            "normalizationSizeFactor": "16",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "i3.2xlarge",
+        "ram": 62464,
+        "disk": 1,
+        "name": "i3.2xlarge",
+        "bandwidth": 10
+    },
+    "i2.4xlarge": {
+        "extra": {
+            "ebsOptimized": "Yes",
+            "ecu": "53",
+            "vcpu": "16",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "Hourly",
+            "instanceFamily": "Storage optimized",
+            "memory": "122 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
+            "storage": "4 x 800 SSD",
+            "tenancy": "NA",
+            "clockSpeed": "2.5 GHz",
+            "usagetype": "APS3-EBSOptimized:i2.4xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "NA",
+            "capacitystatus": "NA",
+            "instanceType": "i2.4xlarge",
+            "normalizationSizeFactor": "32",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "NA",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "i2.4xlarge",
+        "ram": 124928,
+        "disk": 3200,
+        "name": "i2.4xlarge",
+        "bandwidth": None
+    },
+    "c4.8xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "4000 Mbps",
+            "ecu": "132",
+            "vcpu": "36",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0002",
+            "instanceFamily": "Compute optimized",
+            "memory": "60 GiB",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
+            "storage": "EBS only",
+            "tenancy": "Host",
+            "clockSpeed": "2.9 GHz",
+            "usagetype": "EUC1-HostBoxUsage:c4.8xlarge",
+            "networkPerformance": "10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "c4.8xlarge",
+            "normalizationSizeFactor": "64",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "c4.8xlarge",
+        "ram": 61440,
+        "disk": 0,
+        "name": "c4.8xlarge",
+        "bandwidth": 10
+    },
+    "r4.xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "800 Mbps",
+            "ecu": "13.5",
+            "vcpu": "4",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0002",
+            "instanceFamily": "Memory optimized",
+            "memory": "30.5 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "storage": "EBS only",
+            "tenancy": "Shared",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "APN3-BoxUsage:r4.xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "r4.xlarge",
+            "normalizationSizeFactor": "8",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "r4.xlarge",
+        "ram": 31232,
+        "disk": 0,
+        "name": "r4.xlarge",
+        "bandwidth": 10
+    },
+    "m4.large": {
+        "extra": {
+            "dedicatedEbsThroughput": "450 Mbps",
+            "ecu": "6.5",
+            "vcpu": "2",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0102",
+            "instanceFamily": "General purpose",
+            "memory": "8 GiB",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2676 v3 (Haswell)",
+            "storage": "EBS only",
+            "tenancy": "Host",
+            "clockSpeed": "2.4 GHz",
+            "usagetype": "USW1-HostBoxUsage:m4.large",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "instanceType": "m4.large",
+            "normalizationSizeFactor": "4",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "m4.large",
+        "ram": 8192,
+        "disk": 0,
+        "name": "m4.large",
+        "bandwidth": None
+    },
+    "cr1.8xlarge": {
+        "extra": {
+            "ecu": "88",
+            "vcpu": "32",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0202",
+            "instanceFamily": "Memory optimized",
+            "memory": "244 GiB",
+            "physicalProcessor": "Intel Xeon E5-2670",
+            "storage": "2 x 120 SSD",
+            "tenancy": "Shared",
+            "usagetype": "APN1-BoxUsage:cr1.8xlarge",
+            "networkPerformance": "10 Gigabit",
+            "preInstalledSw": "SQL Web",
+            "capacitystatus": "Used",
+            "instanceType": "cr1.8xlarge",
+            "normalizationSizeFactor": "64",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "cr1.8xlarge",
+        "ram": 249856,
+        "disk": 240,
+        "name": "cr1.8xlarge",
+        "bandwidth": 10
+    },
+    "m5.4xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "2120 Mbps",
+            "ecu": "61",
+            "vcpu": "16",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0100",
+            "instanceFamily": "General purpose",
+            "memory": "64 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "physicalProcessor": "Intel Xeon Platinum 8175",
+            "storage": "EBS only",
+            "tenancy": "Host",
+            "clockSpeed": "2.5 GHz",
+            "usagetype": "EU-HostBoxUsage:m5.4xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "instanceType": "m5.4xlarge",
+            "normalizationSizeFactor": "32",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "m5.4xlarge",
+        "ram": 65536,
+        "disk": 0,
+        "name": "m5.4xlarge",
+        "bandwidth": 10
+    },
+    "r3.large": {
+        "extra": {
+            "storage": "1 x 32 SSD",
+            "ecu": "6.5",
+            "vcpu": "2",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0002",
+            "instanceFamily": "Memory optimized",
+            "memory": "15.25 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.5 GHz",
+            "usagetype": "USE2-DedicatedUsage:r3.large",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "r3.large",
+            "normalizationSizeFactor": "4",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "r3.large",
+        "ram": 15616,
+        "disk": 32,
+        "name": "r3.large",
+        "bandwidth": None
+    },
+    "c4.2xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "1000 Mbps",
+            "ecu": "31",
+            "vcpu": "8",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0100",
+            "instanceFamily": "Compute optimized",
+            "memory": "15 GiB",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
+            "storage": "EBS only",
+            "tenancy": "Host",
+            "clockSpeed": "2.9 GHz",
+            "usagetype": "APN2-HostBoxUsage:c4.2xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "instanceType": "c4.2xlarge",
+            "normalizationSizeFactor": "16",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "c4.2xlarge",
+        "ram": 15360,
+        "disk": 0,
+        "name": "c4.2xlarge",
+        "bandwidth": None
+    },
+    "c4.xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "750 Mbps",
+            "ecu": "16",
+            "vcpu": "4",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0002",
+            "instanceFamily": "Compute optimized",
+            "memory": "7.5 GiB",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
+            "storage": "EBS only",
+            "tenancy": "Host",
+            "clockSpeed": "2.9 GHz",
+            "usagetype": "APS1-HostBoxUsage:c4.xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "c4.xlarge",
+            "normalizationSizeFactor": "8",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "c4.xlarge",
+        "ram": 7680,
+        "disk": 0,
+        "name": "c4.xlarge",
+        "bandwidth": None
+    },
+    "r3.2xlarge": {
+        "extra": {
+            "storage": "1 x 160 SSD",
+            "ecu": "26",
+            "vcpu": "8",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0006",
+            "instanceFamily": "Memory optimized",
+            "memory": "61 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "Shared",
+            "clockSpeed": "2.5 GHz",
+            "usagetype": "APS3-BoxUsage:r3.2xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "SQL Std",
+            "capacitystatus": "Used",
+            "instanceType": "r3.2xlarge",
+            "normalizationSizeFactor": "16",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "r3.2xlarge",
+        "ram": 62464,
+        "disk": 160,
+        "name": "r3.2xlarge",
+        "bandwidth": None
+    },
+    "i2.2xlarge": {
+        "extra": {
+            "storage": "2 x 800 SSD",
+            "ecu": "27",
+            "vcpu": "8",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances",
+            "instanceFamily": "Storage optimized",
+            "memory": "61 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.5 GHz",
+            "usagetype": "DedicatedUsage:i2.2xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "i2.2xlarge",
+            "normalizationSizeFactor": "16",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "i2.2xlarge",
+        "ram": 62464,
+        "disk": 1600,
+        "name": "i2.2xlarge",
+        "bandwidth": None
+    },
+    "r4.4xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "3000 Mbps",
+            "ecu": "53",
+            "vcpu": "16",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances",
+            "instanceFamily": "Memory optimized",
+            "memory": "122 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "storage": "EBS only",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "USW2-DedicatedUsage:r4.4xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "r4.4xlarge",
+            "normalizationSizeFactor": "32",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "r4.4xlarge",
+        "ram": 124928,
+        "disk": 0,
+        "name": "r4.4xlarge",
+        "bandwidth": 10
+    },
+    "c3.large": {
+        "extra": {
+            "storage": "2 x 16 SSD",
+            "ecu": "7",
+            "vcpu": "2",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0002",
+            "instanceFamily": "Compute optimized",
+            "memory": "3.75 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2680 v2 (Ivy Bridge)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "Shared",
+            "clockSpeed": "2.8 GHz",
+            "usagetype": "APS2-BoxUsage:c3.large",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "c3.large",
+            "normalizationSizeFactor": "4",
+            "processorArchitecture": "32-bit or 64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "c3.large",
+        "ram": 3840,
+        "disk": 32,
+        "name": "c3.large",
+        "bandwidth": None
+    },
+    "c1.medium": {
+        "extra": {
+            "ecu": "5",
+            "vcpu": "2",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0002",
+            "instanceFamily": "Compute optimized",
+            "memory": "1.7 GiB",
+            "physicalProcessor": "Intel Xeon Family",
+            "storage": "1 x 350",
+            "tenancy": "Shared",
+            "usagetype": "SAE1-BoxUsage:c1.medium",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "c1.medium",
+            "normalizationSizeFactor": "2",
+            "processorArchitecture": "32-bit or 64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "c1.medium",
+        "ram": 1740,
+        "disk": 350,
+        "name": "c1.medium",
+        "bandwidth": None
+    },
+    "m4.xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "750 Mbps",
+            "ecu": "13",
+            "vcpu": "4",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0100",
+            "instanceFamily": "General purpose",
+            "memory": "16 GiB",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2676 v3 (Haswell)",
+            "storage": "EBS only",
+            "tenancy": "Host",
+            "clockSpeed": "2.4  GHz",
+            "usagetype": "EUC1-HostBoxUsage:m4.xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "instanceType": "m4.xlarge",
+            "normalizationSizeFactor": "8",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "m4.xlarge",
+        "ram": 16384,
+        "disk": 0,
+        "name": "m4.xlarge",
+        "bandwidth": None
+    },
+    "g3.4xlarge": {
+        "extra": {
+            "gpu": "1",
+            "intelTurboAvailable": "Yes",
+            "dedicatedEbsThroughput": "3500 Mbps",
+            "ecu": "47",
+            "vcpu": "16",
+            "currentGeneration": "Yes",
+            "intelAvx2Available": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances",
+            "instanceFamily": "GPU instance",
+            "memory": "122 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "storage": "EBS only",
+            "intelAvxAvailable": "Yes",
+            "tenancy": "Shared",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "BoxUsage:g3.4xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "g3.4xlarge",
+            "normalizationSizeFactor": "32",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "g3.4xlarge",
+        "ram": 124928,
+        "disk": 0,
+        "name": "g3.4xlarge",
+        "bandwidth": 10
+    },
+    "c5.18xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "9000 Mbps",
+            "ecu": "278",
+            "vcpu": "72",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0200",
+            "instanceFamily": "Compute optimized",
+            "memory": "144 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
+            "storage": "EBS only",
+            "tenancy": "Shared",
+            "clockSpeed": "3.0 Ghz",
+            "usagetype": "USE2-BoxUsage:c5.18xlarge",
+            "networkPerformance": "25 Gigabit",
+            "preInstalledSw": "SQL Web",
+            "capacitystatus": "Used",
+            "instanceType": "c5.18xlarge",
+            "normalizationSizeFactor": "144",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "c5.18xlarge",
+        "ram": 147456,
+        "disk": 0,
+        "name": "c5.18xlarge",
+        "bandwidth": 25
+    },
+    "m2.4xlarge": {
+        "extra": {
+            "ebsOptimized": "Yes",
+            "ecu": "26",
+            "vcpu": "8",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "Hourly",
+            "instanceFamily": "Memory optimized",
+            "memory": "68.4 GiB",
+            "physicalProcessor": "Intel Xeon Family",
+            "storage": "2 x 840",
+            "tenancy": "NA",
+            "usagetype": "USW2-EBSOptimized:m2.4xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "NA",
+            "capacitystatus": "NA",
+            "instanceType": "m2.4xlarge",
+            "normalizationSizeFactor": "32",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "NA"
+        },
+        "id": "m2.4xlarge",
+        "ram": 70041,
+        "disk": 1680,
+        "name": "m2.4xlarge",
+        "bandwidth": None
+    },
+    "x1e.xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "500 Mbps",
+            "ecu": "12",
+            "vcpu": "4",
+            "currentGeneration": "Yes",
+            "intelAvx2Available": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0004",
+            "instanceFamily": "Memory optimized",
+            "memory": "122 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2",
+            "physicalProcessor": "High Frequency Intel Xeon E7-8880 v3 (Haswell)",
+            "storage": "1 x 120",
+            "intelAvxAvailable": "Yes",
+            "tenancy": "Host",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "USW2-HostBoxUsage:x1e.xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "SQL Std",
+            "capacitystatus": "Used",
+            "instanceType": "x1e.xlarge",
+            "normalizationSizeFactor": "8",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "x1e.xlarge",
+        "ram": 124928,
+        "disk": 120,
+        "name": "x1e.xlarge",
+        "bandwidth": 10
+    },
+    "t2.micro": {
+        "extra": {
+            "ecu": "Variable",
+            "vcpu": "1",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0010",
+            "instanceFamily": "General purpose",
+            "memory": "1 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon Family",
+            "storage": "EBS only",
+            "tenancy": "Shared",
+            "clockSpeed": "Up to 3.3 GHz",
+            "usagetype": "APS1-BoxUsage:t2.micro",
+            "networkPerformance": "Low to Moderate",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "t2.micro",
+            "normalizationSizeFactor": "0.5",
+            "processorArchitecture": "32-bit or 64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "t2.micro",
+        "ram": 1024,
+        "disk": 0,
+        "name": "t2.micro",
+        "bandwidth": None
+    },
+    "i3.4xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "3500 Mbps",
+            "ecu": "53",
+            "vcpu": "16",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances",
+            "instanceFamily": "Storage optimized",
+            "memory": "122 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "storage": "2 x 1.9 NVMe SSD",
+            "tenancy": "Shared",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "USE2-BoxUsage:i3.4xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "i3.4xlarge",
+            "normalizationSizeFactor": "32",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "i3.4xlarge",
+        "ram": 124928,
+        "disk": 2,
+        "name": "i3.4xlarge",
+        "bandwidth": 10
+    },
+    "c4.large": {
+        "extra": {
+            "dedicatedEbsThroughput": "500 Mbps",
+            "ecu": "8",
+            "vcpu": "2",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0004",
+            "instanceFamily": "Compute optimized",
+            "memory": "3.75 GiB",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
+            "storage": "EBS only",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.9 GHz",
+            "usagetype": "APS2-DedicatedUsage:c4.large",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "SQL Std",
+            "capacitystatus": "Used",
+            "instanceType": "c4.large",
+            "normalizationSizeFactor": "4",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "c4.large",
+        "ram": 3840,
+        "disk": 0,
+        "name": "c4.large",
+        "bandwidth": None
+    },
+    "d2.4xlarge": {
+        "extra": {
+            "storage": "12 x 2000 HDD",
+            "ecu": "56",
+            "vcpu": "16",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0102",
+            "instanceFamily": "Storage optimized",
+            "memory": "122 GiB",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2676v3 (Haswell)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.4 GHz",
+            "usagetype": "APN3-DedicatedUsage:d2.4xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "instanceType": "d2.4xlarge",
+            "normalizationSizeFactor": "32",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "d2.4xlarge",
+        "ram": 124928,
+        "disk": 24000,
+        "name": "d2.4xlarge",
+        "bandwidth": None
+    },
+    "i3.xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "850 Mbps",
+            "ecu": "13",
+            "vcpu": "4",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0800",
+            "instanceFamily": "Storage optimized",
+            "memory": "30.5 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "storage": "1 x 0.95 NVMe SSD",
+            "tenancy": "Host",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "APS1-HostBoxUsage:i3.xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "i3.xlarge",
+            "normalizationSizeFactor": "8",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "Bring your own license",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "i3.xlarge",
+        "ram": 31232,
+        "disk": 0,
+        "name": "i3.xlarge",
+        "bandwidth": 10
+    },
+    "c5.xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "Upto 2250 Mbps",
+            "ecu": "16",
+            "vcpu": "4",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0200",
+            "instanceFamily": "Compute optimized",
+            "memory": "8 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
+            "storage": "EBS only",
+            "tenancy": "Dedicated",
+            "clockSpeed": "3.0 Ghz",
+            "usagetype": "EUW2-DedicatedUsage:c5.xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "SQL Web",
+            "capacitystatus": "Used",
+            "instanceType": "c5.xlarge",
+            "normalizationSizeFactor": "8",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "c5.xlarge",
+        "ram": 8192,
+        "disk": 0,
+        "name": "c5.xlarge",
+        "bandwidth": 10
+    },
+    "r3.8xlarge": {
+        "extra": {
+            "storage": "2 x 320 SSD",
+            "ecu": "104",
+            "vcpu": "32",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0010",
+            "instanceFamily": "Memory optimized",
+            "memory": "244 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "Shared",
+            "clockSpeed": "2.5 GHz",
+            "usagetype": "APS3-BoxUsage:r3.8xlarge",
+            "networkPerformance": "10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "r3.8xlarge",
+            "normalizationSizeFactor": "64",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "r3.8xlarge",
+        "ram": 249856,
+        "disk": 640,
+        "name": "r3.8xlarge",
+        "bandwidth": 10
+    },
+    "c5.large": {
+        "extra": {
+            "dedicatedEbsThroughput": "Upto 2250 Mbps",
+            "ecu": "8",
+            "vcpu": "2",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances",
+            "instanceFamily": "Compute optimized",
+            "memory": "4 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
+            "storage": "EBS only",
+            "tenancy": "Shared",
+            "clockSpeed": "3.0 Ghz",
+            "usagetype": "SAE1-BoxUsage:c5.large",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "c5.large",
+            "normalizationSizeFactor": "4",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "c5.large",
+        "ram": 4096,
+        "disk": 0,
+        "name": "c5.large",
+        "bandwidth": 10
+    },
+    "c5.9xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "4500 Mbps",
+            "ecu": "139",
+            "vcpu": "36",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0800",
+            "instanceFamily": "Compute optimized",
+            "memory": "72 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
+            "storage": "EBS only",
+            "tenancy": "Host",
+            "clockSpeed": "3.0 Ghz",
+            "usagetype": "SAE1-HostBoxUsage:c5.9xlarge",
+            "networkPerformance": "10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "c5.9xlarge",
+            "normalizationSizeFactor": "72",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "Bring your own license",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "c5.9xlarge",
+        "ram": 73728,
+        "disk": 0,
+        "name": "c5.9xlarge",
+        "bandwidth": 10
+    },
+    "m4.10xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "4000 Mbps",
+            "ecu": "124.5",
+            "vcpu": "40",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances",
+            "instanceFamily": "General purpose",
+            "memory": "160 GiB",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2676 v3 (Haswell)",
+            "storage": "EBS only",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.4 GHz",
+            "usagetype": "APS3-DedicatedUsage:m4.10xlarge",
+            "networkPerformance": "10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "m4.10xlarge",
+            "normalizationSizeFactor": "80",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "m4.10xlarge",
+        "ram": 163840,
+        "disk": 0,
+        "name": "m4.10xlarge",
+        "bandwidth": 10
+    },
+    "c3.8xlarge": {
+        "extra": {
+            "storage": "2 x 320 SSD",
+            "ecu": "108",
+            "vcpu": "32",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0200",
+            "instanceFamily": "Compute optimized",
+            "memory": "60 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2680 v2 (Ivy Bridge)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.8 GHz",
+            "usagetype": "EU-DedicatedUsage:c3.8xlarge",
+            "networkPerformance": "10 Gigabit",
+            "preInstalledSw": "SQL Web",
+            "capacitystatus": "Used",
+            "instanceType": "c3.8xlarge",
+            "normalizationSizeFactor": "64",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "c3.8xlarge",
+        "ram": 61440,
+        "disk": 640,
+        "name": "c3.8xlarge",
+        "bandwidth": 10
+    },
+    "t2.nano": {
+        "extra": {
+            "ecu": "Variable",
+            "vcpu": "1",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0800",
+            "instanceFamily": "General purpose",
+            "memory": "0.5 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon Family",
+            "storage": "EBS only",
+            "tenancy": "Shared",
+            "clockSpeed": "Up to 3.3 GHz",
+            "usagetype": "EUC1-BoxUsage:t2.nano",
+            "networkPerformance": "Low",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "t2.nano",
+            "normalizationSizeFactor": "0.25",
+            "processorArchitecture": "32-bit or 64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "Bring your own license"
+        },
+        "id": "t2.nano",
+        "ram": 512,
+        "disk": 0,
+        "name": "t2.nano",
+        "bandwidth": None
+    },
+    "c1.xlarge": {
+        "extra": {
+            "ecu": "20",
+            "vcpu": "8",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0002",
+            "instanceFamily": "Compute optimized",
+            "memory": "7 GiB",
+            "physicalProcessor": "Intel Xeon Family",
+            "storage": "4 x 420",
+            "tenancy": "Dedicated",
+            "usagetype": "USW2-DedicatedUsage:c1.xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "c1.xlarge",
+            "normalizationSizeFactor": "8",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "c1.xlarge",
+        "ram": 7168,
+        "disk": 1680,
+        "name": "c1.xlarge",
+        "bandwidth": None
+    },
+    "d2.8xlarge": {
+        "extra": {
+            "storage": "24 x 2000 HDD",
+            "ecu": "116",
+            "vcpu": "36",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0102",
+            "instanceFamily": "Storage optimized",
+            "memory": "244 GiB",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2676v3 (Haswell)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "Host",
+            "clockSpeed": "2.4 GHz",
+            "usagetype": "SAE1-HostBoxUsage:d2.8xlarge",
+            "networkPerformance": "10 Gigabit",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "instanceType": "d2.8xlarge",
+            "normalizationSizeFactor": "64",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "d2.8xlarge",
+        "ram": 249856,
+        "disk": 48000,
+        "name": "d2.8xlarge",
+        "bandwidth": 10
+    },
+    "m1.xlarge": {
+        "extra": {
+            "ecu": "8",
+            "vcpu": "4",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:000g",
+            "instanceFamily": "General purpose",
+            "memory": "15 GiB",
+            "physicalProcessor": "Intel Xeon Family",
+            "storage": "4 x 420",
+            "tenancy": "Shared",
+            "usagetype": "EU-BoxUsage:m1.xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "m1.xlarge",
+            "normalizationSizeFactor": "8",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "m1.xlarge",
+        "ram": 15360,
+        "disk": 1680,
+        "name": "m1.xlarge",
+        "bandwidth": None
+    },
+    "t2.2xlarge": {
+        "extra": {
+            "ecu": "Variable",
+            "vcpu": "8",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0202",
+            "instanceFamily": "General purpose",
+            "memory": "32 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon Family",
+            "storage": "EBS only",
+            "tenancy": "Shared",
+            "clockSpeed": "Up to 3.0 GHz",
+            "usagetype": "USW1-BoxUsage:t2.2xlarge",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "SQL Web",
+            "capacitystatus": "Used",
+            "instanceType": "t2.2xlarge",
+            "normalizationSizeFactor": "16",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "t2.2xlarge",
+        "ram": 32768,
+        "disk": 0,
+        "name": "t2.2xlarge",
+        "bandwidth": None
+    },
+    "d2.xlarge": {
+        "extra": {
+            "storage": "3 x 2000 HDD",
+            "ecu": "14",
+            "vcpu": "4",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0006",
+            "instanceFamily": "Storage optimized",
+            "memory": "30.5 GiB",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2676v3 (Haswell)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "Host",
+            "clockSpeed": "2.4 GHz",
+            "usagetype": "APS3-HostBoxUsage:d2.xlarge",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "SQL Std",
+            "capacitystatus": "Used",
+            "instanceType": "d2.xlarge",
+            "normalizationSizeFactor": "8",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "d2.xlarge",
+        "ram": 31232,
+        "disk": 6000,
+        "name": "d2.xlarge",
+        "bandwidth": None
+    },
+    "i3.8xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "7000 Mbps",
+            "ecu": "99",
+            "vcpu": "32",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0010",
+            "instanceFamily": "Storage optimized",
+            "memory": "244 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "storage": "4 x 1.9 NVMe SSD",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "USE2-DedicatedUsage:i3.8xlarge",
+            "networkPerformance": "10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "i3.8xlarge",
+            "normalizationSizeFactor": "64",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "i3.8xlarge",
+        "ram": 249856,
+        "disk": 4,
+        "name": "i3.8xlarge",
+        "bandwidth": 10
+    },
+    "i3.16xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "14000 Mbps",
+            "ecu": "200",
+            "vcpu": "64",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0004",
+            "instanceFamily": "Storage optimized",
+            "memory": "488 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "storage": "8 x 1.9 NVMe SSD",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "EUW2-DedicatedUsage:i3.16xlarge",
+            "networkPerformance": "20 Gigabit",
+            "preInstalledSw": "SQL Std",
+            "capacitystatus": "Used",
+            "instanceType": "i3.16xlarge",
+            "normalizationSizeFactor": "128",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "i3.16xlarge",
+        "ram": 499712,
+        "disk": 8,
+        "name": "i3.16xlarge",
+        "bandwidth": 20
+    },
+    "m5.24xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "12000 Mbps",
+            "ecu": "345",
+            "vcpu": "96",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0010",
+            "instanceFamily": "General purpose",
+            "memory": "384 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "physicalProcessor": "Intel Xeon Platinum 8175",
+            "storage": "EBS only",
+            "tenancy": "Shared",
+            "clockSpeed": "2.5 GHz",
+            "usagetype": "APS3-BoxUsage:m5.24xlarge",
+            "networkPerformance": "25 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "m5.24xlarge",
+            "normalizationSizeFactor": "192",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "m5.24xlarge",
+        "ram": 393216,
+        "disk": 0,
+        "name": "m5.24xlarge",
+        "bandwidth": 25
+    },
+    "g2.2xlarge": {
+        "extra": {
+            "ecu": "26",
+            "vcpu": "8",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0202",
+            "instanceFamily": "GPU instance",
+            "memory": "15 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "licenseModel": "No License required",
+            "storage": "1 x 60 SSD",
+            "tenancy": "Shared",
+            "clockSpeed": "2.6 GHz",
+            "usagetype": "APS2-BoxUsage:g2.2xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "SQL Web",
+            "capacitystatus": "Used",
+            "physicalProcessor": "Intel Xeon E5-2670 (Sandy Bridge)",
+            "instanceType": "g2.2xlarge",
+            "normalizationSizeFactor": "16",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "gpu": "1"
+        },
+        "id": "g2.2xlarge",
+        "ram": 15360,
+        "disk": 60,
+        "name": "g2.2xlarge",
+        "bandwidth": None
+    },
+    "c3.xlarge": {
+        "extra": {
+            "storage": "2 x 40 SSD",
+            "ecu": "14",
+            "vcpu": "4",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0800",
+            "instanceFamily": "Compute optimized",
+            "memory": "7.5 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2680 v2 (Ivy Bridge)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.8 GHz",
+            "usagetype": "APS1-DedicatedUsage:c3.xlarge",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "c3.xlarge",
+            "normalizationSizeFactor": "8",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "Bring your own license"
+        },
+        "id": "c3.xlarge",
+        "ram": 7680,
+        "disk": 80,
+        "name": "c3.xlarge",
+        "bandwidth": None
+    },
+    "m5.2xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "Upto 2120 Mbps",
+            "ecu": "31",
+            "vcpu": "8",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0200",
+            "instanceFamily": "General purpose",
+            "memory": "32 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "physicalProcessor": "Intel Xeon Platinum 8175",
+            "storage": "EBS only",
+            "tenancy": "Shared",
+            "clockSpeed": "2.5 GHz",
+            "usagetype": "EUW3-BoxUsage:m5.2xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "SQL Web",
+            "capacitystatus": "Used",
+            "instanceType": "m5.2xlarge",
+            "normalizationSizeFactor": "16",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "m5.2xlarge",
+        "ram": 32768,
+        "disk": 0,
+        "name": "m5.2xlarge",
+        "bandwidth": 10
+    },
+    "m1.large": {
+        "extra": {
+            "ecu": "4",
+            "vcpu": "2",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0202",
+            "instanceFamily": "General purpose",
+            "memory": "7.5 GiB",
+            "physicalProcessor": "Intel Xeon Family",
+            "storage": "2 x 420",
+            "tenancy": "Shared",
+            "usagetype": "USW1-BoxUsage:m1.large",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "SQL Web",
+            "capacitystatus": "Used",
+            "instanceType": "m1.large",
+            "normalizationSizeFactor": "4",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "m1.large",
+        "ram": 7680,
+        "disk": 840,
+        "name": "m1.large",
+        "bandwidth": None
+    },
+    "t2.large": {
+        "extra": {
+            "ecu": "Variable",
+            "vcpu": "2",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0800",
+            "instanceFamily": "General purpose",
+            "memory": "8 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon Family",
+            "storage": "EBS only",
+            "tenancy": "Shared",
+            "clockSpeed": "Up to 3.0 GHz",
+            "usagetype": "APS2-BoxUsage:t2.large",
+            "networkPerformance": "Low to Moderate",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "t2.large",
+            "normalizationSizeFactor": "4",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "Bring your own license"
+        },
+        "id": "t2.large",
+        "ram": 8192,
+        "disk": 0,
+        "name": "t2.large",
+        "bandwidth": None
+    },
+    "x1e.16xlarge": {
+        "extra": {
+            "intelTurboAvailable": "Yes",
+            "dedicatedEbsThroughput": "7000 Mbps",
+            "ecu": "179",
+            "vcpu": "64",
+            "currentGeneration": "Yes",
+            "intelAvx2Available": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0100",
+            "instanceFamily": "Memory optimized",
+            "memory": "1,952 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "High Frequency Intel Xeon E7-8880 v3 (Haswell)",
+            "storage": "1 x 1,920",
+            "intelAvxAvailable": "Yes",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "DedicatedUsage:x1e.16xlarge",
+            "networkPerformance": "10 Gigabit",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "instanceType": "x1e.16xlarge",
+            "normalizationSizeFactor": "128",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "x1e.16xlarge",
+        "ram": 1998848,
+        "disk": 1920,
+        "name": "x1e.16xlarge",
+        "bandwidth": 10
+    },
+    "x1e.4xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "1750 Mbps",
+            "ecu": "47",
+            "vcpu": "16",
+            "currentGeneration": "Yes",
+            "intelAvx2Available": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0102",
+            "instanceFamily": "Memory optimized",
+            "memory": "488 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2",
+            "physicalProcessor": "High Frequency Intel Xeon E7-8880 v3 (Haswell)",
+            "storage": "1 x 480",
+            "intelAvxAvailable": "Yes",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "APS2-DedicatedUsage:x1e.4xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "instanceType": "x1e.4xlarge",
+            "normalizationSizeFactor": "32",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "x1e.4xlarge",
+        "ram": 499712,
+        "disk": 480,
+        "name": "x1e.4xlarge",
+        "bandwidth": 10
+    },
+    "i2.8xlarge": {
+        "extra": {
+            "storage": "8 x 800 SSD",
+            "ecu": "104",
+            "vcpu": "32",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0100",
+            "instanceFamily": "Storage optimized",
+            "memory": "244 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.5 GHz",
+            "usagetype": "EU-DedicatedUsage:i2.8xlarge",
+            "networkPerformance": "10 Gigabit",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "instanceType": "i2.8xlarge",
+            "normalizationSizeFactor": "64",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "i2.8xlarge",
+        "ram": 249856,
+        "disk": 6400,
+        "name": "i2.8xlarge",
+        "bandwidth": 10
+    },
+    "p2.16xlarge": {
+        "extra": {
+            "storage": "EBS only",
+            "gpu": "16",
+            "ecu": "188",
+            "vcpu": "64",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0800",
+            "instanceFamily": "GPU instance",
+            "memory": "768 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "APS1-DedicatedUsage:p2.16xlarge",
+            "networkPerformance": "20 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "p2.16xlarge",
+            "normalizationSizeFactor": "128",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "Bring your own license"
+        },
+        "id": "p2.16xlarge",
+        "ram": 786432,
+        "disk": 0,
+        "name": "p2.16xlarge",
+        "bandwidth": 20
+    },
+    "h1.2xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "1600 Mbps",
+            "ecu": "26",
+            "vcpu": "8",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0002",
+            "instanceFamily": "Storage optimized",
+            "memory": "32 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "storage": "1 x 2000 HDD",
+            "tenancy": "Shared",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "USE2-BoxUsage:h1.2xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "h1.2xlarge",
+            "normalizationSizeFactor": "16",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "h1.2xlarge",
+        "ram": 32768,
+        "disk": 2000,
+        "name": "h1.2xlarge",
+        "bandwidth": 10
+    },
+    "m4.2xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "1000 Mbps",
+            "ecu": "26",
+            "vcpu": "8",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0800",
+            "instanceFamily": "General purpose",
+            "memory": "32 GiB",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2676 v3 (Haswell)",
+            "storage": "EBS only",
+            "tenancy": "Host",
+            "clockSpeed": "2.4 GHz",
+            "usagetype": "APN2-HostBoxUsage:m4.2xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "m4.2xlarge",
+            "normalizationSizeFactor": "16",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "Bring your own license",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "m4.2xlarge",
+        "ram": 32768,
+        "disk": 0,
+        "name": "m4.2xlarge",
+        "bandwidth": None
+    },
+    "m4.4xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "2000 Mbps",
+            "ecu": "53.5",
+            "vcpu": "16",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0006",
+            "instanceFamily": "General purpose",
+            "memory": "64 GiB",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2676 v3 (Haswell)",
+            "storage": "EBS only",
+            "tenancy": "Host",
+            "clockSpeed": "2.4 GHz",
+            "usagetype": "SAE1-HostBoxUsage:m4.4xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "SQL Std",
+            "capacitystatus": "Used",
+            "instanceType": "m4.4xlarge",
+            "normalizationSizeFactor": "32",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "m4.4xlarge",
+        "ram": 65536,
+        "disk": 0,
+        "name": "m4.4xlarge",
+        "bandwidth": None
+    },
+    "m5.xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "Upto 2120 Mbps",
+            "ecu": "15",
+            "vcpu": "4",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0102",
+            "instanceFamily": "General purpose",
+            "memory": "16 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "physicalProcessor": "Intel Xeon Platinum 8175",
+            "storage": "EBS only",
+            "tenancy": "Shared",
+            "clockSpeed": "2.5 GHz",
+            "usagetype": "EUW2-BoxUsage:m5.xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "instanceType": "m5.xlarge",
+            "normalizationSizeFactor": "8",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "m5.xlarge",
+        "ram": 16384,
+        "disk": 0,
+        "name": "m5.xlarge",
+        "bandwidth": 10
+    },
+    "g2.8xlarge": {
+        "extra": {
+            "ecu": "104",
+            "vcpu": "32",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0102",
+            "instanceFamily": "GPU instance",
+            "memory": "60 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "licenseModel": "No License required",
+            "storage": "2 x 120 SSD",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.6 GHz",
+            "usagetype": "APS2-DedicatedUsage:g2.8xlarge",
+            "networkPerformance": "10 Gigabit",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "physicalProcessor": "Intel Xeon E5-2670 (Sandy Bridge)",
+            "instanceType": "g2.8xlarge",
+            "normalizationSizeFactor": "64",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "gpu": "4"
+        },
+        "id": "g2.8xlarge",
+        "ram": 61440,
+        "disk": 240,
+        "name": "g2.8xlarge",
+        "bandwidth": 10
+    },
+    "m5.large": {
+        "extra": {
+            "dedicatedEbsThroughput": "Upto 2120 Mbps",
+            "ecu": "10",
+            "vcpu": "2",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0202",
+            "instanceFamily": "General purpose",
+            "memory": "8 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "physicalProcessor": "Intel Xeon Platinum 8175",
+            "storage": "EBS only",
+            "tenancy": "Shared",
+            "clockSpeed": "2.5 GHz",
+            "usagetype": "APS3-BoxUsage:m5.large",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "SQL Web",
+            "capacitystatus": "Used",
+            "instanceType": "m5.large",
+            "normalizationSizeFactor": "4",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "m5.large",
+        "ram": 8192,
+        "disk": 0,
+        "name": "m5.large",
+        "bandwidth": 10
+    },
+    "r3.xlarge": {
+        "extra": {
+            "storage": "1 x 80 SSD",
+            "ecu": "13",
+            "vcpu": "4",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0200",
+            "instanceFamily": "Memory optimized",
+            "memory": "30.5 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "Shared",
+            "clockSpeed": "2.5 GHz",
+            "usagetype": "EUC1-BoxUsage:r3.xlarge",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "SQL Web",
+            "capacitystatus": "Used",
+            "instanceType": "r3.xlarge",
+            "normalizationSizeFactor": "8",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "r3.xlarge",
+        "ram": 31232,
+        "disk": 80,
+        "name": "r3.xlarge",
+        "bandwidth": None
+    },
+    "m3.medium": {
+        "extra": {
+            "ecu": "3",
+            "vcpu": "1",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0002",
+            "instanceFamily": "General purpose",
+            "memory": "3.75 GiB",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge/Sandy Bridge)",
+            "storage": "1 x 4 SSD",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.5 GHz",
+            "usagetype": "DedicatedUsage:m3.medium",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "m3.medium",
+            "normalizationSizeFactor": "2",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "m3.medium",
+        "ram": 3840,
+        "disk": 4,
+        "name": "m3.medium",
+        "bandwidth": None
+    },
+    "cc2.8xlarge": {
+        "extra": {
+            "ecu": "88",
+            "vcpu": "32",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0006",
+            "instanceFamily": "Compute optimized",
+            "memory": "60.5 GiB",
+            "physicalProcessor": "Intel Xeon E5-2670",
+            "storage": "4 x 840",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.6 GHz",
+            "usagetype": "APN1-DedicatedUsage:cc2.8xlarge",
+            "networkPerformance": "10 Gigabit",
+            "preInstalledSw": "SQL Std",
+            "capacitystatus": "Used",
+            "instanceType": "cc2.8xlarge",
+            "normalizationSizeFactor": "64",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "cc2.8xlarge",
+        "ram": 61952,
+        "disk": 3360,
+        "name": "cc2.8xlarge",
+        "bandwidth": 10
+    },
+    "f1.2xlarge": {
+        "extra": {
+            "ecu": "26",
+            "vcpu": "8",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0800",
+            "instanceFamily": "GPU instance",
+            "memory": "122 GiB",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "storage": "EBS only",
+            "tenancy": "Host",
+            "usagetype": "USW2-HostBoxUsage:f1.2xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "f1.2xlarge",
+            "normalizationSizeFactor": "16",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "Bring your own license"
+        },
+        "id": "f1.2xlarge",
+        "ram": 124928,
+        "disk": 0,
+        "name": "f1.2xlarge",
+        "bandwidth": 10
+    },
+    "m2.2xlarge": {
+        "extra": {
+            "ecu": "13",
+            "vcpu": "4",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0006",
+            "instanceFamily": "Memory optimized",
+            "memory": "34.2 GiB",
+            "physicalProcessor": "Intel Xeon Family",
+            "storage": "1 x 850",
+            "tenancy": "Dedicated",
+            "usagetype": "EU-DedicatedUsage:m2.2xlarge",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "SQL Std",
+            "capacitystatus": "Used",
+            "instanceType": "m2.2xlarge",
+            "normalizationSizeFactor": "16",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "m2.2xlarge",
+        "ram": 35020,
+        "disk": 850,
+        "name": "m2.2xlarge",
+        "bandwidth": None
+    },
+    "m1.small": {
+        "extra": {
+            "ecu": "1",
+            "vcpu": "1",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0010",
+            "instanceFamily": "General purpose",
+            "memory": "1.7 GiB",
+            "physicalProcessor": "Intel Xeon Family",
+            "storage": "1 x 160",
+            "tenancy": "Dedicated",
+            "usagetype": "USW1-DedicatedUsage",
+            "networkPerformance": "Low",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "m1.small",
+            "normalizationSizeFactor": "1",
+            "processorArchitecture": "32-bit or 64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "m1.small",
+        "ram": 1740,
+        "disk": 160,
+        "name": "m1.small",
+        "bandwidth": None
+    },
+    "x1e.8xlarge": {
+        "extra": {
+            "intelTurboAvailable": "Yes",
+            "dedicatedEbsThroughput": "3500 Mbps",
+            "ecu": "91",
+            "vcpu": "32",
+            "currentGeneration": "Yes",
+            "intelAvx2Available": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0102",
+            "instanceFamily": "Memory optimized",
+            "memory": "976 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "High Frequency Intel Xeon E7-8880 v3 (Haswell)",
+            "storage": "1 x 960",
+            "intelAvxAvailable": "Yes",
+            "tenancy": "Shared",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "USW2-BoxUsage:x1e.8xlarge",
+            "networkPerformance": "Up to 10 Gigabit",
+            "preInstalledSw": "SQL Ent",
+            "capacitystatus": "Used",
+            "instanceType": "x1e.8xlarge",
+            "normalizationSizeFactor": "64",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "x1e.8xlarge",
+        "ram": 999424,
+        "disk": 960,
+        "name": "x1e.8xlarge",
+        "bandwidth": 10
+    },
+    "g3.8xlarge": {
+        "extra": {
+            "gpu": "2",
+            "intelTurboAvailable": "Yes",
+            "dedicatedEbsThroughput": "7000 Mbps",
+            "ecu": "94",
+            "vcpu": "32",
+            "currentGeneration": "Yes",
+            "intelAvx2Available": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:000g",
+            "instanceFamily": "GPU instance",
+            "memory": "244 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "storage": "EBS only",
+            "intelAvxAvailable": "Yes",
+            "tenancy": "Dedicated",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "APS1-DedicatedUsage:g3.8xlarge",
+            "networkPerformance": "10 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "g3.8xlarge",
+            "normalizationSizeFactor": "64",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "g3.8xlarge",
+        "ram": 249856,
+        "disk": 0,
+        "name": "g3.8xlarge",
+        "bandwidth": 10
+    },
+    "m1.medium": {
+        "extra": {
+            "ecu": "2",
+            "vcpu": "1",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0010",
+            "instanceFamily": "General purpose",
+            "memory": "3.75 GiB",
+            "physicalProcessor": "Intel Xeon Family",
+            "storage": "1 x 410",
+            "tenancy": "Dedicated",
+            "usagetype": "USW1-DedicatedUsage:m1.medium",
+            "networkPerformance": "Moderate",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "m1.medium",
+            "normalizationSizeFactor": "2",
+            "processorArchitecture": "32-bit or 64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required"
+        },
+        "id": "m1.medium",
+        "ram": 3840,
+        "disk": 410,
+        "name": "m1.medium",
+        "bandwidth": None
+    },
+    "r4.16xlarge": {
+        "extra": {
+            "dedicatedEbsThroughput": "12000 Mbps",
+            "ecu": "195",
+            "vcpu": "64",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0010",
+            "instanceFamily": "Memory optimized",
+            "memory": "488 GiB",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "storage": "EBS only",
+            "tenancy": "Host",
+            "clockSpeed": "2.3 GHz",
+            "usagetype": "SAE1-HostBoxUsage:r4.16xlarge",
+            "networkPerformance": "20 Gigabit",
+            "preInstalledSw": "NA",
+            "capacitystatus": "Used",
+            "instanceType": "r4.16xlarge",
+            "normalizationSizeFactor": "128",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "No License required",
+            "enhancedNetworkingSupported": "Yes"
+        },
+        "id": "r4.16xlarge",
+        "ram": 499712,
+        "disk": 0,
+        "name": "r4.16xlarge",
+        "bandwidth": 20
+    },
+    "d2.2xlarge": {
+        "extra": {
+            "storage": "6 x 2000 HDD",
+            "ecu": "28",
+            "vcpu": "8",
+            "currentGeneration": "Yes",
+            "servicecode": "AmazonEC2",
+            "operation": "Hourly",
+            "instanceFamily": "Storage optimized",
+            "memory": "61 GiB",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "physicalProcessor": "Intel Xeon E5-2676v3 (Haswell)",
+            "enhancedNetworkingSupported": "Yes",
+            "tenancy": "NA",
+            "clockSpeed": "2.4 GHz",
+            "usagetype": "APN2-EBSOptimized:d2.2xlarge",
+            "networkPerformance": "High",
+            "preInstalledSw": "NA",
+            "capacitystatus": "NA",
+            "instanceType": "d2.2xlarge",
+            "normalizationSizeFactor": "16",
+            "processorArchitecture": "64-bit",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "licenseModel": "NA"
+        },
+        "id": "d2.2xlarge",
+        "ram": 62464,
+        "disk": 12000,
+        "name": "d2.2xlarge",
+        "bandwidth": None
+    },
+    "t1.micro": {
+        "extra": {
+            "ecu": "Variable",
+            "vcpu": "1",
+            "currentGeneration": "No",
+            "servicecode": "AmazonEC2",
+            "operation": "RunInstances:0202",
+            "instanceFamily": "Micro instances",
+            "memory": "0.613 GiB",
+            "physicalProcessor": "Variable",
+            "storage": "EBS only",
+            "tenancy": "Shared",
+            "usagetype": "BoxUsage:t1.micro",
+            "networkPerformance": "Very Low",
+            "preInstalledSw": "SQL Web",
+            "capacitystatus": "Us

<TRUNCATED>

[09/10] libcloud git commit: Make scraped EC2 sizes deterministic

Posted by qu...@apache.org.
Make scraped EC2 sizes deterministic


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/384e4233
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/384e4233
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/384e4233

Branch: refs/heads/trunk
Commit: 384e42336e073594acccb5ad1c0e873830c9a06c
Parents: 91e7e00
Author: Quentin Pradet <qu...@apache.org>
Authored: Fri Jun 29 10:08:20 2018 +0400
Committer: Quentin Pradet <qu...@apache.org>
Committed: Fri Jun 29 12:05:30 2018 +0400

----------------------------------------------------------------------
 contrib/scrap-ec2-sizes.py    |   16 +-
 libcloud/compute/constants.py | 5575 +++++++++++++++++-------------------
 2 files changed, 2671 insertions(+), 2920 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/384e4233/contrib/scrap-ec2-sizes.py
----------------------------------------------------------------------
diff --git a/contrib/scrap-ec2-sizes.py b/contrib/scrap-ec2-sizes.py
index 992000e..0a0f4ff 100755
--- a/contrib/scrap-ec2-sizes.py
+++ b/contrib/scrap-ec2-sizes.py
@@ -204,6 +204,16 @@ def get_json():
         return download_json()
 
 
+def filter_extras(extras):
+    return {
+        key: extras[key] for key in extras
+        if key not in [
+            'capacitystatus', 'ebsOptimized', 'operation', 'licenseModel',
+            'preInstalledSw', 'tenancy', 'usagetype'
+        ]
+    }
+
+
 def parse():
     # Set vars
     sizes = {}
@@ -244,7 +254,7 @@ def parse():
                 'name': instance_type,
                 'ram': ram,
                 'bandwidth': bandwidth,
-                'extra': products_data[sku]['attributes'],
+                'extra': filter_extras(products_data[sku]['attributes']),
             }
             if products_data[sku]['attributes'].get('storage') != "EBS only":
                 disk_number, disk_size = REG_STORAGE.match(
@@ -263,8 +273,8 @@ def parse():
 def dump():
     sizes, regions = parse()
     print("# File generated by script")
-    print("INSTANCE_TYPES = " + json.dumps(sizes, indent=4).replace('null', 'None'))
-    print("REGION_DETAILS = " + json.dumps(regions, indent=4))
+    print("INSTANCE_TYPES = " + json.dumps(sizes, indent=4, sort_keys=True).replace('null', 'None'))
+    print("REGION_DETAILS = " + json.dumps(regions, indent=4, sort_keys=True))
 
 
 if __name__ == '__main__':


[08/10] libcloud git commit: Make scraped EC2 sizes deterministic

Posted by qu...@apache.org.
http://git-wip-us.apache.org/repos/asf/libcloud/blob/384e4233/libcloud/compute/constants.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/constants.py b/libcloud/compute/constants.py
index f889f82..d87f13c 100644
--- a/libcloud/compute/constants.py
+++ b/libcloud/compute/constants.py
@@ -1,3417 +1,2908 @@
 # File generated by script
 INSTANCE_TYPES = {
-    "p3.16xlarge": {
+    "c1.medium": {
+        "bandwidth": None,
+        "disk": 350,
         "extra": {
-            "gpu": "8",
-            "dedicatedEbsThroughput": "14000 Mbps",
-            "ecu": "188",
-            "vcpu": "64",
-            "currentGeneration": "Yes",
+            "currentGeneration": "No",
+            "ecu": "5",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c1.medium",
+            "memory": "1.7 GiB",
+            "networkPerformance": "Moderate",
+            "normalizationSizeFactor": "2",
+            "physicalProcessor": "Intel Xeon Family",
+            "processorArchitecture": "32-bit or 64-bit",
             "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0010",
-            "instanceFamily": "GPU instance",
-            "memory": "488 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
-            "storage": "EBS only",
-            "tenancy": "Dedicated",
-            "clockSpeed": "2.3 GHz",
-            "usagetype": "UGW1-DedicatedUsage:p3.16xlarge",
-            "networkPerformance": "25 Gigabit",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "p3.16xlarge",
-            "normalizationSizeFactor": "128",
-            "processorArchitecture": "64-bit",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "1 x 350",
+            "vcpu": "2"
         },
-        "id": "p3.16xlarge",
-        "ram": 499712,
-        "disk": 0,
-        "name": "p3.16xlarge",
-        "bandwidth": 25
+        "id": "c1.medium",
+        "name": "c1.medium",
+        "ram": 1740
     },
-    "c5.4xlarge": {
+    "c1.xlarge": {
+        "bandwidth": None,
+        "disk": 1680,
         "extra": {
-            "dedicatedEbsThroughput": "Upto 2250 Mbps",
-            "ecu": "62",
-            "vcpu": "16",
-            "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances",
+            "currentGeneration": "No",
+            "ecu": "20",
             "instanceFamily": "Compute optimized",
-            "memory": "32 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
-            "physicalProcessor": "Intel Xeon Platinum 8124M",
-            "storage": "EBS only",
-            "tenancy": "Dedicated",
-            "clockSpeed": "3.0 Ghz",
-            "usagetype": "EUW2-DedicatedUsage:c5.4xlarge",
-            "networkPerformance": "Up to 10 Gigabit",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "c5.4xlarge",
-            "normalizationSizeFactor": "32",
+            "instanceType": "c1.xlarge",
+            "memory": "7 GiB",
+            "networkPerformance": "High",
+            "normalizationSizeFactor": "8",
+            "physicalProcessor": "Intel Xeon Family",
             "processorArchitecture": "64-bit",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "4 x 420",
+            "vcpu": "8"
         },
-        "id": "c5.4xlarge",
-        "ram": 32768,
-        "disk": 0,
-        "name": "c5.4xlarge",
-        "bandwidth": 10
+        "id": "c1.xlarge",
+        "name": "c1.xlarge",
+        "ram": 7168
     },
-    "t2.xlarge": {
+    "c3.2xlarge": {
+        "bandwidth": None,
+        "disk": 160,
         "extra": {
-            "ecu": "Variable",
-            "vcpu": "4",
-            "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances",
-            "instanceFamily": "General purpose",
-            "memory": "16 GiB",
-            "processorFeatures": "Intel AVX; Intel Turbo",
-            "physicalProcessor": "Intel Xeon Family",
-            "storage": "EBS only",
-            "tenancy": "Shared",
-            "clockSpeed": "Up to 3.0 GHz",
-            "usagetype": "USE2-BoxUsage:t2.xlarge",
-            "networkPerformance": "Moderate",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "t2.xlarge",
-            "normalizationSizeFactor": "8",
+            "clockSpeed": "2.8 GHz",
+            "currentGeneration": "No",
+            "ecu": "28",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c3.2xlarge",
+            "memory": "15 GiB",
+            "networkPerformance": "High",
+            "normalizationSizeFactor": "16",
+            "physicalProcessor": "Intel Xeon E5-2680 v2 (Ivy Bridge)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "2 x 80 SSD",
+            "vcpu": "8"
         },
-        "id": "t2.xlarge",
-        "ram": 16384,
-        "disk": 0,
-        "name": "t2.xlarge",
-        "bandwidth": None
+        "id": "c3.2xlarge",
+        "name": "c3.2xlarge",
+        "ram": 15360
     },
-    "hs1.8xlarge": {
+    "c3.4xlarge": {
+        "bandwidth": None,
+        "disk": 320,
         "extra": {
-            "ecu": "35",
-            "vcpu": "17",
+            "clockSpeed": "2.8 GHz",
             "currentGeneration": "No",
+            "ecu": "55",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c3.4xlarge",
+            "memory": "30 GiB",
+            "networkPerformance": "High",
+            "normalizationSizeFactor": "32",
+            "physicalProcessor": "Intel Xeon E5-2680 v2 (Ivy Bridge)",
+            "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel Turbo",
             "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0006",
-            "instanceFamily": "Storage optimized",
-            "memory": "117 GiB",
-            "physicalProcessor": "Intel Xeon E5-2650",
-            "storage": "24 x 2000",
-            "tenancy": "Dedicated",
-            "clockSpeed": "2 GHz",
-            "usagetype": "APS2-DedicatedUsage:hs1.8xlarge",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "storage": "2 x 160 SSD",
+            "vcpu": "16"
+        },
+        "id": "c3.4xlarge",
+        "name": "c3.4xlarge",
+        "ram": 30720
+    },
+    "c3.8xlarge": {
+        "bandwidth": 10,
+        "disk": 640,
+        "extra": {
+            "clockSpeed": "2.8 GHz",
+            "currentGeneration": "No",
+            "ecu": "108",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c3.8xlarge",
+            "memory": "60 GiB",
             "networkPerformance": "10 Gigabit",
-            "preInstalledSw": "SQL Std",
-            "capacitystatus": "Used",
-            "instanceType": "hs1.8xlarge",
             "normalizationSizeFactor": "64",
+            "physicalProcessor": "Intel Xeon E5-2680 v2 (Ivy Bridge)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "2 x 320 SSD",
+            "vcpu": "32"
         },
-        "id": "hs1.8xlarge",
-        "ram": 119808,
-        "disk": 48000,
-        "name": "hs1.8xlarge",
-        "bandwidth": 10
+        "id": "c3.8xlarge",
+        "name": "c3.8xlarge",
+        "ram": 61440
     },
-    "i2.xlarge": {
+    "c3.large": {
+        "bandwidth": None,
+        "disk": 32,
         "extra": {
-            "storage": "1 x 800 SSD",
-            "ecu": "14",
-            "vcpu": "4",
+            "clockSpeed": "2.8 GHz",
             "currentGeneration": "No",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0202",
-            "instanceFamily": "Storage optimized",
-            "memory": "30.5 GiB",
+            "ecu": "7",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c3.large",
+            "memory": "3.75 GiB",
+            "networkPerformance": "Moderate",
+            "normalizationSizeFactor": "4",
+            "physicalProcessor": "Intel Xeon E5-2680 v2 (Ivy Bridge)",
+            "processorArchitecture": "32-bit or 64-bit",
             "processorFeatures": "Intel AVX; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
+            "servicecode": "AmazonEC2",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "storage": "2 x 16 SSD",
+            "vcpu": "2"
+        },
+        "id": "c3.large",
+        "name": "c3.large",
+        "ram": 3840
+    },
+    "c3.xlarge": {
+        "bandwidth": None,
+        "disk": 80,
+        "extra": {
+            "clockSpeed": "2.8 GHz",
+            "currentGeneration": "No",
+            "ecu": "14",
             "enhancedNetworkingSupported": "Yes",
-            "tenancy": "Host",
-            "clockSpeed": "2.5 GHz",
-            "usagetype": "APS3-HostBoxUsage:i2.xlarge",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c3.xlarge",
+            "memory": "7.5 GiB",
             "networkPerformance": "Moderate",
-            "preInstalledSw": "SQL Web",
-            "capacitystatus": "Used",
-            "instanceType": "i2.xlarge",
             "normalizationSizeFactor": "8",
+            "physicalProcessor": "Intel Xeon E5-2680 v2 (Ivy Bridge)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "2 x 40 SSD",
+            "vcpu": "4"
         },
-        "id": "i2.xlarge",
-        "ram": 31232,
-        "disk": 800,
-        "name": "i2.xlarge",
-        "bandwidth": None
+        "id": "c3.xlarge",
+        "name": "c3.xlarge",
+        "ram": 7680
     },
-    "c5.2xlarge": {
+    "c4.2xlarge": {
+        "bandwidth": None,
+        "disk": 0,
         "extra": {
-            "dedicatedEbsThroughput": "Upto 2250 Mbps",
-            "ecu": "31",
-            "vcpu": "8",
+            "clockSpeed": "2.9 GHz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0100",
+            "dedicatedEbsThroughput": "1000 Mbps",
+            "ecu": "31",
+            "enhancedNetworkingSupported": "Yes",
             "instanceFamily": "Compute optimized",
-            "memory": "16 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
-            "physicalProcessor": "Intel Xeon Platinum 8124M",
-            "storage": "EBS only",
-            "tenancy": "Shared",
-            "clockSpeed": "3.0 Ghz",
-            "usagetype": "EUW2-BoxUsage:c5.2xlarge",
-            "networkPerformance": "Up to 10 Gigabit",
-            "preInstalledSw": "SQL Ent",
-            "capacitystatus": "Used",
-            "instanceType": "c5.2xlarge",
+            "instanceType": "c4.2xlarge",
+            "memory": "15 GiB",
+            "networkPerformance": "High",
             "normalizationSizeFactor": "16",
+            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "EBS only",
+            "vcpu": "8"
         },
-        "id": "c5.2xlarge",
-        "ram": 16384,
-        "disk": 0,
-        "name": "c5.2xlarge",
-        "bandwidth": 10
+        "id": "c4.2xlarge",
+        "name": "c4.2xlarge",
+        "ram": 15360
     },
-    "x1.32xlarge": {
+    "c4.4xlarge": {
+        "bandwidth": None,
+        "disk": 0,
         "extra": {
-            "storage": "2 x 1,920",
-            "intelTurboAvailable": "Yes",
-            "ecu": "349",
-            "vcpu": "128",
+            "clockSpeed": "2.9 GHz",
             "currentGeneration": "Yes",
-            "intelAvx2Available": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:000g",
-            "instanceFamily": "Memory optimized",
-            "memory": "1,952 GiB",
-            "physicalProcessor": "High Frequency Intel Xeon E7-8880 v3 (Haswell)",
+            "dedicatedEbsThroughput": "2000 Mbps",
+            "ecu": "62",
             "enhancedNetworkingSupported": "Yes",
-            "intelAvxAvailable": "Yes",
-            "tenancy": "Dedicated",
-            "clockSpeed": "2.3 GHz",
-            "usagetype": "EUW2-DedicatedUsage:x1.32xlarge",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c4.4xlarge",
+            "memory": "30 GiB",
             "networkPerformance": "High",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "x1.32xlarge",
-            "normalizationSizeFactor": "256",
+            "normalizationSizeFactor": "32",
+            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "EBS only",
+            "vcpu": "16"
         },
-        "id": "x1.32xlarge",
-        "ram": 1998848,
-        "disk": 3840,
-        "name": "x1.32xlarge",
-        "bandwidth": None
+        "id": "c4.4xlarge",
+        "name": "c4.4xlarge",
+        "ram": 30720
     },
-    "x1e.2xlarge": {
+    "c4.8xlarge": {
+        "bandwidth": 10,
+        "disk": 0,
         "extra": {
-            "dedicatedEbsThroughput": "1000 Mbps",
-            "ecu": "23",
-            "vcpu": "8",
+            "clockSpeed": "2.9 GHz",
             "currentGeneration": "Yes",
-            "intelAvx2Available": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0100",
-            "instanceFamily": "Memory optimized",
-            "memory": "244 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2",
-            "physicalProcessor": "High Frequency Intel Xeon E7-8880 v3 (Haswell)",
-            "storage": "1 x 240",
-            "intelAvxAvailable": "Yes",
-            "tenancy": "Host",
-            "clockSpeed": "2.3 GHz",
-            "usagetype": "APS2-HostBoxUsage:x1e.2xlarge",
-            "networkPerformance": "Up to 10 Gigabit",
-            "preInstalledSw": "SQL Ent",
-            "capacitystatus": "Used",
-            "instanceType": "x1e.2xlarge",
-            "normalizationSizeFactor": "16",
+            "dedicatedEbsThroughput": "4000 Mbps",
+            "ecu": "132",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c4.8xlarge",
+            "memory": "60 GiB",
+            "networkPerformance": "10 Gigabit",
+            "normalizationSizeFactor": "64",
+            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "EBS only",
+            "vcpu": "36"
         },
-        "id": "x1e.2xlarge",
-        "ram": 249856,
-        "disk": 240,
-        "name": "x1e.2xlarge",
-        "bandwidth": 10
+        "id": "c4.8xlarge",
+        "name": "c4.8xlarge",
+        "ram": 61440
     },
-    "i3.2xlarge": {
+    "c4.large": {
+        "bandwidth": None,
+        "disk": 0,
         "extra": {
-            "dedicatedEbsThroughput": "1750 Mbps",
-            "ecu": "27",
-            "vcpu": "8",
+            "clockSpeed": "2.9 GHz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0100",
-            "instanceFamily": "Storage optimized",
-            "memory": "61 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
-            "storage": "1 x 1.9 NVMe SSD",
-            "tenancy": "Shared",
-            "clockSpeed": "2.3 GHz",
-            "usagetype": "APS2-BoxUsage:i3.2xlarge",
-            "networkPerformance": "Up to 10 Gigabit",
-            "preInstalledSw": "SQL Ent",
-            "capacitystatus": "Used",
-            "instanceType": "i3.2xlarge",
-            "normalizationSizeFactor": "16",
+            "dedicatedEbsThroughput": "500 Mbps",
+            "ecu": "8",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c4.large",
+            "memory": "3.75 GiB",
+            "networkPerformance": "Moderate",
+            "normalizationSizeFactor": "4",
+            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "EBS only",
+            "vcpu": "2"
         },
-        "id": "i3.2xlarge",
-        "ram": 62464,
-        "disk": 1,
-        "name": "i3.2xlarge",
-        "bandwidth": 10
+        "id": "c4.large",
+        "name": "c4.large",
+        "ram": 3840
     },
-    "i2.4xlarge": {
+    "c4.xlarge": {
+        "bandwidth": None,
+        "disk": 0,
         "extra": {
-            "ebsOptimized": "Yes",
-            "ecu": "53",
-            "vcpu": "16",
-            "currentGeneration": "No",
-            "servicecode": "AmazonEC2",
-            "operation": "Hourly",
-            "instanceFamily": "Storage optimized",
-            "memory": "122 GiB",
-            "processorFeatures": "Intel AVX; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
-            "storage": "4 x 800 SSD",
-            "tenancy": "NA",
-            "clockSpeed": "2.5 GHz",
-            "usagetype": "APS3-EBSOptimized:i2.4xlarge",
+            "clockSpeed": "2.9 GHz",
+            "currentGeneration": "Yes",
+            "dedicatedEbsThroughput": "750 Mbps",
+            "ecu": "16",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c4.xlarge",
+            "memory": "7.5 GiB",
             "networkPerformance": "High",
-            "preInstalledSw": "NA",
-            "capacitystatus": "NA",
-            "instanceType": "i2.4xlarge",
-            "normalizationSizeFactor": "32",
+            "normalizationSizeFactor": "8",
+            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "NA",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "EBS only",
+            "vcpu": "4"
         },
-        "id": "i2.4xlarge",
-        "ram": 124928,
-        "disk": 3200,
-        "name": "i2.4xlarge",
-        "bandwidth": None
+        "id": "c4.xlarge",
+        "name": "c4.xlarge",
+        "ram": 7680
     },
-    "c4.8xlarge": {
+    "c5.18xlarge": {
+        "bandwidth": 25,
+        "disk": 0,
         "extra": {
-            "dedicatedEbsThroughput": "4000 Mbps",
-            "ecu": "132",
-            "vcpu": "36",
+            "clockSpeed": "3.0 Ghz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0002",
+            "dedicatedEbsThroughput": "9000 Mbps",
+            "ecu": "281",
+            "enhancedNetworkingSupported": "Yes",
             "instanceFamily": "Compute optimized",
-            "memory": "60 GiB",
-            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
-            "storage": "EBS only",
-            "tenancy": "Host",
-            "clockSpeed": "2.9 GHz",
-            "usagetype": "EUC1-HostBoxUsage:c4.8xlarge",
-            "networkPerformance": "10 Gigabit",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "c4.8xlarge",
-            "normalizationSizeFactor": "64",
+            "instanceType": "c5.18xlarge",
+            "memory": "144 GiB",
+            "networkPerformance": "25 Gigabit",
+            "normalizationSizeFactor": "144",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "EBS only",
+            "vcpu": "72"
         },
-        "id": "c4.8xlarge",
-        "ram": 61440,
-        "disk": 0,
-        "name": "c4.8xlarge",
-        "bandwidth": 10
+        "id": "c5.18xlarge",
+        "name": "c5.18xlarge",
+        "ram": 147456
     },
-    "r4.xlarge": {
+    "c5.2xlarge": {
+        "bandwidth": 10,
+        "disk": 0,
         "extra": {
-            "dedicatedEbsThroughput": "800 Mbps",
-            "ecu": "13.5",
-            "vcpu": "4",
+            "clockSpeed": "3.0 Ghz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0002",
-            "instanceFamily": "Memory optimized",
-            "memory": "30.5 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
-            "storage": "EBS only",
-            "tenancy": "Shared",
-            "clockSpeed": "2.3 GHz",
-            "usagetype": "APN3-BoxUsage:r4.xlarge",
+            "dedicatedEbsThroughput": "Upto 2250 Mbps",
+            "ecu": "34",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c5.2xlarge",
+            "memory": "16 GiB",
             "networkPerformance": "Up to 10 Gigabit",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "r4.xlarge",
-            "normalizationSizeFactor": "8",
+            "normalizationSizeFactor": "16",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "EBS only",
+            "vcpu": "8"
         },
-        "id": "r4.xlarge",
-        "ram": 31232,
-        "disk": 0,
-        "name": "r4.xlarge",
-        "bandwidth": 10
+        "id": "c5.2xlarge",
+        "name": "c5.2xlarge",
+        "ram": 16384
     },
-    "m4.large": {
+    "c5.4xlarge": {
+        "bandwidth": 10,
+        "disk": 0,
         "extra": {
-            "dedicatedEbsThroughput": "450 Mbps",
-            "ecu": "6.5",
-            "vcpu": "2",
+            "clockSpeed": "3.0 Ghz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0102",
-            "instanceFamily": "General purpose",
-            "memory": "8 GiB",
-            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2676 v3 (Haswell)",
-            "storage": "EBS only",
-            "tenancy": "Host",
-            "clockSpeed": "2.4 GHz",
-            "usagetype": "USW1-HostBoxUsage:m4.large",
-            "networkPerformance": "Moderate",
-            "preInstalledSw": "SQL Ent",
-            "capacitystatus": "Used",
-            "instanceType": "m4.large",
-            "normalizationSizeFactor": "4",
+            "dedicatedEbsThroughput": "Upto 2250 Mbps",
+            "ecu": "68",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c5.4xlarge",
+            "memory": "32 GiB",
+            "networkPerformance": "Up to 10 Gigabit",
+            "normalizationSizeFactor": "32",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "EBS only",
+            "vcpu": "16"
         },
-        "id": "m4.large",
-        "ram": 8192,
-        "disk": 0,
-        "name": "m4.large",
-        "bandwidth": None
+        "id": "c5.4xlarge",
+        "name": "c5.4xlarge",
+        "ram": 32768
     },
-    "cr1.8xlarge": {
+    "c5.9xlarge": {
+        "bandwidth": 10,
+        "disk": 0,
         "extra": {
-            "ecu": "88",
-            "vcpu": "32",
-            "currentGeneration": "No",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0202",
-            "instanceFamily": "Memory optimized",
-            "memory": "244 GiB",
-            "physicalProcessor": "Intel Xeon E5-2670",
-            "storage": "2 x 120 SSD",
-            "tenancy": "Shared",
-            "usagetype": "APN1-BoxUsage:cr1.8xlarge",
+            "clockSpeed": "3.0 Ghz",
+            "currentGeneration": "Yes",
+            "dedicatedEbsThroughput": "4500 Mbps",
+            "ecu": "141",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c5.9xlarge",
+            "memory": "72 GiB",
             "networkPerformance": "10 Gigabit",
-            "preInstalledSw": "SQL Web",
-            "capacitystatus": "Used",
-            "instanceType": "cr1.8xlarge",
-            "normalizationSizeFactor": "64",
+            "normalizationSizeFactor": "72",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "EBS only",
+            "vcpu": "36"
         },
-        "id": "cr1.8xlarge",
-        "ram": 249856,
-        "disk": 240,
-        "name": "cr1.8xlarge",
-        "bandwidth": 10
+        "id": "c5.9xlarge",
+        "name": "c5.9xlarge",
+        "ram": 73728
     },
-    "m5.4xlarge": {
+    "c5.large": {
+        "bandwidth": 10,
+        "disk": 0,
         "extra": {
-            "dedicatedEbsThroughput": "2120 Mbps",
-            "ecu": "61",
-            "vcpu": "16",
+            "clockSpeed": "3.0 Ghz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0100",
-            "instanceFamily": "General purpose",
-            "memory": "64 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
-            "physicalProcessor": "Intel Xeon Platinum 8175",
-            "storage": "EBS only",
-            "tenancy": "Host",
-            "clockSpeed": "2.5 GHz",
-            "usagetype": "EU-HostBoxUsage:m5.4xlarge",
+            "dedicatedEbsThroughput": "Upto 2250 Mbps",
+            "ecu": "9",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c5.large",
+            "memory": "4 GiB",
             "networkPerformance": "Up to 10 Gigabit",
-            "preInstalledSw": "SQL Ent",
-            "capacitystatus": "Used",
-            "instanceType": "m5.4xlarge",
-            "normalizationSizeFactor": "32",
+            "normalizationSizeFactor": "4",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "EBS only",
+            "vcpu": "2"
         },
-        "id": "m5.4xlarge",
-        "ram": 65536,
-        "disk": 0,
-        "name": "m5.4xlarge",
-        "bandwidth": 10
+        "id": "c5.large",
+        "name": "c5.large",
+        "ram": 4096
     },
-    "r3.large": {
+    "c5.xlarge": {
+        "bandwidth": 10,
+        "disk": 0,
         "extra": {
-            "storage": "1 x 32 SSD",
-            "ecu": "6.5",
-            "vcpu": "2",
+            "clockSpeed": "3.0 Ghz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0002",
-            "instanceFamily": "Memory optimized",
-            "memory": "15.25 GiB",
-            "processorFeatures": "Intel AVX; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
+            "dedicatedEbsThroughput": "Upto 2250 Mbps",
+            "ecu": "17",
             "enhancedNetworkingSupported": "Yes",
-            "tenancy": "Dedicated",
-            "clockSpeed": "2.5 GHz",
-            "usagetype": "USE2-DedicatedUsage:r3.large",
-            "networkPerformance": "Moderate",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "r3.large",
-            "normalizationSizeFactor": "4",
-            "processorArchitecture": "64-bit",
-            "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
-        },
-        "id": "r3.large",
-        "ram": 15616,
-        "disk": 32,
-        "name": "r3.large",
-        "bandwidth": None
-    },
-    "c4.2xlarge": {
-        "extra": {
-            "dedicatedEbsThroughput": "1000 Mbps",
-            "ecu": "31",
-            "vcpu": "8",
-            "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0100",
             "instanceFamily": "Compute optimized",
-            "memory": "15 GiB",
-            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
-            "storage": "EBS only",
-            "tenancy": "Host",
-            "clockSpeed": "2.9 GHz",
-            "usagetype": "APN2-HostBoxUsage:c4.2xlarge",
-            "networkPerformance": "High",
-            "preInstalledSw": "SQL Ent",
-            "capacitystatus": "Used",
-            "instanceType": "c4.2xlarge",
-            "normalizationSizeFactor": "16",
+            "instanceType": "c5.xlarge",
+            "memory": "8 GiB",
+            "networkPerformance": "Up to 10 Gigabit",
+            "normalizationSizeFactor": "8",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "EBS only",
+            "vcpu": "4"
         },
-        "id": "c4.2xlarge",
-        "ram": 15360,
-        "disk": 0,
-        "name": "c4.2xlarge",
-        "bandwidth": None
+        "id": "c5.xlarge",
+        "name": "c5.xlarge",
+        "ram": 8192
     },
-    "c4.xlarge": {
+    "c5d.18xlarge": {
+        "bandwidth": 25,
+        "disk": 1800,
         "extra": {
-            "dedicatedEbsThroughput": "750 Mbps",
-            "ecu": "16",
-            "vcpu": "4",
+            "clockSpeed": "3.0 Ghz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0002",
+            "dedicatedEbsThroughput": "9000 Mbps",
+            "ecu": "281",
+            "enhancedNetworkingSupported": "Yes",
             "instanceFamily": "Compute optimized",
-            "memory": "7.5 GiB",
-            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
-            "storage": "EBS only",
-            "tenancy": "Host",
-            "clockSpeed": "2.9 GHz",
-            "usagetype": "APS1-HostBoxUsage:c4.xlarge",
-            "networkPerformance": "High",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "c4.xlarge",
-            "normalizationSizeFactor": "8",
+            "instanceType": "c5d.18xlarge",
+            "memory": "144 GiB",
+            "networkPerformance": "25 Gigabit",
+            "normalizationSizeFactor": "144",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "1 x 1800 NVMe SSD",
+            "vcpu": "72"
         },
-        "id": "c4.xlarge",
-        "ram": 7680,
-        "disk": 0,
-        "name": "c4.xlarge",
-        "bandwidth": None
+        "id": "c5d.18xlarge",
+        "name": "c5d.18xlarge",
+        "ram": 147456
     },
-    "r3.2xlarge": {
+    "c5d.2xlarge": {
+        "bandwidth": 10,
+        "disk": 200,
         "extra": {
-            "storage": "1 x 160 SSD",
-            "ecu": "26",
-            "vcpu": "8",
+            "clockSpeed": "3.0 Ghz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0006",
-            "instanceFamily": "Memory optimized",
-            "memory": "61 GiB",
-            "processorFeatures": "Intel AVX; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
+            "dedicatedEbsThroughput": "Upto 2250 Mbps",
+            "ecu": "34",
             "enhancedNetworkingSupported": "Yes",
-            "tenancy": "Shared",
-            "clockSpeed": "2.5 GHz",
-            "usagetype": "APS3-BoxUsage:r3.2xlarge",
-            "networkPerformance": "High",
-            "preInstalledSw": "SQL Std",
-            "capacitystatus": "Used",
-            "instanceType": "r3.2xlarge",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c5d.2xlarge",
+            "memory": "16 GiB",
+            "networkPerformance": "Up to 10 Gigabit",
             "normalizationSizeFactor": "16",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
             "processorArchitecture": "64-bit",
-            "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
-        },
-        "id": "r3.2xlarge",
-        "ram": 62464,
-        "disk": 160,
-        "name": "r3.2xlarge",
-        "bandwidth": None
-    },
-    "i2.2xlarge": {
-        "extra": {
-            "storage": "2 x 800 SSD",
-            "ecu": "27",
-            "vcpu": "8",
-            "currentGeneration": "No",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
             "servicecode": "AmazonEC2",
-            "operation": "RunInstances",
-            "instanceFamily": "Storage optimized",
-            "memory": "61 GiB",
-            "processorFeatures": "Intel AVX; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
-            "enhancedNetworkingSupported": "Yes",
-            "tenancy": "Dedicated",
-            "clockSpeed": "2.5 GHz",
-            "usagetype": "DedicatedUsage:i2.2xlarge",
-            "networkPerformance": "High",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "i2.2xlarge",
-            "normalizationSizeFactor": "16",
-            "processorArchitecture": "64-bit",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "1 x 200 NVMe SSD",
+            "vcpu": "8"
         },
-        "id": "i2.2xlarge",
-        "ram": 62464,
-        "disk": 1600,
-        "name": "i2.2xlarge",
-        "bandwidth": None
+        "id": "c5d.2xlarge",
+        "name": "c5d.2xlarge",
+        "ram": 16384
     },
-    "r4.4xlarge": {
+    "c5d.4xlarge": {
+        "bandwidth": 10,
+        "disk": 400,
         "extra": {
-            "dedicatedEbsThroughput": "3000 Mbps",
-            "ecu": "53",
-            "vcpu": "16",
+            "clockSpeed": "3.0 Ghz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances",
-            "instanceFamily": "Memory optimized",
-            "memory": "122 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
-            "storage": "EBS only",
-            "tenancy": "Dedicated",
-            "clockSpeed": "2.3 GHz",
-            "usagetype": "USW2-DedicatedUsage:r4.4xlarge",
+            "dedicatedEbsThroughput": "Upto 2250 Mbps",
+            "ecu": "68",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c5d.4xlarge",
+            "memory": "32 GiB",
             "networkPerformance": "Up to 10 Gigabit",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "r4.4xlarge",
             "normalizationSizeFactor": "32",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "1 x 400 NVMe SSD",
+            "vcpu": "16"
         },
-        "id": "r4.4xlarge",
-        "ram": 124928,
-        "disk": 0,
-        "name": "r4.4xlarge",
-        "bandwidth": 10
+        "id": "c5d.4xlarge",
+        "name": "c5d.4xlarge",
+        "ram": 32768
     },
-    "c3.large": {
+    "c5d.9xlarge": {
+        "bandwidth": 10,
+        "disk": 900,
         "extra": {
-            "storage": "2 x 16 SSD",
-            "ecu": "7",
-            "vcpu": "2",
+            "clockSpeed": "3.0 Ghz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0002",
-            "instanceFamily": "Compute optimized",
-            "memory": "3.75 GiB",
-            "processorFeatures": "Intel AVX; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2680 v2 (Ivy Bridge)",
+            "dedicatedEbsThroughput": "4500 Mbps",
+            "ecu": "141",
             "enhancedNetworkingSupported": "Yes",
-            "tenancy": "Shared",
-            "clockSpeed": "2.8 GHz",
-            "usagetype": "APS2-BoxUsage:c3.large",
-            "networkPerformance": "Moderate",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "c3.large",
-            "normalizationSizeFactor": "4",
-            "processorArchitecture": "32-bit or 64-bit",
-            "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
-        },
-        "id": "c3.large",
-        "ram": 3840,
-        "disk": 32,
-        "name": "c3.large",
-        "bandwidth": None
-    },
-    "c1.medium": {
-        "extra": {
-            "ecu": "5",
-            "vcpu": "2",
-            "currentGeneration": "No",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0002",
             "instanceFamily": "Compute optimized",
-            "memory": "1.7 GiB",
-            "physicalProcessor": "Intel Xeon Family",
-            "storage": "1 x 350",
-            "tenancy": "Shared",
-            "usagetype": "SAE1-BoxUsage:c1.medium",
-            "networkPerformance": "Moderate",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "c1.medium",
-            "normalizationSizeFactor": "2",
-            "processorArchitecture": "32-bit or 64-bit",
+            "instanceType": "c5d.9xlarge",
+            "memory": "72 GiB",
+            "networkPerformance": "10 Gigabit",
+            "normalizationSizeFactor": "72",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
+            "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "1 x 900 NVMe SSD",
+            "vcpu": "36"
         },
-        "id": "c1.medium",
-        "ram": 1740,
-        "disk": 350,
-        "name": "c1.medium",
-        "bandwidth": None
+        "id": "c5d.9xlarge",
+        "name": "c5d.9xlarge",
+        "ram": 73728
     },
-    "m4.xlarge": {
+    "c5d.large": {
+        "bandwidth": 10,
+        "disk": 50,
         "extra": {
-            "dedicatedEbsThroughput": "750 Mbps",
-            "ecu": "13",
-            "vcpu": "4",
+            "clockSpeed": "3.0 Ghz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0100",
-            "instanceFamily": "General purpose",
-            "memory": "16 GiB",
-            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2676 v3 (Haswell)",
-            "storage": "EBS only",
-            "tenancy": "Host",
-            "clockSpeed": "2.4  GHz",
-            "usagetype": "EUC1-HostBoxUsage:m4.xlarge",
-            "networkPerformance": "High",
-            "preInstalledSw": "SQL Ent",
-            "capacitystatus": "Used",
-            "instanceType": "m4.xlarge",
-            "normalizationSizeFactor": "8",
+            "dedicatedEbsThroughput": "Upto 2250 Mbps",
+            "ecu": "9",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c5d.large",
+            "memory": "4 GiB",
+            "networkPerformance": "Up to 10 Gigabit",
+            "normalizationSizeFactor": "4",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "1 x 50 NVMe SSD",
+            "vcpu": "2"
         },
-        "id": "m4.xlarge",
-        "ram": 16384,
-        "disk": 0,
-        "name": "m4.xlarge",
-        "bandwidth": None
+        "id": "c5d.large",
+        "name": "c5d.large",
+        "ram": 4096
     },
-    "g3.4xlarge": {
+    "c5d.xlarge": {
+        "bandwidth": 10,
+        "disk": 100,
         "extra": {
-            "gpu": "1",
-            "intelTurboAvailable": "Yes",
-            "dedicatedEbsThroughput": "3500 Mbps",
-            "ecu": "47",
-            "vcpu": "16",
+            "clockSpeed": "3.0 Ghz",
             "currentGeneration": "Yes",
-            "intelAvx2Available": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances",
-            "instanceFamily": "GPU instance",
-            "memory": "122 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
-            "storage": "EBS only",
-            "intelAvxAvailable": "Yes",
-            "tenancy": "Shared",
-            "clockSpeed": "2.3 GHz",
-            "usagetype": "BoxUsage:g3.4xlarge",
+            "dedicatedEbsThroughput": "Upto 2250 Mbps",
+            "ecu": "17",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Compute optimized",
+            "instanceType": "c5d.xlarge",
+            "memory": "8 GiB",
             "networkPerformance": "Up to 10 Gigabit",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "g3.4xlarge",
-            "normalizationSizeFactor": "32",
+            "normalizationSizeFactor": "8",
+            "physicalProcessor": "Intel Xeon Platinum 8124M",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "1 x 100 NVMe SSD",
+            "vcpu": "4"
         },
-        "id": "g3.4xlarge",
-        "ram": 124928,
-        "disk": 0,
-        "name": "g3.4xlarge",
-        "bandwidth": 10
+        "id": "c5d.xlarge",
+        "name": "c5d.xlarge",
+        "ram": 8192
     },
-    "c5.18xlarge": {
+    "cc2.8xlarge": {
+        "bandwidth": 10,
+        "disk": 3360,
         "extra": {
-            "dedicatedEbsThroughput": "9000 Mbps",
-            "ecu": "278",
-            "vcpu": "72",
-            "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0200",
+            "clockSpeed": "2.6 GHz",
+            "currentGeneration": "No",
+            "ecu": "88",
             "instanceFamily": "Compute optimized",
-            "memory": "144 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
-            "physicalProcessor": "Intel Xeon Platinum 8124M",
-            "storage": "EBS only",
-            "tenancy": "Shared",
-            "clockSpeed": "3.0 Ghz",
-            "usagetype": "USE2-BoxUsage:c5.18xlarge",
-            "networkPerformance": "25 Gigabit",
-            "preInstalledSw": "SQL Web",
-            "capacitystatus": "Used",
-            "instanceType": "c5.18xlarge",
-            "normalizationSizeFactor": "144",
+            "instanceType": "cc2.8xlarge",
+            "memory": "60.5 GiB",
+            "networkPerformance": "10 Gigabit",
+            "normalizationSizeFactor": "64",
+            "physicalProcessor": "Intel Xeon E5-2670",
             "processorArchitecture": "64-bit",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "4 x 840",
+            "vcpu": "32"
         },
-        "id": "c5.18xlarge",
-        "ram": 147456,
-        "disk": 0,
-        "name": "c5.18xlarge",
-        "bandwidth": 25
+        "id": "cc2.8xlarge",
+        "name": "cc2.8xlarge",
+        "ram": 61952
     },
-    "m2.4xlarge": {
+    "cr1.8xlarge": {
+        "bandwidth": 10,
+        "disk": 240,
         "extra": {
-            "ebsOptimized": "Yes",
-            "ecu": "26",
-            "vcpu": "8",
             "currentGeneration": "No",
-            "servicecode": "AmazonEC2",
-            "operation": "Hourly",
+            "ecu": "88",
             "instanceFamily": "Memory optimized",
-            "memory": "68.4 GiB",
-            "physicalProcessor": "Intel Xeon Family",
-            "storage": "2 x 840",
-            "tenancy": "NA",
-            "usagetype": "USW2-EBSOptimized:m2.4xlarge",
-            "networkPerformance": "High",
-            "preInstalledSw": "NA",
-            "capacitystatus": "NA",
-            "instanceType": "m2.4xlarge",
-            "normalizationSizeFactor": "32",
+            "instanceType": "cr1.8xlarge",
+            "memory": "244 GiB",
+            "networkPerformance": "10 Gigabit",
+            "normalizationSizeFactor": "64",
+            "physicalProcessor": "Intel Xeon E5-2670",
             "processorArchitecture": "64-bit",
-            "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "NA"
-        },
-        "id": "m2.4xlarge",
-        "ram": 70041,
-        "disk": 1680,
-        "name": "m2.4xlarge",
-        "bandwidth": None
-    },
-    "x1e.xlarge": {
-        "extra": {
-            "dedicatedEbsThroughput": "500 Mbps",
-            "ecu": "12",
-            "vcpu": "4",
-            "currentGeneration": "Yes",
-            "intelAvx2Available": "Yes",
             "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0004",
-            "instanceFamily": "Memory optimized",
-            "memory": "122 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2",
-            "physicalProcessor": "High Frequency Intel Xeon E7-8880 v3 (Haswell)",
-            "storage": "1 x 120",
-            "intelAvxAvailable": "Yes",
-            "tenancy": "Host",
-            "clockSpeed": "2.3 GHz",
-            "usagetype": "USW2-HostBoxUsage:x1e.xlarge",
-            "networkPerformance": "Up to 10 Gigabit",
-            "preInstalledSw": "SQL Std",
-            "capacitystatus": "Used",
-            "instanceType": "x1e.xlarge",
-            "normalizationSizeFactor": "8",
-            "processorArchitecture": "64-bit",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "2 x 120 SSD",
+            "vcpu": "32"
         },
-        "id": "x1e.xlarge",
-        "ram": 124928,
-        "disk": 120,
-        "name": "x1e.xlarge",
-        "bandwidth": 10
+        "id": "cr1.8xlarge",
+        "name": "cr1.8xlarge",
+        "ram": 249856
     },
-    "t2.micro": {
+    "d2.2xlarge": {
+        "bandwidth": None,
+        "disk": 12000,
         "extra": {
-            "ecu": "Variable",
-            "vcpu": "1",
+            "clockSpeed": "2.4 GHz",
             "currentGeneration": "Yes",
+            "ecu": "28",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Storage optimized",
+            "instanceType": "d2.2xlarge",
+            "memory": "61 GiB",
+            "networkPerformance": "High",
+            "normalizationSizeFactor": "16",
+            "physicalProcessor": "Intel Xeon E5-2676v3 (Haswell)",
+            "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
             "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0010",
-            "instanceFamily": "General purpose",
-            "memory": "1 GiB",
-            "processorFeatures": "Intel AVX; Intel Turbo",
-            "physicalProcessor": "Intel Xeon Family",
-            "storage": "EBS only",
-            "tenancy": "Shared",
-            "clockSpeed": "Up to 3.3 GHz",
-            "usagetype": "APS1-BoxUsage:t2.micro",
-            "networkPerformance": "Low to Moderate",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "t2.micro",
-            "normalizationSizeFactor": "0.5",
-            "processorArchitecture": "32-bit or 64-bit",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "6 x 2000 HDD",
+            "vcpu": "8"
         },
-        "id": "t2.micro",
-        "ram": 1024,
-        "disk": 0,
-        "name": "t2.micro",
-        "bandwidth": None
+        "id": "d2.2xlarge",
+        "name": "d2.2xlarge",
+        "ram": 62464
     },
-    "i3.4xlarge": {
+    "d2.4xlarge": {
+        "bandwidth": None,
+        "disk": 24000,
         "extra": {
-            "dedicatedEbsThroughput": "3500 Mbps",
-            "ecu": "53",
-            "vcpu": "16",
+            "clockSpeed": "2.4 GHz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances",
+            "ecu": "56",
+            "enhancedNetworkingSupported": "Yes",
             "instanceFamily": "Storage optimized",
+            "instanceType": "d2.4xlarge",
             "memory": "122 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
-            "storage": "2 x 1.9 NVMe SSD",
-            "tenancy": "Shared",
-            "clockSpeed": "2.3 GHz",
-            "usagetype": "USE2-BoxUsage:i3.4xlarge",
-            "networkPerformance": "Up to 10 Gigabit",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "i3.4xlarge",
+            "networkPerformance": "High",
             "normalizationSizeFactor": "32",
+            "physicalProcessor": "Intel Xeon E5-2676v3 (Haswell)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "12 x 2000 HDD",
+            "vcpu": "16"
         },
-        "id": "i3.4xlarge",
-        "ram": 124928,
-        "disk": 2,
-        "name": "i3.4xlarge",
-        "bandwidth": 10
+        "id": "d2.4xlarge",
+        "name": "d2.4xlarge",
+        "ram": 124928
     },
-    "c4.large": {
+    "d2.8xlarge": {
+        "bandwidth": 10,
+        "disk": 48000,
         "extra": {
-            "dedicatedEbsThroughput": "500 Mbps",
-            "ecu": "8",
-            "vcpu": "2",
+            "clockSpeed": "2.4 GHz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0004",
-            "instanceFamily": "Compute optimized",
-            "memory": "3.75 GiB",
-            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
-            "storage": "EBS only",
-            "tenancy": "Dedicated",
-            "clockSpeed": "2.9 GHz",
-            "usagetype": "APS2-DedicatedUsage:c4.large",
-            "networkPerformance": "Moderate",
-            "preInstalledSw": "SQL Std",
-            "capacitystatus": "Used",
-            "instanceType": "c4.large",
-            "normalizationSizeFactor": "4",
+            "ecu": "116",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Storage optimized",
+            "instanceType": "d2.8xlarge",
+            "memory": "244 GiB",
+            "networkPerformance": "10 Gigabit",
+            "normalizationSizeFactor": "64",
+            "physicalProcessor": "Intel Xeon E5-2676v3 (Haswell)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "24 x 2000 HDD",
+            "vcpu": "36"
         },
-        "id": "c4.large",
-        "ram": 3840,
-        "disk": 0,
-        "name": "c4.large",
-        "bandwidth": None
+        "id": "d2.8xlarge",
+        "name": "d2.8xlarge",
+        "ram": 249856
     },
-    "d2.4xlarge": {
+    "d2.xlarge": {
+        "bandwidth": None,
+        "disk": 6000,
         "extra": {
-            "storage": "12 x 2000 HDD",
-            "ecu": "56",
-            "vcpu": "16",
+            "clockSpeed": "2.4 GHz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0102",
+            "ecu": "14",
+            "enhancedNetworkingSupported": "Yes",
             "instanceFamily": "Storage optimized",
-            "memory": "122 GiB",
-            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "instanceType": "d2.xlarge",
+            "memory": "30.5 GiB",
+            "networkPerformance": "Moderate",
+            "normalizationSizeFactor": "8",
             "physicalProcessor": "Intel Xeon E5-2676v3 (Haswell)",
-            "enhancedNetworkingSupported": "Yes",
-            "tenancy": "Dedicated",
-            "clockSpeed": "2.4 GHz",
-            "usagetype": "APN3-DedicatedUsage:d2.4xlarge",
-            "networkPerformance": "High",
-            "preInstalledSw": "SQL Ent",
-            "capacitystatus": "Used",
-            "instanceType": "d2.4xlarge",
-            "normalizationSizeFactor": "32",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "3 x 2000 HDD",
+            "vcpu": "4"
         },
-        "id": "d2.4xlarge",
-        "ram": 124928,
-        "disk": 24000,
-        "name": "d2.4xlarge",
-        "bandwidth": None
+        "id": "d2.xlarge",
+        "name": "d2.xlarge",
+        "ram": 31232
     },
-    "i3.xlarge": {
+    "f1.16xlarge": {
+        "bandwidth": 20,
+        "disk": 0,
         "extra": {
-            "dedicatedEbsThroughput": "850 Mbps",
-            "ecu": "13",
-            "vcpu": "4",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0800",
-            "instanceFamily": "Storage optimized",
-            "memory": "30.5 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "ecu": "188",
+            "instanceFamily": "FPGA Instances",
+            "instanceType": "f1.16xlarge",
+            "memory": "976 GiB",
+            "networkPerformance": "20 Gigabit",
+            "normalizationSizeFactor": "128",
             "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
-            "storage": "1 x 0.95 NVMe SSD",
-            "tenancy": "Host",
-            "clockSpeed": "2.3 GHz",
-            "usagetype": "APS1-HostBoxUsage:i3.xlarge",
-            "networkPerformance": "Up to 10 Gigabit",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "i3.xlarge",
-            "normalizationSizeFactor": "8",
             "processorArchitecture": "64-bit",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "Bring your own license",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "EBS only",
+            "vcpu": "64"
         },
-        "id": "i3.xlarge",
-        "ram": 31232,
-        "disk": 0,
-        "name": "i3.xlarge",
-        "bandwidth": 10
+        "id": "f1.16xlarge",
+        "name": "f1.16xlarge",
+        "ram": 999424
     },
-    "c5.xlarge": {
+    "f1.2xlarge": {
+        "bandwidth": 10,
+        "disk": 0,
         "extra": {
-            "dedicatedEbsThroughput": "Upto 2250 Mbps",
-            "ecu": "16",
-            "vcpu": "4",
             "currentGeneration": "Yes",
+            "ecu": "26",
+            "instanceFamily": "FPGA Instances",
+            "instanceType": "f1.2xlarge",
+            "memory": "122 GiB",
+            "networkPerformance": "Up to 10 Gigabit",
+            "normalizationSizeFactor": "16",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "processorArchitecture": "64-bit",
             "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0200",
-            "instanceFamily": "Compute optimized",
-            "memory": "8 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
-            "physicalProcessor": "Intel Xeon Platinum 8124M",
+            "servicename": "Amazon Elastic Compute Cloud",
             "storage": "EBS only",
-            "tenancy": "Dedicated",
-            "clockSpeed": "3.0 Ghz",
-            "usagetype": "EUW2-DedicatedUsage:c5.xlarge",
-            "networkPerformance": "Up to 10 Gigabit",
-            "preInstalledSw": "SQL Web",
-            "capacitystatus": "Used",
-            "instanceType": "c5.xlarge",
-            "normalizationSizeFactor": "8",
+            "vcpu": "8"
+        },
+        "id": "f1.2xlarge",
+        "name": "f1.2xlarge",
+        "ram": 124928
+    },
+    "g2.2xlarge": {
+        "bandwidth": None,
+        "disk": 60,
+        "extra": {
+            "clockSpeed": "2.6 GHz",
+            "currentGeneration": "No",
+            "ecu": "26",
+            "gpu": "1",
+            "instanceFamily": "GPU instance",
+            "instanceType": "g2.2xlarge",
+            "memory": "15 GiB",
+            "networkPerformance": "High",
+            "normalizationSizeFactor": "16",
+            "physicalProcessor": "Intel Xeon E5-2670 (Sandy Bridge)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "1 x 60 SSD",
+            "vcpu": "8"
         },
-        "id": "c5.xlarge",
-        "ram": 8192,
-        "disk": 0,
-        "name": "c5.xlarge",
-        "bandwidth": 10
+        "id": "g2.2xlarge",
+        "name": "g2.2xlarge",
+        "ram": 15360
     },
-    "r3.8xlarge": {
+    "g2.8xlarge": {
+        "bandwidth": 10,
+        "disk": 240,
         "extra": {
-            "storage": "2 x 320 SSD",
+            "clockSpeed": "2.6 GHz",
+            "currentGeneration": "No",
             "ecu": "104",
-            "vcpu": "32",
-            "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0010",
-            "instanceFamily": "Memory optimized",
-            "memory": "244 GiB",
-            "processorFeatures": "Intel AVX; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
-            "enhancedNetworkingSupported": "Yes",
-            "tenancy": "Shared",
-            "clockSpeed": "2.5 GHz",
-            "usagetype": "APS3-BoxUsage:r3.8xlarge",
+            "gpu": "4",
+            "instanceFamily": "GPU instance",
+            "instanceType": "g2.8xlarge",
+            "memory": "60 GiB",
             "networkPerformance": "10 Gigabit",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "r3.8xlarge",
             "normalizationSizeFactor": "64",
+            "physicalProcessor": "Intel Xeon E5-2670 (Sandy Bridge)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "2 x 120 SSD",
+            "vcpu": "32"
         },
-        "id": "r3.8xlarge",
-        "ram": 249856,
-        "disk": 640,
-        "name": "r3.8xlarge",
-        "bandwidth": 10
+        "id": "g2.8xlarge",
+        "name": "g2.8xlarge",
+        "ram": 61440
     },
-    "c5.large": {
+    "g3.16xlarge": {
+        "bandwidth": 20,
+        "disk": 0,
         "extra": {
-            "dedicatedEbsThroughput": "Upto 2250 Mbps",
-            "ecu": "8",
-            "vcpu": "2",
+            "clockSpeed": "2.3 GHz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances",
-            "instanceFamily": "Compute optimized",
-            "memory": "4 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
-            "physicalProcessor": "Intel Xeon Platinum 8124M",
-            "storage": "EBS only",
-            "tenancy": "Shared",
-            "clockSpeed": "3.0 Ghz",
-            "usagetype": "SAE1-BoxUsage:c5.large",
-            "networkPerformance": "Up to 10 Gigabit",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "c5.large",
-            "normalizationSizeFactor": "4",
+            "dedicatedEbsThroughput": "14000 Mbps",
+            "ecu": "188",
+            "enhancedNetworkingSupported": "Yes",
+            "gpu": "4",
+            "instanceFamily": "GPU instance",
+            "instanceType": "g3.16xlarge",
+            "intelAvx2Available": "Yes",
+            "intelAvxAvailable": "Yes",
+            "intelTurboAvailable": "Yes",
+            "memory": "488 GiB",
+            "networkPerformance": "20 Gigabit",
+            "normalizationSizeFactor": "128",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "EBS only",
+            "vcpu": "64"
         },
-        "id": "c5.large",
-        "ram": 4096,
-        "disk": 0,
-        "name": "c5.large",
-        "bandwidth": 10
+        "id": "g3.16xlarge",
+        "name": "g3.16xlarge",
+        "ram": 499712
     },
-    "c5.9xlarge": {
+    "g3.4xlarge": {
+        "bandwidth": 10,
+        "disk": 0,
         "extra": {
-            "dedicatedEbsThroughput": "4500 Mbps",
-            "ecu": "139",
-            "vcpu": "36",
+            "clockSpeed": "2.3 GHz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0800",
-            "instanceFamily": "Compute optimized",
-            "memory": "72 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo",
-            "physicalProcessor": "Intel Xeon Platinum 8124M",
-            "storage": "EBS only",
-            "tenancy": "Host",
-            "clockSpeed": "3.0 Ghz",
-            "usagetype": "SAE1-HostBoxUsage:c5.9xlarge",
-            "networkPerformance": "10 Gigabit",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "c5.9xlarge",
-            "normalizationSizeFactor": "72",
+            "dedicatedEbsThroughput": "3500 Mbps",
+            "ecu": "47",
+            "enhancedNetworkingSupported": "Yes",
+            "gpu": "1",
+            "instanceFamily": "GPU instance",
+            "instanceType": "g3.4xlarge",
+            "intelAvx2Available": "Yes",
+            "intelAvxAvailable": "Yes",
+            "intelTurboAvailable": "Yes",
+            "memory": "122 GiB",
+            "networkPerformance": "Up to 10 Gigabit",
+            "normalizationSizeFactor": "32",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "Bring your own license",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "EBS only",
+            "vcpu": "16"
         },
-        "id": "c5.9xlarge",
-        "ram": 73728,
-        "disk": 0,
-        "name": "c5.9xlarge",
-        "bandwidth": 10
+        "id": "g3.4xlarge",
+        "name": "g3.4xlarge",
+        "ram": 124928
     },
-    "m4.10xlarge": {
+    "g3.8xlarge": {
+        "bandwidth": 10,
+        "disk": 0,
         "extra": {
-            "dedicatedEbsThroughput": "4000 Mbps",
-            "ecu": "124.5",
-            "vcpu": "40",
+            "clockSpeed": "2.3 GHz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances",
-            "instanceFamily": "General purpose",
-            "memory": "160 GiB",
-            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2676 v3 (Haswell)",
-            "storage": "EBS only",
-            "tenancy": "Dedicated",
-            "clockSpeed": "2.4 GHz",
-            "usagetype": "APS3-DedicatedUsage:m4.10xlarge",
+            "dedicatedEbsThroughput": "7000 Mbps",
+            "ecu": "94",
+            "enhancedNetworkingSupported": "Yes",
+            "gpu": "2",
+            "instanceFamily": "GPU instance",
+            "instanceType": "g3.8xlarge",
+            "intelAvx2Available": "Yes",
+            "intelAvxAvailable": "Yes",
+            "intelTurboAvailable": "Yes",
+            "memory": "244 GiB",
             "networkPerformance": "10 Gigabit",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "m4.10xlarge",
-            "normalizationSizeFactor": "80",
+            "normalizationSizeFactor": "64",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "EBS only",
+            "vcpu": "32"
         },
-        "id": "m4.10xlarge",
-        "ram": 163840,
-        "disk": 0,
-        "name": "m4.10xlarge",
-        "bandwidth": 10
+        "id": "g3.8xlarge",
+        "name": "g3.8xlarge",
+        "ram": 249856
     },
-    "c3.8xlarge": {
+    "h1.16xlarge": {
+        "bandwidth": 25,
+        "disk": 16000,
         "extra": {
-            "storage": "2 x 320 SSD",
-            "ecu": "108",
-            "vcpu": "32",
+            "clockSpeed": "2.3 GHz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0200",
-            "instanceFamily": "Compute optimized",
-            "memory": "60 GiB",
-            "processorFeatures": "Intel AVX; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2680 v2 (Ivy Bridge)",
+            "dedicatedEbsThroughput": "12000 Mbps",
+            "ecu": "188",
             "enhancedNetworkingSupported": "Yes",
-            "tenancy": "Dedicated",
-            "clockSpeed": "2.8 GHz",
-            "usagetype": "EU-DedicatedUsage:c3.8xlarge",
-            "networkPerformance": "10 Gigabit",
-            "preInstalledSw": "SQL Web",
-            "capacitystatus": "Used",
-            "instanceType": "c3.8xlarge",
-            "normalizationSizeFactor": "64",
+            "instanceFamily": "Storage optimized",
+            "instanceType": "h1.16xlarge",
+            "memory": "256 GiB",
+            "networkPerformance": "25 Gigabit",
+            "normalizationSizeFactor": "128",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "8 x 2000 HDD",
+            "vcpu": "64"
         },
-        "id": "c3.8xlarge",
-        "ram": 61440,
-        "disk": 640,
-        "name": "c3.8xlarge",
-        "bandwidth": 10
+        "id": "h1.16xlarge",
+        "name": "h1.16xlarge",
+        "ram": 262144
     },
-    "t2.nano": {
+    "h1.2xlarge": {
+        "bandwidth": 10,
+        "disk": 2000,
         "extra": {
-            "ecu": "Variable",
-            "vcpu": "1",
+            "clockSpeed": "2.3 GHz",
             "currentGeneration": "Yes",
+            "dedicatedEbsThroughput": "1600 Mbps",
+            "ecu": "26",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Storage optimized",
+            "instanceType": "h1.2xlarge",
+            "memory": "32 GiB",
+            "networkPerformance": "Up to 10 Gigabit",
+            "normalizationSizeFactor": "16",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
+            "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
             "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0800",
-            "instanceFamily": "General purpose",
-            "memory": "0.5 GiB",
-            "processorFeatures": "Intel AVX; Intel Turbo",
-            "physicalProcessor": "Intel Xeon Family",
-            "storage": "EBS only",
-            "tenancy": "Shared",
-            "clockSpeed": "Up to 3.3 GHz",
-            "usagetype": "EUC1-BoxUsage:t2.nano",
-            "networkPerformance": "Low",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "t2.nano",
-            "normalizationSizeFactor": "0.25",
-            "processorArchitecture": "32-bit or 64-bit",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "Bring your own license"
+            "storage": "1 x 2000 HDD",
+            "vcpu": "8"
         },
-        "id": "t2.nano",
-        "ram": 512,
-        "disk": 0,
-        "name": "t2.nano",
-        "bandwidth": None
+        "id": "h1.2xlarge",
+        "name": "h1.2xlarge",
+        "ram": 32768
     },
-    "c1.xlarge": {
+    "h1.4xlarge": {
+        "bandwidth": 10,
+        "disk": 4000,
         "extra": {
-            "ecu": "20",
-            "vcpu": "8",
-            "currentGeneration": "No",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0002",
-            "instanceFamily": "Compute optimized",
-            "memory": "7 GiB",
-            "physicalProcessor": "Intel Xeon Family",
-            "storage": "4 x 420",
-            "tenancy": "Dedicated",
-            "usagetype": "USW2-DedicatedUsage:c1.xlarge",
-            "networkPerformance": "High",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "c1.xlarge",
-            "normalizationSizeFactor": "8",
+            "clockSpeed": "2.3 GHz",
+            "currentGeneration": "Yes",
+            "dedicatedEbsThroughput": "3000 Mbps",
+            "ecu": "53.5",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Storage optimized",
+            "instanceType": "h1.4xlarge",
+            "memory": "64 GiB",
+            "networkPerformance": "Up to 10 Gigabit",
+            "normalizationSizeFactor": "32",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "2 x 2000 HDD",
+            "vcpu": "16"
         },
-        "id": "c1.xlarge",
-        "ram": 7168,
-        "disk": 1680,
-        "name": "c1.xlarge",
-        "bandwidth": None
+        "id": "h1.4xlarge",
+        "name": "h1.4xlarge",
+        "ram": 65536
     },
-    "d2.8xlarge": {
+    "h1.8xlarge": {
+        "bandwidth": 10,
+        "disk": 8000,
         "extra": {
-            "storage": "24 x 2000 HDD",
-            "ecu": "116",
-            "vcpu": "36",
+            "clockSpeed": "2.3 GHz",
             "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0102",
-            "instanceFamily": "Storage optimized",
-            "memory": "244 GiB",
-            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2676v3 (Haswell)",
+            "dedicatedEbsThroughput": "6000 Mbps",
+            "ecu": "99",
             "enhancedNetworkingSupported": "Yes",
-            "tenancy": "Host",
-            "clockSpeed": "2.4 GHz",
-            "usagetype": "SAE1-HostBoxUsage:d2.8xlarge",
+            "instanceFamily": "Storage optimized",
+            "instanceType": "h1.8xlarge",
+            "memory": "128 GiB",
             "networkPerformance": "10 Gigabit",
-            "preInstalledSw": "SQL Ent",
-            "capacitystatus": "Used",
-            "instanceType": "d2.8xlarge",
             "normalizationSizeFactor": "64",
+            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "4 x 2000 HDD",
+            "vcpu": "32"
         },
-        "id": "d2.8xlarge",
-        "ram": 249856,
-        "disk": 48000,
-        "name": "d2.8xlarge",
-        "bandwidth": 10
+        "id": "h1.8xlarge",
+        "name": "h1.8xlarge",
+        "ram": 131072
     },
-    "m1.xlarge": {
+    "hs1.8xlarge": {
+        "bandwidth": 10,
+        "disk": 48000,
         "extra": {
-            "ecu": "8",
-            "vcpu": "4",
+            "clockSpeed": "2 GHz",
             "currentGeneration": "No",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:000g",
-            "instanceFamily": "General purpose",
-            "memory": "15 GiB",
-            "physicalProcessor": "Intel Xeon Family",
-            "storage": "4 x 420",
-            "tenancy": "Shared",
-            "usagetype": "EU-BoxUsage:m1.xlarge",
-            "networkPerformance": "High",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "m1.xlarge",
-            "normalizationSizeFactor": "8",
+            "ecu": "35",
+            "instanceFamily": "Storage optimized",
+            "instanceType": "hs1.8xlarge",
+            "memory": "117 GiB",
+            "networkPerformance": "10 Gigabit",
+            "normalizationSizeFactor": "64",
+            "physicalProcessor": "Intel Xeon E5-2650",
             "processorArchitecture": "64-bit",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "24 x 2000",
+            "vcpu": "17"
         },
-        "id": "m1.xlarge",
-        "ram": 15360,
-        "disk": 1680,
-        "name": "m1.xlarge",
-        "bandwidth": None
+        "id": "hs1.8xlarge",
+        "name": "hs1.8xlarge",
+        "ram": 119808
     },
-    "t2.2xlarge": {
+    "i2.2xlarge": {
+        "bandwidth": None,
+        "disk": 1600,
         "extra": {
-            "ecu": "Variable",
-            "vcpu": "8",
-            "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0202",
-            "instanceFamily": "General purpose",
-            "memory": "32 GiB",
-            "processorFeatures": "Intel AVX; Intel Turbo",
-            "physicalProcessor": "Intel Xeon Family",
-            "storage": "EBS only",
-            "tenancy": "Shared",
-            "clockSpeed": "Up to 3.0 GHz",
-            "usagetype": "USW1-BoxUsage:t2.2xlarge",
-            "networkPerformance": "Moderate",
-            "preInstalledSw": "SQL Web",
-            "capacitystatus": "Used",
-            "instanceType": "t2.2xlarge",
+            "clockSpeed": "2.5 GHz",
+            "currentGeneration": "No",
+            "ecu": "27",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Storage optimized",
+            "instanceType": "i2.2xlarge",
+            "memory": "61 GiB",
+            "networkPerformance": "High",
             "normalizationSizeFactor": "16",
+            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "2 x 800 SSD",
+            "vcpu": "8"
         },
-        "id": "t2.2xlarge",
-        "ram": 32768,
-        "disk": 0,
-        "name": "t2.2xlarge",
-        "bandwidth": None
+        "id": "i2.2xlarge",
+        "name": "i2.2xlarge",
+        "ram": 62464
     },
-    "d2.xlarge": {
+    "i2.4xlarge": {
+        "bandwidth": None,
+        "disk": 3200,
         "extra": {
-            "storage": "3 x 2000 HDD",
-            "ecu": "14",
-            "vcpu": "4",
-            "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0006",
-            "instanceFamily": "Storage optimized",
-            "memory": "30.5 GiB",
-            "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2676v3 (Haswell)",
+            "clockSpeed": "2.5 GHz",
+            "currentGeneration": "No",
+            "ecu": "53",
             "enhancedNetworkingSupported": "Yes",
-            "tenancy": "Host",
-            "clockSpeed": "2.4 GHz",
-            "usagetype": "APS3-HostBoxUsage:d2.xlarge",
-            "networkPerformance": "Moderate",
-            "preInstalledSw": "SQL Std",
-            "capacitystatus": "Used",
-            "instanceType": "d2.xlarge",
-            "normalizationSizeFactor": "8",
+            "instanceFamily": "Storage optimized",
+            "instanceType": "i2.4xlarge",
+            "memory": "122 GiB",
+            "networkPerformance": "High",
+            "normalizationSizeFactor": "32",
+            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required"
+            "storage": "4 x 800 SSD",
+            "vcpu": "16"
         },
-        "id": "d2.xlarge",
-        "ram": 31232,
-        "disk": 6000,
-        "name": "d2.xlarge",
-        "bandwidth": None
+        "id": "i2.4xlarge",
+        "name": "i2.4xlarge",
+        "ram": 124928
     },
-    "i3.8xlarge": {
+    "i2.8xlarge": {
+        "bandwidth": 10,
+        "disk": 6400,
         "extra": {
-            "dedicatedEbsThroughput": "7000 Mbps",
-            "ecu": "99",
-            "vcpu": "32",
-            "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0010",
+            "clockSpeed": "2.5 GHz",
+            "currentGeneration": "No",
+            "ecu": "104",
+            "enhancedNetworkingSupported": "Yes",
             "instanceFamily": "Storage optimized",
+            "instanceType": "i2.8xlarge",
             "memory": "244 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
-            "storage": "4 x 1.9 NVMe SSD",
-            "tenancy": "Dedicated",
-            "clockSpeed": "2.3 GHz",
-            "usagetype": "USE2-DedicatedUsage:i3.8xlarge",
             "networkPerformance": "10 Gigabit",
-            "preInstalledSw": "NA",
-            "capacitystatus": "Used",
-            "instanceType": "i3.8xlarge",
             "normalizationSizeFactor": "64",
+            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
             "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "servicecode": "AmazonEC2",
             "servicename": "Amazon Elastic Compute Cloud",
-            "licenseModel": "No License required",
-            "enhancedNetworkingSupported": "Yes"
+            "storage": "8 x 800 SSD",
+            "vcpu": "32"
         },
-        "id": "i3.8xlarge",
-        "ram": 249856,
-        "disk": 4,
-        "name": "i3.8xlarge",
-        "bandwidth": 10
+        "id": "i2.8xlarge",
+        "name": "i2.8xlarge",
+        "ram": 249856
+    },
+    "i2.xlarge": {
+        "bandwidth": None,
+        "disk": 800,
+        "extra": {
+            "clockSpeed": "2.5 GHz",
+            "currentGeneration": "No",
+            "ecu": "14",
+            "enhancedNetworkingSupported": "Yes",
+            "instanceFamily": "Storage optimized",
+            "instanceType": "i2.xlarge",
+            "memory": "30.5 GiB",
+            "networkPerformance": "Moderate",
+            "normalizationSizeFactor": "8",
+            "physicalProcessor": "Intel Xeon E5-2670 v2 (Ivy Bridge)",
+            "processorArchitecture": "64-bit",
+            "processorFeatures": "Intel AVX; Intel Turbo",
+            "servicecode": "AmazonEC2",
+            "servicename": "Amazon Elastic Compute Cloud",
+            "storage": "1 x 800 SSD",
+            "vcpu": "4"
+        },
+        "id": "i2.xlarge",
+        "name": "i2.xlarge",
+        "ram": 31232
     },
     "i3.16xlarge": {
+        "bandwidth": 20,
+        "disk": 15200,
         "extra": {
+            "clockSpeed": "2.3 GHz",
+            "currentGeneration": "Yes",
             "dedicatedEbsThroughput": "14000 Mbps",
             "ecu": "200",
-            "vcpu": "64",
-            "currentGeneration": "Yes",
-            "servicecode": "AmazonEC2",
-            "operation": "RunInstances:0004",
+            "enhancedNetworkingSupported": "Yes",
             "instanceFamily": "Storage optimized",
+            "instanceType": "i3.16xlarge",
             "memory": "488 GiB",
-            "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo",
-            "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)",
-            "storage": "8 x 1.9 NVMe SSD",
-            "tenancy": "Dedicated",
-            "clockSpeed": "2.3 GHz",
-            "usagetype": "EUW2-

<TRUNCATED>

[10/10] libcloud git commit: Add changes for #1211

Posted by qu...@apache.org.
Add changes for #1211

Closes #1211


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/86996f5e
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/86996f5e
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/86996f5e

Branch: refs/heads/trunk
Commit: 86996f5e78f9f4fdde9b0b091098f7f88edb202a
Parents: 384e423
Author: Quentin Pradet <qu...@apache.org>
Authored: Fri Jun 29 11:24:17 2018 +0400
Committer: Quentin Pradet <qu...@apache.org>
Committed: Fri Jun 29 12:05:34 2018 +0400

----------------------------------------------------------------------
 CHANGES.rst | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/86996f5e/CHANGES.rst
----------------------------------------------------------------------
diff --git a/CHANGES.rst b/CHANGES.rst
index 8beddf5..3fe0e17 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -29,6 +29,9 @@ Compute
 - [EC2] Add description to ex_authorize_security_group_ingress (GITHUB-1122)
   [Arturo Noha]
 
+- [EC2] Added script to automatically get EC2 instance sizes (GITHUB-1211)
+  [Anthony Monthe, Quentin Pradet]
+
 - [GCE] Expand Firewall options coverage (LIBCLOUD-960, GITHUB-1144)
   [maxlip]
 


[05/10] libcloud git commit: Cleaned EC2 files and added constants

Posted by qu...@apache.org.
Cleaned EC2 files and added constants

Signed-off-by: Quentin Pradet <qu...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/f803651e
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/f803651e
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/f803651e

Branch: refs/heads/trunk
Commit: f803651e5ec3f61f9e79bf68c1f074f8358b7644
Parents: dd546e8
Author: Anthony Monthe <an...@gmail.com>
Authored: Sun May 20 04:24:10 2018 +0100
Committer: Quentin Pradet <qu...@apache.org>
Committed: Fri Jun 29 11:46:26 2018 +0400

----------------------------------------------------------------------
 libcloud/compute/constants.py   | 4688 ++++++++++++++++++++++++++++++++++
 libcloud/compute/drivers/ec2.py | 2111 +--------------
 2 files changed, 4700 insertions(+), 2099 deletions(-)
----------------------------------------------------------------------



[06/10] libcloud git commit: Update doc

Posted by qu...@apache.org.
Update doc

Signed-off-by: Quentin Pradet <qu...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/caeac1a9
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/caeac1a9
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/caeac1a9

Branch: refs/heads/trunk
Commit: caeac1a9b47ed0781a748e4bb98f5b94aad98fda
Parents: a4af92c
Author: Anthony Monthe <an...@gmail.com>
Authored: Sun Jun 3 20:14:50 2018 +0100
Committer: Quentin Pradet <qu...@apache.org>
Committed: Fri Jun 29 11:46:26 2018 +0400

----------------------------------------------------------------------
 contrib/scrap-ec2-sizes.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/caeac1a9/contrib/scrap-ec2-sizes.py
----------------------------------------------------------------------
diff --git a/contrib/scrap-ec2-sizes.py b/contrib/scrap-ec2-sizes.py
index 20231e3..992000e 100755
--- a/contrib/scrap-ec2-sizes.py
+++ b/contrib/scrap-ec2-sizes.py
@@ -21,7 +21,7 @@ This script downloads and parses AWS EC2 from https://pricing.us-east-1.amazonaw
 It writes a Python module with constants about EC2's sizes and regions.
 
 Use it as following:
-    $ python scrap-ec2-sizes.py > ../libcloud/compute/constants.py
+    $ python contrib/scrap-ec2-sizes.py > libcloud/compute/constants.py
 """
 
 import re