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 fbb730efcf..7d1a56c43f 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
@@ -239,6 +239,11 @@ public class EC2HardwareBuilder extends HardwareBuilder {
return this;
}
+ private EC2HardwareBuilder m5() {
+ virtualizationTypes(VirtualizationType.HVM);
+ return this;
+ }
+
private EC2HardwareBuilder c3() {
virtualizationTypes(VirtualizationType.HVM, VirtualizationType.PARAVIRTUAL);
return this;
@@ -587,6 +592,73 @@ public class EC2HardwareBuilder extends HardwareBuilder {
.rootDeviceType(RootDeviceType.EBS);
}
+ /**
+ * @see InstanceType#M5_LARGE
+ */
+ public static EC2HardwareBuilder m5_large() {
+ return new EC2HardwareBuilder(InstanceType.M5_LARGE).m5()
+ .ram(8192)
+ .processors(ImmutableList.of(new Processor(2, 2.5)))
+ .is64Bit(true)
+ .rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#M5_XLARGE
+ */
+ public static EC2HardwareBuilder m5_xlarge() {
+ return new EC2HardwareBuilder(InstanceType.M5_XLARGE).m5()
+ .ram(16384)
+ .processors(ImmutableList.of(new Processor(4, 2.5)))
+ .is64Bit(true)
+ .rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#M5_2XLARGE
+ */
+ public static EC2HardwareBuilder m5_2xlarge() {
+ return new EC2HardwareBuilder(InstanceType.M5_2XLARGE).m5()
+ .ram(32768)
+ .processors(ImmutableList.of(new Processor(8, 2.5)))
+ .is64Bit(true)
+ .rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#M5_4XLARGE
+ */
+ public static EC2HardwareBuilder m5_4xlarge() {
+ return new EC2HardwareBuilder(InstanceType.M5_4XLARGE).m5()
+ .ram(65536)
+ .processors(ImmutableList.of(new Processor(16, 2.5)))
+ .is64Bit(true)
+ .rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#M5_12XLARGE
+ */
+ public static EC2HardwareBuilder m5_12xlarge() {
+ return new EC2HardwareBuilder(InstanceType.M5_12XLARGE).m5()
+ .ram(196608)
+ .processors(ImmutableList.of(new Processor(48.0, 2.5)))
+ .is64Bit(true)
+ .rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#M5_24XLARGE
+ */
+ public static EC2HardwareBuilder m5_24xlarge() {
+ return new EC2HardwareBuilder(InstanceType.M5_24XLARGE).m5()
+ .ram(393216)
+ .processors(ImmutableList.of(new Processor(96.0, 2.5)))
+ .is64Bit(true)
+ .rootDeviceType(RootDeviceType.EBS);
+ }
+
+
/**
* @see InstanceType#C1_MEDIUM
*/
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 f7033e43af..617cc39eee 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
@@ -268,6 +268,78 @@ public class InstanceType {
*/
public static final String M4_10XLARGE = "m4.10xlarge";
+ /**
+ * M5 Large Instance
+ *
+ * - 8 GiB memory
+ * - 5 EC2 Compute Units (2 virtual cores with 2.5 EC2 Compute Units each)
+ * - EBS storage only
+ * - 64-bit platform
+ * - I/O Performance: Moderate
+ *
+ */
+ public static final String M5_LARGE = "m5.large";
+
+ /**
+ * M5 Extra Large Instance
+ *
+ * - 16 GiB memory
+ * - 10 EC2 Compute Units (4 virtual cores with 2.5 EC2 Compute Units each)
+ * - EBS storage only
+ * - 64-bit platform
+ * - I/O Performance: High
+ *
+ */
+ public static final String M5_XLARGE = "m5.xlarge";
+
+ /**
+ * M5 Double Extra Large Instance
+ *
+ * - 32 GiB memory
+ * - 26 EC2 Compute Units (8 virtual cores with 2.5 EC2 Compute Units each)
+ * - EBS storage only
+ * - 64-bit platform
+ * - I/O Performance: High
+ *
+ */
+ public static final String M5_2XLARGE = "m5.2xlarge";
+
+ /**
+ * M5 Quadruple Extra Large Instance
+ *
+ * - 64 GiB memory
+ * - 40 EC2 Compute Units (16 virtual cores with 2.5 EC2 Compute Units each)
+ * - EBS storage only
+ * - 64-bit platform
+ * - I/O Performance: High
+ *
+ */
+ public static final String M5_4XLARGE = "m5.4xlarge";
+
+ /**
+ * M5 12x Extra Large Instance
+ *
+ * - 192 GiB memory
+ * - 144 EC2 Compute Units (48 virtual cores with 2.5 EC2 Compute Units each)
+ * - EBS storage only
+ * - 64-bit platform
+ * - I/O Performance: High
+ *
+ */
+ public static final String M5_12XLARGE = "m5.12xlarge";
+
+ /**
+ * M5 24x Extra Large Instance
+ *
+ * - 384 GiB memory
+ * - 288 EC2 Compute Units (96 virtual cores with 2.5 EC2 Compute Units each)
+ * - EBS storage only
+ * - 64-bit platform
+ * - I/O Performance: High
+ *
+ */
+ public static final String M5_24XLARGE = "m5.24xlarge";
+
/**
* High-CPU Medium Instance
*
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/suppliers/AWSEC2HardwareSupplier.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/suppliers/AWSEC2HardwareSupplier.java
index c943ff58e6..c3074cd5de 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/suppliers/AWSEC2HardwareSupplier.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/suppliers/AWSEC2HardwareSupplier.java
@@ -64,11 +64,17 @@ import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m5_large;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m5_xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m5_2xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m5_4xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m5_12xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m5_24xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_large;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_8xlarge;
-import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_large;
-import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_16xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_4xlarge;
@@ -156,6 +162,12 @@ public class AWSEC2HardwareSupplier extends EC2HardwareSupplier {
sizes.add(m4_2xlarge().build());
sizes.add(m4_4xlarge().build());
sizes.add(m4_10xlarge().build());
+ sizes.add(m5_large().build());
+ sizes.add(m5_xlarge().build());
+ sizes.add(m5_2xlarge().build());
+ sizes.add(m5_4xlarge().build());
+ sizes.add(m5_12xlarge().build());
+ sizes.add(m5_24xlarge().build());
sizes.add(r3_large().build());
sizes.add(r3_xlarge().build());
sizes.add(r3_2xlarge().build());