JCLOUDS-412. Add the new i2.* instance sizes
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java b/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java
index f954a65..a022e57 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java
@@ -451,6 +451,65 @@
             .virtualizationType(VirtualizationType.HVM);
    }
 
+   /**
+    * @see InstanceType#I2_XLARGE
+    */
+   public static EC2HardwareBuilder i2_xlarge() {
+      return new EC2HardwareBuilder(InstanceType.I2_XLARGE)
+              .ram(30 * 1024 + 512)
+              .processors(ImmutableList.of(new Processor(4.0, 3.5)))
+              .volumes(ImmutableList.<Volume> of(new VolumeImpl(10.0f, "/dev/sda1", true, false),
+                      new VolumeImpl(800.0f, "/dev/sdb", false, false)))
+              .virtualizationType(VirtualizationType.HVM);
+   }
+
+   /**
+    * @see InstanceType#I2_2XLARGE
+    */
+   public static EC2HardwareBuilder i2_2xlarge() {
+      return new EC2HardwareBuilder(InstanceType.I2_2XLARGE)
+              .ram(61 * 1024)
+              .processors(ImmutableList.of(new Processor(8.0, 3.375)))
+              .volumes(ImmutableList.<Volume> of(new VolumeImpl(10.0f, "/dev/sda1", true, false),
+                      new VolumeImpl(800.0f, "/dev/sdb", false, false),
+                      new VolumeImpl(800.0f, "/dev/sdc", false, false)))
+              .virtualizationType(VirtualizationType.HVM);
+   }
+
+   /**
+    * @see InstanceType#I2_4XLARGE
+    */
+   public static EC2HardwareBuilder i2_4xlarge() {
+      return new EC2HardwareBuilder(InstanceType.I2_4XLARGE)
+              .ram(122 * 1024)
+              .processors(ImmutableList.of(new Processor(16.0, 3.3125)))
+              .volumes(ImmutableList.<Volume> of(new VolumeImpl(10.0f, "/dev/sda1", true, false),
+                      new VolumeImpl(800.0f, "/dev/sdb", false, false),
+                      new VolumeImpl(800.0f, "/dev/sdc", false, false),
+                      new VolumeImpl(800.0f, "/dev/sdd", false, false),
+                      new VolumeImpl(800.0f, "/dev/sde", false, false)))
+              .virtualizationType(VirtualizationType.HVM);
+   }
+
+   /**
+    * @see InstanceType#I2_8XLARGE
+    */
+   public static EC2HardwareBuilder i2_8xlarge() {
+      return new EC2HardwareBuilder(InstanceType.I2_8XLARGE)
+              .ram(244 * 1024)
+              .processors(ImmutableList.of(new Processor(32.0, 3.25)))
+              .volumes(ImmutableList.<Volume> of(new VolumeImpl(10.0f, "/dev/sda1", true, false),
+                      new VolumeImpl(800.0f, "/dev/sdb", false, false),
+                      new VolumeImpl(800.0f, "/dev/sdc", false, false),
+                      new VolumeImpl(800.0f, "/dev/sdd", false, false),
+                      new VolumeImpl(800.0f, "/dev/sde", false, false),
+                      new VolumeImpl(800.0f, "/dev/sdf", false, false),
+                      new VolumeImpl(800.0f, "/dev/sdg", false, false),
+                      new VolumeImpl(800.0f, "/dev/sdh", false, false),
+                      new VolumeImpl(800.0f, "/dev/sdi", false, false)))
+              .virtualizationType(VirtualizationType.HVM);
+   }
+
    public static EC2HardwareBuilder hi1_4xlarge() {
       return new EC2HardwareBuilder(InstanceType.HI1_4XLARGE)
             .ram(60 * 1024 + 512)
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java b/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java
index 4cecec2..7249b7f 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java
@@ -301,4 +301,52 @@
     * </ul>
     */
    public static final String C3_8XLARGE = "c3.8xlarge";
+
+   /**
+    * I2 Extra Large
+    * <ul>
+    *    <li>30.5 GiB of memory</li>
+    *    <li>14 EC2 Compute Units (4 virtual cores)</li>
+    *    <li>1 SSD-based volume with 800 GiB of instance storage</li>
+    *    <li>64-bit platform</li>
+    *    <li>I/O Performance: High</li>
+    * </ul>
+    */
+   public static final String I2_XLARGE = "i2.xlarge";
+
+   /**
+    * I2 Double Extra Large
+    * <ul>
+    *    <li>61 GiB of memory</li>
+    *    <li>27 EC2 Compute Units (8 virtual cores)</li>
+    *    <li>2 SSD-based volumes each with 800 GiB of instance storage</li>
+    *    <li>64-bit platform</li>
+    *    <li>I/O Performance: High</li>
+    * </ul>
+    */
+   public static final String I2_2XLARGE = "i2.2xlarge";
+
+   /**
+    * I2 Quadruple Extra Large
+    * <ul>
+    *    <li>122 GiB of memory</li>
+    *    <li>53 EC2 Compute Units (16 virtual cores)</li>
+    *    <li>4 SSD-based volumes each with 800 GiB of instance storage</li>
+    *    <li>64-bit platform</li>
+    *    <li>I/O Performance: High</li>
+    * </ul>
+    */
+   public static final String I2_4XLARGE = "i2.4xlarge";
+
+   /**
+    * I2 Octuple Extra Large
+    * <ul>
+    *    <li>244 GiB of memory</li>
+    *    <li>104 EC2 Compute Units (32 virtual cores)</li>
+    *    <li>8 SSD-based volumes each with 800 GiB of instance storage</li>
+    *    <li>64-bit platform</li>
+    *    <li>I/O Performance: High</li>
+    * </ul>
+    */
+   public static final String I2_8XLARGE = "i2.8xlarge";
 }