You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2014/12/23 05:26:30 UTC

[06/51] [partial] stratos git commit: dropping jclouds 1.8.0 clone

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneAndId.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneAndId.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneAndId.java
deleted file mode 100644
index e77286e..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneAndId.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.domain.zonescoped;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Splitter;
-import com.google.common.collect.Iterables;
-
-public class ZoneAndId {
-   public static ZoneAndId fromSlashEncoded(String id) {
-      Iterable<String> parts = Splitter.on('/').split(checkNotNull(id, "id"));
-      checkArgument(Iterables.size(parts) == 2, "id must be in format zoneId/id");
-      return new ZoneAndId(Iterables.get(parts, 0), Iterables.get(parts, 1));
-   }
-
-   public static ZoneAndId fromZoneAndId(String zoneId, String id) {
-      return new ZoneAndId(zoneId, id);
-   }
-
-   private static String slashEncodeZoneAndId(String zoneId, String id) {
-      return checkNotNull(zoneId, "zoneId") + "/" + checkNotNull(id, "id");
-   }
-
-   public String slashEncode() {
-      return slashEncodeZoneAndId(zoneId, id);
-   }
-
-   protected final String zoneId;
-   protected final String id;
-
-   protected ZoneAndId(String zoneId, String id) {
-      this.zoneId = checkNotNull(zoneId, "zoneId");
-      this.id = checkNotNull(id, "id");
-   }
-
-   @Override
-   public int hashCode() {
-      return Objects.hashCode(zoneId, id);
-   }
-
-   @Override
-   public boolean equals(Object obj) {
-      if (this == obj)
-         return true;
-      if (obj == null)
-         return false;
-      if (getClass() != obj.getClass())
-         return false;
-      ZoneAndId other = (ZoneAndId) obj;
-      return Objects.equal(zoneId, other.zoneId) && Objects.equal(id, other.id);
-   }
-
-   public String getZone() {
-      return zoneId;
-   }
-
-   public String getId() {
-      return id;
-   }
-
-   @Override
-   public String toString() {
-      return "[zoneId=" + zoneId + ", id=" + id + "]";
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneAndName.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneAndName.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneAndName.java
deleted file mode 100644
index ef12fd9..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneAndName.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.domain.zonescoped;
-
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import com.google.common.base.Function;
-import com.google.common.base.Objects;
-import com.google.common.base.Splitter;
-import com.google.common.base.Objects.ToStringHelper;
-import com.google.common.collect.Iterables;
-
-/**
- * Helpful when looking for resources by zone and name
- */
-public class ZoneAndName {
-   
-   public static final Function<ZoneAndName, String> NAME_FUNCTION = new Function<ZoneAndName, String>() {
-
-      @Override
-      public String apply(ZoneAndName input) {
-         return input.getName();
-      }
-      
-   };
-   
-   public static final Function<ZoneAndName, String> ZONE_FUNCTION = new Function<ZoneAndName, String>() {
-
-      @Override
-      public String apply(ZoneAndName input) {
-         return input.getZone();
-      }
-      
-   };
-   
-   public static ZoneAndName fromSlashEncoded(String name) {
-      Iterable<String> parts = Splitter.on('/').split(checkNotNull(name, "name"));
-      checkArgument(Iterables.size(parts) == 2, "name must be in format zoneId/name");
-      return new ZoneAndName(Iterables.get(parts, 0), Iterables.get(parts, 1));
-   }
-
-   public static ZoneAndName fromZoneAndName(String zoneId, String name) {
-      return new ZoneAndName(zoneId, name);
-   }
-
-   private static String slashEncodeZoneAndName(String zoneId, String name) {
-      return checkNotNull(zoneId, "zoneId") + "/" + checkNotNull(name, "name");
-   }
-
-   public String slashEncode() {
-      return slashEncodeZoneAndName(zoneId, name);
-   }
-
-   protected final String zoneId;
-   protected final String name;
-
-   protected ZoneAndName(String zoneId, String name) {
-      this.zoneId = checkNotNull(zoneId, "zoneId");
-      this.name = checkNotNull(name, "name");
-   }
-
-   public String getZone() {
-      return zoneId;
-   }
-
-   public String getName() {
-      return name;
-   }
-
-   @Override
-   public boolean equals(Object o) {
-      if (this == o)
-         return true;
-      if (o == null || getClass() != o.getClass())
-         return false;
-      ZoneAndName that = ZoneAndName.class.cast(o);
-      return equal(this.zoneId, that.zoneId) && equal(this.name, that.name);
-   }
-
-   @Override
-   public int hashCode() {
-      return Objects.hashCode(zoneId, name);
-   }
-
-   @Override
-   public String toString() {
-      return string().toString();
-   }
-
-   protected ToStringHelper string() {
-      return Objects.toStringHelper("").add("zoneId", zoneId).add("name", name);
-   }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneSecurityGroupNameAndPorts.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneSecurityGroupNameAndPorts.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneSecurityGroupNameAndPorts.java
deleted file mode 100644
index a5c1c65..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneSecurityGroupNameAndPorts.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.domain.zonescoped;
-
-import static com.google.common.base.Objects.equal;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Set;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Objects.ToStringHelper;
-import com.google.common.collect.ImmutableSet;
-
-public class ZoneSecurityGroupNameAndPorts extends ZoneAndName {
-   protected final Set<Integer> ports;
-
-   public ZoneSecurityGroupNameAndPorts(String zoneId, String name, Iterable<Integer> ports) {
-      super(zoneId, name);
-      this.ports = ImmutableSet.<Integer> copyOf(checkNotNull(ports, "ports"));
-   }
-
-   public Set<Integer> getPorts() {
-      return ports;
-   }
-
-   @Override
-   public boolean equals(Object o) {
-      if (this == o)
-         return true;
-      if (o == null || getClass() != o.getClass())
-         return false;
-      ZoneSecurityGroupNameAndPorts that = ZoneSecurityGroupNameAndPorts.class.cast(o);
-      return super.equals(that) && equal(this.ports, that.ports);
-   }
-
-   @Override
-   public int hashCode() {
-      return Objects.hashCode(super.hashCode(), ports);
-   }
-
-   @Override
-   public ToStringHelper string() {
-      return super.string().add("ports", ports);
-   }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneState.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneState.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneState.java
deleted file mode 100644
index d32c368..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneState.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.domain.zonescoped;
-
-import com.google.common.base.Objects;
-
-public class ZoneState {
-
-   private final boolean available;
-
-   protected ZoneState(boolean available) {
-      this.available = available;
-   }
-
-   public boolean available() {
-      return this.available;
-   }
-
-   @Override
-   public int hashCode() {
-      return Objects.hashCode(available);
-   }
-
-   @Override
-   public boolean equals(Object obj) {
-      if (this != obj) return false;
-      if (obj == null || getClass() != obj.getClass()) return false;
-      ZoneState that = ZoneState.class.cast(obj);
-      return Objects.equal(this.available, that.available);
-   }
-
-   protected Objects.ToStringHelper string() {
-      return Objects.toStringHelper(this)
-            .add("available", available);
-   }
-
-   @Override
-   public String toString() {
-      return string().toString();
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApi.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApi.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApi.java
deleted file mode 100644
index 7b894fb..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApi.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.nova.v2_0.domain.zonescoped.AvailabilityZone;
-import org.jclouds.openstack.v2_0.ServiceType;
-import org.jclouds.openstack.v2_0.services.Extension;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.FluentIterable;
-
-/**
- * Provides access to the OpenStack Compute (Nova) Availability Zone Extension API.
- */
-@Beta
-@Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.AVAILABILITY_ZONE)
-@RequestFilters(AuthenticateRequest.class)
-@Consumes(MediaType.APPLICATION_JSON)
-@Path("/os-availability-zone")
-public interface AvailabilityZoneApi {
-   /**
-    * @return all availability zones
-    */
-   @Named("availabilityZone:list")
-   @GET
-   @SelectJson("availabilityZoneInfo")
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   FluentIterable<AvailabilityZone> list();
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApi.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApi.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApi.java
deleted file mode 100644
index 715ce52..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApi.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.fallbacks.MapHttp4xxCodesToExceptions;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.nova.v2_0.binders.BindConsoleToJsonPayload;
-import org.jclouds.openstack.nova.v2_0.domain.Console;
-import org.jclouds.openstack.v2_0.ServiceType;
-import org.jclouds.openstack.v2_0.services.Extension;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-
-import com.google.common.annotations.Beta;
-
-/**
- * Provides access to the OpenStack Compute (Nova) Consoles Extension API.
- * <p/>
- *
- */
-@Beta
-@Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.CONSOLES)
-@RequestFilters(AuthenticateRequest.class)
-@Consumes(MediaType.APPLICATION_JSON)
-public interface ConsolesApi {
-   /**
-    * Gets the specified server Console.
-    *
-    * @param serverId Server id
-    * @param type see {@link Console.Type}
-    * @return a Console object containing the console url and type.
-    */
-   @Named("consoles:getConsole")
-   @POST
-   @Path("/servers/{serverId}/action")
-   @SelectJson("console")
-   @Produces(MediaType.APPLICATION_JSON)
-   @Fallback(MapHttp4xxCodesToExceptions.class)
-   @MapBinder(BindConsoleToJsonPayload.class)
-   Console getConsole(@PathParam("serverId") String serverId, @PayloadParam("type") Console.Type type);
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ExtensionNamespaces.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ExtensionNamespaces.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ExtensionNamespaces.java
deleted file mode 100644
index 503f32e..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ExtensionNamespaces.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-/**
- * Extension namespaces
- *
- * @see <a href= "http://nova.openstack.org/api_ext/" />
- */
-public interface ExtensionNamespaces {
-   /**
-    * Keypair Support
-    */
-   public static final String KEYPAIRS = "http://docs.openstack.org/ext/keypairs/api/v1.1";
-   /**
-    * Volumes support
-    */
-   public static final String VOLUMES = "http://docs.openstack.org/ext/volumes/api/v1.1";
-   /**
-    * Volume types support
-    */
-   public static final String VOLUME_TYPES = "http://docs.openstack.org/ext/volume_types/api/v1.1";
-   /**
-    * Security group support
-    */
-   public static final String SECURITY_GROUPS = "http://docs.openstack.org/ext/securitygroups/api/v1.1";
-   /**
-    * Floating IPs support
-    */
-   public static final String FLOATING_IPS = "http://docs.openstack.org/ext/floating_ips/api/v1.1";
-   /**
-    * Multiple network support
-    */
-   public static final String MULTINIC = "http://docs.openstack.org/ext/multinic/api/v1.1";
-   /**
-    * Host administration
-    */
-   public static final String HOSTS = "http://docs.openstack.org/ext/hosts/api/v1.1";
-   /**
-    * Quotas management support
-    */
-   public static final String QUOTAS = "http://docs.openstack.org/ext/quotas-sets/api/v1.1";
-   /**
-    * Instance type (flavor) extra specs
-    */
-   public static final String FLAVOR_EXTRA_SPECS = "http://docs.openstack.org/ext/flavor_extra_specs/api/v1.1";
-   /**
-    * Provide additional data for flavors
-    */
-   public static final String FLAVOR_EXTRA_DATA = "http://docs.openstack.org/ext/flavor_extra_data/api/v1.1";
-   /**
-    * Virtual interface support
-    */
-   public static final String VIRTUAL_INTERFACES = "http://docs.openstack.org/ext/virtual_interfaces/api/v1.1";
-   /**
-    * Availability zone extensions
-    */
-   public static final String AVAILABILITY_ZONE = "http://docs.openstack.org/compute/ext/availabilityzone/api/v1.1";
-   /**
-    * Extended support to the Create Server v1.1 API
-    */
-   public static final String CREATESERVEREXT = "http://docs.openstack.org/ext/createserverext/api/v1.1";
-   /**
-    * Virtual Storage Arrays support
-    */
-   public static final String VSA = "http://docs.openstack.org/ext/vsa/api/v1.1";
-   /**
-    * Simple tenant usage extension
-    */
-   public static final String SIMPLE_TENANT_USAGE = "http://docs.openstack.org/ext/os-simple-tenant-usage/api/v1.1";
-   /**
-    * Instance rescue mode
-    */
-   public static final String RESCUE = "http://docs.openstack.org/ext/rescue/api/v1.1";
-   /**
-    * Admin Action extension
-    */
-   public static final String ADMIN_ACTIONS = "http://docs.openstack.org/ext/admin-actions/api/v1.1";
-
-   /**
-    * Extended Server Status extension
-    */
-   public static final String EXTENDED_STATUS = "http://docs.openstack.org/compute/ext/extended_status/api/v1.1";
-
-   /**
-    * Disk Config extension
-    */
-   public static final String DISK_CONFIG = "http://docs.openstack.org/compute/ext/disk_config/api/v1.1";
-
-   /**
-    * Aggregates extension
-    */
-   public static final String AGGREGATES = "http://docs.openstack.org/ext/aggregates/api/v1.1";
-
-   /**
-    * Consoles extension
-    */
-   public static final String CONSOLES = "http://docs.openstack.org/compute/ext/os-consoles/api/v2";
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApi.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApi.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApi.java
deleted file mode 100644
index 5856cd6..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApi.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-import java.util.Map;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyMapOnNotFoundOr404;
-import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.v2_0.ServiceType;
-import org.jclouds.openstack.v2_0.services.Extension;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.annotations.Unwrap;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-import com.google.common.annotations.Beta;
-
-/**
- * Provides access to the OpenStack Compute (Nova) Flavor Extra Specs Extension API.
- *
- * @see org.jclouds.openstack.nova.v2_0.features.FlavorApi
- */
-@Beta
-@Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.FLAVOR_EXTRA_SPECS)
-@RequestFilters(AuthenticateRequest.class)
-@Consumes(MediaType.APPLICATION_JSON)
-@Path("/flavors")
-public interface FlavorExtraSpecsApi {
-   /**
-    * Retrieves all extra specs for a flavor
-    *
-    * @return the set of extra metadata for the flavor
-    */
-   @Named("flavorExtraSpecs:getMetadata")
-   @GET
-   @Path("/{id}/os-extra_specs")
-   @SelectJson("extra_specs")
-   @Fallback(EmptyMapOnNotFoundOr404.class)
-   Map<String, String> getMetadata(@PathParam("id") String flavorId);
-
-   /**
-    * Creates or updates the extra specs for a given flavor
-    *
-    * @param flavorId   the id of the flavor to modify
-    * @param specs      the extra specs to apply
-    */
-   @Named("flavorExtraSpecs:updateMetadata")
-   @POST
-   @Path("/{id}/os-extra_specs")
-   @Produces(MediaType.APPLICATION_JSON)
-   @MapBinder(BindToJsonPayload.class)
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean updateMetadata(@PathParam("id") String flavorId,
-         @PayloadParam("extra_specs") Map<String, String> specs);
-
-   /**
-    * Return a single extra spec value
-    *
-    * @param id  the id of the flavor to modify
-    * @param key the extra spec key to retrieve
-    */
-   @Named("flavorExtraSpecs:getMetadataKey")
-   @GET
-   @Path("/{id}/os-extra_specs/{key}")
-   @Unwrap
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   String getMetadataKey(@PathParam("id") String flavorId, @PathParam("key") String key);
-
-   /**
-    * Creates or updates a single extra spec value
-    *
-    * @param id    the id of the flavor to modify
-    * @param key   the extra spec key (when creating ensure this does not include whitespace or
-    *              other difficult characters)
-    * @param value the value to associate with the key
-    */
-   @Named("flavorExtraSpecs:updateMetadataEntry")
-   @PUT
-   @Path("/{id}/os-extra_specs/{key}")
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("%7B\"{key}\":\"{value}\"%7D")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean updateMetadataEntry(@PathParam("id") String flavorId,
-         @PathParam("key") @PayloadParam("key") String key, @PayloadParam("value") String value);
-
-   /**
-    * Deletes an extra spec
-    *
-    * @param id  the id of the flavor to modify
-    * @param key the extra spec key to delete
-    */
-   @Named("flavorExtraSpecs:deleteMetadataKey")
-   @DELETE
-   @Path("/{id}/os-extra_specs/{key}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean deleteMetadataKey(@PathParam("id") String flavorId, @PathParam("key") String key);
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApi.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApi.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApi.java
deleted file mode 100644
index 6160364..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApi.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.nova.v2_0.domain.FloatingIP;
-import org.jclouds.openstack.v2_0.ServiceType;
-import org.jclouds.openstack.v2_0.services.Extension;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.FluentIterable;
-
-/**
- * Provides access to the OpenStack Compute (Nova) Floating IP extension API.
- */
-@Beta
-@Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.FLOATING_IPS)
-@RequestFilters(AuthenticateRequest.class)
-@Consumes(MediaType.APPLICATION_JSON)
-public interface FloatingIPApi {
-   /**
-    * Lists all Floating IP addresses
-    *
-    * @return all Floating IPs
-    */
-   @Named("floatingIP:list")
-   @GET
-   @Path("/os-floating-ips")
-   @SelectJson("floating_ips")
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   FluentIterable<FloatingIP> list();
-
-   /**
-    * Gets a specific Floating IP address
-    *
-    * @return all Floating IPs
-    */
-   @Named("floatingIP:get")
-   @GET
-   @Path("/os-floating-ips/{id}")
-   @SelectJson("floating_ip")
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   FloatingIP get(@PathParam("id") String id);
-
-   /**
-    * Allocates a Floating IP address
-    *
-    * @return a newly created FloatingIP
-    */
-   @Named("floatingIP:create")
-   @POST
-   @Path("/os-floating-ips")
-   @SelectJson("floating_ip")
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   FloatingIP create();
-
-   /**
-    * Allocates a Floating IP address from a pool
-    *
-    * @param pool
-    *         Pool to allocate IP address from
-    * @return a newly created FloatingIP
-    */
-   @Named("floatingIP:allocateFromPool")
-   @POST
-   @Path("/os-floating-ips")
-   @SelectJson("floating_ip")
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("%7B\"pool\":\"{pool}\"%7D")
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   FloatingIP allocateFromPool(@PayloadParam("pool") String pool);
-
-   /**
-    * Deletes a Floating IP address
-    *
-    * @param id
-    *           the Floating IP id
-    */
-   @Named("floatingIP:delete")
-   @DELETE
-   @Path("/os-floating-ips/{id}")
-   void delete(@PathParam("id") String id);
-
-   /**
-    * Adds a Floating IP address to a Server
-    *
-    * @param id
-    *           the server id
-    * @param address
-    *           the IP address to add
-    *
-    *           NOTE: Possibly move this to ServerApi?
-    */
-   @Named("floatingIP:add")
-   @POST
-   @Path("/servers/{id}/action")
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("%7B\"addFloatingIp\":%7B\"address\":\"{address}\"%7D%7D")
-   void addToServer(@PayloadParam("address") String address, @PathParam("id") String serverId);
-
-   /**
-    * Removes a Floating IP address from a Server
-    *
-    * @param id
-    *           the server id
-    * @param address
-    *           the IP address to remove
-    *
-    *           NOTE: Possibly move this to ServerApi?
-    */
-   @Named("floatingIP:remove")
-   @POST
-   @Path("/servers/{id}/action")
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("%7B\"removeFloatingIp\":%7B\"address\":\"{address}\"%7D%7D")
-   void removeFromServer(@PayloadParam("address") String address, @PathParam("id") String serverId);
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApi.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApi.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApi.java
deleted file mode 100644
index 5836507..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApi.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.nova.v2_0.domain.Host;
-import org.jclouds.openstack.nova.v2_0.domain.HostResourceUsage;
-import org.jclouds.openstack.nova.v2_0.functions.FieldValueResponseParsers.MaintenanceModeDisabledResponseParser;
-import org.jclouds.openstack.nova.v2_0.functions.FieldValueResponseParsers.MaintenanceModeEnabledResponseParser;
-import org.jclouds.openstack.nova.v2_0.functions.FieldValueResponseParsers.PowerIsRebootResponseParser;
-import org.jclouds.openstack.nova.v2_0.functions.FieldValueResponseParsers.PowerIsShutdownResponseParser;
-import org.jclouds.openstack.nova.v2_0.functions.FieldValueResponseParsers.PowerIsStartupResponseParser;
-import org.jclouds.openstack.nova.v2_0.functions.FieldValueResponseParsers.StatusDisabledResponseParser;
-import org.jclouds.openstack.nova.v2_0.functions.FieldValueResponseParsers.StatusEnabledResponseParser;
-import org.jclouds.openstack.v2_0.ServiceType;
-import org.jclouds.openstack.v2_0.services.Extension;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.SelectJson;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.FluentIterable;
-
-/**
- * Provides access to OpenStack Compute (Nova) Host Administration extension API.
- */
-@Beta
-@Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.HOSTS)
-@RequestFilters(AuthenticateRequest.class)
-@Consumes(MediaType.APPLICATION_JSON)
-@Path("/os-hosts")
-public interface HostAdministrationApi {
-   /**
-    * Returns the list of hosts
-    *
-    * @return the usage information
-    */
-   @Named("hostAdmin:list")
-   @GET
-   @SelectJson("hosts")
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   FluentIterable<Host> list();
-
-   /**
-    * Retrieves the physical/usage resource on a specific host
-    *
-    * @return the usage information
-    */
-   @Named("hostAdmin:listResourceUsage")
-   @GET
-   @Path("/{id}")
-   @SelectJson("host")
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   FluentIterable<HostResourceUsage> listResourceUsage(@PathParam("id") String hostId);
-
-   /**
-    * Allow the specified host to accept new instances.
-    *
-    * @return true if successful
-    */
-   @Named("hostAdmin:enable")
-   @PUT
-   @Path("/{id}")
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"status\":\"enable\"}")
-   @ResponseParser(StatusEnabledResponseParser.class)
-   boolean enable(@PathParam("id") String hostId);
-
-   /**
-    * Prevent the specified host from accepting new instances.
-    *
-    * @return true if successful
-    */
-   @Named("hostAdmin:disable")
-   @PUT
-   @Path("/{id}")
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"status\":\"disable\"}")
-   @ResponseParser(StatusDisabledResponseParser.class)
-   boolean disable(@PathParam("id") String hostId);
-
-   /**
-    * Start host maintenance window.
-    * <p/>
-    * Note: this triggers guest VMs evacuation.
-    *
-    * @return true if successful
-    */
-   @Named("hostAdmin:startMaintenance")
-   @PUT
-   @Path("/{id}")
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"maintenance_mode\":\"enable\"}")
-   @ResponseParser(MaintenanceModeEnabledResponseParser.class)
-   boolean startMaintenance(@PathParam("id") String hostId);
-
-   /**
-    * Stop host maintenance window.
-    *
-    * @return true if successful
-    */
-   @Named("hostAdmin:stopMaintenance")
-   @PUT
-   @Path("/{id}")
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"maintenance_mode\":\"disable\"}")
-   @ResponseParser(MaintenanceModeDisabledResponseParser.class)
-   boolean stopMaintenance(@PathParam("id") String hostId);
-
-   /**
-    * Startup a host.
-    *
-    * @return true if successful
-    */
-   @Named("hostAdmin:startup")
-   @GET
-   @Path("/{id}/startup")
-   @ResponseParser(PowerIsStartupResponseParser.class)
-   boolean startup(@PathParam("id") String hostId);
-
-   /**
-    * Shutdown a host.
-    *
-    * @return true if successful
-    */
-   @Named("hostAdmin:shutdown")
-   @GET
-   @Path("/{id}/shutdown")
-   @ResponseParser(PowerIsShutdownResponseParser.class)
-   boolean shutdown(@PathParam("id") String hostId);
-
-   /**
-    * Reboot a host.
-    *
-    * @return true if successful
-    */
-   @Named("hostAdmin:reboot")
-   @GET
-   @Path("/{id}/reboot")
-   @ResponseParser(PowerIsRebootResponseParser.class)
-   boolean reboot(@PathParam("id") String hostId);
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApi.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApi.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApi.java
deleted file mode 100644
index b291ca0..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApi.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-import java.util.Map;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404;
-import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.nova.v2_0.domain.HostAggregate;
-import org.jclouds.openstack.v2_0.ServiceType;
-import org.jclouds.openstack.v2_0.services.Extension;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.annotations.WrapWith;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.FluentIterable;
-
-/**
- * Provide access to the OpenStack Compute (Nova) Host Aggregates extension API.
- */
-@Beta
-@Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.AGGREGATES)
-@RequestFilters(AuthenticateRequest.class)
-@Consumes(MediaType.APPLICATION_JSON)
-@Path("/os-aggregates")
-public interface HostAggregateApi {
-   /**
-    * Lists all host aggregates.
-    *
-    * @return the set of host aggregates.
-    */
-   @Named("hostAggregate:list")
-   @GET
-   @SelectJson("aggregates")
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   FluentIterable<HostAggregate> list();
-
-   /**
-    * Retrieves the details of an aggregate, hosts and metadata included.
-    *
-    * @return the details of the aggregate requested.
-    */
-   @Named("hostAggregate:get")
-   @GET
-   @Path("/{id}")
-   @SelectJson("aggregate")
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   HostAggregate get(@PathParam("id") String id);
-
-   /**
-    * Creates an aggregate, given its name and availability zone.
-    *
-    * @return the newly created Aggregate
-    */
-   @Named("hostAggregate:create")
-   @POST
-   @SelectJson("aggregate")
-   @Produces(MediaType.APPLICATION_JSON)
-   @WrapWith("aggregate")
-   HostAggregate createInAvailabilityZone(@PayloadParam("name") String name,
-         @PayloadParam("availability_zone") String availabilityZone);
-
-   /**
-    * Updates the name of an aggregate.
-    */
-   @Named("hostAggregate:update")
-   @POST
-   @Path("/{id}")
-   @SelectJson("aggregate")
-   @WrapWith("aggregate")
-   HostAggregate updateName(@PathParam("id") String id, @PayloadParam("name") String name);
-
-   /**
-    * Updates the availability zone for an aggregate.
-    */
-   @Named("hostAggregate:update")
-   @POST
-   @Path("/{id}")
-   @SelectJson("aggregate")
-   @WrapWith("aggregate")
-   HostAggregate updateAvailabilityZone(@PathParam("id") String id,
-         @PayloadParam("availability_zone") String availabilityZone);
-
-   /**
-    * Removes an aggregate.
-    */
-   @Named("hostAggregate:delete")
-   @DELETE
-   @Path("/{id}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean delete(@PathParam("id") String id);
-
-   /**
-    * Adds a host to an aggregate
-    */
-   @Named("hostAggregate:addHost")
-   @POST
-   @Path("/{id}/action")
-   @SelectJson("aggregate")
-   @Produces(MediaType.APPLICATION_JSON)
-   @WrapWith("add_host")
-   HostAggregate addHost(@PathParam("id") String id, @PayloadParam("host") String host);
-
-   /**
-    * Removes a host from an aggregate
-    */
-   @Named("hostAggregate:removeHost")
-   @POST
-   @Path("/{id}/action")
-   @SelectJson("aggregate")
-   @Produces(MediaType.APPLICATION_JSON)
-   @WrapWith("remove_host")
-   HostAggregate removeHost(@PathParam("id") String id, @PayloadParam("host") String host);
-
-   /**
-    * Adds metadata to an aggregate
-    */
-   @Named("hostAggregate:setMetadata")
-   @POST
-   @Path("/{id}/action")
-   @SelectJson("aggregate")
-   @Produces(MediaType.APPLICATION_JSON)
-   @WrapWith("set_metadata")
-   HostAggregate setMetadata(@PathParam("id") String id,
-         @PayloadParam("metadata") Map<String, String> metadata);
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApi.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApi.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApi.java
deleted file mode 100644
index cdc1d17..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApi.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404;
-import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.nova.v2_0.binders.BindKeyPairToJsonPayload;
-import org.jclouds.openstack.nova.v2_0.domain.KeyPair;
-import org.jclouds.openstack.nova.v2_0.functions.internal.ParseKeyPairs;
-import org.jclouds.openstack.v2_0.ServiceType;
-import org.jclouds.openstack.v2_0.services.Extension;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.SelectJson;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.FluentIterable;
-
-/**
- * Provides access to the OpenStack Compute (Nova) Key Pair Extension API.
- */
-@Beta
-@Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.KEYPAIRS)
-@RequestFilters(AuthenticateRequest.class)
-@Consumes(MediaType.APPLICATION_JSON)
-@Path("/os-keypairs")
-public interface KeyPairApi {
-   /**
-    * Lists all Key Pairs.
-    *
-    * @return all Key Pairs
-    */
-   @Named("keypair:list")
-   @GET
-   @ResponseParser(ParseKeyPairs.class)
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   FluentIterable<KeyPair> list();
-
-   /**
-    * Creates a {@link KeyPair}.
-    *
-    * @return the created {@link KeyPair}.
-    */
-   @Named("keypair:create")
-   @POST
-   @SelectJson("keypair")
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("%7B\"keypair\":%7B\"name\":\"{name}\"%7D%7D")
-   KeyPair create(@PayloadParam("name") String name);
-
-
-   /**
-    * Creates a {@link KeyPair} with a public key.
-    *
-    * @return the created {@link KeyPair}.
-    */
-   @Named("keypair:create")
-   @POST
-   @SelectJson("keypair")
-   @Produces(MediaType.APPLICATION_JSON)
-   @MapBinder(BindKeyPairToJsonPayload.class)
-   KeyPair createWithPublicKey(@PayloadParam("name") String name,
-         @PayloadParam("public_key") String publicKey);
-
-   /**
-    * Gets a specific {@link KeyPair} by name.
-    *
-    * @param name
-    *           the name of the {@link KeyPair}
-    *
-    * @return the specified {@link KeyPair}, otherwise null.
-    */
-   @Named("keypair:get")
-   @GET
-   @Path("/{name}")
-   @SelectJson("keypair")
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   KeyPair get(@PathParam("name") String name);
-
-   /**
-    * Deletes a {@link KeyPair}.
-    *
-    * @param name
-    *           the name of the {@link KeyPair}
-    *
-    * @return {@code true} if the {@link KeyPair} was deleted, otherwise {@code false}.
-    */
-   @Named("keypair:delete")
-   @DELETE
-   @Path("/{name}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   boolean delete(@PathParam("name") String name);
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApi.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApi.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApi.java
deleted file mode 100644
index ce7aeb8..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApi.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.nova.v2_0.domain.Quota;
-import org.jclouds.openstack.v2_0.ServiceType;
-import org.jclouds.openstack.v2_0.services.Extension;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-import com.google.common.annotations.Beta;
-
-/**
- * Provide access to OpenStack Compute (Nova) Quota Extension API.
- * <p/>
- * The quotas extension enables limiters placed on the resources used per tenant (project) for virtual instances. It is
- * used with the OpenStack Compute API 1.1 for administrators who need to control the amount of volumes, memory, floating
- * IP addresses, instances, or cores allowed within a defined tenant or project.
- * <p/>
- * To use this extension, you need to have administrative rights to the tenants upon which you are placing quotas.
- *
- */
-@Beta
-@Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.QUOTAS)
-@RequestFilters(AuthenticateRequest.class)
-@Consumes(MediaType.APPLICATION_JSON)
-@Path("/os-quota-sets")
-public interface QuotaApi {
-   /**
-    * @return the quota settings for the tenant
-    */
-   @Named("quota:get")
-   @GET
-   @SelectJson("quota_set")
-   @Path("/{id}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   Quota getByTenant(@PathParam("id") String tenantId);
-
-   /**
-    * Update the quotas for a given tenant
-    *
-    * @return true if successful
-    */
-   @Named("quota:update")
-   @PUT
-   @Path("/{id}")
-   @Produces(MediaType.APPLICATION_JSON)
-   @MapBinder(BindToJsonPayload.class)
-   boolean updateQuotaOfTenant(@PayloadParam("quota_set") Quota quota,
-         @PathParam("id") String tenantId);
-
-   /**
-    * @return the set of default quotas for the tenant
-    */
-   @Named("quota:get")
-   @GET
-   @SelectJson("quota_set")
-   @Path("/{id}/defaults")
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   Quota getDefaultsForTenant(@PathParam("id") String tenantId);
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApi.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApi.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApi.java
deleted file mode 100644
index ec37d65..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApi.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404;
-import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.nova.v2_0.binders.BindSecurityGroupRuleToJsonPayload;
-import org.jclouds.openstack.nova.v2_0.domain.Ingress;
-import org.jclouds.openstack.nova.v2_0.domain.SecurityGroup;
-import org.jclouds.openstack.nova.v2_0.domain.SecurityGroupRule;
-import org.jclouds.openstack.v2_0.ServiceType;
-import org.jclouds.openstack.v2_0.services.Extension;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.FluentIterable;
-
-/**
- * Provides access to the OpenStack Compute (Nova) Security Group extension API.
- */
-@Beta
-@Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.SECURITY_GROUPS)
-@RequestFilters(AuthenticateRequest.class)
-@Consumes(MediaType.APPLICATION_JSON)
-public interface SecurityGroupApi {
-   /**
-    * List all Security Groups.
-    *
-    * @return all Security Groups
-    */
-   @Named("securityGroup:list")
-   @GET
-   @Path("/os-security-groups")
-   @SelectJson("security_groups")
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   FluentIterable<SecurityGroup> list();
-
-   /**
-    * Get a specific Security Group
-    *
-    * @return a specific Security Group
-    */
-   @Named("securityGroup:get")
-   @GET
-   @Path("/os-security-groups/{id}")
-   @SelectJson("security_group")
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   SecurityGroup get(@PathParam("id") String id);
-
-   /**
-    * Create a Security Group
-    *
-    * @return a new Security Group
-    */
-   @Named("securityGroup:create")
-   @POST
-   @Path("/os-security-groups")
-   @SelectJson("security_group")
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("%7B\"security_group\":%7B\"name\":\"{name}\",\"description\":\"{description}\"%7D%7D")
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   SecurityGroup createWithDescription(@PayloadParam("name") String name,
-         @PayloadParam("description") String description);
-
-   /**
-    * Delete a Security Group.
-    *
-    * @return
-    */
-   @Named("securityGroup:delete")
-   @DELETE
-   @Path("/os-security-groups/{id}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   boolean delete(@PathParam("id") String id);
-
-   /**
-    * Create a Security Group Rule.
-    *
-    * @return a new Security Group Rule
-    */
-   @Named("securityGroup:create")
-   @POST
-   @Path("/os-security-group-rules")
-   @SelectJson("security_group_rule")
-   @Produces(MediaType.APPLICATION_JSON)
-   @MapBinder(BindSecurityGroupRuleToJsonPayload.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   SecurityGroupRule createRuleAllowingCidrBlock(
-         @PayloadParam("parent_group_id") String parentGroup, Ingress ip_protocol,
-         @PayloadParam("cidr") String sourceCidr);
-
-   /**
-    * Create a Security Group Rule.
-    *
-    * @return a new Security Group Rule
-    */
-   @Named("securityGroup:create")
-   @POST
-   @Path("/os-security-group-rules")
-   @SelectJson("security_group_rule")
-   @Produces(MediaType.APPLICATION_JSON)
-   @MapBinder(BindSecurityGroupRuleToJsonPayload.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   SecurityGroupRule createRuleAllowingSecurityGroupId(
-         @PayloadParam("parent_group_id") String parentGroup, Ingress ip_protocol,
-         @PayloadParam("group_id") String groupId);
-
-   /**
-    * Delete a Security Group Rule.
-    *
-    * @return
-    */
-   @Named("securityGroup:delete")
-   @DELETE
-   @Path("/os-security-group-rules/{id}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   boolean deleteRule(@PathParam("id") String ruleId);
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ServerAdminApi.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ServerAdminApi.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ServerAdminApi.java
deleted file mode 100644
index bf22f40..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ServerAdminApi.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
-import org.jclouds.fallbacks.MapHttp4xxCodesToExceptions;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.nova.v2_0.domain.BackupType;
-import org.jclouds.openstack.nova.v2_0.functions.ParseImageIdFromLocationHeader;
-import org.jclouds.openstack.nova.v2_0.options.CreateBackupOfServerOptions;
-import org.jclouds.openstack.v2_0.ServiceType;
-import org.jclouds.openstack.v2_0.services.Extension;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.WrapWith;
-
-import com.google.common.annotations.Beta;
-
-/**
- * Provide access to the OpenStack Compute (Nova) Admin Server Actions Extension API.
- *
- * Provide additional actions for servers:
- * 'suspend', 'resume', 'migrate', 'lock', 'unlock', 'resetNetwork', 'createBackup', 'pause', 'migrateLive',
- * 'injectNetworkInfo', 'unpause'
- *
- */
-@Beta
-@Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.ADMIN_ACTIONS)
-@RequestFilters(AuthenticateRequest.class)
-@Consumes(MediaType.APPLICATION_JSON)
-@Path("/servers/{id}/action")
-public interface ServerAdminApi {
-   /**
-    * Suspend a server.
-    *
-    * @param id id of the server
-    */
-   @Named("serverAdmin:suspend")
-   @POST
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"suspend\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean suspend(@PathParam("id") String id);
-
-   /**
-    * Resume a server.
-    *
-    * @param id id of the server
-    */
-   @Named("serverAdmin:resume")
-   @POST
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"resume\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean resume(@PathParam("id") String id);
-
-   /**
-    * Migrate a server.
-    *
-    * @param id id of the server
-    */
-   @Named("serverAdmin:migrate")
-   @POST
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"migrate\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean migrate(@PathParam("id") String id);
-
-   /**
-    * Lock a server.
-    *
-    * @param id id of the server
-    */
-   @Named("serverAdmin:lock")
-   @POST
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"lock\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean lock(@PathParam("id") String id);
-
-   /**
-    * Unlock a server.
-    *
-    * @param id id of the server
-    */
-   @Named("serverAdmin:unlock")
-   @POST
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"unlock\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean unlock(@PathParam("id") String id);
-
-   /**
-    * Reset network of a server.
-    *
-    * @param id id of the server
-    */
-   @Named("serverAdmin:resetNetwork")
-   @POST
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"resetNetwork\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean resetNetwork(@PathParam("id") String id);
-
-   /**
-    * Create backup of a server.
-    *
-    * @param id         id of the server
-    * @param imageName  the name of the image to create
-    * @param backupType the type of backup
-    * @param rotation   the number of images to retain (0 to simply overwrite)
-    * @param options    optional rotation and/or metadata parameters
-    * @return the id of the newly created image
-    */
-   @Named("serverAdmin:createBackup")
-   @POST
-   @Produces(MediaType.APPLICATION_JSON)
-   @WrapWith("createBackup")
-   @ResponseParser(ParseImageIdFromLocationHeader.class)
-   @Fallback(MapHttp4xxCodesToExceptions.class)
-   String createBackup(@PathParam("id") String id, @PayloadParam("name") String imageName,
-         @PayloadParam("backup_type") BackupType backupType, @PayloadParam("rotation") int rotation,
-         CreateBackupOfServerOptions... options);
-
-   /**
-    * Pause a server.
-    *
-    * @param id id of the server
-    */
-   @Named("serverAdmin:pause")
-   @POST
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"pause\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean pause(@PathParam("id") String id);
-
-   /**
-    * Unpause a server.
-    *
-    * @param id id of the server
-    */
-   @Named("serverAdmin:unpause")
-   @POST
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"unpause\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean unpause(@PathParam("id") String id);
-
-   /**
-    * Live migrate a server.
-    *
-    * @param id id of the server
-    */
-   @Named("serverAdmin:liveMigrate")
-   @POST
-   @Produces(MediaType.APPLICATION_JSON)
-   @WrapWith("os-migrateLive")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean liveMigrate(@PathParam("id") String id, @PayloadParam("host") String host,
-         @PayloadParam("block_migration") boolean blockMigration,
-         @PayloadParam("disk_over_commit") boolean diskOverCommit);
-
-   /**
-    * Inject network info into a server.
-    *
-    * @param id id of the server
-    */
-   @Named("serverAdmin:injectNetwork")
-   @POST
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"injectNetworkInfo\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean injectNetworkInfo(@PathParam("id") String id);
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApi.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApi.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApi.java
deleted file mode 100644
index 02bebd5..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApi.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.nova.v2_0.domain.ServerWithSecurityGroups;
-import org.jclouds.openstack.v2_0.ServiceType;
-import org.jclouds.openstack.v2_0.services.Extension;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-
-import com.google.common.annotations.Beta;
-
-/**
- * Provides access to the OpenStack Compute (Nova) Create Server extension API.
- *
- * This provides details including the security groups associated with a Server.
- * <p/>
- *
- * NOTE: the equivalent to listServersInDetail() isn't available at the other end, so not
- * extending ServerApi at this time.
- *
- * @see org.jclouds.openstack.nova.v2_0.features.ServerApi
- */
-@Beta
-@Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.CREATESERVEREXT)
-@RequestFilters(AuthenticateRequest.class)
-@Consumes(MediaType.APPLICATION_JSON)
-@Path("/os-create-server-ext")
-public interface ServerWithSecurityGroupsApi {
-   /**
-    * Retrieve details of the specified server, including security groups
-    *
-    * @param id id of the server
-    * @return server or null if not found
-    */
-   @Named("server:get")
-   @GET
-   @SelectJson("server")
-   @Path("/{id}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   ServerWithSecurityGroups get(@PathParam("id") String id);
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/SimpleTenantUsageApi.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/SimpleTenantUsageApi.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/SimpleTenantUsageApi.java
deleted file mode 100644
index 46dff34..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/SimpleTenantUsageApi.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.nova.v2_0.domain.SimpleTenantUsage;
-import org.jclouds.openstack.v2_0.ServiceType;
-import org.jclouds.openstack.v2_0.services.Extension;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.FluentIterable;
-
-/**
- * Provides access to the OpenStack Compute (Nova) Simple Tenant Usage extension API.
- */
-@Beta
-@Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.SIMPLE_TENANT_USAGE)
-@RequestFilters(AuthenticateRequest.class)
-@Consumes(MediaType.APPLICATION_JSON)
-@Path("/os-simple-tenant-usage")
-public interface SimpleTenantUsageApi {
-   /**
-    * Retrieve tenant usage for all tenants.
-    *
-    * @return the set of TenantUsage reports
-    */
-   @Named("tenantUsage:list")
-   @GET
-   @SelectJson("tenant_usages")
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   FluentIterable<SimpleTenantUsage> list();
-
-   /**
-    * Retrieve tenant_usage for a specified tenant
-    *
-    * @return the requested tenant usage
-    */
-   @Named("tenantUsage:get")
-   @GET
-   @Path("/{id}")
-   @SelectJson("tenant_usage")
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   SimpleTenantUsage get(@PathParam("id") String tenantId);
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApi.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApi.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApi.java
deleted file mode 100644
index a0f8833..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApi.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.nova.v2_0.domain.VirtualInterface;
-import org.jclouds.openstack.v2_0.ServiceType;
-import org.jclouds.openstack.v2_0.services.Extension;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.FluentIterable;
-
-/**
- * Provides access to the OpenStack Compute (Nova) Virtual Interface (VIFs) extension API.
- */
-@Beta
-@Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.VIRTUAL_INTERFACES)
-@RequestFilters(AuthenticateRequest.class)
-@Consumes(MediaType.APPLICATION_JSON)
-@Path("/servers")
-public interface VirtualInterfaceApi {
-   /**
-    * Returns the list of Virtual Interfaces for a given instance.
-    *
-    * @return the list of virtual interfaces
-    */
-   @Named("virtualInterface:list")
-   @GET
-   @Path("/{id}/os-virtual-interfaces")
-   @SelectJson("virtual_interfaces")
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   FluentIterable<VirtualInterface> listOnServer(@PathParam("id") String serverId);
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApi.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApi.java b/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApi.java
deleted file mode 100644
index 485fb09..0000000
--- a/dependencies/jclouds/apis/openstack-nova/1.8.0-stratos/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApi.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * 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.
- */
-package org.jclouds.openstack.nova.v2_0.extensions;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404;
-import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.nova.v2_0.domain.Volume;
-import org.jclouds.openstack.nova.v2_0.domain.VolumeAttachment;
-import org.jclouds.openstack.nova.v2_0.domain.VolumeSnapshot;
-import org.jclouds.openstack.nova.v2_0.options.CreateVolumeOptions;
-import org.jclouds.openstack.nova.v2_0.options.CreateVolumeSnapshotOptions;
-import org.jclouds.openstack.v2_0.ServiceType;
-import org.jclouds.openstack.v2_0.services.Extension;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.annotations.WrapWith;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.FluentIterable;
-
-/**
- * Provides access to the OpenStack Compute (Nova) Volume extension API.
- */
-@Beta
-@Extension(of = ServiceType.COMPUTE, namespace = ExtensionNamespaces.VOLUMES)
-@RequestFilters(AuthenticateRequest.class)
-@Consumes(MediaType.APPLICATION_JSON)
-public interface VolumeApi {
-   /**
-    * Returns a summary list of snapshots.
-    *
-    * @return the list of snapshots
-    */
-   @Named("volume:list")
-   @GET
-   @Path("/os-volumes")
-   @SelectJson("volumes")
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   FluentIterable<Volume> list();
-
-   /**
-    * Returns a detailed list of volumes.
-    *
-    * @return the list of volumes.
-    */
-   @Named("volume:list")
-   @GET
-   @Path("/os-volumes/detail")
-   @SelectJson("volumes")
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   FluentIterable<Volume> listInDetail();
-
-   /**
-    * Return data about the given volume.
-    *
-    * @return details of a specific snapshot.
-    */
-   @Named("volume:get")
-   @GET
-   @Path("/os-volumes/{id}")
-   @SelectJson("volume")
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   Volume get(@PathParam("id") String volumeId);
-
-   /**
-    * Creates a new Snapshot
-    *
-    * @return the new Snapshot
-    */
-   @Named("volume:create")
-   @POST
-   @Path("/os-volumes")
-   @SelectJson("volume")
-   @Produces(MediaType.APPLICATION_JSON)
-   @MapBinder(CreateVolumeOptions.class)
-   Volume create(@PayloadParam("size") int sizeGB, CreateVolumeOptions... options);
-
-   /**
-    * Delete a snapshot.
-    *
-    * @return true if successful
-    */
-   @Named("volume:delete")
-   @DELETE
-   @Path("/os-volumes/{volumeId}")
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Fallback(FalseOnNotFoundOr404.class)
-   boolean delete(@PathParam("volumeId") String volumeId);
-
-   /**
-    * List volume attachments for a given instance.
-    *
-    * @return all Floating IPs
-    * @deprecated To be removed in jclouds 1.7
-    * @see VolumeAttachmentApi#listAttachmentsOnServer(String)
-    */
-   @Deprecated
-   @Named("volume:listAttachments")
-   @GET
-   @Path("/servers/{id}/os-volume_attachments")
-   @SelectJson("volumeAttachments")
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   FluentIterable<VolumeAttachment> listAttachmentsOnServer(@PathParam("id") String serverId);
-
-   /**
-    * Get a specific attached volume.
-    *
-    * @return data about the given volume attachment.
-    * @deprecated To be removed in jclouds 1.7
-    * @see VolumeAttachmentApi#getAttachmentForVolumeOnServer(String, String)
-    */
-   @Deprecated
-   @Named("volume:getAttachments")
-   @GET
-   @Path("/servers/{serverId}/os-volume_attachments/{id}")
-   @SelectJson("volumeAttachment")
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   VolumeAttachment getAttachmentForVolumeOnServer(@PathParam("id") String volumeId,
-         @PathParam("serverId") String serverId);
-
-   /**
-    * Attach a volume to an instance
-    *
-    * @return data about the new volume attachment
-    * @deprecated To be removed in jclouds 1.7
-    * @see VolumeAttachmentApi#attachVolumeToServerAsDevice(String, String, String)
-    */
-   @Deprecated
-   @Named("volume:attach")
-   @POST
-   @Path("/servers/{serverId}/os-volume_attachments")
-   @SelectJson("volumeAttachment")
-   @Produces(MediaType.APPLICATION_JSON)
-   @WrapWith("volumeAttachment")
-   VolumeAttachment attachVolumeToServerAsDevice(@PayloadParam("volumeId") String volumeId,
-         @PathParam("serverId") String serverId, @PayloadParam("device") String device);
-
-   /**
-    * Detach a Volume from an instance.
-    *
-    * @return true if successful
-    * @deprecated To be removed in jclouds 1.7
-    * @see VolumeAttachmentApi#detachVolumeFromServer(String, String)
-    */
-   @Deprecated
-   @Named("volume:detach")
-   @DELETE
-   @Path("/servers/{serverId}/os-volume_attachments/{id}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean detachVolumeFromServer(@PathParam("id") String volumeId,
-         @PathParam("serverId") String serverId);
-
-   /**
-    * Returns a summary list of snapshots.
-    *
-    * @return the list of snapshots
-    */
-   @Named("volume:listSnapshots")
-   @GET
-   @Path("/os-snapshots")
-   @SelectJson("snapshots")
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   FluentIterable<VolumeSnapshot> listSnapshots();
-
-   /**
-    * Returns a summary list of snapshots.
-    *
-    * @return the list of snapshots
-    */
-   @Named("volume:listSnapshots")
-   @GET
-   @Path("/os-snapshots/detail")
-   @SelectJson("snapshots")
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   FluentIterable<VolumeSnapshot> listSnapshotsInDetail();
-
-   /**
-    * Return data about the given snapshot.
-    *
-    * @return details of a specific snapshot.
-    */
-   @Named("volume:getSnapshot")
-   @GET
-   @Path("/os-snapshots/{id}")
-   @SelectJson("snapshot")
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   VolumeSnapshot getSnapshot(@PathParam("id") String snapshotId);
-
-   /**
-    * Creates a new Snapshot.
-    *
-    * @return the new Snapshot
-    */
-   @Named("volume:createSnapshot")
-   @POST
-   @Path("/os-snapshots")
-   @SelectJson("snapshot")
-   @Produces(MediaType.APPLICATION_JSON)
-   @MapBinder(CreateVolumeSnapshotOptions.class)
-   VolumeSnapshot createSnapshot(@PayloadParam("volume_id") String volumeId, CreateVolumeSnapshotOptions... options);
-
-   /**
-    * Delete a snapshot.
-    *
-    * @return true if successful
-    */
-   @Named("volume:deleteSnapshot")
-   @DELETE
-   @Path("/os-snapshots/{id}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   boolean deleteSnapshot(@PathParam("id") String snapshotId);
-}