diff --git a/apis/elasticstack/pom.xml b/apis/elasticstack/pom.xml
index 8b37358f4a..ddf599fa7e 100644
--- a/apis/elasticstack/pom.xml
+++ b/apis/elasticstack/pom.xml
@@ -78,6 +78,18 @@
${project.version}
test
+
+ com.squareup.okhttp
+ mockwebserver
+ test
+
+
+
+ org.bouncycastle
+ bcprov-jdk15on
+
+
+
diff --git a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/ElasticStackApi.java b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/ElasticStackApi.java
index bc6fe392ab..7e7b056fcf 100644
--- a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/ElasticStackApi.java
+++ b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/ElasticStackApi.java
@@ -38,10 +38,12 @@ import org.jclouds.elasticstack.domain.DriveInfo;
import org.jclouds.elasticstack.domain.ImageConversionType;
import org.jclouds.elasticstack.domain.Server;
import org.jclouds.elasticstack.domain.ServerInfo;
+import org.jclouds.elasticstack.domain.StandardDrive;
import org.jclouds.elasticstack.functions.KeyValuesDelimitedByBlankLinesToDriveInfo;
import org.jclouds.elasticstack.functions.KeyValuesDelimitedByBlankLinesToServerInfo;
import org.jclouds.elasticstack.functions.ListOfKeyValuesDelimitedByBlankLinesToDriveInfoSet;
import org.jclouds.elasticstack.functions.ListOfKeyValuesDelimitedByBlankLinesToServerInfoSet;
+import org.jclouds.elasticstack.functions.ListOfKeyValuesDelimitedByBlankLinesToStandardDriveSet;
import org.jclouds.elasticstack.functions.ReturnPayload;
import org.jclouds.elasticstack.functions.SplitNewlines;
import org.jclouds.http.filters.BasicAuthentication;
@@ -201,6 +203,26 @@ public interface ElasticStackApi extends Closeable {
@Path("/drives/info")
@ResponseParser(ListOfKeyValuesDelimitedByBlankLinesToDriveInfoSet.class)
Set listDriveInfo();
+
+ /**
+ * Lists standard drive UUIDs in your account
+ *
+ * @return or empty set if no standard drives are found
+ */
+ @GET
+ @Path("/drives/list/standard")
+ @ResponseParser(SplitNewlines.class)
+ Set listStandardDrives();
+
+ /**
+ * Gets information about all standard drives
+ *
+ * @return or empty set if no standard drives are found
+ */
+ @GET
+ @Path("/drives/info/standard")
+ @ResponseParser(ListOfKeyValuesDelimitedByBlankLinesToStandardDriveSet.class)
+ Set listStandardDriveInfo();
/**
* @param uuid
diff --git a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/ElasticStackApiMetadata.java b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/ElasticStackApiMetadata.java
index 9625beba16..19c630903b 100644
--- a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/ElasticStackApiMetadata.java
+++ b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/ElasticStackApiMetadata.java
@@ -62,7 +62,6 @@ public class ElasticStackApiMetadata extends BaseHttpApiMetadata {
- @SuppressWarnings("deprecation")
protected Builder() {
id("elasticstack")
.name("ElasticStack API")
diff --git a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/compute/ElasticStackComputeServiceAdapter.java b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/compute/ElasticStackComputeServiceAdapter.java
index a478cf49a6..e1364d0564 100644
--- a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/compute/ElasticStackComputeServiceAdapter.java
+++ b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/compute/ElasticStackComputeServiceAdapter.java
@@ -32,6 +32,7 @@ import javax.inject.Named;
import javax.inject.Singleton;
import org.jclouds.Constants;
+import org.jclouds.collect.Memoized;
import org.jclouds.compute.ComputeServiceAdapter;
import org.jclouds.compute.domain.Hardware;
import org.jclouds.compute.domain.HardwareBuilder;
@@ -57,6 +58,7 @@ import org.jclouds.logging.Logger;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
+import com.google.common.base.Supplier;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import com.google.common.collect.FluentIterable;
@@ -70,7 +72,7 @@ import com.google.common.util.concurrent.UncheckedExecutionException;
/**
* defines the connection between the {@link org.jclouds.elasticstack.ElasticStackApi} implementation
- * and the jclouds {@link ComputeService}
+ * and the jclouds {@link org.jclouds.compute.ComputeService}
*
*/
@Singleton
@@ -78,7 +80,7 @@ public class ElasticStackComputeServiceAdapter implements
ComputeServiceAdapter {
private final ElasticStackApi client;
private final Predicate driveNotClaimed;
- private final Map preinstalledImages;
+ private final Supplier