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 d5adcc24da..a8f4c55257 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
@@ -228,7 +228,13 @@ public class EC2HardwareBuilder extends HardwareBuilder {
return this;
}
-
+
+ private EC2HardwareBuilder t3() {
+ virtualizationType(VirtualizationType.HVM);
+
+ return this;
+ }
+
private EC2HardwareBuilder m3() {
virtualizationTypes(VirtualizationType.HVM, VirtualizationType.PARAVIRTUAL);
return this;
@@ -393,13 +399,22 @@ public class EC2HardwareBuilder extends HardwareBuilder {
.processors(ImmutableList.of(new Processor(1.0, 1.0))).rootDeviceType(RootDeviceType.EBS);
}
+ /**
+ * @see InstanceType#T2_NANO
+ */
+ public static EC2HardwareBuilder t2_nano() {
+ return new EC2HardwareBuilder(InstanceType.T2_NANO).t2()
+ .ram(512)
+ .processors(ImmutableList.of(new Processor(1.0, 3.3))).rootDeviceType(RootDeviceType.EBS);
+ }
+
/**
* @see InstanceType#T2_MICRO
*/
public static EC2HardwareBuilder t2_micro() {
return new EC2HardwareBuilder(InstanceType.T2_MICRO).t2()
.ram(1024)
- .processors(ImmutableList.of(new Processor(1.0, 0.1))).rootDeviceType(RootDeviceType.EBS);
+ .processors(ImmutableList.of(new Processor(1.0, 3.3))).rootDeviceType(RootDeviceType.EBS);
}
/**
@@ -408,7 +423,7 @@ public class EC2HardwareBuilder extends HardwareBuilder {
public static EC2HardwareBuilder t2_small() {
return new EC2HardwareBuilder(InstanceType.T2_SMALL).t2()
.ram(2048)
- .processors(ImmutableList.of(new Processor(1.0, 0.2))).rootDeviceType(RootDeviceType.EBS);
+ .processors(ImmutableList.of(new Processor(1.0, 3.3))).rootDeviceType(RootDeviceType.EBS);
}
/**
@@ -417,7 +432,7 @@ public class EC2HardwareBuilder extends HardwareBuilder {
public static EC2HardwareBuilder t2_medium() {
return new EC2HardwareBuilder(InstanceType.T2_MEDIUM).t2()
.ram(4096)
- .processors(ImmutableList.of(new Processor(1.0, 0.4))).rootDeviceType(RootDeviceType.EBS);
+ .processors(ImmutableList.of(new Processor(2.0, 3.3))).rootDeviceType(RootDeviceType.EBS);
}
/**
@@ -426,9 +441,92 @@ public class EC2HardwareBuilder extends HardwareBuilder {
public static EC2HardwareBuilder t2_large() {
return new EC2HardwareBuilder(InstanceType.T2_LARGE).t2()
.ram(8192)
- .processors(ImmutableList.of(new Processor(1.0, 0.4))).rootDeviceType(RootDeviceType.EBS);
+ .processors(ImmutableList.of(new Processor(2.0, 3.0))).rootDeviceType(RootDeviceType.EBS);
}
+ /**
+ * @see InstanceType#T2_XLARGE
+ */
+ public static EC2HardwareBuilder t2_xlarge() {
+ return new EC2HardwareBuilder(InstanceType.T2_XLARGE).t2()
+ .ram(16384)
+ .processors(ImmutableList.of(new Processor(4.0, 3.0))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T2_2XLARGE
+ */
+ public static EC2HardwareBuilder t2_2xlarge() {
+ return new EC2HardwareBuilder(InstanceType.T2_2XLARGE).t2()
+ .ram(32768)
+ .processors(ImmutableList.of(new Processor(8.0, 3.0))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T3_NANO
+ */
+ public static EC2HardwareBuilder t3_nano() {
+ return new EC2HardwareBuilder(InstanceType.T3_NANO).t3()
+ .ram(512)
+ .processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T3_MICRO
+ */
+ public static EC2HardwareBuilder t3_micro() {
+ return new EC2HardwareBuilder(InstanceType.T3_MICRO).t3()
+ .ram(1024)
+ .processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T3_SMALL
+ */
+ public static EC2HardwareBuilder t3_small() {
+ return new EC2HardwareBuilder(InstanceType.T3_SMALL).t3()
+ .ram(2048)
+ .processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T3_MEDIUM
+ */
+ public static EC2HardwareBuilder t3_medium() {
+ return new EC2HardwareBuilder(InstanceType.T3_MEDIUM).t3()
+ .ram(4096)
+ .processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T3_LARGE
+ */
+ public static EC2HardwareBuilder t3_large() {
+ return new EC2HardwareBuilder(InstanceType.T3_LARGE).t3()
+ .ram(8192)
+ .processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T3_XLARGE
+ */
+ public static EC2HardwareBuilder t3_xlarge() {
+ return new EC2HardwareBuilder(InstanceType.T3_XLARGE).t3()
+ .ram(16384)
+ .processors(ImmutableList.of(new Processor(4.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T3_2XLARGE
+ */
+ public static EC2HardwareBuilder t3_2xlarge() {
+ return new EC2HardwareBuilder(InstanceType.T3_2XLARGE).t3()
+ .ram(32768)
+ .processors(ImmutableList.of(new Processor(8.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+
+
/**
* @see InstanceType#M1_LARGE
*/
@@ -605,6 +703,17 @@ public class EC2HardwareBuilder extends HardwareBuilder {
.rootDeviceType(RootDeviceType.EBS);
}
+ /**
+ * @see InstanceType#M4_16XLARGE
+ */
+ public static EC2HardwareBuilder m4_16xlarge() {
+ return new EC2HardwareBuilder(InstanceType.M4_16XLARGE).m4()
+ .ram(262144)
+ .processors(ImmutableList.of(new Processor(64.0, 3.1125)))
+ .is64Bit(true)
+ .rootDeviceType(RootDeviceType.EBS);
+ }
+
/**
* @see InstanceType#M5_LARGE
*/
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 2faf2a4477..1a01031e7b 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
@@ -29,6 +29,17 @@ public class InstanceType {
*/
public static final String T1_MICRO = "t1.micro";
+ /**
+ * Micro Burstable Performance Instance
+ *
+ * - 512 MB memory
+ * - 1 vCPU / 10% baseline performance
+ * - No instance storage (EBS storage only)
+ * - 64-bit platform
+ *
+ */
+ public static final String T2_NANO = "t2.nano";
+
/**
* Micro Burstable Performance Instance
*
@@ -73,6 +84,105 @@ public class InstanceType {
*/
public static final String T2_LARGE = "t2.large";
+ /**
+ * Micro Burstable Performance Instance
+ *
+ * - 16 GB memory
+ * - 4 vCPU / 40% baseline performance
+ * - No instance storage (EBS storage only)
+ * - 64-bit platform
+ *
+ */
+ public static final String T2_XLARGE = "t2.xlarge";
+
+ /**
+ * Micro Burstable Performance Instance
+ *
+ * - 32 GB memory
+ * - 8 vCPU / 40% baseline performance
+ * - No instance storage (EBS storage only)
+ * - 64-bit platform
+ *
+ */
+ public static final String T2_2XLARGE = "t2.2xlarge";
+
+ /**
+ * Micro Burstable Performance Instance
+ *
+ * - 512 MB memory
+ * - 2 vCPU / 10% baseline performance
+ * - No instance storage (EBS storage only)
+ * - 64-bit platform
+ *
+ */
+ public static final String T3_NANO = "t3.nano";
+
+ /**
+ * Micro Burstable Performance Instance
+ *
+ * - 1 GB memory
+ * - 2 vCPU / 10% baseline performance
+ * - No instance storage (EBS storage only)
+ * - 64-bit platform
+ *
+ */
+ public static final String T3_MICRO = "t3.micro";
+
+ /**
+ * Micro Burstable Performance Instance
+ *
+ * - 2 GB memory
+ * - 2 vCPU / 10% baseline performance
+ * - No instance storage (EBS storage only)
+ * - 64-bit platform
+ *
+ */
+ public static final String T3_SMALL = "t3.small";
+
+ /**
+ * Micro Burstable Performance Instance
+ *
+ * - 4 GB memory
+ * - 2 vCPU / 10% baseline performance
+ * - No instance storage (EBS storage only)
+ * - 64-bit platform
+ *
+ */
+ public static final String T3_MEDIUM = "t3.medium";
+
+ /**
+ * Micro Burstable Performance Instance
+ *
+ * - 8 GB memory
+ * - 2 vCPU / 10% baseline performance
+ * - No instance storage (EBS storage only)
+ * - 64-bit platform
+ *
+ */
+ public static final String T3_LARGE = "t3.large";
+
+ /**
+ * Micro Burstable Performance Instance
+ *
+ * - 16 GB memory
+ * - 4 vCPU / 10% baseline performance
+ * - No instance storage (EBS storage only)
+ * - 64-bit platform
+ *
+ */
+ public static final String T3_XLARGE = "t3.xlarge";
+
+ /**
+ * Micro Burstable Performance Instance
+ *
+ * - 32 GB memory
+ * - 8 vCPU / 10% baseline performance
+ * - No instance storage (EBS storage only)
+ * - 64-bit platform
+ *
+ */
+ public static final String T3_2XLARGE = "t3.2xlarge";
+
/**
* Small Instance
*
@@ -268,6 +378,18 @@ public class InstanceType {
*/
public static final String M4_10XLARGE = "m4.10xlarge";
+ /**
+ * M4 Sexdecuple Extra Large Instance
+ *
+ * - 256 GiB memory
+ * - 199.2 EC2 Compute Units (64 virtual cores with 3.1125 EC2 Compute Units each)
+ * - EBS storage only
+ * - 64-bit platform
+ * - I/O Performance: High
+ *
+ */
+ public static final String M4_16XLARGE = "m4.16xlarge";
+
/**
* M5 Large 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 cd334fc589..119ab572a3 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
@@ -60,6 +60,7 @@ import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m3_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m3_medium;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m3_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_10xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_16xlarge;
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;
@@ -85,7 +86,17 @@ import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t1_micro;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_medium;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_micro;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_nano;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_small;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_2xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_nano;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_micro;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_small;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_medium;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_large;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.x1_16xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.x1_32xlarge;
@@ -122,10 +133,20 @@ public class AWSEC2HardwareSupplier extends EC2HardwareSupplier {
sizes.add(g2_2xlarge().supportsImageIds(ccAmis).build());
sizes.add(t1_micro().build());
+ sizes.add(t2_nano().build());
sizes.add(t2_micro().build());
sizes.add(t2_small().build());
sizes.add(t2_medium().build());
sizes.add(t2_large().build());
+ sizes.add(t2_xlarge().build());
+ sizes.add(t2_2xlarge().build());
+ sizes.add(t3_nano().build());
+ sizes.add(t3_micro().build());
+ sizes.add(t3_small().build());
+ sizes.add(t3_medium().build());
+ sizes.add(t3_large().build());
+ sizes.add(t3_xlarge().build());
+ sizes.add(t3_2xlarge().build());
sizes.add(c1_medium().build());
sizes.add(c1_xlarge().build());
sizes.add(c3_large().build());
@@ -164,6 +185,7 @@ public class AWSEC2HardwareSupplier extends EC2HardwareSupplier {
sizes.add(m4_2xlarge().build());
sizes.add(m4_4xlarge().build());
sizes.add(m4_10xlarge().build());
+ sizes.add(m4_16xlarge().build());
sizes.add(m5_large().build());
sizes.add(m5_xlarge().build());
sizes.add(m5_2xlarge().build());