http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualMachineScaleSetVirtualMachineProfile.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualMachineScaleSetVirtualMachineProfile.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualMachineScaleSetVirtualMachineProfile.java
deleted file mode 100644
index a238467..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualMachineScaleSetVirtualMachineProfile.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.azurecompute.arm.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.json.SerializedNames;
-
-/**
- * A virtual machine properties for the virtual machine.
- */
-@AutoValue
-public abstract class VirtualMachineScaleSetVirtualMachineProfile {
-
-   /**
-    * The storage profile of the Virtual Machine Scale Set Virtual Machine 
Profile.
-    */
-   public abstract StorageProfile storageProfile();
-
-   /**
-    * The OS profile of the Virtual Machine Scale Set Virtual Machine Profile.
-    */
-   public abstract VirtualMachineScaleSetOSProfile osProfile();
-
-   /**
-    * The network profile of the Virtual Machine Scale Set Virtual Machine 
Profile
-    */
-   public abstract VirtualMachineScaleSetNetworkProfile networkProfile();
-
-   /**
-    * The extension profile of the Virtual Machine Scale Set Virtual Machine 
Profile .
-    */
-   public abstract ExtensionProfile extensionProfile();
-
-
-
-   @SerializedNames({"storageProfile", "osProfile", "networkProfile", 
"extensionProfile"})
-   public static VirtualMachineScaleSetVirtualMachineProfile create(
-      final StorageProfile storageProfile,
-      final VirtualMachineScaleSetOSProfile osProfile,
-      final VirtualMachineScaleSetNetworkProfile networkProfile,
-      final ExtensionProfile extensionProfile) {
-         return builder()
-            .storageProfile(storageProfile)
-            .osProfile(osProfile)
-            .networkProfile(networkProfile)
-            .extensionProfile(extensionProfile)
-            .build();
-   }
-
-   public abstract Builder toBuilder();
-
-   public static Builder builder() {
-      return new 
AutoValue_VirtualMachineScaleSetVirtualMachineProfile.Builder();
-   }
-
-   @AutoValue.Builder
-   public abstract static class Builder {
-
-      public abstract Builder storageProfile(StorageProfile storageProfile);
-
-      public abstract Builder osProfile(VirtualMachineScaleSetOSProfile 
osProfile);
-
-      public abstract Builder 
networkProfile(VirtualMachineScaleSetNetworkProfile networkProfile);
-
-      public abstract Builder extensionProfile(ExtensionProfile 
extensionProfile);
-
-      public abstract VirtualMachineScaleSetVirtualMachineProfile build();
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualNetwork.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualNetwork.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualNetwork.java
deleted file mode 100644
index a0f5c3e..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualNetwork.java
+++ /dev/null
@@ -1,122 +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.azurecompute.arm.domain;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-
-import java.util.Map;
-import java.util.List;
-import com.google.common.collect.ImmutableList;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableMap;
-
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.json.SerializedNames;
-
-@AutoValue
-public abstract class VirtualNetwork {
-
-   @AutoValue
-   public abstract static class AddressSpace {
-
-      public abstract List<String> addressPrefixes();
-
-      @SerializedNames({"addressPrefixes"})
-      public static AddressSpace create(final List<String> addressPrefixes) {
-         return new AutoValue_VirtualNetwork_AddressSpace(addressPrefixes == 
null ? ImmutableList.<String>of() : ImmutableList.copyOf(addressPrefixes));
-      }
-   }
-
-   @AutoValue
-   public abstract static class VirtualNetworkProperties implements 
Provisionable {
-
-      @Nullable
-      public abstract String provisioningState();
-
-      @Nullable
-      public abstract String resourceGuid();
-
-      public abstract AddressSpace addressSpace();
-
-      @Nullable
-      public abstract List<Subnet> subnets();
-
-
-      @SerializedNames({"provisioningState", "resourceGuid", "addressSpace", 
"subnets"})
-      public static VirtualNetworkProperties create(final String 
provisioningState, final String resourceGuid, final AddressSpace addressSpace, 
final List<Subnet> subnets) {
-         return builder()
-                 .provisioningState(provisioningState)
-                 .resourceGuid(resourceGuid)
-                 .addressSpace(addressSpace)
-                 .subnets(subnets != null ? copyOf(subnets) : null)
-                 .build();
-      }
-      
-      public abstract Builder toBuilder();
-
-      public static Builder builder() {
-         return new 
AutoValue_VirtualNetwork_VirtualNetworkProperties.Builder();
-      }
-
-      @AutoValue.Builder
-      public abstract static class Builder {
-         public abstract Builder provisioningState(String provisioningState);
-
-         public abstract Builder resourceGuid(String resourceGuid);
-
-         public abstract Builder addressSpace(AddressSpace addressSpace);
-
-         public abstract Builder subnets(List<Subnet> subnets);
-
-         abstract List<Subnet> subnets();
-
-         abstract VirtualNetworkProperties autoBuild();
-
-         public VirtualNetworkProperties build() {
-            subnets(subnets() != null ? ImmutableList.copyOf(subnets()) : 
null);
-            return autoBuild();
-         }
-      }
-   }
-
-   @Nullable
-   public abstract String name();
-
-   @Nullable
-   public abstract String id();
-
-   @Nullable
-   public abstract String etag();
-
-   public abstract String location();
-
-   public abstract VirtualNetworkProperties properties();
-
-   @Nullable
-   public abstract Map<String, String> tags();
-
-   @SerializedNames({"name", "id", "etag", "location", "properties", "tags"})
-   public static VirtualNetwork create(final String name,
-                                       final String id,
-                                       final String etag,
-                                       final String location,
-                                       final VirtualNetworkProperties 
properties,
-                                       final Map<String, String> tags) {
-      return new AutoValue_VirtualNetwork(name, id, etag, location, 
properties, tags == null ? null : ImmutableMap.copyOf(tags));
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/exceptions/AzureComputeRateLimitExceededException.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/exceptions/AzureComputeRateLimitExceededException.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/exceptions/AzureComputeRateLimitExceededException.java
deleted file mode 100644
index d8d478e..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/exceptions/AzureComputeRateLimitExceededException.java
+++ /dev/null
@@ -1,51 +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.azurecompute.arm.exceptions;
-
-import org.jclouds.http.HttpResponse;
-import org.jclouds.rest.RateLimitExceededException;
-
-import com.google.common.annotations.Beta;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Multimap;
-import com.google.common.collect.Multimaps;
-
-/**
- * Provides detailed information for rate limit exceptions.
- */
-@Beta
-public class AzureComputeRateLimitExceededException extends 
RateLimitExceededException {
-   private static final long serialVersionUID = 1L;
-   private static final String RATE_LIMIT_HEADER_PREFIX = 
"x-ms-ratelimit-remaining-";
-
-   public AzureComputeRateLimitExceededException(HttpResponse response) {
-      super(response.getStatusLine() + "\n" + rateLimitHeaders(response));
-   }
-
-   public AzureComputeRateLimitExceededException(HttpResponse response, 
Throwable cause) {
-      super(response.getStatusLine() + "\n" + rateLimitHeaders(response), 
cause);
-   }
-
-   private static Multimap<String, String> rateLimitHeaders(HttpResponse 
response) {
-      return Multimaps.filterKeys(response.getHeaders(), new 
Predicate<String>() {
-         @Override
-         public boolean apply(String input) {
-            return input.startsWith(RATE_LIMIT_HEADER_PREFIX);
-         }
-      });
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/AvailabilitySetApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/AvailabilitySetApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/AvailabilitySetApi.java
deleted file mode 100644
index cf5116c..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/AvailabilitySetApi.java
+++ /dev/null
@@ -1,84 +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.azurecompute.arm.features;
-
-import java.io.Closeable;
-import java.net.URI;
-import java.util.List;
-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.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.AvailabilitySet;
-import 
org.jclouds.azurecompute.arm.domain.AvailabilitySet.AvailabilitySetProperties;
-import org.jclouds.azurecompute.arm.domain.AvailabilitySet.SKU;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.azurecompute.arm.functions.URIParser;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-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.ResponseParser;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Compute/availabilitySets")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface AvailabilitySetApi extends Closeable {
-
-   @Named("availabilityset:list")
-   @GET
-   @SelectJson("value")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<AvailabilitySet> list();
-
-   @Named("availabilityset:get")
-   @Path("/{name}")
-   @GET
-   @Fallback(NullOnNotFoundOr404.class)
-   AvailabilitySet get(@PathParam("name") String name);
-
-   @Named("availabilityset:createOrUpdate")
-   @MapBinder(BindToJsonPayload.class)
-   @Path("/{name}")
-   @PUT
-   AvailabilitySet createOrUpdate(@PathParam("name") String name,
-         @Nullable @PayloadParam("sku") SKU sku,
-         @PayloadParam("location") String location,
-         @Nullable @PayloadParam("tags") Map<String, String> tags,
-         @PayloadParam("properties") AvailabilitySetProperties properties);
-
-   @Named("availabilityset:delete")
-   @Path("/{name}")
-   @DELETE
-   @ResponseParser(URIParser.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   URI delete(@PathParam("name") String name);
-
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DeploymentApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DeploymentApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DeploymentApi.java
deleted file mode 100644
index 1ff43de..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DeploymentApi.java
+++ /dev/null
@@ -1,107 +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.azurecompute.arm.features;
-
-import java.net.URI;
-import java.util.List;
-
-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;
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.Deployment;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.azurecompute.arm.functions.URIParser;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-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.SelectJson;
-
-/**
- * - create deployment
- * - delete deployment
- * - get information about deployment
- */
-@Path("/resourcegroups/{resourcegroup}/providers/microsoft.resources/deployments")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface DeploymentApi {
-
-   /**
-    * The Create Template Deployment operation starts the process of an ARM 
Template deployment.
-    * It then returns a Deployment object.
-    */
-   @Named("deployment:create")
-   @Path("/{deploymentname}")
-   @Payload("{template}")
-   @PUT
-   @Produces(MediaType.APPLICATION_JSON)
-   Deployment create(@PathParam("deploymentname") String deploymentname,
-                               @PayloadParam("template") String template);
-
-   /**
-    * Get Deployment Information returns information about the specified 
deployment.
-    */
-   @Named("deployment:get")
-   @Path("/{deploymentname}")
-   @GET
-   @Fallback(NullOnNotFoundOr404.class)
-   Deployment get(@PathParam("deploymentname") String deploymentname);
-
-   /**
-    * Validate Deployment validates deployment template before deployment
-    */
-   @Named("deployment:validate")
-   @Path("/{deploymentname}/validate")
-   @Payload("{template}")
-   @POST
-   @Produces(MediaType.APPLICATION_JSON)
-   Deployment validate(@PathParam("deploymentname") String deploymentname,
-                                 @PayloadParam("template") String template);
-
-   /**
-    * List all deployments in a resource group
-    */
-   @Named("deployment:list")
-   @GET
-   @SelectJson("value")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<Deployment> list();
-
-   /**
-    * The Delete Template Deployment operation starts the process of an ARM 
Template removal.
-    */
-   @Named("deployment:delete")
-   @DELETE
-   @ResponseParser(URIParser.class)
-   @Path("/{deploymentname}")
-   @Fallback(Fallbacks.NullOnNotFoundOr404.class)
-   URI delete(@PathParam("deploymentname") String deploymentname);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DiskApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DiskApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DiskApi.java
deleted file mode 100644
index 10e9ac6..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DiskApi.java
+++ /dev/null
@@ -1,77 +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.azurecompute.arm.features;
-
-import java.net.URI;
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.Disk;
-import org.jclouds.azurecompute.arm.domain.DiskProperties;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.azurecompute.arm.functions.URIParser;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-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.ResponseParser;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Compute/disks")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface DiskApi {
-
-   @Named("disk:list")
-   @SelectJson("value")
-   @GET
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<Disk> list();
-
-   @Named("disk:create_or_update")
-   @PUT
-   @MapBinder(BindToJsonPayload.class)
-   @Path("/{diskName}")
-   Disk createOrUpdate(@PathParam("diskName") String diskName,
-                       @PayloadParam("location") String location,
-                       @PayloadParam("properties") DiskProperties properties);
-
-   @Named("disk:get")
-   @Path("/{diskName}")
-   @GET
-   @Fallback(NullOnNotFoundOr404.class)
-   Disk get(@PathParam("diskName") String diskName);
-
-   @Named("disk:delete")
-   @Path("/{diskName}")
-   @DELETE
-   @ResponseParser(URIParser.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   URI delete(@PathParam("diskName") String diskName);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/GraphRBACApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/GraphRBACApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/GraphRBACApi.java
deleted file mode 100644
index fe2bccc..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/GraphRBACApi.java
+++ /dev/null
@@ -1,50 +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.azurecompute.arm.features;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.azurecompute.arm.config.GraphRBAC;
-import org.jclouds.azurecompute.arm.config.OAuthResource;
-import org.jclouds.azurecompute.arm.domain.ServicePrincipal;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-import org.jclouds.rest.annotations.Endpoint;
-import org.jclouds.rest.annotations.OnlyElement;
-import org.jclouds.rest.annotations.QueryParams;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-
-import com.google.inject.name.Named;
-
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-@Endpoint(GraphRBAC.class)
-@OAuthResource(GraphRBAC.ENDPOINT)
-public interface GraphRBACApi {
-
-   @Named("servicePrincipal:get")
-   @GET
-   @Path("/servicePrincipals")
-   @QueryParams(keys = "$filter", values = "appId eq '{jclouds.identity}'")
-   @SelectJson("value")
-   @OnlyElement
-   ServicePrincipal getCurrentServicePrincipal();
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ImageApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ImageApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ImageApi.java
deleted file mode 100644
index 96caa40..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ImageApi.java
+++ /dev/null
@@ -1,77 +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.azurecompute.arm.features;
-
-import java.net.URI;
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.Image;
-import org.jclouds.azurecompute.arm.domain.ImageProperties;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.azurecompute.arm.functions.URIParser;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-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.ResponseParser;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Compute/images")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface ImageApi {
-
-   @Named("image:list")
-   @SelectJson("value")
-   @GET
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<Image> list();
-
-   @Named("image:create_or_update")
-   @PUT
-   @MapBinder(BindToJsonPayload.class)
-   @Path("/{imageName}")
-   Image createOrUpdate(@PathParam("imageName") String imageName,
-                       @PayloadParam("location") String location,
-                       @PayloadParam("properties") ImageProperties properties);
-
-   @Named("image:get")
-   @Path("/{imageName}")
-   @GET
-   @Fallback(NullOnNotFoundOr404.class)
-   Image get(@PathParam("imageName") String imageName);
-
-   @Named("image:delete")
-   @Path("/{imageName}")
-   @DELETE
-   @ResponseParser(URIParser.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   URI delete(@PathParam("imageName") String imageName);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/JobApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/JobApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/JobApi.java
deleted file mode 100644
index a854fed..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/JobApi.java
+++ /dev/null
@@ -1,58 +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.azurecompute.arm.features;
-
-import java.io.Closeable;
-import java.net.URI;
-import java.util.List;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks;
-import org.jclouds.azurecompute.arm.domain.ResourceDefinition;
-import org.jclouds.azurecompute.arm.functions.ParseJobStatus;
-import org.jclouds.azurecompute.arm.functions.ParseJobStatus.JobStatus;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.SelectJson;
-
-/**
- * The Azure Resource Manager API checks for job status and progress.
- */
-@RequestFilters(OAuthFilter.class)
-@Consumes(MediaType.APPLICATION_JSON)
-public interface JobApi extends Closeable {
-   
-   @GET
-   @ResponseParser(ParseJobStatus.class)
-   JobStatus jobStatus(@EndpointParam URI jobURI);
-
-   /**
-    * Get status of captured custom image after capture call
-    */
-   @GET
-   @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class)
-   @SelectJson("resources")
-   List<ResourceDefinition> captureStatus(@EndpointParam URI jobURI);
-
-}
-

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LoadBalancerApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LoadBalancerApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LoadBalancerApi.java
deleted file mode 100644
index f9805c0..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LoadBalancerApi.java
+++ /dev/null
@@ -1,80 +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.azurecompute.arm.features;
-
-import java.net.URI;
-import java.util.List;
-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.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.LoadBalancer;
-import org.jclouds.azurecompute.arm.domain.LoadBalancerProperties;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.azurecompute.arm.functions.URIParser;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-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.ResponseParser;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Network/loadBalancers")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface LoadBalancerApi {
-
-   @Named("loadbalancer:list")
-   @GET
-   @SelectJson("value")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<LoadBalancer> list();
-
-   @Named("loadbalancer:get")
-   @Path("/{loadbalancername}")
-   @GET
-   @Fallback(NullOnNotFoundOr404.class)
-   LoadBalancer get(@PathParam("loadbalancername") String lbName);
-
-   @Named("loadbalancer:createOrUpdate")
-   @Path("/{loadbalancername}")
-   @PUT
-   @MapBinder(BindToJsonPayload.class)
-   LoadBalancer createOrUpdate(@PathParam("loadbalancername") String lbName,
-         @PayloadParam("location") String location, @Nullable 
@PayloadParam("tags") Map<String, String> tags,
-         @PayloadParam("properties") LoadBalancerProperties properties);
-
-   @Named("loadbalancer:delete")
-   @Path("/{loadbalancername}")
-   @DELETE
-   @ResponseParser(URIParser.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   URI delete(@PathParam("loadbalancername") String lbName);
-
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LocationApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LocationApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LocationApi.java
deleted file mode 100644
index 257293c..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LocationApi.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.azurecompute.arm.features;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.Location;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-
-/**
- * This Azure Resource Manager API provides all of the locations that are 
available for resource providers
- * <p/>
- *
- * @see <a 
href="https://msdn.microsoft.com/en-US/library/azure/dn790540.aspx";>docs</a>
- */
-@Path("/locations")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Produces(MediaType.APPLICATION_JSON)
-@Consumes(MediaType.APPLICATION_JSON)
-public interface LocationApi {
-
-   /**
-    * The List Locations operation lists all of the data center locations that 
are valid for your subscription.
-    */
-   @Named("location:list")
-   @GET
-   @SelectJson("value")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<Location> list();
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricDefinitionsApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricDefinitionsApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricDefinitionsApi.java
deleted file mode 100644
index ba62a28..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricDefinitionsApi.java
+++ /dev/null
@@ -1,52 +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.azurecompute.arm.features;
-
-import java.util.List;
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.MetricDefinition;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-
-/**
- * This Azure Resource Manager API provides all the metric definitions 
available for a given resource
- * <p/>
- *
- * @see <a 
href="https://docs.microsoft.com/en-us/rest/api/monitor/metricdefinitions";>docs</a>
- */
-@Path("/{resourceid}")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface MetricDefinitionsApi {
-   @Named("metrics:list")
-   @Path("/providers/microsoft.insights/metricdefinitions")
-   @GET
-   @SelectJson("value")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<MetricDefinition> list(@Nullable @QueryParam("$filter") String filter);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricsApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricsApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricsApi.java
deleted file mode 100644
index 03d19a1..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricsApi.java
+++ /dev/null
@@ -1,51 +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.azurecompute.arm.features;
-
-import java.util.List;
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.Metric;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-
-/**
- * This Azure Resource Manager API provides all the metric data available for 
a given resource
- * <p/>
- *
- * @see <a 
href="https://docs.microsoft.com/en-us/rest/api/monitor/metricdefinitions";>docs</a>
- */
-@Path("/{resourceid}")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface MetricsApi {
-   @Named("metrics:list")
-   @Path("/providers/microsoft.insights/metrics")
-   @GET
-   @SelectJson("value")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<Metric> list(@QueryParam("$filter") String filter);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkInterfaceCardApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkInterfaceCardApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkInterfaceCardApi.java
deleted file mode 100644
index 5d2773f..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkInterfaceCardApi.java
+++ /dev/null
@@ -1,80 +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.azurecompute.arm.features;
-
-import java.net.URI;
-import java.util.List;
-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.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.NetworkInterfaceCard;
-import org.jclouds.azurecompute.arm.domain.NetworkInterfaceCardProperties;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.azurecompute.arm.functions.URIParser;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-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.ResponseParser;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Network/networkInterfaces")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface NetworkInterfaceCardApi {
-
-   @Named("networkinterfacecard:list")
-   @SelectJson("value")
-   @GET
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<NetworkInterfaceCard> list();
-
-   @Named("networkinterfacecard:create_or_update")
-   @Path("/{networkinterfacecardname}")
-   @MapBinder(BindToJsonPayload.class)
-   @PUT
-   NetworkInterfaceCard createOrUpdate(@PathParam("networkinterfacecardname") 
String networkinterfacecardname,
-         @PayloadParam("location") String location,
-         @PayloadParam("properties") NetworkInterfaceCardProperties properties,
-         @Nullable @PayloadParam("tags") Map<String, String> tags);
-
-   @Named("networkinterfacecard:get")
-   @Path("/{networkinterfacecardname}")
-   @GET
-   @Fallback(NullOnNotFoundOr404.class)
-   NetworkInterfaceCard get(@PathParam("networkinterfacecardname") String 
networkinterfacecardname);
-
-   @Named("networkinterfacecard:delete")
-   @Path("/{networkinterfacecardname}")
-   @DELETE
-   @ResponseParser(URIParser.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   URI delete(@PathParam("networkinterfacecardname") String 
networkinterfacecardname);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityGroupApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityGroupApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityGroupApi.java
deleted file mode 100644
index 41c0c85..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityGroupApi.java
+++ /dev/null
@@ -1,79 +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.azurecompute.arm.features;
-
-import java.net.URI;
-import java.util.List;
-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.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.arm.domain.NetworkSecurityGroupProperties;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.azurecompute.arm.functions.URIParser;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-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.ResponseParser;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Network/networkSecurityGroups")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface NetworkSecurityGroupApi {
-
-   @Named("networksecuritygroup:list")
-   @GET
-   @SelectJson("value")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<NetworkSecurityGroup> list();
-
-   @Named("networksecuritygroup:delete")
-   @Path("/{networksecuritygroupname}")
-   @DELETE
-   @ResponseParser(URIParser.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   URI delete(@PathParam("networksecuritygroupname") String nsgName);
-
-   @Named("networksecuritygroup:createOrUpdate")
-   @Path("/{networksecuritygroupname}")
-   @PUT
-   @MapBinder(BindToJsonPayload.class)
-   NetworkSecurityGroup createOrUpdate(@PathParam("networksecuritygroupname") 
String nsgName,
-         @PayloadParam("location") String location, @Nullable 
@PayloadParam("tags") Map<String, String> tags,
-         @PayloadParam("properties") NetworkSecurityGroupProperties 
properties);
-
-   @Named("networksecuritygroup:get")
-   @Path("/{networksecuritygroupname}")
-   @GET
-   @Fallback(NullOnNotFoundOr404.class)
-   NetworkSecurityGroup get(@PathParam("networksecuritygroupname") String 
nsgName);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityRuleApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityRuleApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityRuleApi.java
deleted file mode 100644
index 7404234..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityRuleApi.java
+++ /dev/null
@@ -1,91 +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.azurecompute.arm.features;
-
-import java.net.URI;
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.NetworkSecurityRule;
-import org.jclouds.azurecompute.arm.domain.NetworkSecurityRuleProperties;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.azurecompute.arm.functions.URIParser;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-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.ResponseParser;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Network/networkSecurityGroups/{networksecuritygroup}")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface NetworkSecurityRuleApi {
-
-   @Named("networksecurityrule:createOrUpdate")
-   @Path("/securityRules/{networksecurityrulename}")
-   @PUT
-   @MapBinder(BindToJsonPayload.class)
-   NetworkSecurityRule createOrUpdate(@PathParam("networksecurityrulename") 
String ruleName,
-                                      @PayloadParam("properties") 
NetworkSecurityRuleProperties properties);
-
-   @Named("networksecurityrule:getDefaultRule")
-   @Path("/defaultSecurityRules/{networksecurityrulename}")
-   @GET
-   @Fallback(NullOnNotFoundOr404.class)
-   NetworkSecurityRule getDefaultRule(@PathParam("networksecurityrulename") 
String ruleName);
-
-   @Named("networksecurityrule:get")
-   @Path("/securityRules/{networksecurityrulename}")
-   @GET
-   @Fallback(NullOnNotFoundOr404.class)
-   NetworkSecurityRule get(@PathParam("networksecurityrulename") String 
ruleName);
-
-   @Named("networksecurityrule:delete")
-   @Path("/securityRules/{networksecurityrulename}")
-   @DELETE
-   @ResponseParser(URIParser.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   URI delete(@PathParam("networksecurityrulename") String ruleName);
-
-   @Named("networksecuritygroup:list")
-   @Path("/securityRules")
-   @GET
-   @SelectJson("value")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<NetworkSecurityRule> list();
-
-   @Named("networksecuritygroup:listDefaultRules")
-   @Path("/defaultSecurityRules")
-   @GET
-   @SelectJson("value")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<NetworkSecurityRule> listDefaultRules();
-}
-

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/OSImageApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/OSImageApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/OSImageApi.java
deleted file mode 100644
index 32b3ccc..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/OSImageApi.java
+++ /dev/null
@@ -1,94 +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.azurecompute.arm.features;
-
-import java.util.List;
-
-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 org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.Offer;
-import org.jclouds.azurecompute.arm.domain.Publisher;
-import org.jclouds.azurecompute.arm.domain.SKU;
-import org.jclouds.azurecompute.arm.domain.Version;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.RequestFilters;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
-
-/**
- * The Azure Resource Management API includes operations for managing the OS 
images in your subscription.
- */
-@Path("/providers/Microsoft.Compute/locations/{location}")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(APPLICATION_JSON)
-public interface OSImageApi {
-
-   /**
-    * List Publishers in location
-    */
-   @Named("publisher:list")
-   @GET
-   @Path("/publishers")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<Publisher> listPublishers();
-
-   /**
-    * List Offers in publisher
-    */
-   @Named("offer:list")
-   @GET
-   @Path("/publishers/{publisher}/artifacttypes/vmimage/offers")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<Offer> listOffers(@PathParam("publisher") String publisher);
-
-   /**
-    * List SKUs in offer
-    */
-   @Named("sku:list")
-   @GET
-   @Path("/publishers/{publisher}/artifacttypes/vmimage/offers/{offer}/skus")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<SKU> listSKUs(@PathParam("publisher") String publisher, 
@PathParam("offer") String offer);
-
-   /**
-    * List Versions in SKU
-    */
-   @Named("version:list")
-   @GET
-   
@Path("/publishers/{publisher}/artifacttypes/vmimage/offers/{offer}/skus/{sku}/versions")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<Version> listVersions(@PathParam("publisher") String publisher, 
@PathParam("offer") String offer,
-                          @PathParam("sku") String sku);
-   
-   /**
-    * Get the details of a Version
-    */
-   @Named("version:get")
-   @GET
-   
@Path("/publishers/{publisher}/artifacttypes/vmimage/offers/{offer}/skus/{sku}/versions/{version}")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   Version getVersion(@PathParam("publisher") String publisher, 
@PathParam("offer") String offer,
-                          @PathParam("sku") String sku, @PathParam("version") 
String version);
-
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/PublicIPAddressApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/PublicIPAddressApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/PublicIPAddressApi.java
deleted file mode 100644
index 75af4ff..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/PublicIPAddressApi.java
+++ /dev/null
@@ -1,78 +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.azurecompute.arm.features;
-
-import java.util.List;
-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.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.PublicIPAddress;
-import org.jclouds.azurecompute.arm.domain.PublicIPAddressProperties;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.azurecompute.arm.functions.FalseOn204;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-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.ResponseParser;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Network/publicIPAddresses")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface PublicIPAddressApi {
-
-   @Named("publicipaddress:list")
-   @SelectJson("value")
-   @GET
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<PublicIPAddress> list();
-
-   @Named("publicipaddress:create_or_update")
-   @Path("/{publicipaddressname}")
-   @MapBinder(BindToJsonPayload.class)
-   @PUT
-   PublicIPAddress createOrUpdate(@PathParam("publicipaddressname") String 
publicipaddressname,
-                                                 @PayloadParam("location") 
String location,
-                                                 @Nullable 
@PayloadParam("tags") Map<String, String> tags,
-                                                 @PayloadParam("properties") 
PublicIPAddressProperties properties);
-
-   @Named("publicipaddress:get")
-   @Path("/{publicipaddressname}")
-   @GET
-   @Fallback(NullOnNotFoundOr404.class)
-   PublicIPAddress get(@PathParam("publicipaddressname") String 
publicipaddressname);
-
-   @Named("publicipaddress:delete")
-   @Path("/{publicipaddressname}")
-   @DELETE
-   @ResponseParser(FalseOn204.class)
-   boolean delete(@PathParam("publicipaddressname") String 
publicipaddressname);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceGroupApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceGroupApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceGroupApi.java
deleted file mode 100644
index 7c51621..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceGroupApi.java
+++ /dev/null
@@ -1,99 +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.azurecompute.arm.features;
-
-import java.io.Closeable;
-import java.net.URI;
-import java.util.List;
-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.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.Resource;
-import org.jclouds.azurecompute.arm.domain.ResourceGroup;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.azurecompute.arm.functions.URIParser;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.PATCH;
-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 org.jclouds.rest.binders.BindToJsonPayload;
-
-/**
- * The Azure Resource Manager API includes operations for managing resource 
groups in your subscription.
- *
- * @see <a 
href="https://msdn.microsoft.com/en-us/library/azure/dn790546.aspx";>docs</a>
- */
-@Path("/resourcegroups")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface ResourceGroupApi extends Closeable{
-
-   @Named("resourcegroup:list")
-   @SelectJson("value")
-   @GET
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<ResourceGroup> list();
-
-   @Named("resourcegroup:create")
-   @PUT
-   @Path("/{name}")
-   @MapBinder(BindToJsonPayload.class)
-   ResourceGroup create(@PathParam("name") String name, 
@PayloadParam("location") String location, @Nullable @PayloadParam("tags") 
Map<String, String> tags);
-
-   @Named("resourcegroup:get")
-   @GET
-   @Path("/{name}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   ResourceGroup get(@PathParam("name") String name);
-
-   @Named("resourcegroup:resources")
-   @GET
-   @Path("/{name}/resources")
-   @SelectJson("value")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<Resource> resources(@PathParam("name") String name);
-
-   @Named("resourcegroup:update")
-   @PATCH
-   @Path("/{name}")
-   @MapBinder(BindToJsonPayload.class)
-   ResourceGroup update(@PathParam("name") String name, @Nullable 
@PayloadParam("tags") Map<String, String> tags);
-
-   @Named("resourcegroup:delete")
-   @DELETE
-   @ResponseParser(URIParser.class)
-   @Path("/{name}")
-   @Fallback(NullOnNotFoundOr404.class)
-   URI delete(@PathParam("name") String name);
-}
-

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceProviderApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceProviderApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceProviderApi.java
deleted file mode 100644
index 56dd0d4..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceProviderApi.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.azurecompute.arm.features;
-
-import java.io.Closeable;
-import java.util.List;
-
-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.azurecompute.arm.domain.ResourceProviderMetaData;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-
-/**
- * The Azure Resource Provider API provides information about a resource 
provider and its supported resource types.
- *
- * @see <a 
href="https://msdn.microsoft.com/en-us/library/azure/dn790534.aspx";>docs</a>
- */
-@Path("/providers")
-
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface ResourceProviderApi extends Closeable {
-
-   @Named("providers:get")
-   @GET
-   @Path("/{namespace}")
-   @SelectJson("resourceTypes")
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   List<ResourceProviderMetaData> get(@PathParam("namespace") String 
namespace);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/StorageAccountApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/StorageAccountApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/StorageAccountApi.java
deleted file mode 100644
index 0c9399c..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/StorageAccountApi.java
+++ /dev/null
@@ -1,160 +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.azurecompute.arm.features;
-
-import java.net.URI;
-import java.util.List;
-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;
-import org.jclouds.azurecompute.arm.domain.Availability;
-import org.jclouds.azurecompute.arm.domain.StorageService;
-import org.jclouds.azurecompute.arm.domain.StorageServiceKeys;
-import org.jclouds.azurecompute.arm.domain.StorageServiceUpdateParams;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.azurecompute.arm.functions.FalseOn204;
-import org.jclouds.azurecompute.arm.functions.URIParser;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.PATCH;
-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 org.jclouds.rest.binders.BindToJsonPayload;
-
-/**
- * The Azure Resource Management API includes operations for managing the 
storage accounts in your subscription.
- *
- * @see <a 
href="https://msdn.microsoft.com/en-us/library/mt163683.aspx";>docs</a>
- */
-@Path("/")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface StorageAccountApi {
-
-   /**
-    * The List Storage Accounts operation lists the storage accounts that are 
available in the specified subscription
-    * and resource group.
-    * https://msdn.microsoft.com/en-us/library/mt163559.aspx
-    */
-   @Named("storageaccount:list")
-   
@Path("/resourcegroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts")
-   @GET
-   @SelectJson("value")
-   @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class)
-   List<StorageService> list();
-
-   /**
-    * The Create Storage Account asynchronous operation creates a new storage 
account in Microsoft Azure.
-    * https://msdn.microsoft.com/en-us/library/mt163564.aspx
-    * PUT
-    */
-   @Named("storageaccount:create")
-   
@Path("/resourcegroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}")
-   @ResponseParser(URIParser.class)
-   @MapBinder(BindToJsonPayload.class)
-   @PUT
-   URI create(@PathParam("storageAccountName") String storageAccountName,
-              @PayloadParam("location") String location,
-              @Nullable @PayloadParam("tags") Map<String, String> tags,
-              @PayloadParam("properties") Map<String, String> properties);
-
-   /**
-    * The Check Storage Account Name Availability operation checks to see if 
the specified storage account name is
-    * available, or if it has already been taken. 
https://msdn.microsoft.com/en-us/library/mt163642.aspx
-    * POST
-    */
-   @Named("CheckStorageAccountNameAvailability")
-   @POST
-   
@Payload("%7B\"name\":\"{name}\",\"type\":\"Microsoft.Storage/storageAccounts\"%7D")
-   @Path("/providers/Microsoft.Storage/checkNameAvailability")
-   @Produces(MediaType.APPLICATION_JSON)
-   Availability isAvailable(@PayloadParam("name") String storageAccountName);
-
-   /**
-    * The Get Storage Account Properties operation returns system properties 
for the specified storage account.
-    * https://msdn.microsoft.com/en-us/library/mt163553.aspx
-    */
-   @Named("storageaccountproperty:get")
-   @GET
-   
@Path("/resourcegroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}")
-   @Fallback(Fallbacks.NullOnNotFoundOr404.class)
-   StorageService get(@PathParam("storageAccountName") String 
storageAccountName);
-
-   /**
-    * The Get Storage Keys operation returns the primary and secondary access 
keys for the specified storage account.
-    * https://msdn.microsoft.com/en-us/library/mt163589.aspx
-    * POST
-    */
-   @Named("storageaccountkey:get")
-   @POST
-   
@Path("/resourcegroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}/listKeys")
-   @Fallback(Fallbacks.NullOnNotFoundOr404.class)
-   StorageServiceKeys getKeys(@PathParam("storageAccountName") String 
storageAccountName);
-
-   /**
-    * https://msdn.microsoft.com/en-us/library/mt163567.aspx
-    * POST
-    */
-   @Named("RegenerateStorageAccountKeys")
-   @POST
-   @Payload("%7B\"keyName\":\"{keyName}\"%7D")
-   
@Path("/resourcegroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccount}/regenerateKey")
-   @Produces(MediaType.APPLICATION_JSON)
-   StorageServiceKeys regenerateKeys(@PathParam("storageAccount") String 
storageAccount,
-                                     @PayloadParam("keyName") String keyName);
-
-   /**
-    * The Update Storage Account asynchronous operation updates the label, the 
description, and enables or disables the
-    * geo-replication status for the specified storage account. 
https://msdn.microsoft.com/en-us/library/mt163639.aspx
-    * PATCH
-    */
-   @Named("storageaccount:update")
-   @PATCH
-   @MapBinder(BindToJsonPayload.class)
-   
@Path("/resourcegroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}")
-   StorageServiceUpdateParams update(
-           @PathParam("storageAccountName") String storageAccountName,
-           @Nullable @PayloadParam("tags") Map<String, String> tags,
-           @PayloadParam("properties") 
StorageServiceUpdateParams.StorageServiceUpdateProperties properties);
-
-   /**
-    * https://msdn.microsoft.com/en-us/library/mt163652.aspx
-    * DELETE
-    */
-   @Named("storageaccount:delete")
-   @DELETE
-   @ResponseParser(FalseOn204.class)
-   
@Path("/resourcegroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}")
-   boolean delete(@PathParam("storageAccountName") String storageAccountName);
-
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/SubnetApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/SubnetApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/SubnetApi.java
deleted file mode 100644
index 8f30d6c..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/SubnetApi.java
+++ /dev/null
@@ -1,74 +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.azurecompute.arm.features;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.Subnet;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.azurecompute.arm.functions.FalseOn204;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-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.ResponseParser;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Network/virtualNetworks/{virtualnetwork}/subnets")
-
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface SubnetApi {
-
-   @Named("subnet:list")
-   @SelectJson("value")
-   @GET
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<Subnet> list();
-
-   @Named("subnet:create_or_update")
-   @Path("/{subnetname}")
-   @MapBinder(BindToJsonPayload.class)
-   @PUT
-   Subnet createOrUpdate(@PathParam("subnetname") String name,
-                               @PayloadParam("properties") 
Subnet.SubnetProperties properties);
-
-   @Named("subnet:get")
-   @Path("/{subnetname}")
-   @GET
-   @Fallback(NullOnNotFoundOr404.class)
-   Subnet get(@PathParam("subnetname") String subnetname);
-
-   @Named("subnet:delete")
-   @Path("/{subnetname}")
-   @DELETE
-   @ResponseParser(FalseOn204.class)
-   boolean delete(@PathParam("subnetname") String subnetname);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/VMSizeApi.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/VMSizeApi.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/VMSizeApi.java
deleted file mode 100644
index b5917ce..0000000
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/VMSizeApi.java
+++ /dev/null
@@ -1,45 +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.azurecompute.arm.features;
-
-import java.util.List;
-
-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.EmptyListOnNotFoundOr404;
-import org.jclouds.azurecompute.arm.domain.VMSize;
-import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
-import org.jclouds.oauth.v2.filters.OAuthFilter;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.SelectJson;
-
-@Path("/providers/Microsoft.Compute/locations/{location}/vmSizes")
-@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class })
-@Consumes(MediaType.APPLICATION_JSON)
-public interface VMSizeApi {
-
-   @Named("vmSizes:list")
-   @GET
-   @SelectJson("value")
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<VMSize> list();
-}

Reply via email to