You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by jd...@apache.org on 2014/08/13 19:04:06 UTC

[2/4] Prefer Regions to Zones

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApi.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApi.java b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApi.java
index 7fd8fd6..6d17492 100644
--- a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApi.java
+++ b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApi.java
@@ -23,8 +23,8 @@ import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 
 import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.location.Zone;
-import org.jclouds.location.functions.ZoneToEndpoint;
+import org.jclouds.location.Region;
+import org.jclouds.location.functions.RegionToEndpoint;
 import org.jclouds.openstack.keystone.v2_0.domain.Tenant;
 import org.jclouds.rackspace.autoscale.v1.features.GroupApi;
 import org.jclouds.rackspace.autoscale.v1.features.PolicyApi;
@@ -36,33 +36,32 @@ import com.google.common.base.Optional;
 import com.google.inject.Provides;
 
 /**
- * Provides access to Rackspace Autoscale.
- *  
- * @see <a href="https://rackspace-autoscale.readthedocs.org">API Doc</a>
- * @see <a href="http://docs.autoscale.apiary.io/">Apiary API Doc</a>
+ * Provides access to Rackspace Auto Scale v1 API.
+ *
  */
-public interface AutoscaleApi extends Closeable{
+public interface AutoscaleApi extends Closeable {
    /**
-    * Provides a set of all zones available.
-    * 
-    * @return the Zone codes configured
+    * Provides a set of all regions available.
+    *
+    * @return the Region codes configured
     */
    @Provides
-   @Zone
-   Set<String> getConfiguredZones();
+   @Region
+   Set<String> getConfiguredRegions();
 
    /**
     * Provides access to all scaling Group features.
     */
    @Delegate
-   GroupApi getGroupApiForZone(@EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone);
+   GroupApi getGroupApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region);
+
 
    /**
     * Provides access to all policy features for scaling Groups.
     */
    @Delegate
    @Path("/groups/{groupId}")
-   PolicyApi getPolicyApiForZoneAndGroup(@EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone,
+   PolicyApi getPolicyApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region,
          @PathParam("groupId") String groupId);
 
    /**
@@ -70,13 +69,46 @@ public interface AutoscaleApi extends Closeable{
     */
    @Delegate
    @Path("/groups/{groupId}/policies/{policyId}")
-   WebhookApi getWebhookApiForZoneAndGroupAndPolicy(@EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone,
+   WebhookApi getWebhookApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region,
          @PathParam("groupId") String groupId,
          @PathParam("policyId") String policyId);
 
    /**
     * Provides the Tenant.
     */
-   @Provides 
+   @Provides
    Optional<Tenant> getCurrentTenantId();
+
+   /**
+    * @return the configured zone codes
+    * @deprecated Please use {@link #getConfiguredRegions()} as this method will be removed in jclouds 3.0.
+    */
+   @Deprecated
+   @Provides
+   @Region
+   Set<String> getConfiguredZones();
+
+   /**
+    * Provides access to all policy features for scaling Groups.
+    * @deprecated Please use {@link #getPolicyApi(String, String)} as this method will be removed
+    *             in jclouds 3.0.
+    */
+   @Deprecated
+   @Delegate
+   @Path("/groups/{groupId}")
+   PolicyApi getPolicyApiForGroup(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region,
+         @PathParam("groupId") String groupId);
+
+   /**
+    * Provides access to webhook management features.
+    * @deprecated Please use {@link #getWebhookApi(String, String, String)} as this method will be removed
+    *             in jclouds 3.0.
+    */
+   @Deprecated
+   @Delegate
+   @Path("/groups/{groupId}/policies/{policyId}")
+   WebhookApi getWebhookApiForGroupAndPolicy(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region,
+         @PathParam("groupId") String groupId,
+         @PathParam("policyId") String policyId);
+
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApiMetadata.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApiMetadata.java b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApiMetadata.java
index 6ae4388..6ae367b 100644
--- a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApiMetadata.java
+++ b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApiMetadata.java
@@ -23,7 +23,7 @@ import java.net.URI;
 import java.util.Properties;
 
 import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes;
-import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule;
+import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule;
 import org.jclouds.rackspace.autoscale.v1.config.AutoscaleHttpApiModule;
 import org.jclouds.rackspace.autoscale.v1.config.AutoscaleParserModule;
 import org.jclouds.rackspace.cloudidentity.v2_0.ServiceType;
@@ -35,8 +35,8 @@ import com.google.common.collect.ImmutableSet;
 import com.google.inject.Module;
 
 /**
- * Implementation of {@link ApiMetadata} for the Rackspace Autoscale API
- * 
+ * Implementation of {@link org.jclouds.apis.ApiMetadata} for the Rackspace Auto Scale API.
+ *
  * @see AutoscaleApi
  */
 public class AutoscaleApiMetadata extends BaseHttpApiMetadata<AutoscaleApi> {
@@ -63,7 +63,7 @@ public class AutoscaleApiMetadata extends BaseHttpApiMetadata<AutoscaleApi> {
 
    public static class Builder extends BaseHttpApiMetadata.Builder<AutoscaleApi, Builder> {
 
-      protected Builder() {   
+      protected Builder() {
          id("rackspace-autoscale")
          .name("Rackspace Autoscale API")
          .identityName("${tenantName}:${userName} or ${userName}, if your keystone supports a default tenant")
@@ -76,7 +76,7 @@ public class AutoscaleApiMetadata extends BaseHttpApiMetadata<AutoscaleApi> {
          .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
                .add(CloudIdentityAuthenticationApiModule.class)
                .add(CloudIdentityAuthenticationModule.class)
-               .add(ZoneModule.class)
+               .add(RegionModule.class)
                .add(AutoscaleParserModule.class)
                .add(AutoscaleHttpApiModule.class)
                .build());

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/CreateScalingPolicy.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/CreateScalingPolicy.java b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/CreateScalingPolicy.java
index 8ed7e1d..0ba3a82 100644
--- a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/CreateScalingPolicy.java
+++ b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/CreateScalingPolicy.java
@@ -23,15 +23,19 @@ import java.beans.ConstructorProperties;
 import java.util.EnumSet;
 import java.util.Map;
 
+
 import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;
+
+import org.jclouds.rackspace.autoscale.v1.features.GroupApi;
+
 import com.google.common.base.Objects;
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableMap;
 
 /**
  * Auto Scale ScalingPolicy. This class is used for requests.
- * 
+ *
  * @see GroupApi#create(GroupConfiguration, LaunchConfiguration, java.util.List)
  * @see Group#getScalingPolicies()
  * @see ScalingPolicy
@@ -63,7 +67,7 @@ public class CreateScalingPolicy implements Comparable<CreateScalingPolicy> {
     */
    public String getName() {
       return this.name;
-   }   
+   }
 
    /**
     * @return the type for this ScalingPolicy.
@@ -84,7 +88,7 @@ public class CreateScalingPolicy implements Comparable<CreateScalingPolicy> {
 
    /**
     * @return the target for this ScalingPolicy. This is a numeric value, but could represent a 0-100% for some target types. Scale-down policies might have negative values.
-    * 
+    *
     * @see CreateScalingPolicy.Builder#target(int)
     */
    public String getTarget() {
@@ -147,7 +151,7 @@ public class CreateScalingPolicy implements Comparable<CreateScalingPolicy> {
       if (this == obj) return true;
       if (obj == null || getClass() != obj.getClass()) return false;
       CreateScalingPolicy that = CreateScalingPolicy.class.cast(obj);
-      return Objects.equal(this.name, that.name) && 
+      return Objects.equal(this.name, that.name) &&
             Objects.equal(this.type, that.type) &&
             Objects.equal(this.cooldown, that.cooldown) &&
             Objects.equal(this.target, that.target) &&
@@ -170,11 +174,11 @@ public class CreateScalingPolicy implements Comparable<CreateScalingPolicy> {
       return string().toString();
    }
 
-   public static Builder builder() { 
+   public static Builder builder() {
       return new Builder();
    }
 
-   public Builder toBuilder() { 
+   public Builder toBuilder() {
       return new Builder().fromScalingPolicy(this);
    }
 
@@ -186,7 +190,7 @@ public class CreateScalingPolicy implements Comparable<CreateScalingPolicy> {
       protected ScalingPolicyTargetType targetType;
       protected Map<String, String> args;
 
-      /** 
+      /**
        * @param name The name of this ScalingPolicy.
        * @return The builder object.
        * @see CreateScalingPolicy#getName()
@@ -196,7 +200,7 @@ public class CreateScalingPolicy implements Comparable<CreateScalingPolicy> {
          return this;
       }
 
-      /** 
+      /**
        * @param type The type for this ScalingPolicy.
        * @return The builder object.
        * @see ScalingPolicyType
@@ -207,7 +211,7 @@ public class CreateScalingPolicy implements Comparable<CreateScalingPolicy> {
          return this;
       }
 
-      /** 
+      /**
        * @param cooldown The cooldown of this ScalingPolicy.
        * @return The builder object.
        * @see CreateScalingPolicy#getCooldown()
@@ -217,7 +221,7 @@ public class CreateScalingPolicy implements Comparable<CreateScalingPolicy> {
          return this;
       }
 
-      /** 
+      /**
        * @param target The target of this ScalingPolicy.
        * @return The builder object.
        * @see CreateScalingPolicy#getTarget()
@@ -227,7 +231,7 @@ public class CreateScalingPolicy implements Comparable<CreateScalingPolicy> {
          return this;
       }
 
-      /** 
+      /**
        * @param targetType The target type of this ScalingPolicy.
        * @return The builder object.
        * @see ScalingPolicyTargetType
@@ -238,8 +242,8 @@ public class CreateScalingPolicy implements Comparable<CreateScalingPolicy> {
          return this;
       }
 
-      /** 
-       * @param cron This parameter specifies the recurring time when the policy will be executed as a cron entry. 
+      /**
+       * @param cron This parameter specifies the recurring time when the policy will be executed as a cron entry.
        * For example, if this is parameter is set to "1 0 * * *",
        * the policy will be executed at one minute past midnight (00:01)
        * every day of the month, and every day of the week.
@@ -255,7 +259,7 @@ public class CreateScalingPolicy implements Comparable<CreateScalingPolicy> {
          return this;
       }
 
-      /** 
+      /**
        * @param at This parameter specifies the time at which this policy will be executed.
        * This property is mutually exclusive with the "cron" parameter.
        * You can either provide "cron" or "at" for a given policy, but not both.
@@ -294,7 +298,7 @@ public class CreateScalingPolicy implements Comparable<CreateScalingPolicy> {
                .target(in.getTarget())
                .targetType(in.getTargetType())
                .scheduleArgs(in.getSchedulingArgs());
-      }        
+      }
    }
 
    @Override

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/GroupConfiguration.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/GroupConfiguration.java b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/GroupConfiguration.java
index 478e172..3b82707 100644
--- a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/GroupConfiguration.java
+++ b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/GroupConfiguration.java
@@ -22,6 +22,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
 import java.beans.ConstructorProperties;
 import java.util.Map;
 
+import org.jclouds.rackspace.autoscale.v1.features.GroupApi;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/GroupState.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/GroupState.java b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/GroupState.java
index 346b9f0..3725acc 100644
--- a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/GroupState.java
+++ b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/GroupState.java
@@ -20,6 +20,7 @@ import java.beans.ConstructorProperties;
 import java.util.List;
 
 import org.jclouds.openstack.v2_0.domain.Link;
+import org.jclouds.rackspace.autoscale.v1.features.GroupApi;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/LaunchConfiguration.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/LaunchConfiguration.java b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/LaunchConfiguration.java
index 0ba1c11..e22ec82 100644
--- a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/LaunchConfiguration.java
+++ b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/domain/LaunchConfiguration.java
@@ -21,6 +21,7 @@ import java.util.EnumSet;
 import java.util.List;
 import java.util.Map;
 
+import org.jclouds.rackspace.autoscale.v1.features.GroupApi;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/GroupApi.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/GroupApi.java b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/GroupApi.java
index d265b42..eb5d3eb 100644
--- a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/GroupApi.java
+++ b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/GroupApi.java
@@ -31,15 +31,16 @@ import javax.ws.rs.core.MediaType;
 
 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.rackspace.autoscale.v1.binders.BindCreateGroupToJson;
 import org.jclouds.rackspace.autoscale.v1.binders.BindLaunchConfigurationToJson;
 import org.jclouds.rackspace.autoscale.v1.binders.BindToGroupConfigurationRequestPayload;
+import org.jclouds.rackspace.autoscale.v1.domain.CreateScalingPolicy;
 import org.jclouds.rackspace.autoscale.v1.domain.Group;
 import org.jclouds.rackspace.autoscale.v1.domain.GroupConfiguration;
 import org.jclouds.rackspace.autoscale.v1.domain.GroupState;
 import org.jclouds.rackspace.autoscale.v1.domain.LaunchConfiguration;
-import org.jclouds.rackspace.autoscale.v1.domain.CreateScalingPolicy;
 import org.jclouds.rackspace.autoscale.v1.functions.ParseGroupLaunchConfigurationResponse;
 import org.jclouds.rackspace.autoscale.v1.functions.ParseGroupResponse;
 import org.jclouds.rest.annotations.Fallback;
@@ -57,6 +58,7 @@ import com.google.common.collect.FluentIterable;
  */
 @RequestFilters(AuthenticateRequest.class)
 @Consumes(MediaType.APPLICATION_JSON)
+@Path("/groups")
 public interface GroupApi extends Closeable {
 
    /**
@@ -70,13 +72,13 @@ public interface GroupApi extends Closeable {
     * @see CreateScalingPolicy
     * @see Group
     */
-   @Named("Group:create")
+   @Named("group:create")
    @POST
-   @Path("/groups")
-   @Fallback(NullOnNotFoundOr404.class)
    @MapBinder(BindCreateGroupToJson.class)
    @ResponseParser(ParseGroupResponse.class)
-   Group create(@PayloadParam("groupConfiguration") GroupConfiguration groupConfiguration, 
+   @Fallback(NullOnNotFoundOr404.class)
+   @Nullable
+   Group create(@PayloadParam("groupConfiguration") GroupConfiguration groupConfiguration,
          @PayloadParam("launchConfiguration") LaunchConfiguration launchConfiguration,
          @PayloadParam("scalingPolicies") List<CreateScalingPolicy> scalingPolicies);
 
@@ -87,9 +89,9 @@ public interface GroupApi extends Closeable {
     * @return true if successful.
     * @see GroupApi#resume(String)
     */
-   @Named("Groups:pause/{groupId}")
+   @Named("group:pause")
    @POST
-   @Path("/groups/{groupId}/pause")
+   @Path("/{groupId}/pause")
    @Fallback(FalseOnNotFoundOr404.class)
    boolean pause(@PathParam("groupId") String groupId);
 
@@ -100,9 +102,9 @@ public interface GroupApi extends Closeable {
     * @return true if successful.
     * @see GroupApi#pause(String)
     */
-   @Named("Groups:resume/{groupId}")
+   @Named("group:resume")
    @POST
-   @Path("/groups/{groupId}/resume")
+   @Path("/{groupId}/resume")
    @Fallback(FalseOnNotFoundOr404.class)
    boolean resume(@PathParam("groupId") String groupId);
 
@@ -112,9 +114,9 @@ public interface GroupApi extends Closeable {
     * @param groupId The id for the specified Group.
     * @return true if successful.
     */
-   @Named("Groups:delete/{id}")
+   @Named("group:delete")
    @DELETE
-   @Path("/groups/{id}")
+   @Path("/{id}")
    @Fallback(FalseOnNotFoundOr404.class)
    boolean delete(@PathParam("id") String groupId);
 
@@ -123,11 +125,12 @@ public interface GroupApi extends Closeable {
     * @param id The unique identifier of the scaling group.
     * @return Group Full details for the scaling group.
     */
-   @Named("Group:get/{id}")
+   @Named("group:get")
    @GET
-   @Path("/groups/{id}")
+   @Path("/{id}")
    @ResponseParser(ParseGroupResponse.class)
    @Fallback(NullOnNotFoundOr404.class)
+   @Nullable
    Group get(@PathParam("id") String id);
 
    /**
@@ -136,11 +139,12 @@ public interface GroupApi extends Closeable {
     * @return The state of the Group.
     * @see GroupState
     */
-   @Named("Group:state")
+   @Named("group:getState")
    @GET
-   @Path("/groups/{id}/state")
+   @Path("/{id}/state")
    @SelectJson("group")
    @Fallback(NullOnNotFoundOr404.class)
+   @Nullable
    GroupState getState(@PathParam("id") String id);
 
    /**
@@ -148,59 +152,60 @@ public interface GroupApi extends Closeable {
     * @return A list of group states for all scaling groups.
     * @see GroupState
     */
-   @Named("Group:states")
+   @Named("group:listGroupStates")
    @GET
-   @Path("/groups")
    @SelectJson("groups")
    FluentIterable<GroupState> listGroupStates();
-   
+
    /**
     * This operation gets the configuration for the scaling group.
     * @return The group configuration for the scaling group.
     * @see GroupConfiguration
     */
-   @Named("Group:configuration")
+   @Named("group:getGroupConfiguration")
    @GET
-   @Path("/groups/{groupId}/config")
+   @Path("/{groupId}/config")
    @SelectJson("groupConfiguration")
    @Fallback(NullOnNotFoundOr404.class)
+   @Nullable
    GroupConfiguration getGroupConfiguration(@PathParam("groupId") String id);
-   
+
    /**
     * This operation updates the configuration for the scaling group.
     * @return true if successful.
     * @see GroupConfiguration
     */
-   @Named("Group:updateConfiguration")
+   @Named("group:updateGroupConfiguration")
    @PUT
-   @Path("/groups/{groupId}/config")
+   @Path("/{groupId}/config")
    @Fallback(FalseOnNotFoundOr404.class)
    @MapBinder(BindToGroupConfigurationRequestPayload.class)
    boolean updateGroupConfiguration(@PathParam("groupId") String id,
          @PayloadParam("groupConfiguration") GroupConfiguration groupConfiguration);
-   
+
    /**
     * This operation gets the launch configuration for the scaling group.
     * @return The launch configuration for the scaling group.
     * @see LaunchConfiguration
     */
-   @Named("Group:launchConfiguration")
+   @Named("group:getLaunchConfiguration")
    @GET
-   @Path("/groups/{groupId}/launch")
-   @Fallback(NullOnNotFoundOr404.class)
+   @Path("/{groupId}/launch")
    @ResponseParser(ParseGroupLaunchConfigurationResponse.class)
+   @Fallback(NullOnNotFoundOr404.class)
+   @Nullable
    LaunchConfiguration getLaunchConfiguration(@PathParam("groupId") String id);
-   
+
    /**
     * This operation updates the launch configuration for the scaling group.
     * @return true if successful.
     * @see LaunchConfiguration
     */
-   @Named("Group:updateLaunchConfiguration")
+   @Named("group:updateLaunchConfiguration")
    @PUT
-   @Path("/groups/{groupId}/launch")
+   @Path("/{groupId}/launch")
    @Fallback(FalseOnNotFoundOr404.class)
    @MapBinder(BindLaunchConfigurationToJson.class)
-   boolean updateLaunchConfiguration(@PathParam("groupId") String id, 
+   boolean updateLaunchConfiguration(@PathParam("groupId") String id,
          @PayloadParam("launchConfiguration") LaunchConfiguration launchConfiguration);
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/PolicyApi.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/PolicyApi.java b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/PolicyApi.java
index 305ac0d..92e428c 100644
--- a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/PolicyApi.java
+++ b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/PolicyApi.java
@@ -33,6 +33,7 @@ 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.rackspace.autoscale.v1.binders.BindScalingPoliciesToJson;
 import org.jclouds.rackspace.autoscale.v1.binders.BindScalingPolicyToJson;
@@ -54,6 +55,7 @@ import com.google.common.collect.FluentIterable;
  */
 @RequestFilters(AuthenticateRequest.class)
 @Consumes(MediaType.APPLICATION_JSON)
+@Path("/policies")
 public interface PolicyApi extends Closeable {
    /**
     * Create a scaling policy.
@@ -62,9 +64,9 @@ public interface PolicyApi extends Closeable {
     * @see CreateScalingPolicy
     * @see ScalingPolicy
     */
-   @Named("Policy:create")
+   @Named("policy:create")
    @POST
-   @Path("/policies")
+   //@Path("/policies")
    @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
    @MapBinder(BindScalingPoliciesToJson.class)
    @ResponseParser(ParseScalingPoliciesResponse.class)
@@ -75,9 +77,9 @@ public interface PolicyApi extends Closeable {
     * @return A list of scaling policy responses.
     * @see ScalingPolicy
     */
-   @Named("Policy:list")
+   @Named("policy:list")
    @GET
-   @Path("/policies")
+   //@Path("/policies")
    @ResponseParser(ParseScalingPoliciesResponse.class)
    @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
    FluentIterable<ScalingPolicy> list();
@@ -87,11 +89,12 @@ public interface PolicyApi extends Closeable {
     * @return Existing scaling policy details
     * @see ScalingPolicy
     */
-   @Named("Policy:get")
+   @Named("policy:get")
    @GET
-   @Path("/policies/{scalingPolicyId}")
+   @Path("/{scalingPolicyId}")
    @ResponseParser(ParseScalingPolicyResponse.class)
    @Fallback(NullOnNotFoundOr404.class)
+   @Nullable
    ScalingPolicy get(@PathParam("scalingPolicyId") String scalingPolicyId);
 
    /**
@@ -99,21 +102,22 @@ public interface PolicyApi extends Closeable {
     * @return true if successful.
     * @see CreateScalingPolicy
     */
-   @Named("Policy:update")
+   @Named("policy:update")
    @PUT
-   @Path("/policies/{scalingPolicyId}")
+   @Path("/{scalingPolicyId}")
    @MapBinder(BindScalingPolicyToJson.class)
    @Fallback(FalseOnNotFoundOr404.class)
-   boolean update(@PathParam("scalingPolicyId") String scalingPolicyId, @PayloadParam("scalingPolicy") CreateScalingPolicy scalingPolicy);
+   boolean update(@PathParam("scalingPolicyId") String scalingPolicyId,
+         @PayloadParam("scalingPolicy") CreateScalingPolicy scalingPolicy);
 
    /**
     * This operation deletes a specific scaling policy.
     * @return true if successful.
     * @see CreateScalingPolicy
     */
-   @Named("Policy:delete")
+   @Named("policy:delete")
    @DELETE
-   @Path("/policies/{scalingPolicyId}")
+   @Path("/{scalingPolicyId}")
    @Fallback(FalseOnNotFoundOr404.class)
    boolean delete(@PathParam("scalingPolicyId") String scalingPolicyId);
 
@@ -122,9 +126,9 @@ public interface PolicyApi extends Closeable {
     * @return true if successful.
     * @see CreateScalingPolicy
     */
-   @Named("Policy:execute")
+   @Named("policy:execute")
    @POST
-   @Path("/policies/{scalingPolicyId}/execute")
+   @Path("/{scalingPolicyId}/execute")
    @Fallback(FalseOnNotFoundOr404.class)
    boolean execute(@PathParam("scalingPolicyId") String scalingPolicyId);
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApi.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApi.java b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApi.java
index 6eb8ef1..f37cec9 100644
--- a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApi.java
+++ b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApi.java
@@ -33,11 +33,14 @@ 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.rackspace.autoscale.v1.binders.BindWebhookToJson;
 import org.jclouds.rackspace.autoscale.v1.binders.BindWebhookUpdateToJson;
 import org.jclouds.rackspace.autoscale.v1.binders.BindWebhooksToJson;
+import org.jclouds.rackspace.autoscale.v1.domain.CreateScalingPolicy;
 import org.jclouds.rackspace.autoscale.v1.domain.CreateWebhook;
+import org.jclouds.rackspace.autoscale.v1.domain.Group;
 import org.jclouds.rackspace.autoscale.v1.domain.Webhook;
 import org.jclouds.rest.annotations.Fallback;
 import org.jclouds.rest.annotations.MapBinder;
@@ -48,15 +51,16 @@ import org.jclouds.rest.annotations.SelectJson;
 import com.google.common.collect.FluentIterable;
 
 /**
- * The API for controlling autoscale webhooks.
+ * The API for controlling Auto Scale Webhooks.
  */
 @RequestFilters(AuthenticateRequest.class)
 @Consumes(MediaType.APPLICATION_JSON)
+@Path("/webhooks")
 public interface WebhookApi extends Closeable {
    /**
     * Create a webhook.
     * @param name The webhook name. Required.
-    * @param metadata A map of associated metadata. Use String keys. Required. 
+    * @param metadata A map of associated metadata. Use String keys. Required.
     * @return WebhookResponse The webhook created by this call.
     * @see CreateWebhook
     * @see Webhook
@@ -65,11 +69,11 @@ public interface WebhookApi extends Closeable {
     */
    @Named("Webhook:create")
    @POST
-   @Path("/webhooks")
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   @MapBinder(BindWebhookToJson.class)
    @SelectJson("webhooks")
-   FluentIterable<Webhook> create(@PayloadParam("name") String name, @PayloadParam("metadata") Map<String, Object> metadata);
+   @MapBinder(BindWebhookToJson.class)
+   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
+   FluentIterable<Webhook> create(@PayloadParam("name") String name,
+         @PayloadParam("metadata") Map<String, Object> metadata);
 
    /**
     * Create webhooks.
@@ -80,14 +84,13 @@ public interface WebhookApi extends Closeable {
     * @see Group
     * @see CreateScalingPolicy
     */
-   @Named("Webhook:create")
+   @Named("webhook:create")
    @POST
-   @Path("/webhooks")
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
-   @MapBinder(BindWebhooksToJson.class)
    @SelectJson("webhooks")
+   @MapBinder(BindWebhooksToJson.class)
+   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
    FluentIterable<Webhook> create(@PayloadParam("webhooks") List<CreateWebhook> webhooks);
-   
+
    /**
     * List webhooks.
     * @return A list of webhooks
@@ -98,9 +101,8 @@ public interface WebhookApi extends Closeable {
     */
    @Named("Webhook:list")
    @GET
-   @Path("/webhooks")
-   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
    @SelectJson("webhooks")
+   @Fallback(EmptyFluentIterableOnNotFoundOr404.class)
    FluentIterable<Webhook> list();
 
    /**
@@ -112,11 +114,12 @@ public interface WebhookApi extends Closeable {
     * @see Group
     * @see CreateScalingPolicy
     */
-   @Named("Webhook:get")
+   @Named("webhook:get")
    @GET
-   @Path("/webhooks/{webhookId}")   
-   @Fallback(NullOnNotFoundOr404.class)
+   @Path("/{webhookId}")
    @SelectJson("webhook")
+   @Fallback(NullOnNotFoundOr404.class)
+   @Nullable
    Webhook get(@PathParam("webhookId") String id);
 
    /**
@@ -130,12 +133,13 @@ public interface WebhookApi extends Closeable {
     * @see Group
     * @see CreateScalingPolicy
     */
-   @Named("Webhook:update")
+   @Named("webhook:update")
    @PUT
-   @Path("/webhooks/{webhookId}")   
-   @Fallback(FalseOnNotFoundOr404.class)
+   @Path("/{webhookId}")
    @MapBinder(BindWebhookUpdateToJson.class)
-   boolean update(@PathParam("webhookId") String id, @PayloadParam("name") String name, @PayloadParam("metadata") Map<String, Object> metadata);
+   @Fallback(FalseOnNotFoundOr404.class)
+   boolean update(@PathParam("webhookId") String id, @PayloadParam("name") String name,
+         @PayloadParam("metadata") Map<String, Object> metadata);
 
    /**
     * Delete a webhook.
@@ -146,9 +150,9 @@ public interface WebhookApi extends Closeable {
     * @see Group
     * @see CreateScalingPolicy
     */
-   @Named("Webhook:delete")
+   @Named("webhook:delete")
    @DELETE
-   @Path("/webhooks/{webhookId}")   
+   @Path("/{webhookId}")
    @Fallback(FalseOnNotFoundOr404.class)
    boolean delete(@PathParam("webhookId") String id);
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/GroupApiLiveTest.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/GroupApiLiveTest.java b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/GroupApiLiveTest.java
index 0d2e07c..edb5d53 100644
--- a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/GroupApiLiveTest.java
+++ b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/GroupApiLiveTest.java
@@ -59,10 +59,10 @@ public class GroupApiLiveTest extends BaseAutoscaleApiLiveTest {
    @BeforeClass(groups = { "integration", "live" })
    public void setup() {
       super.setup();
-      for (String zone : api.getConfiguredZones()) {
+      for (String region : api.getConfiguredRegions()) {
          List<Group> createdGroupList = Lists.newArrayList();
-         created.put(zone, createdGroupList);
-         GroupApi groupApi = api.getGroupApiForZone(zone);
+         created.put(region, createdGroupList);
+         GroupApi groupApi = api.getGroupApi(region);
 
          GroupConfiguration groupConfiguration = GroupConfiguration.builder().maxEntities(10).cooldown(360)
                .name("testscalinggroup198547").minEntities(0)
@@ -99,14 +99,14 @@ public class GroupApiLiveTest extends BaseAutoscaleApiLiveTest {
          assertNotNull(g.getId());
          assertEquals(g.getLinks().size(), 1);
          assertEquals(g.getLinks().get(0).getHref().toString(),
-               "https://" + zone.toLowerCase() + ".autoscale.api.rackspacecloud.com/v1.0/" + api.getCurrentTenantId().get().getId() + "/groups/" + g.getId() + "/");
+               "https://" + region.toLowerCase() + ".autoscale.api.rackspacecloud.com/v1.0/" + api.getCurrentTenantId().get().getId() + "/groups/" + g.getId() + "/");
          assertEquals(g.getLinks().get(0).getRelation(), Link.Relation.SELF);
 
          assertNotNull(g.getScalingPolicies().get(0).getId());
          assertEquals(g.getScalingPolicies().get(0).getLinks().size(), 1);
          assertEquals(
                g.getScalingPolicies().get(0).getLinks().get(0).getHref().toString(),
-               "https://" + zone.toLowerCase() + ".autoscale.api.rackspacecloud.com/v1.0/" + api.getCurrentTenantId().get().getId() + "/groups/" + g.getId() + "/policies/" + g.getScalingPolicies().get(0).getId() + "/");
+               "https://" + region.toLowerCase() + ".autoscale.api.rackspacecloud.com/v1.0/" + api.getCurrentTenantId().get().getId() + "/groups/" + g.getId() + "/policies/" + g.getScalingPolicies().get(0).getId() + "/");
          assertEquals(g.getScalingPolicies().get(0).getLinks().get(0).getRelation(), Link.Relation.SELF);
          assertEquals(g.getScalingPolicies().get(0).getCooldown(), 1);
          assertEquals(g.getScalingPolicies().get(0).getTarget(), "1");
@@ -145,9 +145,9 @@ public class GroupApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testGetGroup() {
-      for (String zone : api.getConfiguredZones()) {
-         GroupApi groupApi = api.getGroupApiForZone(zone);
-         String groupId = created.get(zone).get(0).getId();
+      for (String region : api.getConfiguredRegions()) {
+         GroupApi groupApi = api.getGroupApi(region);
+         String groupId = created.get(region).get(0).getId();
          Group testGroup = groupApi.get(groupId);
          assertEquals(testGroup.getId(), groupId);
          assertEquals(testGroup.getGroupConfiguration().getCooldown(), 360);
@@ -158,9 +158,9 @@ public class GroupApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testGetState() {
-      for (String zone : api.getConfiguredZones()) {
-         GroupApi groupApi = api.getGroupApiForZone(zone);
-         String groupId = created.get(zone).get(0).getId();
+      for (String region : api.getConfiguredRegions()) {
+         GroupApi groupApi = api.getGroupApi(region);
+         String groupId = created.get(region).get(0).getId();
          GroupState testGroup = groupApi.getState(groupId);
          assertNull(testGroup.getId()); // The id recently changed to not be included when getting state.
       }
@@ -168,10 +168,10 @@ public class GroupApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testListGroups() {
-      for (String zone : api.getConfiguredZones()) {
-         GroupApi groupApi = api.getGroupApiForZone(zone);
+      for (String region : api.getConfiguredRegions()) {
+         GroupApi groupApi = api.getGroupApi(region);
          FluentIterable<GroupState> groupsList = groupApi.listGroupStates();
-         String groupId = created.get(zone).get(0).getId();
+         String groupId = created.get(region).get(0).getId();
          for (GroupState groupState : groupsList) {
             if (groupId.equals(groupState.getId())) {
                return;
@@ -184,18 +184,18 @@ public class GroupApiLiveTest extends BaseAutoscaleApiLiveTest {
    /* TODO: uncomment when implemented
    @Test
    public void testPause() {
-      for (String zone : api.getConfiguredZones()) {
-         GroupApi groupApi = api.getGroupApiForZone(zone);
-         String groupId = created.get(zone).get(0).getId();
+      for (String region : api.getConfiguredRegions()) {
+         GroupApi groupApi = api.getGroupApiForRegions(region);
+         String groupId = created.get(region).get(0).getId();
          assertTrue(groupApi.pause(groupId));
       }
    }
 
    @Test
    public void testResume() {
-      for (String zone : api.getConfiguredZones()) {
-         GroupApi groupApi = api.getGroupApiForZone(zone);
-         String groupId = created.get(zone).get(0).getId();
+      for (String region : api.getConfiguredRegions()) {
+         GroupApi groupApi = api.getGroupApiForRegions(region);
+         String groupId = created.get(region).get(0).getId();
          assertTrue(groupApi.resume(groupId));
       }
    }
@@ -203,9 +203,9 @@ public class GroupApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testGetGroupConfiguration() {
-      for (String zone : api.getConfiguredZones()) {
-         GroupApi groupApi = api.getGroupApiForZone(zone);
-         String groupId = created.get(zone).get(0).getId();
+      for (String region : api.getConfiguredRegions()) {
+         GroupApi groupApi = api.getGroupApi(region);
+         String groupId = created.get(region).get(0).getId();
          GroupConfiguration testGroupConfiguration = groupApi.getGroupConfiguration(groupId);
          assertEquals(testGroupConfiguration.getCooldown(), 360);
          assertEquals(testGroupConfiguration.getMaxEntities(), 10);
@@ -215,9 +215,9 @@ public class GroupApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testGetGroupLaunchConfiguration() {
-      for (String zone : api.getConfiguredZones()) {
-         GroupApi groupApi = api.getGroupApiForZone(zone);
-         String groupId = created.get(zone).get(0).getId();
+      for (String region : api.getConfiguredRegions()) {
+         GroupApi groupApi = api.getGroupApi(region);
+         String groupId = created.get(region).get(0).getId();
          LaunchConfiguration testLaunchConfiguration = groupApi.getLaunchConfiguration(groupId);
          assertEquals(testLaunchConfiguration.getLoadBalancers().get(0).getPort(), 8080);
          assertEquals(testLaunchConfiguration.getType(), LaunchConfigurationType.LAUNCH_SERVER);
@@ -227,9 +227,9 @@ public class GroupApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testUpdateLaunchConfiguration() {
-      for (String zone : api.getConfiguredZones()) {
-         GroupApi groupApi = api.getGroupApiForZone(zone);
-         String groupId = created.get(zone).get(0).getId();
+      for (String region : api.getConfiguredRegions()) {
+         GroupApi groupApi = api.getGroupApi(region);
+         String groupId = created.get(region).get(0).getId();
 
          LaunchConfiguration launchConfiguration = LaunchConfiguration
                .builder()
@@ -255,9 +255,9 @@ public class GroupApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testUpdateGroupConfiguration() {
-      for (String zone : api.getConfiguredZones()) {
-         GroupApi groupApi = api.getGroupApiForZone(zone);
-         String groupId = created.get(zone).get(0).getId();
+      for (String region : api.getConfiguredRegions()) {
+         GroupApi groupApi = api.getGroupApi(region);
+         String groupId = created.get(region).get(0).getId();
 
          GroupConfiguration groupConfiguration = GroupConfiguration.builder().maxEntities(10).cooldown(360)
                .name("testscalinggroup198547").minEntities(0)
@@ -272,9 +272,9 @@ public class GroupApiLiveTest extends BaseAutoscaleApiLiveTest {
    @Override
    @AfterClass(groups = { "integration", "live" })
    public void tearDown() {
-      for (String zone : api.getConfiguredZones()) {
-         GroupApi groupApi = api.getGroupApiForZone(zone);
-         for (Group group : created.get(zone)) {
+      for (String region : api.getConfiguredRegions()) {
+         GroupApi groupApi = api.getGroupApi(region);
+         for (Group group : created.get(region)) {
             if (!groupApi.delete(group.getId()))
                throw new RuntimeException("Could not delete an autoscale group after tests!");
          }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/GroupApiMockTest.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/GroupApiMockTest.java b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/GroupApiMockTest.java
index 0ef954e..2a3742c 100644
--- a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/GroupApiMockTest.java
+++ b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/GroupApiMockTest.java
@@ -60,7 +60,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          GroupConfiguration groupConfiguration = GroupConfiguration.builder()
                .maxEntities(10)
@@ -157,7 +157,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          GroupConfiguration groupConfiguration = GroupConfiguration.builder()
                .maxEntities(10)
@@ -211,7 +211,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          FluentIterable<GroupState> groupStates = api.listGroupStates();
 
@@ -248,7 +248,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          FluentIterable<GroupState> groupStates = api.listGroupStates();
 
@@ -274,7 +274,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          Group g = api.get("1234567890");
 
@@ -301,7 +301,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          Group g = api.get("1234567890");
 
@@ -327,7 +327,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          boolean success = api.delete("1234567890");
 
@@ -353,7 +353,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          boolean success = api.delete("1234567890");
 
@@ -379,7 +379,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          GroupState gs = api.getState("1234567890");
 
@@ -407,7 +407,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          GroupState gs = api.getState("1234567890");
 
@@ -433,7 +433,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          boolean success = api.pause("1234567890");
 
@@ -459,7 +459,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          boolean success = api.pause("1234567890");
 
@@ -485,7 +485,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          boolean success = api.resume("1234567890");
 
@@ -511,7 +511,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          boolean success = api.resume("1234567890");
 
@@ -537,7 +537,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          GroupConfiguration gc = api.getGroupConfiguration("1234567890");
 
@@ -564,7 +564,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          GroupConfiguration gc = api.getGroupConfiguration("1234567890");
 
@@ -590,7 +590,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          LaunchConfiguration lc = api.getLaunchConfiguration("1234567890");
 
@@ -617,7 +617,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          LaunchConfiguration lc = api.getLaunchConfiguration("1234567890");
 
@@ -643,7 +643,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          GroupConfiguration gc = GroupConfiguration.builder()
                .name("workers")
@@ -677,7 +677,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          GroupConfiguration gc = GroupConfiguration.builder()
                .name("workers")
@@ -711,7 +711,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          LaunchConfiguration lc = LaunchConfiguration.builder()
                .loadBalancers(ImmutableList.of(LoadBalancer.builder().port(8080).id(9099).build()))
@@ -749,7 +749,7 @@ public class GroupApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         GroupApi api = autoscaleApi.getGroupApiForZone("DFW");
+         GroupApi api = autoscaleApi.getGroupApi("DFW");
 
          LaunchConfiguration lc = LaunchConfiguration.builder()
                .loadBalancers(ImmutableList.of(LoadBalancer.builder().port(8080).id(9099).build()))

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/ScalingPolicyApiLiveTest.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/ScalingPolicyApiLiveTest.java b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/ScalingPolicyApiLiveTest.java
index a1c440c..65dcd2c 100644
--- a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/ScalingPolicyApiLiveTest.java
+++ b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/ScalingPolicyApiLiveTest.java
@@ -60,10 +60,10 @@ public class ScalingPolicyApiLiveTest extends BaseAutoscaleApiLiveTest {
    @BeforeClass(groups = { "integration", "live" })
    public void setup() {
       super.setup();
-      for (String zone : api.getConfiguredZones()) {
+      for (String region : api.getConfiguredRegions()) {
          List<Group> createdGroupList = Lists.newArrayList();
-         created.put(zone, createdGroupList);
-         GroupApi groupApi = api.getGroupApiForZone(zone);
+         created.put(region, createdGroupList);
+         GroupApi groupApi = api.getGroupApi(region);
 
          GroupConfiguration groupConfiguration = GroupConfiguration.builder().maxEntities(10).cooldown(3)
                .name("testscalinggroup198547").minEntities(0)
@@ -100,14 +100,14 @@ public class ScalingPolicyApiLiveTest extends BaseAutoscaleApiLiveTest {
          assertNotNull(g.getId());
          assertEquals(g.getLinks().size(), 1);
          assertEquals(g.getLinks().get(0).getHref().toString(),
-               "https://" + zone.toLowerCase() + ".autoscale.api.rackspacecloud.com/v1.0/" + api.getCurrentTenantId().get().getId() + "/groups/" + g.getId() + "/");
+               "https://" + region.toLowerCase() + ".autoscale.api.rackspacecloud.com/v1.0/" + api.getCurrentTenantId().get().getId() + "/groups/" + g.getId() + "/");
          assertEquals(g.getLinks().get(0).getRelation(), Link.Relation.SELF);
 
          assertNotNull(g.getScalingPolicies().get(0).getId());
          assertEquals(g.getScalingPolicies().get(0).getLinks().size(), 1);
          assertEquals(
                g.getScalingPolicies().get(0).getLinks().get(0).getHref().toString(),
-               "https://" + zone.toLowerCase() + ".autoscale.api.rackspacecloud.com/v1.0/" + api.getCurrentTenantId().get().getId() + "/groups/" + g.getId() + "/policies/" + g.getScalingPolicies().get(0).getId() + "/");
+               "https://" + region.toLowerCase() + ".autoscale.api.rackspacecloud.com/v1.0/" + api.getCurrentTenantId().get().getId() + "/groups/" + g.getId() + "/policies/" + g.getScalingPolicies().get(0).getId() + "/");
          assertEquals(g.getScalingPolicies().get(0).getLinks().get(0).getRelation(), Link.Relation.SELF);
          assertEquals(g.getScalingPolicies().get(0).getCooldown(), 3);
          assertEquals(g.getScalingPolicies().get(0).getTarget(), "1");
@@ -146,9 +146,9 @@ public class ScalingPolicyApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testCreatePolicy() {
-      for (String zone : api.getConfiguredZones()) {
+      for (String region : api.getConfiguredRegions()) {
 
-         PolicyApi policyApi = api.getPolicyApiForZoneAndGroup(zone, created.get(zone).get(0).getId());
+         PolicyApi policyApi = api.getPolicyApi(region, created.get(region).get(0).getId());
 
          List<CreateScalingPolicy> scalingPolicies = Lists.newArrayList();
 
@@ -170,9 +170,9 @@ public class ScalingPolicyApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testCreateScheduleCronPolicy() {
-      for (String zone : api.getConfiguredZones()) {
+      for (String region : api.getConfiguredRegions()) {
 
-         PolicyApi policyApi = api.getPolicyApiForZoneAndGroup(zone, created.get(zone).get(0).getId());
+         PolicyApi policyApi = api.getPolicyApi(region, created.get(region).get(0).getId());
 
          List<CreateScalingPolicy> scalingPolicies = Lists.newArrayList();
 
@@ -197,9 +197,9 @@ public class ScalingPolicyApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testCreateScheduleAtPolicy() {
-      for (String zone : api.getConfiguredZones()) {
+      for (String region : api.getConfiguredRegions()) {
 
-         PolicyApi policyApi = api.getPolicyApiForZoneAndGroup(zone, created.get(zone).get(0).getId());
+         PolicyApi policyApi = api.getPolicyApi(region, created.get(region).get(0).getId());
 
          List<CreateScalingPolicy> scalingPolicies = Lists.newArrayList();
 
@@ -224,9 +224,9 @@ public class ScalingPolicyApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testListPolicy() {
-      for (String zone : api.getConfiguredZones()) {
+      for (String region : api.getConfiguredRegions()) {
 
-         PolicyApi policyApi = api.getPolicyApiForZoneAndGroup(zone, created.get(zone).get(0).getId());
+         PolicyApi policyApi = api.getPolicyApi(region, created.get(region).get(0).getId());
 
          FluentIterable<ScalingPolicy> scalingPolicyResponse = policyApi.list();
          assertNotNull(scalingPolicyResponse.iterator().next().getId());
@@ -235,9 +235,9 @@ public class ScalingPolicyApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testGetPolicy() {
-      for (String zone : api.getConfiguredZones()) {
+      for (String region : api.getConfiguredRegions()) {
 
-         PolicyApi policyApi = api.getPolicyApiForZoneAndGroup(zone, created.get(zone).get(0).getId());
+         PolicyApi policyApi = api.getPolicyApi(region, created.get(region).get(0).getId());
 
          assertNotNull(policyApi);
          ScalingPolicy listResponse = policyApi.list().iterator().next();
@@ -254,9 +254,9 @@ public class ScalingPolicyApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testUpdatePolicy() {
-      for (String zone : api.getConfiguredZones()) {
+      for (String region : api.getConfiguredRegions()) {
 
-         PolicyApi policyApi = api.getPolicyApiForZoneAndGroup(zone, created.get(zone).get(0).getId());
+         PolicyApi policyApi = api.getPolicyApi(region, created.get(region).get(0).getId());
 
          List<CreateScalingPolicy> scalingPolicies = Lists.newArrayList();
 
@@ -298,9 +298,9 @@ public class ScalingPolicyApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testDeletePolicy() {
-      for (String zone : api.getConfiguredZones()) {
+      for (String region : api.getConfiguredRegions()) {
 
-         PolicyApi policyApi = api.getPolicyApiForZoneAndGroup(zone, created.get(zone).get(0).getId());
+         PolicyApi policyApi = api.getPolicyApi(region, created.get(region).get(0).getId());
 
          List<CreateScalingPolicy> scalingPolicies = Lists.newArrayList();
 
@@ -311,7 +311,7 @@ public class ScalingPolicyApiLiveTest extends BaseAutoscaleApiLiveTest {
                .targetType(ScalingPolicyTargetType.INCREMENTAL)
                .target("1")
                .build();
-         scalingPolicies.add(scalingPolicy);         
+         scalingPolicies.add(scalingPolicy);
 
          FluentIterable<ScalingPolicy> scalingPolicyResponse = policyApi.create(scalingPolicies);
          String policyId = scalingPolicyResponse.iterator().next().getId();
@@ -324,9 +324,9 @@ public class ScalingPolicyApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testExecutePolicy() {
-      for (String zone : api.getConfiguredZones()) {
+      for (String region : api.getConfiguredRegions()) {
 
-         PolicyApi policyApi = api.getPolicyApiForZoneAndGroup(zone, created.get(zone).get(0).getId());
+         PolicyApi policyApi = api.getPolicyApi(region, created.get(region).get(0).getId());
 
          List<CreateScalingPolicy> scalingPolicies = Lists.newArrayList();
 
@@ -337,7 +337,7 @@ public class ScalingPolicyApiLiveTest extends BaseAutoscaleApiLiveTest {
                .targetType(ScalingPolicyTargetType.INCREMENTAL)
                .target("1")
                .build();
-         scalingPolicies.add(scalingPolicy);         
+         scalingPolicies.add(scalingPolicy);
 
          FluentIterable<ScalingPolicy> scalingPolicyResponse = policyApi.create(scalingPolicies);
          String policyId = scalingPolicyResponse.iterator().next().getId();
@@ -346,15 +346,15 @@ public class ScalingPolicyApiLiveTest extends BaseAutoscaleApiLiveTest {
          boolean result = policyApi.execute(policyId);
          assertTrue(result);
       }
-   }   
+   }
 
    @Override
    @AfterClass(groups = { "integration", "live" })
    public void tearDown() {
-      for (String zone : api.getConfiguredZones()) {
-         GroupApi groupApi = api.getGroupApiForZone(zone);
-         for (Group group : created.get(zone)) {
-            PolicyApi policyApi = api.getPolicyApiForZoneAndGroup(zone, group.getId());
+      for (String region : api.getConfiguredRegions()) {
+         GroupApi groupApi = api.getGroupApi(region);
+         for (Group group : created.get(region)) {
+            PolicyApi policyApi = api.getPolicyApi(region, group.getId());
             if (policyApi == null)
                 continue;
             for (ScalingPolicy sgr : policyApi.list()) {

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/ScalingPolicyApiMockTest.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/ScalingPolicyApiMockTest.java b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/ScalingPolicyApiMockTest.java
index a0a4c9d..63632df 100644
--- a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/ScalingPolicyApiMockTest.java
+++ b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/ScalingPolicyApiMockTest.java
@@ -52,7 +52,7 @@ public class ScalingPolicyApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         PolicyApi api = autoscaleApi.getPolicyApiForZoneAndGroup("DFW", "groupId1");         
+         PolicyApi api = autoscaleApi.getPolicyApi("DFW", "groupId1");
 
          List<CreateScalingPolicy> scalingPolicies = Lists.newArrayList();
 
@@ -95,7 +95,7 @@ public class ScalingPolicyApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         PolicyApi api = autoscaleApi.getPolicyApiForZoneAndGroup("DFW", "groupId1");         
+         PolicyApi api = autoscaleApi.getPolicyApi("DFW", "groupId1");
 
          List<CreateScalingPolicy> scalingPolicies = Lists.newArrayList();
 
@@ -132,7 +132,7 @@ public class ScalingPolicyApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         PolicyApi api = autoscaleApi.getPolicyApiForZoneAndGroup("DFW", "groupId1");         
+         PolicyApi api = autoscaleApi.getPolicyApi("DFW", "groupId1");
 
          List<CreateScalingPolicy> scalingPolicies = Lists.newArrayList();
 
@@ -179,7 +179,7 @@ public class ScalingPolicyApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         PolicyApi api = autoscaleApi.getPolicyApiForZoneAndGroup("DFW", "groupId1");         
+         PolicyApi api = autoscaleApi.getPolicyApi("DFW", "groupId1");
 
          List<CreateScalingPolicy> scalingPolicies = Lists.newArrayList();
 
@@ -226,7 +226,7 @@ public class ScalingPolicyApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         PolicyApi api = autoscaleApi.getPolicyApiForZoneAndGroup("DFW", "groupId1");         
+         PolicyApi api = autoscaleApi.getPolicyApi("DFW", "groupId1");
 
          FluentIterable<ScalingPolicy> scalingPolicyResponse = api.list();
 
@@ -258,7 +258,7 @@ public class ScalingPolicyApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         PolicyApi api = autoscaleApi.getPolicyApiForZoneAndGroup("DFW", "groupId1");         
+         PolicyApi api = autoscaleApi.getPolicyApi("DFW", "groupId1");
 
          FluentIterable<ScalingPolicy> scalingPolicyResponse = api.list();
 
@@ -284,7 +284,7 @@ public class ScalingPolicyApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         PolicyApi api = autoscaleApi.getPolicyApiForZoneAndGroup("DFW", "groupId1");         
+         PolicyApi api = autoscaleApi.getPolicyApi("DFW", "groupId1");
 
          ScalingPolicy scalingPolicyResponse = api.get("policyId");
 
@@ -315,7 +315,7 @@ public class ScalingPolicyApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         PolicyApi api = autoscaleApi.getPolicyApiForZoneAndGroup("DFW", "groupId1");         
+         PolicyApi api = autoscaleApi.getPolicyApi("DFW", "groupId1");
 
          ScalingPolicy scalingPolicyResponse = api.get("policyId");
 
@@ -341,7 +341,7 @@ public class ScalingPolicyApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         PolicyApi api = autoscaleApi.getPolicyApiForZoneAndGroup("DFW", "groupId1");
+         PolicyApi api = autoscaleApi.getPolicyApi("DFW", "groupId1");
 
          CreateScalingPolicy scalingPolicy = CreateScalingPolicy.builder()
                .cooldown(6)
@@ -375,7 +375,7 @@ public class ScalingPolicyApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         PolicyApi api = autoscaleApi.getPolicyApiForZoneAndGroup("DFW", "groupId1");
+         PolicyApi api = autoscaleApi.getPolicyApi("DFW", "groupId1");
 
          CreateScalingPolicy scalingPolicy = CreateScalingPolicy.builder()
                .cooldown(6)
@@ -409,7 +409,7 @@ public class ScalingPolicyApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         PolicyApi api = autoscaleApi.getPolicyApiForZoneAndGroup("DFW", "groupId1");
+         PolicyApi api = autoscaleApi.getPolicyApi("DFW", "groupId1");
 
          boolean result = api.delete("policyId");
 
@@ -435,7 +435,7 @@ public class ScalingPolicyApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         PolicyApi api = autoscaleApi.getPolicyApiForZoneAndGroup("DFW", "groupId1");
+         PolicyApi api = autoscaleApi.getPolicyApi("DFW", "groupId1");
 
          boolean result = api.delete("policyId");
 
@@ -461,7 +461,7 @@ public class ScalingPolicyApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         PolicyApi api = autoscaleApi.getPolicyApiForZoneAndGroup("DFW", "groupId1");
+         PolicyApi api = autoscaleApi.getPolicyApi("DFW", "groupId1");
 
          boolean result = api.execute("policyId");
 
@@ -487,7 +487,7 @@ public class ScalingPolicyApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         PolicyApi api = autoscaleApi.getPolicyApiForZoneAndGroup("DFW", "groupId1");
+         PolicyApi api = autoscaleApi.getPolicyApi("DFW", "groupId1");
 
          boolean result = api.execute("policyId");
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApiLiveTest.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApiLiveTest.java b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApiLiveTest.java
index 4393ef8..0154b7c 100644
--- a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApiLiveTest.java
+++ b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApiLiveTest.java
@@ -67,10 +67,10 @@ public class WebhookApiLiveTest extends BaseAutoscaleApiLiveTest {
    @BeforeClass(groups = { "integration", "live" })
    public void setup() {
       super.setup();
-      for (String zone : api.getConfiguredZones()) {
+      for (String region : api.getConfiguredRegions()) {
          List<Group> createdGroupList = Lists.newArrayList();
-         created.put(zone, createdGroupList);
-         GroupApi groupApi = api.getGroupApiForZone(zone);
+         created.put(region, createdGroupList);
+         GroupApi groupApi = api.getGroupApi(region);
 
          GroupConfiguration groupConfiguration = GroupConfiguration.builder().maxEntities(10).cooldown(3)
                .name("testscalinggroup198547").minEntities(0)
@@ -103,21 +103,21 @@ public class WebhookApiLiveTest extends BaseAutoscaleApiLiveTest {
          Group g = groupApi.create(groupConfiguration, launchConfiguration, scalingPolicies);
          createdGroupList.add(g);
 
-         WebhookApi webhookApi = api.getWebhookApiForZoneAndGroupAndPolicy(zone, g.getId(), g.getScalingPolicies().iterator().next().getId());
+         WebhookApi webhookApi = api.getWebhookApi(region, g.getId(), g.getScalingPolicies().iterator().next().getId());
          assertFalse( webhookApi.create("test_webhook", ImmutableMap.<String, Object>of()).isEmpty() );
 
          assertNotNull(g);
          assertNotNull(g.getId());
          assertEquals(g.getLinks().size(), 1);
          assertEquals(g.getLinks().get(0).getHref().toString(),
-               "https://" + zone.toLowerCase() + ".autoscale.api.rackspacecloud.com/v1.0/" + api.getCurrentTenantId().get().getId() + "/groups/" + g.getId() + "/");
+               "https://" + region.toLowerCase() + ".autoscale.api.rackspacecloud.com/v1.0/" + api.getCurrentTenantId().get().getId() + "/groups/" + g.getId() + "/");
          assertEquals(g.getLinks().get(0).getRelation(), Link.Relation.SELF);
 
          assertNotNull(g.getScalingPolicies().get(0).getId());
          assertEquals(g.getScalingPolicies().get(0).getLinks().size(), 1);
          assertEquals(
                g.getScalingPolicies().get(0).getLinks().get(0).getHref().toString(),
-               "https://" + zone.toLowerCase() + ".autoscale.api.rackspacecloud.com/v1.0/" + api.getCurrentTenantId().get().getId() + "/groups/" + g.getId() + "/policies/" + g.getScalingPolicies().get(0).getId() + "/");
+               "https://" + region.toLowerCase() + ".autoscale.api.rackspacecloud.com/v1.0/" + api.getCurrentTenantId().get().getId() + "/groups/" + g.getId() + "/policies/" + g.getScalingPolicies().get(0).getId() + "/");
          assertEquals(g.getScalingPolicies().get(0).getLinks().get(0).getRelation(), Link.Relation.SELF);
          assertEquals(g.getScalingPolicies().get(0).getCooldown(), 3);
          assertEquals(g.getScalingPolicies().get(0).getTarget(), "1");
@@ -156,9 +156,9 @@ public class WebhookApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testCreateWebhook() {
-      for (String zone : api.getConfiguredZones()) {
-         Group g = created.get(zone).get(0);
-         WebhookApi webhookApi = api.getWebhookApiForZoneAndGroupAndPolicy(zone, g.getId(), g.getScalingPolicies().iterator().next().getId());
+      for (String region : api.getConfiguredRegions()) {
+         Group g = created.get(region).get(0);
+         WebhookApi webhookApi = api.getWebhookApi(region, g.getId(), g.getScalingPolicies().iterator().next().getId());
          Webhook webhook = webhookApi.create("test1", ImmutableMap.<String, Object>of("notes", "test metadata")).first().get();
 
          assertEquals(webhook.getName(), "test1");
@@ -168,9 +168,9 @@ public class WebhookApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testCreateWebhooks() {
-      for (String zone : api.getConfiguredZones()) {
-         Group g = created.get(zone).get(0);
-         WebhookApi webhookApi = api.getWebhookApiForZoneAndGroupAndPolicy(zone, g.getId(), g.getScalingPolicies().iterator().next().getId());
+      for (String region : api.getConfiguredRegions()) {
+         Group g = created.get(region).get(0);
+         WebhookApi webhookApi = api.getWebhookApi(region, g.getId(), g.getScalingPolicies().iterator().next().getId());
          FluentIterable<Webhook> webhookResponse = webhookApi.create(
                ImmutableList.of(
                      CreateWebhook.builder().name("test5").metadata(null).build(),
@@ -186,9 +186,9 @@ public class WebhookApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testUpdateWebhook() {
-      for (String zone : api.getConfiguredZones()) {
-         Group g = created.get(zone).get(0);
-         WebhookApi webhookApi = api.getWebhookApiForZoneAndGroupAndPolicy(zone, g.getId(), g.getScalingPolicies().iterator().next().getId());
+      for (String region : api.getConfiguredRegions()) {
+         Group g = created.get(region).get(0);
+         WebhookApi webhookApi = api.getWebhookApi(region, g.getId(), g.getScalingPolicies().iterator().next().getId());
          String webhookId = webhookApi.list().first().get().getId();
          assertTrue( webhookApi.update(webhookId, "updated_name", ImmutableMap.<String, Object>of()) );
 
@@ -200,12 +200,12 @@ public class WebhookApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testGetWebhook() {
-      for (String zone : api.getConfiguredZones()) {
-         Group g = created.get(zone).get(0);
+      for (String region : api.getConfiguredRegions()) {
+         Group g = created.get(region).get(0);
          WebhookApi webhookApi;
          boolean foundWebhook = false;
          for (ScalingPolicy sp :  g.getScalingPolicies()) {
-            webhookApi = api.getWebhookApiForZoneAndGroupAndPolicy(zone, g.getId(), sp.getId());
+            webhookApi = api.getWebhookApi(region, g.getId(), sp.getId());
             Webhook webhookResponse = webhookApi.list().first().get();
             if (webhookResponse != null) {
                Webhook webhookGet = webhookApi.get(webhookResponse.getId());
@@ -219,23 +219,23 @@ public class WebhookApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testListWebhook() {
-      for (String zone : api.getConfiguredZones()) {
-         Group g = created.get(zone).get(0);
-         WebhookApi webhookApi = api.getWebhookApiForZoneAndGroupAndPolicy(zone, g.getId(), g.getScalingPolicies().iterator().next().getId());
+      for (String region : api.getConfiguredRegions()) {
+         Group g = created.get(region).get(0);
+         WebhookApi webhookApi = api.getWebhookApi(region, g.getId(), g.getScalingPolicies().iterator().next().getId());
          assertFalse( webhookApi.list().isEmpty() );
       }
    }
 
    @Test
    public void testDeleteWebhook() {
-      for (String zone : api.getConfiguredZones()) {
-         Group g = created.get(zone).get(0);
-         WebhookApi webhookApi = api.getWebhookApiForZoneAndGroupAndPolicy(zone, g.getId(), g.getScalingPolicies().iterator().next().getId());
+      for (String region : api.getConfiguredRegions()) {
+         Group g = created.get(region).get(0);
+         WebhookApi webhookApi = api.getWebhookApi(region, g.getId(), g.getScalingPolicies().iterator().next().getId());
          Webhook webhook = webhookApi.create("test1", ImmutableMap.<String, Object>of("notes", "test metadata")).first().get();
 
          assertEquals(webhook.getName(), "test1");
          assertEquals(webhook.getMetadata().get("notes"), "test metadata");
-         
+
          assertTrue( webhookApi.delete(webhook.getId()) );
          assertNull( webhookApi.get(webhook.getId()) );
       }
@@ -243,22 +243,22 @@ public class WebhookApiLiveTest extends BaseAutoscaleApiLiveTest {
 
    @Test
    public void testExecuteWebhook() throws IOException {
-      for (String zone : api.getConfiguredZones()) {
-         Group g = created.get(zone).get(0);
-         WebhookApi webhookApi = api.getWebhookApiForZoneAndGroupAndPolicy(zone, g.getId(), g.getScalingPolicies().iterator().next().getId());
+      for (String region : api.getConfiguredRegions()) {
+         Group g = created.get(region).get(0);
+         WebhookApi webhookApi = api.getWebhookApi(region, g.getId(), g.getScalingPolicies().iterator().next().getId());
          Webhook webhook = webhookApi.create("test_execute", ImmutableMap.<String, Object>of("notes", "test metadata")).first().get();
-         
-         assertTrue( AutoscaleUtils.execute(webhook.getAnonymousExecutionURI().get()) , " for " + webhook + " in " + zone);
+
+         assertTrue( AutoscaleUtils.execute(webhook.getAnonymousExecutionURI().get()) , " for " + webhook + " in " + region);
       }
    }
 
    @Test
    public void testExecuteWebhookFail() throws IOException, URISyntaxException {
-      for (String zone : api.getConfiguredZones()) {
-         Group g = created.get(zone).get(0);
-         WebhookApi webhookApi = api.getWebhookApiForZoneAndGroupAndPolicy(zone, g.getId(), g.getScalingPolicies().iterator().next().getId());
+      for (String region : api.getConfiguredRegions()) {
+         Group g = created.get(region).get(0);
+         WebhookApi webhookApi = api.getWebhookApi(region, g.getId(), g.getScalingPolicies().iterator().next().getId());
          Webhook webhook = webhookApi.create("test_execute_fail", ImmutableMap.<String, Object>of("notes", "test metadata")).first().get();
-         
+
          URI uri = new URI(webhook.getAnonymousExecutionURI().get().toString() + "123");
          assertFalse( AutoscaleUtils.execute(uri) );
       }
@@ -267,10 +267,10 @@ public class WebhookApiLiveTest extends BaseAutoscaleApiLiveTest {
    @Override
    @AfterClass(groups = { "integration", "live" })
    public void tearDown() {
-      for (String zone : api.getConfiguredZones()) {
-         GroupApi groupApi = api.getGroupApiForZone(zone);
-         for (Group group : created.get(zone)) {
-            PolicyApi policyApi = api.getPolicyApiForZoneAndGroup(zone, group.getId());
+      for (String region : api.getConfiguredRegions()) {
+         GroupApi groupApi = api.getGroupApi(region);
+         for (Group group : created.get(region)) {
+            PolicyApi policyApi = api.getPolicyApi(region, group.getId());
             if (policyApi == null)
                 continue;
             for (ScalingPolicy sgr : policyApi.list()) {

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApiMockTest.java
----------------------------------------------------------------------
diff --git a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApiMockTest.java b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApiMockTest.java
index 4265be2..77db9a7 100644
--- a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApiMockTest.java
+++ b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApiMockTest.java
@@ -48,7 +48,7 @@ public class WebhookApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         WebhookApi api = autoscaleApi.getWebhookApiForZoneAndGroupAndPolicy("DFW", "1234567890", "321456");         
+         WebhookApi api = autoscaleApi.getWebhookApi("DFW", "1234567890", "321456");
 
          FluentIterable<Webhook> webhooks = api.create("PagerDuty", ImmutableMap.<String, Object>of("notes", "PagerDuty will fire this webhook"));
 
@@ -75,7 +75,7 @@ public class WebhookApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         WebhookApi api = autoscaleApi.getWebhookApiForZoneAndGroupAndPolicy("DFW", "1234567890", "321456");         
+         WebhookApi api = autoscaleApi.getWebhookApi("DFW", "1234567890", "321456");
 
          FluentIterable<Webhook> webhooks = api.create("PagerDuty", ImmutableMap.<String, Object>of("notes", "PagerDuty will fire this webhook"));
 
@@ -101,7 +101,7 @@ public class WebhookApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         WebhookApi api = autoscaleApi.getWebhookApiForZoneAndGroupAndPolicy("DFW", "1234567890", "321456");         
+         WebhookApi api = autoscaleApi.getWebhookApi("DFW", "1234567890", "321456");
 
          FluentIterable<Webhook> webhooks = api.create(ImmutableList.of(
                CreateWebhook.builder().name("PagerDuty").metadata(ImmutableMap.<String, Object>of("notes", "PagerDuty will fire this webhook")).build(),
@@ -132,7 +132,7 @@ public class WebhookApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         WebhookApi api = autoscaleApi.getWebhookApiForZoneAndGroupAndPolicy("DFW", "1234567890", "321456");         
+         WebhookApi api = autoscaleApi.getWebhookApi("DFW", "1234567890", "321456");
 
          FluentIterable<Webhook> webhooks = api.create(ImmutableList.of(
                CreateWebhook.builder().name("PagerDuty").metadata(ImmutableMap.<String, Object>of("notes", "PagerDuty will fire this webhook")).build(),
@@ -161,7 +161,7 @@ public class WebhookApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         WebhookApi api = autoscaleApi.getWebhookApiForZoneAndGroupAndPolicy("DFW", "1234567890", "321456");         
+         WebhookApi api = autoscaleApi.getWebhookApi("DFW", "1234567890", "321456");
 
          FluentIterable<Webhook> webhooks = api.list();
 
@@ -189,7 +189,7 @@ public class WebhookApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         WebhookApi api = autoscaleApi.getWebhookApiForZoneAndGroupAndPolicy("DFW", "1234567890", "321456");         
+         WebhookApi api = autoscaleApi.getWebhookApi("DFW", "1234567890", "321456");
 
          FluentIterable<Webhook> webhooks = api.list();
 
@@ -215,7 +215,7 @@ public class WebhookApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         WebhookApi api = autoscaleApi.getWebhookApiForZoneAndGroupAndPolicy("DFW", "1234567890", "321456");         
+         WebhookApi api = autoscaleApi.getWebhookApi("DFW", "1234567890", "321456");
 
          boolean success = api.update("5555", "alice", ImmutableMap.<String, Object>of("notes", "this is for Alice"));
 
@@ -241,7 +241,7 @@ public class WebhookApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         WebhookApi api = autoscaleApi.getWebhookApiForZoneAndGroupAndPolicy("DFW", "1234567890", "321456");         
+         WebhookApi api = autoscaleApi.getWebhookApi("DFW", "1234567890", "321456");
 
          boolean success = api.update("5555", "alice", ImmutableMap.<String, Object>of("notes", "this is for Alice"));
 
@@ -267,7 +267,7 @@ public class WebhookApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         WebhookApi api = autoscaleApi.getWebhookApiForZoneAndGroupAndPolicy("DFW", "1234567890", "321456");         
+         WebhookApi api = autoscaleApi.getWebhookApi("DFW", "1234567890", "321456");
 
          Webhook webhook = api.get("5555");
 
@@ -294,7 +294,7 @@ public class WebhookApiMockTest extends BaseAutoscaleApiMockTest {
 
       try {
          AutoscaleApi autoscaleApi = api(server.getUrl("/").toString(), "rackspace-autoscale", overrides);
-         WebhookApi api = autoscaleApi.getWebhookApiForZoneAndGroupAndPolicy("DFW", "1234567890", "321456");         
+         WebhookApi api = autoscaleApi.getWebhookApi("DFW", "1234567890", "321456");
 
          Webhook webhook = api.get("5555");
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/1c3ea466/rackspace-cloudbigdata-us/README.md
----------------------------------------------------------------------
diff --git a/rackspace-cloudbigdata-us/README.md b/rackspace-cloudbigdata-us/README.md
index 620fcf2..0b5fb4e 100644
--- a/rackspace-cloudbigdata-us/README.md
+++ b/rackspace-cloudbigdata-us/README.md
@@ -1,7 +1,7 @@
 Rackspace Cloud Auto Scale US
 =============================
 
-The Rackspace Cloud Big Data Provider for the US zones.
+The Rackspace Cloud Big Data Provider for the US region.
 
 Production ready?
 No