Remove deprecated Azure provider
diff --git a/azurecompute/.gitignore b/azurecompute/.gitignore
deleted file mode 100644
index 8fb7bef..0000000
--- a/azurecompute/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-# use glob syntax.
-syntax: glob
-target
-.settings
-.classpath
-.project
-jclouds-azurecompute.iml
-jclouds-azurecompute.ipr
-jclouds-azurecompute.iws
diff --git a/azurecompute/README.md b/azurecompute/README.md
deleted file mode 100644
index 7d251d7..0000000
--- a/azurecompute/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-## Annotation processing
-In order for value object and service loader auto-generation, you will need to enable annotation processing in your IDE.
-If you notice any inconsistencies in your IDE after you enable annotation processing, try rerunning "Make Project".
-
-## Setting up test credentials
-
-Azure requests are signed by via SSL certificate. You need to upload one into your account in order to run tests.
-
-```bash
-# create the certificate request
-mkdir -m 700 $HOME/.jclouds
-openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout $HOME/.jclouds/azure.pem -out $HOME/.jclouds/azure.pem
-# create the p12 file, and note your export password. This will be your test credentials.
-openssl pkcs12 -export -out $HOME/.jclouds/azure.p12 -in $HOME/.jclouds/azure.pem -name "jclouds :: $USER"
-# create a cer file which you upload to the management console to authorize this certificate.
-# https://manage.windowsazure.com/@ignasibarreragmail.onmicrosoft.com#Workspaces/AdminTasks/ListManagementCertificates
-# note you need to press command+shift+. to display hidden directories in a open dialog in osx
-openssl x509 -inform pem -in $HOME/.jclouds/azure.pem -outform der -out $HOME/.jclouds/azure.cer
-```
-
-Once you do this, you will set the following to run the live tests.
-```bash
-mvn -Plive -Dtest.azurecompute.endpoint=https://management.core.windows.net/12345678-abcd-dcba-abdc-ba0987654321 \
--Dtest.azurecompute.credential=P12_EXPORT_PASSWORD \
--Dtest.azurecompute.identity=$HOME/.jclouds/azure.p12
-```
\ No newline at end of file
diff --git a/azurecompute/pom.xml b/azurecompute/pom.xml
deleted file mode 100644
index c46719d..0000000
--- a/azurecompute/pom.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.jclouds.labs</groupId>
-    <artifactId>jclouds-labs</artifactId>
-    <version>2.2.0-SNAPSHOT</version>
-  </parent>
-
-  <!-- TODO: when out of labs, switch to org.jclouds.provider -->
-  <artifactId>azurecompute</artifactId>
-  <name>jclouds azure compute API</name>
-  <description>jclouds components to access an implementation of Azure's Compute Service</description>
-  <packaging>bundle</packaging>
-
-  <properties>
-    <test.jclouds.azurecompute.subscription-id>FIXME_subscription-id</test.jclouds.azurecompute.subscription-id>
-    <!-- note that there's no prefix of "test." in the url.  This is to ensure that jclouds inteprets the value, as opposed to maven -->
-    <test.azurecompute.endpoint>https://management.core.windows.net/${test.jclouds.azurecompute.subscription-id}</test.azurecompute.endpoint>
-    <test.azurecompute.api-version>2014-10-01</test.azurecompute.api-version>
-    <test.azurecompute.build-version />
-    <test.azurecompute.identity>/path/to/cert.p12</test.azurecompute.identity>
-    <test.azurecompute.credential>password to cert</test.azurecompute.credential>
-    <jclouds.osgi.export>org.jclouds.azurecompute*;version="${project.version}"</jclouds.osgi.export>
-    <jclouds.osgi.import>org.jclouds*;version="${project.version}",*</jclouds.osgi.import>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>com.jamesmurty.utils</groupId>
-      <artifactId>java-xmlbuilder</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.jclouds</groupId>
-      <artifactId>jclouds-compute</artifactId>
-      <version>${project.parent.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.google.auto.service</groupId>
-      <artifactId>auto-service</artifactId>
-      <scope>provided</scope>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
-      <groupId>com.google.auto.value</groupId>
-      <artifactId>auto-value</artifactId>
-      <scope>provided</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.jclouds</groupId>
-      <artifactId>jclouds-core</artifactId>
-      <version>${project.parent.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.jclouds</groupId>
-      <artifactId>jclouds-compute</artifactId>
-      <version>${project.parent.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.jclouds.driver</groupId>
-      <artifactId>jclouds-slf4j</artifactId>
-      <version>${project.parent.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.jclouds.driver</groupId>
-      <artifactId>jclouds-slf4j</artifactId>
-      <version>${project.parent.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-    <groupId>ch.qos.logback</groupId>
-    <artifactId>logback-classic</artifactId>
-    <scope>test</scope>
-  </dependency>
-    <dependency>
-      <groupId>org.apache.jclouds.driver</groupId>
-      <artifactId>jclouds-sshj</artifactId>
-      <version>${project.parent.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.squareup.okhttp</groupId>
-      <artifactId>mockwebserver</artifactId>
-      <scope>test</scope>
-      <exclusions>
-        <!-- Already provided by jclouds-sshj -->
-        <exclusion>
-          <groupId>org.bouncycastle</groupId>
-          <artifactId>bcprov-jdk15on</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-  </dependencies>
-
-  <profiles>
-    <profile>
-      <id>live</id>
-
-      <build>
-        <defaultGoal>clean verify</defaultGoal>
-
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-surefire-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>integration</id>
-                <phase>integration-test</phase>
-                <goals>
-                  <goal>test</goal>
-                </goals>
-                <configuration>
-                  <systemPropertyVariables>
-                    <test.azurecompute.endpoint>${test.azurecompute.endpoint}</test.azurecompute.endpoint>
-                    <test.azurecompute.api-version>${test.azurecompute.api-version}</test.azurecompute.api-version>
-                    <test.azurecompute.build-version>${test.azurecompute.build-version}</test.azurecompute.build-version>
-                    <test.azurecompute.identity>${test.azurecompute.identity}</test.azurecompute.identity>
-                    <test.azurecompute.credential>${test.azurecompute.credential}</test.azurecompute.credential>
-                    <test.jclouds.azurecompute.subscription-id>${test.jclouds.azurecompute.subscription-id}</test.jclouds.azurecompute.subscription-id>
-                  </systemPropertyVariables>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-
-</project>
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeApi.java
deleted file mode 100644
index d7e78f2..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeApi.java
+++ /dev/null
@@ -1,176 +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;
-
-import java.io.Closeable;
-
-import javax.ws.rs.PathParam;
-
-import org.jclouds.azurecompute.features.AffinityGroupApi;
-import org.jclouds.azurecompute.features.CloudServiceApi;
-import org.jclouds.azurecompute.features.DeploymentApi;
-import org.jclouds.azurecompute.features.DiskApi;
-import org.jclouds.azurecompute.features.LocationApi;
-import org.jclouds.azurecompute.features.NetworkSecurityGroupApi;
-import org.jclouds.azurecompute.features.OSImageApi;
-import org.jclouds.azurecompute.features.OperationApi;
-import org.jclouds.azurecompute.features.ReservedIPAddressApi;
-import org.jclouds.azurecompute.features.ServiceCertificatesApi;
-import org.jclouds.azurecompute.features.StorageAccountApi;
-import org.jclouds.azurecompute.features.SubscriptionApi;
-import org.jclouds.azurecompute.features.TrafficManagerApi;
-import org.jclouds.azurecompute.features.VirtualMachineApi;
-import org.jclouds.azurecompute.features.VirtualNetworkApi;
-import org.jclouds.azurecompute.features.VMImageApi;
-import org.jclouds.rest.annotations.Delegate;
-
-/**
- * The Windows Azure Service Management API is a REST API for managing your services and deployments.
- * <p/>
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460799" >doc</a>
- */
-public interface AzureComputeApi extends Closeable {
-
-   /**
-    * The Service Management API includes operations for managing affinity groups in your subscription.
-    *
-    * @see <a href="http://msdn.microsoft.com/en-us/library/azure/ee460798">docs</a>
-    */
-   @Delegate
-   AffinityGroupApi getAffinityGroupApi();
-
-   /**
-    * The Service Management API includes operations for listing the available data center locations for a cloud service
-    * in your subscription.
-    *
-    * @see <a href="http://msdn.microsoft.com/en-us/library/gg441299">docs</a>
-    */
-   @Delegate
-   LocationApi getLocationApi();
-
-   /**
-    * The Service Management API includes operations for managing the cloud services beneath your subscription.
-    *
-    * @see <a href="http://msdn.microsoft.com/en-us/library/ee460812">docs</a>
-    */
-   @Delegate
-   CloudServiceApi getCloudServiceApi();
-
-   /**
-    * The Service Management API includes operations for managing the virtual machines in your subscription.
-    *
-    * @see <a href="http://msdn.microsoft.com/en-us/library/jj157206">docs</a>
-    */
-   @Delegate
-   DeploymentApi getDeploymentApiForService(@PathParam("serviceName") String serviceName);
-
-   /**
-    * The Service Management API includes operations for managing the virtual machines in your subscription.
-    *
-    * @see <a href="http://msdn.microsoft.com/en-us/library/jj157206">docs</a>
-    */
-   // TODO: revisit once we have multi-level @Delegate working
-   @Delegate
-   VirtualMachineApi getVirtualMachineApiForDeploymentInService(@PathParam("deploymentName") String deploymentName,
-           @PathParam("serviceName") String serviceName);
-
-   /**
-    * The Service Management API includes operations for managing the OS images in your subscription.
-    *
-    * @see <a href="http://msdn.microsoft.com/en-us/library/jj157175">docs</a>
-    */
-   @Delegate
-   OSImageApi getOSImageApi();
-
-   /**
-    * The Service Management API includes operations for Tracking Asynchronous Service Management Requests.
-    *
-    * @see <a href="http://msdn.microsoft.com/en-us/library/ee460791">docs</a>
-    */
-   @Delegate
-   OperationApi getOperationApi();
-
-   /**
-    * The Service Management API includes operations for managing Disks in your subscription.
-    *
-    * @see <a href="http://msdn.microsoft.com/en-us/library/jj157188">docs</a>
-    */
-   @Delegate
-   DiskApi getDiskApi();
-
-   /**
-    * The Service Management API includes operations for retrieving information about a subscription.
-    *
-    * @see <a href="http://msdn.microsoft.com/en-us/library/azure/gg715315.aspx">docs</a>
-    */
-   @Delegate
-   SubscriptionApi getSubscriptionApi();
-
-   /**
-    * The Service Management API includes operations for managing the virtual networks in your subscription.
-    *
-    * @see <a href="http://msdn.microsoft.com/en-us/library/jj157182.aspx">docs</a>
-    */
-   @Delegate
-   VirtualNetworkApi getVirtualNetworkApi();
-
-   /**
-    * The Service Management API includes operations for managing the storage accounts in your subscription.
-    *
-    * @see <a href="http://msdn.microsoft.com/en-us/library/ee460790.aspx">docs</a>
-    */
-   @Delegate
-   StorageAccountApi getStorageAccountApi();
-
-   /**
-    * The Service Management API includes operations for managing the Network Security Groups in your subscription.
-    *
-    */
-   @Delegate
-   NetworkSecurityGroupApi getNetworkSecurityGroupApi();
-
-   /**
-    * The Service Management API includes operations for creating, updating, listing, and deleting Azure Traffic Manager
-    * profiles and definitions.
-    *
-    * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758255.aspx">docs</a>
-    */
-   @Delegate
-   TrafficManagerApi getTrafficManaerApi();
-
-   /**
-    * The Service Management API includes operations for managing service certificates in your subscription.
-    *
-    * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee795178.aspx">docs</a>
-    */
-   @Delegate
-   ServiceCertificatesApi getServiceCertificatesApi();
-
-   /**
-    * The Service Management API includes operations for managing the reserved IP addresses in your subscription.
-    *
-    * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn722420.aspxx">docs</a>
-    */
-   @Delegate
-   ReservedIPAddressApi getReservedIPAddressApi();
-   /*
-   * The Service Management API includes operations for managing the VM Images in your subscription.
-   */
-   @Delegate
-   VMImageApi getVMImageApi();
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeProviderMetadata.java b/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeProviderMetadata.java
deleted file mode 100644
index 4a82f67..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeProviderMetadata.java
+++ /dev/null
@@ -1,92 +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;
-
-import static org.jclouds.azurecompute.config.AzureComputeProperties.DEALLOCATE_WHEN_SUSPENDING;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_INITIAL_PERIOD;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_MAX_PERIOD;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_TIMEOUT;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.TCP_RULE_FORMAT;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.TCP_RULE_REGEXP;
-import java.net.URI;
-import java.util.Properties;
-
-import org.jclouds.azurecompute.domain.Region;
-import org.jclouds.providers.ProviderMetadata;
-import org.jclouds.providers.internal.BaseProviderMetadata;
-
-import com.google.auto.service.AutoService;
-
-@AutoService(ProviderMetadata.class)
-public class AzureComputeProviderMetadata extends BaseProviderMetadata {
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   @Override
-   public Builder toBuilder() {
-      return builder().fromProviderMetadata(this);
-   }
-
-   public AzureComputeProviderMetadata() {
-      super(builder());
-   }
-
-   public static Properties defaultProperties() {
-      final Properties properties = AzureManagementApiMetadata.defaultProperties();
-      properties.setProperty(OPERATION_TIMEOUT, "60000");
-      properties.setProperty(OPERATION_POLL_INITIAL_PERIOD, "5");
-      properties.setProperty(OPERATION_POLL_MAX_PERIOD, "15");
-      properties.setProperty(TCP_RULE_FORMAT, "tcp_%s-%s");
-      properties.setProperty(TCP_RULE_REGEXP, "tcp_\\d{1,5}-\\d{1,5}");
-      properties.setProperty(DEALLOCATE_WHEN_SUSPENDING, "true");
-      return properties;
-   }
-
-   public AzureComputeProviderMetadata(final Builder builder) {
-      super(builder);
-   }
-
-   public static class Builder extends BaseProviderMetadata.Builder {
-
-      protected Builder() {
-         super();
-
-         id("azurecompute")
-                 .name("Microsoft Azure Service Management Service")
-                 .apiMetadata(new AzureManagementApiMetadata())
-                 .endpoint("https://management.core.windows.net/SUBSCRIPTION_ID")
-                 .homepage(URI.create("https://www.windowsazure.com/"))
-                 .console(URI.create("https://windows.azure.com/default.aspx"))
-                 .linkedServices("azureblob", "azurequeue", "azuretable")
-                 .iso3166Codes(Region.iso3166Codes())
-                 .defaultProperties(AzureComputeProviderMetadata.defaultProperties());
-      }
-
-      @Override
-      public AzureComputeProviderMetadata build() {
-         return new AzureComputeProviderMetadata(this);
-      }
-
-      @Override
-      public Builder fromProviderMetadata(final ProviderMetadata providerMetadata) {
-         super.fromProviderMetadata(providerMetadata);
-         return this;
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/AzureManagementApiMetadata.java b/azurecompute/src/main/java/org/jclouds/azurecompute/AzureManagementApiMetadata.java
deleted file mode 100644
index 406b029..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/AzureManagementApiMetadata.java
+++ /dev/null
@@ -1,89 +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;
-
-import static org.jclouds.reflect.Reflection2.typeToken;
-
-import java.net.URI;
-import java.util.Properties;
-
-import org.jclouds.apis.ApiMetadata;
-import org.jclouds.azurecompute.compute.config.AzureComputeServiceContextModule;
-import org.jclouds.azurecompute.config.AzureComputeHttpApiModule;
-import org.jclouds.compute.ComputeServiceContext;
-import org.jclouds.rest.internal.BaseHttpApiMetadata;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Module;
-
-/**
- * Implementation of {@link ApiMetadata} for Microsoft Service Management Service API
- */
-public class AzureManagementApiMetadata extends BaseHttpApiMetadata<AzureComputeApi> {
-
-   @Override
-   public Builder toBuilder() {
-      return new Builder().fromApiMetadata(this);
-   }
-
-   public AzureManagementApiMetadata() {
-      this(new Builder());
-   }
-
-   protected AzureManagementApiMetadata(final Builder builder) {
-      super(builder);
-   }
-
-   public static Properties defaultProperties() {
-      final Properties properties = BaseHttpApiMetadata.defaultProperties();
-      // Sometimes SSH Authentication failure happens in Azure.
-      // It seems that the authorized key is injected after ssh has been started.
-      properties.setProperty("jclouds.ssh.max-retries", "15");
-      properties.setProperty("jclouds.ssh.retry-auth", "true");
-      return properties;
-   }
-
-   public static class Builder extends BaseHttpApiMetadata.Builder<AzureComputeApi, Builder> {
-
-      protected Builder() {
-         super();
-
-         id("azurecompute")
-                 .name("Microsoft Azure Service Management Service API")
-                 .version("2014-10-01")
-                 .identityName("Path to Management Certificate .p12 file, or PEM string")
-                 .credentialName("Password to Management Certificate")
-                 .endpointName("Service Management Endpoint ending in your Subscription Id")
-                 .documentation(URI.create("http://msdn.microsoft.com/en-us/library/ee460799"))
-                 .defaultProperties(AzureManagementApiMetadata.defaultProperties())
-                 .view(typeToken(ComputeServiceContext.class))
-                 .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
-                         .add(AzureComputeServiceContextModule.class)
-                         .add(AzureComputeHttpApiModule.class).build());
-      }
-
-      @Override
-      public AzureManagementApiMetadata build() {
-         return new AzureManagementApiMetadata(this);
-      }
-
-      @Override
-      protected Builder self() {
-         return this;
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CaptureVMImageParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CaptureVMImageParamsToXML.java
deleted file mode 100644
index b8ac478..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CaptureVMImageParamsToXML.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import com.jamesmurty.utils.XMLBuilder;
-import org.jclouds.azurecompute.domain.CaptureVMImageParams;
-import org.jclouds.azurecompute.domain.RoleSize;
-
-import static org.jclouds.azurecompute.domain.VMImage.OSDiskConfiguration.OSState.GENERALIZED;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import static com.google.common.base.Throwables.propagate;
-
-public final class CaptureVMImageParamsToXML implements Binder {
-
-    @Override
-    public <R extends HttpRequest> R bindToRequest(R request, Object input) {
-        CaptureVMImageParams params = CaptureVMImageParams.class.cast(input);
-
-        try {
-            XMLBuilder builder = XMLBuilder.create("CaptureRoleAsVMImageOperation", "http://schemas.microsoft.com/windowsazure")
-                    .namespace("i", "http://www.w3.org/2001/XMLSchema-instance")
-                    .e("OperationType").t("CaptureRoleAsVMImageOperation").up()
-                    .e("OSState").t(params.osState() == GENERALIZED ? "Generalized" : "Specialized").up()
-                    .e("VMImageName").t(params.name()).up()
-                    .e("VMImageLabel").t(params.label()).up();
-            add(builder, "Description", params.description());
-            add(builder, "Language", params.language());
-            add(builder, "ImageFamily", params.imageFamily());
-
-            RoleSize.Type vmSize = params.recommendedVMSize();
-            if (vmSize != null) {
-                String vmSizeText = params.recommendedVMSize().getText();
-                builder.e("RecommendedVMSize").t(vmSizeText).up();
-            }
-
-            builder.up();
-
-            return (R) request.toBuilder().payload(builder.asString()).build();
-        } catch (Exception e) {
-            throw propagate(e);
-        }
-    }
-
-    private XMLBuilder add(XMLBuilder xmlBuilder, String entity, String text) {
-        if (text != null) {
-            return xmlBuilder.e(entity).t(text).up();
-        } else {
-            return xmlBuilder.e(entity).up();
-        }
-    }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CreateAffinityGroupParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CreateAffinityGroupParamsToXML.java
deleted file mode 100644
index 5b71be2..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CreateAffinityGroupParamsToXML.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.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.BaseEncoding;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-import org.jclouds.azurecompute.domain.CreateAffinityGroupParams;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-public final class CreateAffinityGroupParamsToXML implements Binder {
-
-   @Override
-   @SuppressWarnings("unchecked")
-   public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
-      final CreateAffinityGroupParams params = CreateAffinityGroupParams.class.cast(input);
-
-      try {
-         XMLBuilder builder = XMLBuilder.create("CreateAffinityGroup", "http://schemas.microsoft.com/windowsazure")
-                 .e("Name").t(params.name()).up()
-                 .e("Label").t(BaseEncoding.base64().encode(params.label().getBytes(Charsets.UTF_8))).up();
-         if (params.description() != null) {
-            builder.e("Description").t(params.description()).up();
-         }
-         String xml = builder.e("Location").t(params.location()).up().asString();
-         return (R) request.toBuilder().payload(xml).build();
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CreateStorageServiceParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CreateStorageServiceParamsToXML.java
deleted file mode 100644
index 9221062..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CreateStorageServiceParamsToXML.java
+++ /dev/null
@@ -1,76 +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.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.azurecompute.domain.CreateStorageServiceParams;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.BaseEncoding;
-import com.jamesmurty.utils.XMLBuilder;
-import java.util.Map;
-
-public final class CreateStorageServiceParamsToXML implements Binder {
-
-   @Override
-   @SuppressWarnings("unchecked")
-   public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
-      final CreateStorageServiceParams params = CreateStorageServiceParams.class.cast(input);
-
-      try {
-         final XMLBuilder builder = XMLBuilder.create(
-                 "CreateStorageServiceInput", "http://schemas.microsoft.com/windowsazure").
-                 e("ServiceName").t(params.serviceName()).up();
-
-         if (params.description() != null) {
-            builder.e("Description").t(params.description()).up();
-         }
-
-         if (params.label() != null) {
-            builder.e("Label").t(BaseEncoding.base64().encode(params.label().getBytes(Charsets.UTF_8))).up();
-         }
-
-         if (params.location() != null) {
-            builder.e("Location").t(params.location()).up();
-         }
-         if (params.affinityGroup() != null) {
-            builder.e("AffinityGroup").t(params.affinityGroup()).up();
-         }
-
-         if (params.extendedProperties() != null) {
-            final XMLBuilder extProps = builder.e("ExtendedProperties");
-            for (Map.Entry<String, String> entry : params.extendedProperties().entrySet()) {
-               final XMLBuilder extProp = extProps.e("ExtendedProperty");
-               extProp.e("Name").t(entry.getKey()).up();
-               extProp.e("Value").t(entry.getValue()).up();
-               extProp.up();
-            }
-            extProps.up();
-         }
-
-         builder.e("AccountType").t(params.accountType().name()).up();
-
-         return (R) request.toBuilder().payload(builder.asString()).build();
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/DeploymentParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/DeploymentParamsToXML.java
deleted file mode 100644
index d890ebe..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/DeploymentParamsToXML.java
+++ /dev/null
@@ -1,141 +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.binders;
-
-import static com.google.common.base.Throwables.propagate;
-import static org.jclouds.azurecompute.domain.OSImage.Type.LINUX;
-
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-/**
- * Generates XML for <a href="https://msdn.microsoft.com/en-us/library/azure/jj157194.aspx">Create Virtual Machine Deployment</a> REST call.
- */
-public final class DeploymentParamsToXML implements Binder {
-
-   @Override
-   public <R extends HttpRequest> R bindToRequest(R request, Object input) {
-      DeploymentParams params = DeploymentParams.class.cast(input);
-
-      try {
-         XMLBuilder deploymentBuilder = XMLBuilder.create("Deployment", "http://schemas.microsoft.com/windowsazure")
-                 .e("Name").t(params.name()).up()
-                 .e("DeploymentSlot").t("Production").up()
-                 .e("Label").t(params.name()).up();
-         XMLBuilder roleBuilder = deploymentBuilder
-                 .e("RoleList")
-                 .e("Role")
-                 .e("RoleName").t(params.name()).up()
-                 .e("RoleType").t("PersistentVMRole").up();
-         XMLBuilder configSetsBuilder = roleBuilder.e("ConfigurationSets");
-
-         if (params.os() == OSImage.Type.WINDOWS) {
-            XMLBuilder configBuilder = configSetsBuilder.e("ConfigurationSet"); // Windows
-            final String listenerProtocol = params.winrmUseHttps() != null && params.winrmUseHttps() ? "Https" : "Http";
-            configBuilder.e("ConfigurationSetType").t("WindowsProvisioningConfiguration").up()
-                    .e("ComputerName").t(params.name()).up()
-                    .e("AdminPassword").t(params.password()).up()
-                    .e("ResetPasswordOnFirstLogon").t("false").up()
-                    .e("EnableAutomaticUpdate").t("false").up()
-                    .e("DomainJoin")
-                    .e("Credentials")
-                    .e("Domain").t(params.name()).up()
-                    .e("Username").t(params.username()).up()
-                    .e("Password").t(params.password()).up()
-                    .up() // Credentials
-                    .e("JoinDomain").t(params.name()).up()
-                    .up() // Domain Join
-                    .e("StoredCertificateSettings").up()
-                    .e("WinRM")
-                    .e("Listeners")
-                    .e("Listener")
-                    .e("Protocol").t(listenerProtocol).up().up().up().up()
-                    .e("AdminUsername").t(params.username()).up()
-                    .e("AdminPassword").t(params.username()).up()
-                    .up(); // Windows ConfigurationSet
-         } else if (params.os() == OSImage.Type.LINUX) {
-            XMLBuilder configBuilder = configSetsBuilder.e("ConfigurationSet"); // Linux
-            configBuilder.e("ConfigurationSetType").t("LinuxProvisioningConfiguration").up()
-                    .e("HostName").t(params.name()).up()
-                    .e("UserName").t(params.username()).up()
-                    .e("UserPassword").t(params.password()).up()
-                    .e("DisableSshPasswordAuthentication").t("false").up()
-                    .e("SSH")
-                    .e("PublicKeys").up()
-                    .e("KeyPairs").up()
-                    .up(); // Linux ConfigurationSet
-         } else {
-            throw new IllegalArgumentException("Unrecognized os type " + params);
-         }
-
-         XMLBuilder configBuilder = configSetsBuilder.e("ConfigurationSet"); // Network
-         configBuilder.e("ConfigurationSetType").t("NetworkConfiguration").up();
-
-         XMLBuilder inputEndpoints = configBuilder.e("InputEndpoints");
-         for (DeploymentParams.ExternalEndpoint endpoint : params.externalEndpoints()) {
-            XMLBuilder inputBuilder = inputEndpoints.e("InputEndpoint");
-            inputBuilder.e("LocalPort").t(Integer.toString(endpoint.localPort())).up()
-                    .e("Name").t(endpoint.name()).up()
-                    .e("Port").t(Integer.toString(endpoint.port())).up()
-                    .e("Protocol").t(endpoint.protocol().toLowerCase()).up()
-                    .up(); //InputEndpoint
-         }
-
-         inputEndpoints.up();
-
-         XMLBuilder subnetNames = configBuilder.e("SubnetNames");
-         if (!params.subnetNames().isEmpty()) {
-            for (String subnetName : params.subnetNames()) {
-               subnetNames.e("SubnetName").t(subnetName).up()
-                       .up(); //subnetName
-            }
-         }
-
-         roleBuilder
-                 // TODO No Disk should be specified for a Role if using a VMImage
-                 .e("DataVirtualHardDisks").up()
-                 .e("OSVirtualHardDisk")
-                 .e("HostCaching").t("ReadWrite").up()
-                 .e("MediaLink").t(params.mediaLink().toASCIIString()).up()
-                 // TODO
-                 /// If you are using a VM image, it must be specified as VMImageName for the role,
-                 // not as SourceImageNamefor OSVirtualHardDisk.</Message></Error>]
-                 .e("SourceImageName").t(params.sourceImageName()).up()
-                 .e("OS").t(params.os() == LINUX ? "Linux" : "Windows").up()
-                 .up() //OSVirtualHardDisk
-                 .e("RoleSize").t(params.size().getText()).up();
-         if (params.provisionGuestAgent() != null) {
-            roleBuilder.e("ProvisionGuestAgent").t(params.provisionGuestAgent().toString()).up();
-         }
-         if (params.virtualNetworkName() != null) {
-            configSetsBuilder.up().up().up().e("VirtualNetworkName").t(params.virtualNetworkName()).up();
-         }
-         if (params.reservedIPName() != null) {
-            configSetsBuilder.up().up().up().e("ReservedIPName").t(params.reservedIPName()).up();
-         }
-
-         return (R) request.toBuilder().payload(configSetsBuilder.asString()).build();
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/NetworkConfigurationToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/NetworkConfigurationToXML.java
deleted file mode 100644
index ce32b27..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/NetworkConfigurationToXML.java
+++ /dev/null
@@ -1,70 +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.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.Subnet;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-public class NetworkConfigurationToXML implements Binder {
-
-   @Override
-   @SuppressWarnings("unchecked")
-   public <R extends HttpRequest> R bindToRequest(R request, Object input) {
-      NetworkConfiguration networkConfiguration = NetworkConfiguration.class.cast(input);
-
-      try {
-         XMLBuilder builder = XMLBuilder.create(
-                 "NetworkConfiguration", "http://schemas.microsoft.com/ServiceHosting/2011/07/NetworkConfiguration")
-                 .e("VirtualNetworkConfiguration");
-         if (networkConfiguration.virtualNetworkConfiguration().dns() == null) {
-            builder.e("Dns");
-         } else {
-            builder.e("Dns").t(networkConfiguration.virtualNetworkConfiguration().dns());
-         }
-         if (!networkConfiguration.virtualNetworkConfiguration().virtualNetworkSites().isEmpty()) {
-            XMLBuilder virtualNetworkSitesBuilder = builder.e("VirtualNetworkSites");
-            for (VirtualNetworkSite virtualNetworkSite
-                    : networkConfiguration.virtualNetworkConfiguration().virtualNetworkSites()) {
-
-               XMLBuilder virtualNetworkSiteBuilder = virtualNetworkSitesBuilder.
-                       e("VirtualNetworkSite").
-                       a("name", virtualNetworkSite.name()).
-                       a("Location", virtualNetworkSite.location());
-               virtualNetworkSiteBuilder.e("AddressSpace")
-                       .e("AddressPrefix").
-                       t(virtualNetworkSite.addressSpace().addressPrefix()).
-                       up();
-               XMLBuilder subnetBuilder = virtualNetworkSiteBuilder.e("Subnets");
-               for (Subnet subnet : virtualNetworkSite.subnets()) {
-                  subnetBuilder.e("Subnet").a("name", subnet.name()).e("AddressPrefix").t(subnet.addressPrefix());
-               }
-            }
-         }
-         return (R) request.toBuilder().payload(builder.asString()).build();
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/NetworkSecurityGroupToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/NetworkSecurityGroupToXML.java
deleted file mode 100644
index 3a42823..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/NetworkSecurityGroupToXML.java
+++ /dev/null
@@ -1,47 +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.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-public class NetworkSecurityGroupToXML implements Binder {
-
-   @Override
-   @SuppressWarnings("unchecked")
-   public <R extends HttpRequest> R bindToRequest(R request, Object input) {
-      NetworkSecurityGroup networkSecurityGroup = NetworkSecurityGroup.class.cast(input);
-      try {
-         XMLBuilder builder = XMLBuilder.create("NetworkSecurityGroup", "http://schemas.microsoft.com/windowsazure")
-                 .e("Name").t(networkSecurityGroup.name()).up();
-         if (networkSecurityGroup.label() != null) {
-            builder.e("Label").t(networkSecurityGroup.label()).up();
-         }
-         if (networkSecurityGroup.location() != null) {
-            builder.e("Location").t(networkSecurityGroup.location()).up();
-         }
-         return (R) request.toBuilder().payload(builder.asString()).build();
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/OSImageParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/OSImageParamsToXML.java
deleted file mode 100644
index 32eaa0a..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/OSImageParamsToXML.java
+++ /dev/null
@@ -1,46 +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.binders;
-
-import static com.google.common.base.Throwables.propagate;
-import static org.jclouds.azurecompute.domain.OSImage.Type.LINUX;
-
-import org.jclouds.azurecompute.domain.OSImageParams;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-public final class OSImageParamsToXML implements Binder {
-
-   @Override
-   @SuppressWarnings("unchecked")
-   public <R extends HttpRequest> R bindToRequest(R request, Object input) {
-      OSImageParams params = OSImageParams.class.cast(input);
-      try {
-         String xml = XMLBuilder.create("OSImage", "http://schemas.microsoft.com/windowsazure")
-                 .e("Label").t(params.label()).up()
-                 .e("MediaLink").t(params.mediaLink().toASCIIString()).up()
-                 .e("Name").t(params.name()).up()
-                 .e("OS").t(params.os() == LINUX ? "Linux" : "Windows").up()
-                 .up().asString();
-         return (R) request.toBuilder().payload(xml).build();
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ProfileDefinitionParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ProfileDefinitionParamsToXML.java
deleted file mode 100644
index 413fe8a..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ProfileDefinitionParamsToXML.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.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpointParams;
-import org.jclouds.azurecompute.domain.ProfileDefinitionParams;
-
-public final class ProfileDefinitionParamsToXML implements Binder {
-
-   @Override
-   @SuppressWarnings("unchecked")
-   public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
-      final ProfileDefinitionParams params = ProfileDefinitionParams.class.cast(input);
-      try {
-         XMLBuilder bld = XMLBuilder.create("Definition", "http://schemas.microsoft.com/windowsazure");
-         bld.e("DnsOptions").e("TimeToLiveInSeconds").t(params.ttl().toString()).up().up();
-
-         bld.e("Monitors").e("Monitor").e("IntervalInSeconds").t("30").up()
-                 .e("TimeoutInSeconds").t("10").up()
-                 .e("ToleratedNumberOfFailures").t("3").up()
-                 .e("Protocol").t(params.protocol().name()).up()
-                 .e("Port").t(params.port().toString()).up()
-                 .e("HttpOptions")
-                 .e("Verb").t("GET").up()
-                 .e("RelativePath").t(params.path()).up()
-                 .e("ExpectedStatusCode").t("200");
-
-         bld = bld.e("Policy").e("LoadBalancingMethod").t(params.lb().getValue()).up()
-                 .e("Endpoints");
-
-         for (ProfileDefinitionEndpointParams endpoint : params.endpoints()) {
-            bld = bld.e("Endpoint")
-                    .e("DomainName").t(endpoint.domain()).up()
-                    .e("Status").t(endpoint.status().getValue()).up();
-
-            if (endpoint.type() != null) {
-               bld = bld.e("Type").t(endpoint.type().getValue()).up();
-            }
-            if (endpoint.location() != null) {
-               bld = bld.e("Location").t(endpoint.location()).up();
-            }
-            if (endpoint.min() != null) {
-               bld = bld.e("MinChildEndpoints").t(endpoint.min().toString()).up();
-            }
-            if (endpoint.weight() != null) {
-               bld = bld.e("Weight").t(endpoint.weight().toString()).up();
-            }
-
-            bld = bld.up();
-         }
-
-         bld.up().up();
-
-         return (R) request.toBuilder().payload(bld.up().asString()).build();
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ProfileParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ProfileParamsToXML.java
deleted file mode 100644
index eb6970d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ProfileParamsToXML.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.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-import org.jclouds.azurecompute.domain.CreateProfileParams;
-import org.jclouds.azurecompute.domain.UpdateProfileParams;
-
-public final class ProfileParamsToXML implements Binder {
-
-   @Override
-   @SuppressWarnings("unchecked")
-   public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
-
-      try {
-         final XMLBuilder bld = XMLBuilder.create("Profile", "http://schemas.microsoft.com/windowsazure");
-         if (input instanceof CreateProfileParams) {
-            final CreateProfileParams params = CreateProfileParams.class.cast(input);
-            bld.e("DomainName").t(params.domain()).up();
-            bld.e("Name").t(params.name()).up().up();
-            return (R) request.toBuilder().payload(bld.up().asString()).build();
-         } else {
-            final UpdateProfileParams params = UpdateProfileParams.class.cast(input);
-            bld.e("Status").t(params.status().getValue()).up();
-            bld.e("StatusDetails").e("EnabledVersion").t("1").up().up().up();
-            return (R) request.toBuilder().payload(bld.up().asString()).build();
-         }
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ReservedIPAddressParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ReservedIPAddressParamsToXML.java
deleted file mode 100644
index bdac946..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ReservedIPAddressParamsToXML.java
+++ /dev/null
@@ -1,48 +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.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-import org.jclouds.azurecompute.domain.ReservedIPAddressParams;
-
-public final class ReservedIPAddressParamsToXML implements Binder {
-
-   @Override
-   @SuppressWarnings("unchecked")
-   public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
-      final ReservedIPAddressParams params = ReservedIPAddressParams.class.cast(input);
-      try {
-         final XMLBuilder bld = XMLBuilder.create("ReservedIP", "http://schemas.microsoft.com/windowsazure")
-                 .e("Name").t(params.name()).up();
-
-         if (params.label() != null) {
-            bld.e("Label").t(params.label()).up();
-         }
-
-         bld.e("Location").t(params.location()).up();
-
-         return (R) request.toBuilder().payload(bld.up().asString()).build();
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RoleToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RoleToXML.java
deleted file mode 100644
index 9f77d76..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RoleToXML.java
+++ /dev/null
@@ -1,87 +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.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-/**
- * Generates XML request body for the <a href="https://msdn.microsoft.com/en-us/library/azure/jj157187.aspx">UpdateRole REST request</a>.
- */
-public class RoleToXML implements Binder {
-
-   @Override
-   @SuppressWarnings("unchecked")
-   public <R extends HttpRequest> R bindToRequest(R request, Object input) {
-      Role role = Role.class.cast(input);
-
-      try {
-         XMLBuilder builder = XMLBuilder.create("PersistentVMRole", "http://schemas.microsoft.com/windowsazure");
-         builder.e("RoleName").t(role.roleName()).up()
-                 .e("RoleType").t(role.roleType()).up();
-         XMLBuilder configSetsBuilder = builder.e("ConfigurationSets");
-         if (!role.configurationSets().isEmpty()) {
-            for (Role.ConfigurationSet configurationSet : role.configurationSets()) {
-               XMLBuilder configBuilder = configSetsBuilder.e("ConfigurationSet"); // Network
-               configBuilder.e("ConfigurationSetType").t(configurationSet.configurationSetType()).up();
-
-               XMLBuilder inputEndpoints = configBuilder.e("InputEndpoints");
-               for (Role.ConfigurationSet.InputEndpoint endpoint : configurationSet.inputEndpoints()) {
-                  XMLBuilder inputBuilder = inputEndpoints.e("InputEndpoint");
-                  inputBuilder.e("LocalPort").t(Integer.toString(endpoint.localPort())).up()
-                          .e("Name").t(endpoint.name()).up()
-                          .e("Port").t(Integer.toString(endpoint.port())).up()
-                          .e("Protocol").t(endpoint.protocol().toLowerCase()).up()
-                          .up(); //InputEndpoint
-               }
-               XMLBuilder subnetNames = configBuilder.e("SubnetNames");
-               if (!configurationSet.subnetNames().isEmpty()) {
-                  for (Role.ConfigurationSet.SubnetName subnetName : configurationSet.subnetNames()) {
-                     subnetNames.e("SubnetName").t(subnetName.name()).up();
-                  }
-               }
-               if (configurationSet.networkSecurityGroup() != null
-                       && !configurationSet.networkSecurityGroup().isEmpty()) {
-                  configBuilder.e("NetworkSecurityGroup").t(configurationSet.networkSecurityGroup()).up();
-               }
-            }
-         }
-         
-         builder.e("DataVirtualHardDisks").up()
-                 .e("OSVirtualHardDisk")
-                 .e("HostCaching").t(role.osVirtualHardDisk().hostCaching()).up()
-                 .e("DiskName").t(role.osVirtualHardDisk().diskName()).up()
-                 .e("MediaLink").t(role.osVirtualHardDisk().mediaLink().toString()).up()
-                 .e("SourceImageName").t(role.osVirtualHardDisk().sourceImageName()).up()
-                 .e("OS").t(role.osVirtualHardDisk().os().toString()).up()
-                 .up() // OSVirtualHardDisk
-                 .e("RoleSize").t(role.roleSize().getText());
-         if (role.provisionGuestAgent() != null) {
-            builder.e("ProvisionGuestAgent").t(role.provisionGuestAgent().toString()).up();
-         }
-         return (R) request.toBuilder().payload(builder.asString()).build();
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RuleToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RuleToXML.java
deleted file mode 100644
index bcb1b3a..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RuleToXML.java
+++ /dev/null
@@ -1,48 +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.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-public final class RuleToXML implements Binder {
-
-   @Override
-   @SuppressWarnings("unchecked")
-   public <R extends HttpRequest> R bindToRequest(R request, Object input) {
-      Rule rule = Rule.class.cast(input);
-      try {
-         String xml = XMLBuilder.create("Rule", "http://schemas.microsoft.com/windowsazure")
-                 .e("Type").t(rule.type().name()).up()
-                 .e("Priority").t(rule.priority()).up()
-                 .e("Action").t(rule.action().name()).up()
-                 .e("SourceAddressPrefix").t(rule.sourceAddressPrefix()).up()
-                 .e("SourcePortRange").t(rule.sourcePortRange()).up()
-                 .e("DestinationAddressPrefix").t(rule.destinationAddressPrefix()).up()
-                 .e("DestinationPortRange").t(rule.destinationPortRange()).up()
-                 .e("Protocol").t(rule.protocol().getValue()).up().asString();
-         return (R) request.toBuilder().payload(xml).build();
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ServiceCertificateParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ServiceCertificateParamsToXML.java
deleted file mode 100644
index 49c18ff..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ServiceCertificateParamsToXML.java
+++ /dev/null
@@ -1,47 +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.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-import org.jclouds.azurecompute.domain.ServiceCertificateParams;
-
-public final class ServiceCertificateParamsToXML implements Binder {
-
-   @Override
-   @SuppressWarnings("unchecked")
-   public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
-      final ServiceCertificateParams params = ServiceCertificateParams.class.cast(input);
-      try {
-         final XMLBuilder bld = XMLBuilder.create("CertificateFile", "http://schemas.microsoft.com/windowsazure")
-                 .e("Data").t(params.data()).up()
-                 .e("CertificateFormat").t(params.format()).up();
-
-         if (params.password() != null) {
-            bld.e("Password").t(params.password()).up();
-         }
-
-         return (R) request.toBuilder().payload(bld.up().asString()).build();
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/StorageServiceKeyTypeToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/StorageServiceKeyTypeToXML.java
deleted file mode 100644
index abc6da5..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/StorageServiceKeyTypeToXML.java
+++ /dev/null
@@ -1,43 +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.binders;
-
-import com.jamesmurty.utils.XMLBuilder;
-import org.jclouds.azurecompute.domain.StorageServiceKeys;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import static com.google.common.base.Throwables.propagate;
-
-public class StorageServiceKeyTypeToXML implements Binder {
-
-   @Override
-   @SuppressWarnings("unchecked")
-   public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
-      final StorageServiceKeys.KeyType params = StorageServiceKeys.KeyType.class.cast(input);
-
-      try {
-         final XMLBuilder builder = XMLBuilder.create(
-                 "RegenerateKeys", "http://schemas.microsoft.com/windowsazure").
-                 e("KeyType").t(params.name()).up();
-         return (R) request.toBuilder().payload(builder.asString()).build();
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/UpdateAffinityGroupParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/UpdateAffinityGroupParamsToXML.java
deleted file mode 100644
index 8e8d591..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/UpdateAffinityGroupParamsToXML.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.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.BaseEncoding;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-import org.jclouds.azurecompute.domain.UpdateAffinityGroupParams;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-public final class UpdateAffinityGroupParamsToXML implements Binder {
-
-   @Override
-   @SuppressWarnings("unchecked")
-   public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
-      final UpdateAffinityGroupParams params = UpdateAffinityGroupParams.class.cast(input);
-
-      try {
-         XMLBuilder builder = XMLBuilder.create("UpdateAffinityGroup", "http://schemas.microsoft.com/windowsazure");
-         if (params.label() != null) {
-            builder.e("Label").t(BaseEncoding.base64().encode(params.label().getBytes(Charsets.UTF_8))).up();
-         }
-         if (params.description() != null) {
-            builder.e("Description").t(params.description()).up();
-         }
-         return (R) request.toBuilder().payload(builder.asString()).build();
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/UpdateStorageServiceParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/UpdateStorageServiceParamsToXML.java
deleted file mode 100644
index 4d80f9a..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/UpdateStorageServiceParamsToXML.java
+++ /dev/null
@@ -1,86 +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.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.BaseEncoding;
-import com.jamesmurty.utils.XMLBuilder;
-
-import java.util.Map;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-import org.jclouds.azurecompute.domain.UpdateStorageServiceParams;
-
-public final class UpdateStorageServiceParamsToXML implements Binder {
-
-   @Override
-   @SuppressWarnings("unchecked")
-   public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
-      final UpdateStorageServiceParams params = UpdateStorageServiceParams.class.cast(input);
-
-      try {
-         final XMLBuilder builder = XMLBuilder.create(
-                 "UpdateStorageServiceInput", "http://schemas.microsoft.com/windowsazure");
-
-         if (params.description() != null) {
-            builder.e("Description").t(params.description()).up();
-         }
-
-         if (params.label() != null) {
-            builder.e("Label").t(BaseEncoding.base64().encode(params.label().getBytes(Charsets.UTF_8))).up();
-         }
-
-         if (params.geoReplicationEnabled() != null) {
-            builder.e("geoReplicationEnabled").t(params.geoReplicationEnabled().toString()).up();
-         }
-
-         if (params.extendedProperties() != null) {
-            final XMLBuilder extProps = builder.e("ExtendedProperties");
-            for (Map.Entry<String, String> entry : params.extendedProperties().entrySet()) {
-               final XMLBuilder extProp = extProps.e("ExtendedProperty");
-               extProp.e("Name").t(entry.getKey()).up();
-               extProp.e("Value").t(entry.getValue()).up();
-               extProp.up();
-            }
-            extProps.up();
-         }
-
-         if (params.customDomains() != null) {
-            final XMLBuilder custDomains = builder.e("CustomDomains");
-            for (UpdateStorageServiceParams.CustomDomain domain : params.customDomains()) {
-               final XMLBuilder custDomain = custDomains.e("CustomDomain");
-               custDomain.e("Name").t(domain.name()).up();
-               custDomain.e("UseSubDomainName").t(domain.useSubDomainName().toString()).up();
-               custDomain.up();
-            }
-            custDomains.up();
-         }
-
-         if (params.accountType() != null) {
-            builder.e("AccountType").t(params.accountType().name()).up();
-         }
-
-         return (R) request.toBuilder().payload(builder.asString()).build();
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/VMImageParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/VMImageParamsToXML.java
deleted file mode 100644
index 540faa8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/VMImageParamsToXML.java
+++ /dev/null
@@ -1,97 +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.binders;
-
-import com.google.common.base.CaseFormat;
-import com.jamesmurty.utils.XMLBuilder;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.domain.VMImageParams;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import java.net.URI;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.Throwables.propagate;
-
-public final class VMImageParamsToXML implements Binder {
-
-    @Override
-    public <R extends HttpRequest> R bindToRequest(R request, Object input) {
-        VMImageParams params = VMImageParams.class.cast(input);
-
-        try {
-            XMLBuilder builder = XMLBuilder.create("VMImage", "http://schemas.microsoft.com/windowsazure");
-            add(builder, "Name", params.name());
-            add(builder, "Label", params.label());
-            add(builder, "Description", params.description());
-            //OSConfig
-            VMImageParams.OSDiskConfigurationParams osDiskConfig = params.osDiskConfiguration();
-            if (osDiskConfig != null) {
-                String cache = CaseFormat.UPPER_UNDERSCORE.to(UPPER_CAMEL, osDiskConfig.hostCaching().toString());
-                XMLBuilder osConfigBuilder = builder.e("OSDiskConfiguration");
-                osConfigBuilder
-                        .e("HostCaching").t(cache).up()
-                        .e("OSState").t(osDiskConfig.osState().toString()).up()
-                        .e("OS").t(osDiskConfig.os().toString()).up()
-                        .e("MediaLink").t(osDiskConfig.mediaLink().toASCIIString()).up()
-                        .up(); //OSDiskConfiguration
-            }
-            builder.up();
-            builder.e("DataDiskConfigurations").up();
-            add(builder, "Language", params.language());
-            add(builder, "ImageFamily", params.imageFamily());
-
-            RoleSize.Type vmSize = params.recommendedVMSize();
-            if (vmSize != null) {
-                String vmSizeText = params.recommendedVMSize().getText();
-                builder.e("RecommendedVMSize").t(vmSizeText).up();
-            }
-
-            add(builder, "Eula", params.eula());
-            add(builder, "IconUri", params.iconUri());
-            add(builder, "SmallIconUri", params.smallIconUri());
-            add(builder, "PrivacyUri", params.privacyUri());
-
-            if (params.showGui() != null) {
-                String showGuiText = params.showGui().toString();
-                builder.e("ShowGui").t(showGuiText).up();
-            }
-            builder.up();
-
-            return (R) request.toBuilder().payload(builder.asString()).build();
-        } catch (Exception e) {
-            throw propagate(e);
-        }
-    }
-
-    private XMLBuilder add(XMLBuilder xmlBuilder, String entity, String text) {
-        if (text != null) {
-            return xmlBuilder.e(entity).t(text).up();
-        } else {
-            return xmlBuilder.e(entity).up();
-        }
-    }
-
-    private XMLBuilder add(XMLBuilder xmlBuilder, String entity, URI text) {
-        if (text != null) {
-            return xmlBuilder.e(entity).t(text.toASCIIString()).up();
-        } else {
-            return xmlBuilder.e(entity).up();
-        }
-    }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java
deleted file mode 100644
index 44f5f24..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java
+++ /dev/null
@@ -1,536 +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.compute;
-
-import static com.google.common.base.MoreObjects.firstNonNull;
-import static com.google.common.base.Predicates.notNull;
-import static java.lang.String.format;
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.jclouds.util.Predicates2.retry;
-import java.net.URI;
-import java.util.List;
-import java.util.Set;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.compute.config.AzureComputeServiceContextModule.AzureComputeConstants;
-import org.jclouds.azurecompute.compute.functions.OSImageToImage;
-import org.jclouds.azurecompute.compute.options.AzureComputeTemplateOptions;
-import org.jclouds.azurecompute.config.AzureComputeProperties;
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.Deployment.RoleInstance;
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.DeploymentParams.ExternalEndpoint;
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.jclouds.compute.ComputeServiceAdapter;
-import org.jclouds.compute.domain.OsFamily;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.domain.LoginCredentials;
-import org.jclouds.logging.Logger;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Splitter;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-
-/**
- * Defines the connection between the {@link AzureComputeApi} implementation and the jclouds
- * {@link org.jclouds.compute.ComputeService}.
- */
-@Singleton
-public class AzureComputeServiceAdapter implements ComputeServiceAdapter<Deployment, RoleSize, OSImage, Location> {
-
-   private static final String DEFAULT_LOGIN_USER = "jclouds";
-
-   private static final String DEFAULT_LOGIN_PASSWORD = "Azur3Compute!";
-   public static final String POST_SHUTDOWN_ACTION = "StoppedDeallocated";
-   private static final String POST_SHUTDOWN_ACTION_NO_DEALLOCATE = "Stopped";
-
-   @Resource
-   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
-   private Logger logger = Logger.NULL;
-
-   private final AzureComputeApi api;
-
-   private final Predicate<String> operationSucceededPredicate;
-
-   private final AzureComputeConstants azureComputeConstants;
-
-   @Inject
-   AzureComputeServiceAdapter(final AzureComputeApi api,
-           final Predicate<String> operationSucceededPredicate, final AzureComputeConstants azureComputeConstants) {
-
-      this.api = api;
-      this.operationSucceededPredicate = operationSucceededPredicate;
-      this.azureComputeConstants = azureComputeConstants;
-   }
-
-   @Override
-   public NodeAndInitialCredentials<Deployment> createNodeWithGroupEncodedIntoName(
-           final String group, final String name, final Template template) {
-
-      // azure-specific options
-      final AzureComputeTemplateOptions templateOptions = template.getOptions().as(AzureComputeTemplateOptions.class);
-
-      final String loginUser = firstNonNull(templateOptions.getLoginUser(), DEFAULT_LOGIN_USER);
-      final String loginPassword = firstNonNull(templateOptions.getLoginPassword(), DEFAULT_LOGIN_PASSWORD);
-      final String location = template.getLocation().getId();
-      final int[] inboundPorts = template.getOptions().getInboundPorts();
-
-      final String storageAccountName = templateOptions.getStorageAccountName();
-
-      String message = String.format("Creating a cloud service with name '%s', label '%s' in location '%s'", name, name, location);
-      logger.debug(message);
-      final String createCloudServiceRequestId = api.getCloudServiceApi().createWithLabelInLocation(name, name, location);
-      if (!operationSucceededPredicate.apply(createCloudServiceRequestId)) {
-         final String exceptionMessage = generateIllegalStateExceptionMessage(message, createCloudServiceRequestId, azureComputeConstants.operationTimeout());
-         logger.warn(exceptionMessage);
-         throw new IllegalStateException(exceptionMessage);
-      }
-      logger.info("Cloud Service (%s) created with operation id: %s", name, createCloudServiceRequestId);
-
-      final OSImage.Type os = template.getImage().getOperatingSystem().getFamily() == OsFamily.WINDOWS ?
-              OSImage.Type.WINDOWS : OSImage.Type.LINUX;
-      final Set<ExternalEndpoint> externalEndpoints = Sets.newHashSet();
-      for (int inboundPort : inboundPorts) {
-         externalEndpoints.add(ExternalEndpoint.inboundTcpToLocalPort(inboundPort, inboundPort));
-      }
-
-      final DeploymentParams.Builder paramsBuilder = DeploymentParams.builder()
-              .name(name)
-              .os(os)
-              .username(loginUser)
-              .password(loginPassword)
-              .sourceImageName(OSImageToImage.fromGeoName(template.getImage().getId())[0])
-              .mediaLink(createMediaLink(storageAccountName, name))
-              .size(RoleSize.Type.fromString(template.getHardware().getName()))
-              .externalEndpoints(externalEndpoints)
-              .virtualNetworkName(templateOptions.getVirtualNetworkName())
-              .subnetNames(templateOptions.getSubnetNames())
-              .provisionGuestAgent(templateOptions.getProvisionGuestAgent());
-      if (os.equals(OSImage.Type.WINDOWS)) {
-         paramsBuilder.winrmUseHttps(templateOptions.getWinrmUseHttps());
-      }
-      final DeploymentParams params = paramsBuilder.build();
-
-      message = String.format("Creating a deployment with params '%s' ...", params);
-      logger.debug(message);
-
-      if (!new ConflictManagementPredicate(api) {
-         @Override
-         protected String operation() {
-            return api.getDeploymentApiForService(name).create(params);
-         }
-      }.apply(name)) {
-         final String illegalStateExceptionMessage = generateIllegalStateExceptionMessage(message, createCloudServiceRequestId, azureComputeConstants.operationTimeout());
-         logger.warn(illegalStateExceptionMessage);
-         logger.debug("Deleting cloud service (%s) ...", name);
-         deleteCloudService(name);
-         logger.debug("Cloud service (%s) deleted.", name);
-         throw new IllegalStateException(illegalStateExceptionMessage);
-      }
-
-      logger.info("Deployment created with name: %s", name);
-
-      final Set<Deployment> deployments = Sets.newHashSet();
-      if (!retry(new Predicate<String>() {
-         @Override
-         public boolean apply(final String name) {
-            final Deployment deployment = api.getDeploymentApiForService(name).get(name);
-            if (deployment != null) {
-               deployments.add(deployment);
-            }
-            return !deployments.isEmpty();
-         }
-      }, azureComputeConstants.operationTimeout(), 1, SECONDS).apply(name)) {
-         final String illegalStateExceptionMessage = format("Deployment %s was not created within %sms so it will be destroyed.",
-                 name, azureComputeConstants.operationTimeout());
-         logger.warn(illegalStateExceptionMessage);
-
-         api.getDeploymentApiForService(name).delete(name);
-         api.getCloudServiceApi().delete(name);
-
-         throw new IllegalStateException(illegalStateExceptionMessage);
-      }
-
-      final Deployment deployment = deployments.iterator().next();
-
-      // check if the role inside the deployment is ready
-      checkRoleStatusInDeployment(name, deployment);
-
-      return new NodeAndInitialCredentials<Deployment>(deployment, name,
-              LoginCredentials.builder().user(loginUser).password(loginPassword).authenticateSudo(true).build());
-   }
-
-   @Override
-   public Iterable<RoleSize> listHardwareProfiles() {
-      return api.getSubscriptionApi().listRoleSizes();
-   }
-
-   @Override
-   public Iterable<OSImage> listImages() {
-      final List<OSImage> osImages = Lists.newArrayList();
-      for (OSImage osImage : api.getOSImageApi().list()) {
-         if (osImage.location() == null) {
-            osImages.add(OSImage.create(
-                    osImage.name(),
-                    null,
-                    osImage.affinityGroup(),
-                    osImage.label(),
-                    osImage.description(),
-                    osImage.imageFamily(),
-                    osImage.category(),
-                    osImage.os(),
-                    osImage.publisherName(),
-                    osImage.mediaLink(),
-                    osImage.logicalSizeInGB(),
-                    osImage.eula()
-            ));
-         } else {
-            for (String actualLocation : Splitter.on(';').split(osImage.location())) {
-               osImages.add(OSImage.create(
-                       OSImageToImage.toGeoName(osImage.name(), actualLocation),
-                       actualLocation,
-                       osImage.affinityGroup(),
-                       osImage.label(),
-                       osImage.description(),
-                       osImage.imageFamily(),
-                       osImage.category(),
-                       osImage.os(),
-                       osImage.publisherName(),
-                       osImage.mediaLink(),
-                       osImage.logicalSizeInGB(),
-                       osImage.eula()
-               ));
-            }
-         }
-      }
-      return osImages;
-   }
-
-   @Override
-   public OSImage getImage(final String id) {
-      final String[] idParts = OSImageToImage.fromGeoName(id);
-      final OSImage image = Iterables.find(api.getOSImageApi().list(), new Predicate<OSImage>() {
-         @Override
-         public boolean apply(final OSImage input) {
-            return idParts[0].equals(input.name());
-         }
-      });
-
-      return image == null
-              ? null
-              : idParts[1] == null
-                      ? image
-                      : OSImage.create(
-                              id,
-                              idParts[1],
-                              image.affinityGroup(),
-                              image.label(),
-                              image.description(),
-                              image.imageFamily(),
-                              image.category(),
-                              image.os(),
-                              image.publisherName(),
-                              image.mediaLink(),
-                              image.logicalSizeInGB(),
-                              image.eula());
-   }
-
-   @Override
-   public Iterable<Location> listLocations() {
-      return api.getLocationApi().list();
-   }
-
-   /** Returns the {@code deployment} argument itself if already settled, otherwise {@code null}. */
-   private Deployment isSettled(Deployment deployment) {
-      return deployment == null || deployment.roleInstanceList().isEmpty()
-              ? null
-              : FluentIterable.from(deployment.roleInstanceList()).allMatch(
-                      new Predicate<RoleInstance>() {
-                         @Override
-                         public boolean apply(final RoleInstance input) {
-                            return input != null && !input.instanceStatus().isTransient();
-                         }
-                      })
-                      ? deployment
-                      : null;
-   }
-
-   @Override
-   public Deployment getNode(final String id) {
-      // all nodes created by this provider will always have a cloud service name equal to deployment name
-      final Deployment deployment = api.getDeploymentApiForService(id).get(id);
-      if (deployment != null) {
-         return isSettled(deployment);
-      }
-
-      return FluentIterable.from(api.getCloudServiceApi().list()).
-              transform(new Function<CloudService, Deployment>() {
-                 @Override
-                 public Deployment apply(final CloudService input) {
-                    final Deployment deployment = api.getDeploymentApiForService(input.name()).get(id);
-                    return isSettled(deployment);
-                 }
-              }).
-              firstMatch(notNull()).
-              orNull();
-   }
-
-   private void trackRequest(final String requestId) {
-      if (!operationSucceededPredicate.apply(requestId)) {
-         final String message = generateIllegalStateExceptionMessage(
-                 "tracking request", requestId, azureComputeConstants.operationTimeout());
-         logger.warn(message);
-         throw new IllegalStateException(message);
-      }
-   }
-
-   public Deployment internalDestroyNode(final String nodeId) {
-
-      Deployment deployment = getDeploymentFromNodeId(nodeId);
-
-      if (deployment == null) return null;
-
-      final String deploymentName = deployment.name();
-      String message = String.format("Deleting deployment(%s) of cloud service (%s)", nodeId, deploymentName);
-      logger.debug(message);
-
-         if (deployment != null) {
-            for (Role role : deployment.roleList()) {
-               trackRequest(api.getVirtualMachineApiForDeploymentInService(deploymentName, role.roleName()).shutdown(nodeId, POST_SHUTDOWN_ACTION));
-            }
-
-            deleteDeployment(deploymentName, nodeId);
-
-            logger.debug("Deleting cloud service (%s) ...", deploymentName);
-            trackRequest(api.getCloudServiceApi().delete(deploymentName));
-            logger.debug("Cloud service (%s) deleted.", deploymentName);
-
-            for (Role role : deployment.roleList()) {
-               final Role.OSVirtualHardDisk disk = role.osVirtualHardDisk();
-               if (disk != null) {
-                  if (!new ConflictManagementPredicate(api, operationSucceededPredicate) {
-
-                     @Override
-                     protected String operation() {
-                        return api.getDiskApi().delete(disk.diskName());
-                     }
-                  }.apply(nodeId)) {
-                     final String illegalStateExceptionMessage = generateIllegalStateExceptionMessage("Delete disk " + disk.diskName(),
-                             "Delete disk", azureComputeConstants.operationTimeout());
-                     logger.warn(illegalStateExceptionMessage);
-                  }
-               }
-            }
-         }
-      return deployment;
-   }
-
-   public Deployment getDeploymentFromNodeId(final String nodeId) {
-      final List<Deployment> nodes = Lists.newArrayList();
-      retry(new Predicate<String>() {
-         @Override
-         public boolean apply(final String input) {
-            final Deployment deployment = getNode(nodeId);
-            if (deployment != null) {
-               nodes.add(deployment);
-            }
-            return !nodes.isEmpty();
-         }
-      }, 30 * 60, 1, SECONDS).apply(nodeId);
-
-      return Iterables.getFirst(nodes, null);
-   }
-
-   @Override
-   public void destroyNode(final String id) {
-      logger.debug("Destroying %s ...", id);
-      if (internalDestroyNode(id) != null) {
-         logger.debug("Destroyed %s!", id);
-      } else {
-         logger.warn("Can't destroy %s!", id);
-      }
-   }
-
-   @Override
-   public void rebootNode(final String id) {
-      final CloudService cloudService = api.getCloudServiceApi().get(id);
-      if (cloudService != null) {
-         logger.debug("Restarting %s ...", id);
-         trackRequest(api.getVirtualMachineApiForDeploymentInService(id, cloudService.name()).restart(id));
-         logger.debug("Restarted %s", id);
-      }
-   }
-
-   @Override
-   public void resumeNode(final String id) {
-      final CloudService cloudService = api.getCloudServiceApi().get(id);
-      if (cloudService != null) {
-         logger.debug("Resuming %s ...", id);
-         trackRequest(api.getVirtualMachineApiForDeploymentInService(id, cloudService.name()).start(id));
-
-         // it happens sometimes that even though the trackRequest call above returns successfully,
-         // the node is still in the process of starting and this.getNode(id) returns null
-         //
-         // this is a temporary workaround for JCLOUDS-1092 and should be removed once the issue is resolved properly
-         if (!retry(new Predicate<String>() {
-            @Override
-            public boolean apply(final String id) {
-               return getNode(id) != null;
-            }
-         }, azureComputeConstants.operationTimeout(), 1, SECONDS).apply(id)) {
-            final String message = generateIllegalStateExceptionMessage(
-                    "waiting for node to resume", "", azureComputeConstants.operationTimeout());
-            logger.warn(message);
-            throw new IllegalStateException(message);
-         }
-
-         logger.debug("Resumed %s", id);
-      }
-   }
-
-   @Override
-   public void suspendNode(final String id) {
-      final CloudService cloudService = api.getCloudServiceApi().get(id);
-      if (cloudService != null) {
-         logger.debug("Suspending %s ...", id);
-         String postShutdownAction = azureComputeConstants.deallocateWhenSuspending()
-                 ? POST_SHUTDOWN_ACTION : POST_SHUTDOWN_ACTION_NO_DEALLOCATE;
-         trackRequest(api.getVirtualMachineApiForDeploymentInService(id, cloudService.name()).shutdown(id, postShutdownAction));
-         logger.debug("Suspended %s", id);
-      }
-   }
-
-   @Override
-   public Iterable<Deployment> listNodes() {
-      return FluentIterable.from(api.getCloudServiceApi().list()).
-              transform(new Function<CloudService, Deployment>() {
-                 @Override
-                 public Deployment apply(final CloudService cloudService) {
-                    return api.getDeploymentApiForService(cloudService.name()).get(cloudService.name());
-                 }
-              }).
-              filter(notNull()).
-              toSet();
-   }
-
-   @Override
-   public Iterable<Deployment> listNodesByIds(final Iterable<String> ids) {
-      return Iterables.filter(listNodes(), new Predicate<Deployment>() {
-         @Override
-         public boolean apply(final Deployment input) {
-            return Iterables.contains(ids, input.name());
-         }
-      });
-   }
-
-   @VisibleForTesting
-   public static URI createMediaLink(final String storageServiceName, final String diskName) {
-      return URI.create(
-              String.format("https://%s.blob.core.windows.net/vhds/disk-%s.vhd", storageServiceName, diskName));
-   }
-
-   private void deleteCloudService(final String name) {
-      if (!new ConflictManagementPredicate(api) {
-
-         @Override
-         protected String operation() {
-            return api.getCloudServiceApi().delete(name);
-         }
-
-      }.apply(name)) {
-         final String deleteMessage = generateIllegalStateExceptionMessage("Delete cloud service " + name,
-                 "CloudService delete", azureComputeConstants.operationTimeout());
-         logger.warn(deleteMessage);
-         throw new IllegalStateException(deleteMessage);
-      }
-   }
-
-   private void deleteDeployment(final String id, final String cloudServiceName) {
-      if (!new ConflictManagementPredicate(api) {
-
-         @Override
-         protected String operation() {
-            return api.getDeploymentApiForService(cloudServiceName).delete(id);
-         }
-
-      }.apply(id)) {
-         final String deleteMessage = generateIllegalStateExceptionMessage("Delete deployment " + cloudServiceName,
-                 "Deployment delete", azureComputeConstants.operationTimeout());
-         logger.warn(deleteMessage);
-         throw new IllegalStateException(deleteMessage);
-      }
-   }
-
-
-   private void checkRoleStatusInDeployment(final String name, Deployment deployment) {
-      if (!retry(new Predicate<Deployment>() {
-
-         @Override
-         public boolean apply(Deployment deployment) {
-            deployment = api.getDeploymentApiForService(deployment.name()).get(name);
-            if (deployment.roleInstanceList() == null || deployment.roleInstanceList().isEmpty()) return false;
-            return Iterables.all(deployment.roleInstanceList(), new Predicate<RoleInstance>() {
-               @Override
-               public boolean apply(RoleInstance input) {
-                  if (input.instanceStatus() == Deployment.InstanceStatus.PROVISIONING_FAILED) {
-                     final String message = format("Deployment %s is in provisioning failed status, so it will be destroyed.", name);
-                     logger.warn(message);
-
-                     api.getDeploymentApiForService(name).delete(name);
-                     api.getCloudServiceApi().delete(name);
-
-                     throw new IllegalStateException(message);
-                  }
-                  return input.instanceStatus() == Deployment.InstanceStatus.READY_ROLE;
-               }
-            });
-         }
-      }, azureComputeConstants.operationTimeout(), 1, SECONDS).apply(deployment)) {
-         final String message = format("Role %s has not reached the READY_ROLE within %sms so it will be destroyed.",
-                 deployment.name(), azureComputeConstants.operationTimeout());
-         logger.warn(message);
-
-         api.getDeploymentApiForService(name).delete(name);
-         api.getCloudServiceApi().delete(name);
-
-         throw new IllegalStateException(message);
-      }
-   }
-
-   public static String generateIllegalStateExceptionMessage(String prefix, final String operationId, final long timeout) {
-      final String warnMessage = format("%s - %s has not been completed within %sms.", prefix, operationId, timeout);
-      return format("%s. Please, try by increasing `%s` and try again",
-              warnMessage, AzureComputeProperties.OPERATION_TIMEOUT);
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/config/AzureComputeServiceContextModule.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/config/AzureComputeServiceContextModule.java
deleted file mode 100644
index e6d8812..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/config/AzureComputeServiceContextModule.java
+++ /dev/null
@@ -1,155 +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.compute.config;
-
-import static org.jclouds.azurecompute.config.AzureComputeProperties.DEALLOCATE_WHEN_SUSPENDING;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_INITIAL_PERIOD;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_MAX_PERIOD;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_TIMEOUT;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.TCP_RULE_FORMAT;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.TCP_RULE_REGEXP;
-import java.util.concurrent.TimeUnit;
-
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.compute.AzureComputeServiceAdapter;
-import org.jclouds.azurecompute.compute.extensions.AzureComputeSecurityGroupExtension;
-import org.jclouds.azurecompute.compute.functions.DeploymentToNodeMetadata;
-import org.jclouds.azurecompute.compute.functions.LocationToLocation;
-import org.jclouds.azurecompute.compute.functions.OSImageToImage;
-import org.jclouds.azurecompute.compute.functions.RoleSizeToHardware;
-import org.jclouds.azurecompute.compute.options.AzureComputeTemplateOptions;
-import org.jclouds.azurecompute.compute.strategy.GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes;
-import org.jclouds.azurecompute.compute.strategy.UseNodeCredentialsButOverrideFromTemplate;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.jclouds.compute.ComputeServiceAdapter;
-import org.jclouds.compute.config.ComputeServiceAdapterContextModule;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.extensions.SecurityGroupExtension;
-import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.compute.strategy.CreateNodesInGroupThenAddToSet;
-import org.jclouds.compute.strategy.PrioritizeCredentialsFromTemplate;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.inject.Inject;
-import com.google.inject.Provides;
-import com.google.inject.TypeLiteral;
-
-public class AzureComputeServiceContextModule
-        extends ComputeServiceAdapterContextModule<Deployment, RoleSize, OSImage, Location> {
-
-   @Override
-   protected void configure() {
-      super.configure();
-
-      bind(new TypeLiteral<ComputeServiceAdapter<Deployment, RoleSize, OSImage, Location>>() {
-      }).to(AzureComputeServiceAdapter.class);
-      bind(new TypeLiteral<Function<OSImage, org.jclouds.compute.domain.Image>>() {
-      }).to(OSImageToImage.class);
-      bind(new TypeLiteral<Function<RoleSize, Hardware>>() {
-      }).to(RoleSizeToHardware.class);
-      bind(new TypeLiteral<Function<Deployment, NodeMetadata>>() {
-      }).to(DeploymentToNodeMetadata.class);
-
-      bind(PrioritizeCredentialsFromTemplate.class).to(UseNodeCredentialsButOverrideFromTemplate.class);
-      bind(new TypeLiteral<Function<Location, org.jclouds.domain.Location>>() {
-      }).to(LocationToLocation.class);
-
-      bind(TemplateOptions.class).to(AzureComputeTemplateOptions.class);
-
-      bind(new TypeLiteral<SecurityGroupExtension>() {
-      }).to(AzureComputeSecurityGroupExtension.class);
-      bind(CreateNodesInGroupThenAddToSet.class).to(GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes.class);
-
-      // to have the compute service adapter override default locations
-      install(new LocationsFromComputeServiceAdapterModule<Deployment, RoleSize, OSImage, Location>() {
-      });
-   }
-
-   @Provides
-   @Singleton
-   protected Predicate<String> provideOperationSucceededPredicate(
-           final AzureComputeApi api, final AzureComputeConstants azureComputeConstants) {
-      return new ConflictManagementPredicate(
-              api,
-              azureComputeConstants.operationTimeout(),
-              azureComputeConstants.operationPollInitialPeriod(),
-              azureComputeConstants.operationPollMaxPeriod(),
-              TimeUnit.MILLISECONDS);
-   }
-
-   @Singleton
-   public static class AzureComputeConstants {
-
-      @Named(OPERATION_TIMEOUT)
-      @Inject
-      private String operationTimeoutProperty;
-
-      @Named(OPERATION_POLL_INITIAL_PERIOD)
-      @Inject
-      private String operationPollInitialPeriodProperty;
-
-      @Named(OPERATION_POLL_MAX_PERIOD)
-      @Inject
-      private String operationPollMaxPeriodProperty;
-
-      @Named(TCP_RULE_FORMAT)
-      @Inject
-      private String tcpRuleFormatProperty;
-
-      @Named(TCP_RULE_REGEXP)
-      @Inject
-      private String tcpRuleRegexpProperty;
-
-      @Named(DEALLOCATE_WHEN_SUSPENDING)
-      @Inject
-      private String deallocateWhenSuspending;
-
-      public Long operationTimeout() {
-         return Long.parseLong(operationTimeoutProperty);
-      }
-
-      public Integer operationPollInitialPeriod() {
-         return Integer.parseInt(operationPollInitialPeriodProperty);
-      }
-
-      public Integer operationPollMaxPeriod() {
-         return Integer.parseInt(operationPollMaxPeriodProperty);
-      }
-
-      public String tcpRuleFormat() {
-         return tcpRuleFormatProperty;
-      }
-
-      public String tcpRuleRegexp() {
-         return tcpRuleRegexpProperty;
-      }
-
-      public boolean deallocateWhenSuspending() {
-         return Boolean.parseBoolean(deallocateWhenSuspending);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/extensions/AzureComputeSecurityGroupExtension.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/extensions/AzureComputeSecurityGroupExtension.java
deleted file mode 100644
index f24c5fe..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/extensions/AzureComputeSecurityGroupExtension.java
+++ /dev/null
@@ -1,392 +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.compute.extensions;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static org.jclouds.azurecompute.compute.AzureComputeServiceAdapter.generateIllegalStateExceptionMessage;
-import java.util.List;
-import java.util.Set;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.compute.config.AzureComputeServiceContextModule.AzureComputeConstants;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.jclouds.azurecompute.util.NetworkSecurityGroups;
-import org.jclouds.compute.domain.SecurityGroup;
-import org.jclouds.compute.domain.SecurityGroupBuilder;
-import org.jclouds.compute.extensions.SecurityGroupExtension;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.domain.Location;
-import org.jclouds.logging.Logger;
-import org.jclouds.net.domain.IpPermission;
-import org.jclouds.net.domain.IpProtocol;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Splitter;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Multimap;
-
-/**
- * An extension to compute service to allow for the manipulation of {@link org.jclouds.compute.domain.SecurityGroup}s.
- * Implementation is optional by providers.
- *
- * It considers only the custom rules added by the user and ignores the default rules created by Azure
- */
-public class AzureComputeSecurityGroupExtension implements SecurityGroupExtension {
-
-   protected final AzureComputeApi api;
-
-   private final Predicate<String> operationSucceededPredicate;
-
-   private final AzureComputeConstants azureComputeConstants;
-
-   @Resource
-   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
-   protected Logger logger = Logger.NULL;
-
-   @Inject
-   AzureComputeSecurityGroupExtension(final AzureComputeApi api,
-           final Predicate<String> operationSucceededPredicate, final AzureComputeConstants azureComputeConstants) {
-
-      this.api = api;
-      this.operationSucceededPredicate = operationSucceededPredicate;
-      this.azureComputeConstants = azureComputeConstants;
-   }
-
-   @Override
-   public Set<SecurityGroup> listSecurityGroups() {
-      return FluentIterable.from(api.getNetworkSecurityGroupApi().list())
-              .transform(new NetworkSecurityGroupSecurityGroupFunction())
-              .toSet();
-   }
-
-   @Override
-   public Set<SecurityGroup> listSecurityGroupsInLocation(final Location location) {
-      return FluentIterable.from(api.getNetworkSecurityGroupApi().list())
-              .transform(new NetworkSecurityGroupSecurityGroupFunction())
-              .toSet();
-   }
-
-   /**
-    * @param name it represents both cloudservice and deployment name
-    * @return Set&lt;SecurityGroup&gt;
-    */
-   @Override
-   public Set<SecurityGroup> listSecurityGroupsForNode(final String name) {
-      checkNotNull(name, "name");
-
-      final Deployment deployment = api.getDeploymentApiForService(name).get(name);
-      final String virtualNetworkName = deployment.virtualNetworkName();
-
-      final List<String> subnetNames = FluentIterable.from(deployment.roleList())
-              .transformAndConcat(new Function<Role, Iterable<Role.ConfigurationSet>>() {
-                 @Override
-                 public Iterable<Role.ConfigurationSet> apply(final Role input) {
-                    return input.configurationSets();
-                 }
-              })
-              .transformAndConcat(new Function<Role.ConfigurationSet, Iterable<Role.ConfigurationSet.SubnetName>>() {
-                 @Override
-                 public Iterable<Role.ConfigurationSet.SubnetName> apply(final Role.ConfigurationSet input) {
-                    return input.subnetNames();
-                 }
-              })
-              .transform(new Function<Role.ConfigurationSet.SubnetName, String>() {
-                 @Override
-                 public String apply(final Role.ConfigurationSet.SubnetName input) {
-                    return input.name();
-                 }
-              })
-              .toList();
-
-      return FluentIterable.from(subnetNames)
-              .transform(new Function<String, NetworkSecurityGroup>() {
-                 @Override
-                 public NetworkSecurityGroup apply(final String input) {
-                    return api.getNetworkSecurityGroupApi().
-                    getNetworkSecurityGroupAppliedToSubnet(virtualNetworkName, input);
-                 }
-              })
-              .transform(new NetworkSecurityGroupSecurityGroupFunction())
-              .toSet();
-   }
-
-   @Override
-   public SecurityGroup getSecurityGroupById(final String id) {
-      return transformNetworkSecurityGroupToSecurityGroup(id);
-   }
-
-   @Override
-   public SecurityGroup createSecurityGroup(final String name, final Location location) {
-      checkNotNull(name, "name");
-      checkNotNull(location, "location");
-
-      final NetworkSecurityGroup networkSecurityGroup = NetworkSecurityGroup.create(
-              name, name, location.getId(), null, null);
-      final String createNSGRequestId = api.getNetworkSecurityGroupApi().create(networkSecurityGroup);
-      if (!operationSucceededPredicate.apply(createNSGRequestId)) {
-         final String message = generateIllegalStateExceptionMessage("Create NSG" + name,
-                 createNSGRequestId, azureComputeConstants.operationTimeout());
-         logger.warn(message);
-         throw new IllegalStateException(message);
-      }
-      return transformNetworkSecurityGroupToSecurityGroup(name);
-   }
-
-   private SecurityGroup transformNetworkSecurityGroupToSecurityGroup(final String name) {
-      final NetworkSecurityGroup fullDetails = api.getNetworkSecurityGroupApi().getFullDetails(name);
-      return fullDetails == null
-              ? null
-              : new NetworkSecurityGroupSecurityGroupFunction().apply(fullDetails);
-   }
-
-   @Override
-   public boolean removeSecurityGroup(final String id) {
-      final NetworkConfiguration networkConfiguration = api.getVirtualNetworkApi().getNetworkConfiguration();
-      if (networkConfiguration != null) {
-         for (VirtualNetworkSite virtualNetworkSite
-                 : networkConfiguration.virtualNetworkConfiguration().virtualNetworkSites()) {
-
-            for (NetworkConfiguration.Subnet subnet : virtualNetworkSite.subnets()) {
-               final String virtualNetworkName = virtualNetworkSite.name();
-               final String subnetName = subnet.name();
-               if (virtualNetworkName != null && subnetName != null) {
-                  final NetworkSecurityGroup networkSecurityGroupAppliedToSubnet = api.getNetworkSecurityGroupApi()
-                          .getNetworkSecurityGroupAppliedToSubnet(virtualNetworkName, subnetName);
-                  if (networkSecurityGroupAppliedToSubnet != null
-                          && networkSecurityGroupAppliedToSubnet.name().equals(id)) {
-                     logger.debug("Removing a networkSecurityGroup %s is already applied to subnet '%s' ...",
-                             id, subnetName);
-
-                     // remove existing nsg from subnet
-                     if (!new ConflictManagementPredicate(api, operationSucceededPredicate) {
-                        @Override
-                        protected String operation() {
-                           return api.getNetworkSecurityGroupApi().removeFromSubnet(
-                                   virtualNetworkName, subnetName, id);
-                        }
-                     }.apply(id)) {
-                        final String message = generateIllegalStateExceptionMessage("Remove NSG" + id + " from subnet " + subnetName,
-                                "Remove security group from subnet", azureComputeConstants.operationTimeout());
-                        logger.warn(message);
-                        throw new IllegalStateException(message);
-                     }
-                  }
-               }
-            }
-         }
-      }
-      String deleteRequestId = api.getNetworkSecurityGroupApi().delete(id);
-      return operationSucceededPredicate.apply(deleteRequestId);
-   }
-
-   @Override
-   public SecurityGroup addIpPermission(final IpPermission ipPermission, final SecurityGroup group) {
-      checkNotNull(group, "group");
-      checkNotNull(ipPermission, "ipPermission");
-
-      final String id = checkNotNull(group.getId(), "group.getId()");
-
-      final int priority = NetworkSecurityGroups.getFirstAvailablePriority(
-              NetworkSecurityGroups.getCustomRules(api.getNetworkSecurityGroupApi().getFullDetails(group.getName())));
-
-      final String ruleName = NetworkSecurityGroups.createRuleName(
-              azureComputeConstants.tcpRuleFormat(), ipPermission.getFromPort(), ipPermission.getToPort());
-
-      // add rule to NSG
-      addRuleToNetworkSecurityGroup(id, ruleName, priority, ipPermission);
-
-      return transformNetworkSecurityGroupToSecurityGroup(id);
-   }
-
-   @Override
-   public SecurityGroup addIpPermission(
-           final IpProtocol protocol,
-           final int startPort,
-           final int endPort,
-           final Multimap<String, String> tenantIdGroupNamePairs,
-           final Iterable<String> ipRanges,
-           final Iterable<String> groupIds,
-           final SecurityGroup group) {
-
-      final IpPermission.Builder permBuilder = IpPermission.builder();
-      permBuilder.ipProtocol(protocol);
-      permBuilder.fromPort(startPort);
-      permBuilder.toPort(endPort);
-      permBuilder.tenantIdGroupNamePairs(tenantIdGroupNamePairs);
-      permBuilder.cidrBlocks(ipRanges);
-      permBuilder.groupIds(groupIds);
-
-      return addIpPermission(permBuilder.build(), group);
-   }
-
-   @Override
-   public SecurityGroup removeIpPermission(final IpPermission ipPermission, final SecurityGroup group) {
-      checkNotNull(group, "group");
-      checkNotNull(ipPermission, "ipPermission");
-
-      final String id = checkNotNull(group.getId(), "group.getId()");
-
-      final String ruleName = NetworkSecurityGroups.createRuleName(
-              azureComputeConstants.tcpRuleFormat(), ipPermission.getFromPort(), ipPermission.getToPort());
-
-      // remove rule to NSG
-      removeRuleFromNetworkSecurityGroup(id, ruleName);
-
-      return transformNetworkSecurityGroupToSecurityGroup(id);
-   }
-
-   @Override
-   public SecurityGroup removeIpPermission(
-           final IpProtocol protocol,
-           final int startPort,
-           final int endPort,
-           final Multimap<String, String> tenantIdGroupNamePairs,
-           final Iterable<String> ipRanges,
-           final Iterable<String> groupIds,
-           final SecurityGroup group) {
-
-      final IpPermission.Builder permBuilder = IpPermission.builder();
-      permBuilder.ipProtocol(protocol);
-      permBuilder.fromPort(startPort);
-      permBuilder.toPort(endPort);
-      permBuilder.tenantIdGroupNamePairs(tenantIdGroupNamePairs);
-      permBuilder.cidrBlocks(ipRanges);
-      permBuilder.groupIds(groupIds);
-
-      return removeIpPermission(permBuilder.build(), group);
-   }
-
-   @Override
-   public boolean supportsTenantIdGroupNamePairs() {
-      return false;
-   }
-
-   @Override
-   public boolean supportsTenantIdGroupIdPairs() {
-      return false;
-   }
-
-   @Override
-   public boolean supportsGroupIds() {
-      return false;
-   }
-
-   @Override
-   public boolean supportsPortRangesForGroups() {
-      return false;
-   }
-
-   @Override
-   public boolean supportsExclusionCidrBlocks() {
-      return false;
-   }
-
-   private class RuleToIpPermission implements Function<Rule, IpPermission> {
-
-      @Override
-      public IpPermission apply(final Rule rule) {
-         final IpPermission.Builder builder = IpPermission.builder();
-         if (rule.name().matches(azureComputeConstants.tcpRuleRegexp())) {
-            builder.fromPort(extractPort(rule.name(), 0))
-                    .toPort(extractPort(rule.name(), 1));
-         }
-         builder.ipProtocol(rule.protocol().equals(Rule.Protocol.ALL)
-                 ? IpProtocol.ALL : IpProtocol.valueOf(rule.protocol().getValue()));
-         if (rule.destinationAddressPrefix().equals("*")) {
-            builder.cidrBlock("0.0.0.0/0");
-         } else {
-            builder.cidrBlock(rule.destinationAddressPrefix());
-         }
-         return builder.build();
-      }
-
-      private int extractPort(String ruleName, int position) {
-         return Integer.parseInt(Iterables.get(Splitter.on("-").omitEmptyStrings().
-                 split(ruleName.substring(4, ruleName.length())), position));
-      }
-   }
-
-   private class NetworkSecurityGroupSecurityGroupFunction implements Function<NetworkSecurityGroup, SecurityGroup> {
-
-      @Override
-      public SecurityGroup apply(final NetworkSecurityGroup networkSecurityGroup) {
-         final SecurityGroupBuilder securityGroupBuilder = new SecurityGroupBuilder()
-                 .id(networkSecurityGroup.name())
-                 .providerId(networkSecurityGroup.label())
-                 .name(networkSecurityGroup.name());
-         if (networkSecurityGroup.rules() != null) {
-            final List<Rule> filteredRules = NetworkSecurityGroups.getCustomRules(networkSecurityGroup);
-
-            final Iterable<IpPermission> permissions = Iterables.transform(filteredRules, new RuleToIpPermission());
-            securityGroupBuilder.ipPermissions(permissions);
-         }
-         return securityGroupBuilder.build();
-      }
-   }
-
-   private void addRuleToNetworkSecurityGroup(final String networkSecurityGroupId, final String ruleName,
-           final int priority, final IpPermission ipPermission) {
-
-      final String protocol = ipPermission.getIpProtocol().name();
-      final String destinationPortRange = ipPermission.getFromPort() == ipPermission.getToPort()
-              ? String.valueOf(ipPermission.getToPort())
-              : String.format("%s-%s", ipPermission.getFromPort(), ipPermission.getToPort());
-      final String destinationAddressPrefix = ipPermission.getCidrBlocks().isEmpty()
-              || Iterables.get(ipPermission.getCidrBlocks(), 0).equals("0.0.0.0/0")
-                      ? "*"
-                      : Iterables.get(ipPermission.getCidrBlocks(), 0);
-      final String setRuleToNSGRequestId = api.getNetworkSecurityGroupApi().
-              setRule(networkSecurityGroupId, ruleName, Rule.create(ruleName, // name
-                              Rule.Type.Inbound, // type
-                              String.valueOf(priority), // priority
-                              Rule.Action.Allow, // action
-                              "INTERNET", // sourceAddressPrefix
-                              "*", // sourcePortRange
-                              destinationAddressPrefix, // destinationAddressPrefix
-                              destinationPortRange, // destinationPortRange
-                              Rule.Protocol.fromString(protocol)));
-      if (!operationSucceededPredicate.apply(setRuleToNSGRequestId)) {
-         final String message = generateIllegalStateExceptionMessage("Add rule " + ruleName,
-                 setRuleToNSGRequestId, azureComputeConstants.operationTimeout());
-         logger.warn(message);
-         throw new IllegalStateException(message);
-      }
-   }
-
-   private void removeRuleFromNetworkSecurityGroup(final String id, final String ruleName) {
-      String setRuleToNSGRequestId = api.getNetworkSecurityGroupApi().deleteRule(id, ruleName);
-      if (!operationSucceededPredicate.apply(setRuleToNSGRequestId)) {
-         final String message = generateIllegalStateExceptionMessage("Remove rule " + ruleName,
-                 setRuleToNSGRequestId, azureComputeConstants.operationTimeout());
-         logger.warn(message);
-         throw new IllegalStateException(message);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/DeploymentToNodeMetadata.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/DeploymentToNodeMetadata.java
deleted file mode 100644
index 622fd9c..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/DeploymentToNodeMetadata.java
+++ /dev/null
@@ -1,183 +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.compute.functions;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import java.util.Map;
-import java.util.Set;
-
-import javax.inject.Inject;
-
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.Deployment.RoleInstance;
-import org.jclouds.collect.Memoized;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.NodeMetadataBuilder;
-import org.jclouds.compute.functions.GroupNamingConvention;
-import org.jclouds.domain.Credentials;
-import org.jclouds.domain.Location;
-import org.jclouds.location.predicates.LocationPredicates;
-
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.base.Supplier;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Sets;
-
-public class DeploymentToNodeMetadata implements Function<Deployment, NodeMetadata> {
-
-   private static final Map<Deployment.InstanceStatus, NodeMetadata.Status> INSTANCESTATUS_TO_NODESTATUS =
-           ImmutableMap.<Deployment.InstanceStatus, NodeMetadata.Status>builder().
-           put(Deployment.InstanceStatus.BUSY_ROLE, NodeMetadata.Status.PENDING).
-           put(Deployment.InstanceStatus.CREATING_ROLE, NodeMetadata.Status.PENDING).
-           put(Deployment.InstanceStatus.CREATING_VM, NodeMetadata.Status.PENDING).
-           put(Deployment.InstanceStatus.CYCLING_ROLE, NodeMetadata.Status.PENDING).
-           put(Deployment.InstanceStatus.DELETING_VM, NodeMetadata.Status.PENDING).
-           put(Deployment.InstanceStatus.FAILED_STARTING_ROLE, NodeMetadata.Status.ERROR).
-           put(Deployment.InstanceStatus.FAILED_STARTING_VM, NodeMetadata.Status.ERROR).
-           put(Deployment.InstanceStatus.PREPARING, NodeMetadata.Status.PENDING).
-           put(Deployment.InstanceStatus.PROVISIONING, NodeMetadata.Status.PENDING).
-           put(Deployment.InstanceStatus.READY_ROLE, NodeMetadata.Status.RUNNING).
-           put(Deployment.InstanceStatus.RESTARTING_ROLE, NodeMetadata.Status.PENDING).
-           put(Deployment.InstanceStatus.STARTING_ROLE, NodeMetadata.Status.PENDING).
-           put(Deployment.InstanceStatus.STARTING_VM, NodeMetadata.Status.PENDING).
-           put(Deployment.InstanceStatus.STOPPED_DEALLOCATED, NodeMetadata.Status.SUSPENDED).
-           put(Deployment.InstanceStatus.STOPPED_VM, NodeMetadata.Status.SUSPENDED).
-           put(Deployment.InstanceStatus.STOPPING_ROLE, NodeMetadata.Status.PENDING).
-           put(Deployment.InstanceStatus.STOPPING_VM, NodeMetadata.Status.PENDING).
-           put(Deployment.InstanceStatus.ROLE_STATE_UNKNOWN, NodeMetadata.Status.UNRECOGNIZED).
-           put(Deployment.InstanceStatus.UNRECOGNIZED, NodeMetadata.Status.UNRECOGNIZED).
-           build();
-
-   private static final Map<Deployment.Status, NodeMetadata.Status> STATUS_TO_NODESTATUS =
-           ImmutableMap.<Deployment.Status, NodeMetadata.Status>builder().
-           put(Deployment.Status.DELETING, NodeMetadata.Status.PENDING).
-           put(Deployment.Status.SUSPENDED_TRANSITIONING, NodeMetadata.Status.PENDING).
-           put(Deployment.Status.RUNNING_TRANSITIONING, NodeMetadata.Status.PENDING).
-           put(Deployment.Status.DEPLOYING, NodeMetadata.Status.PENDING).
-           put(Deployment.Status.STARTING, NodeMetadata.Status.PENDING).
-           put(Deployment.Status.SUSPENDED, NodeMetadata.Status.SUSPENDED).
-           put(Deployment.Status.RUNNING, NodeMetadata.Status.RUNNING).
-           put(Deployment.Status.UNRECOGNIZED, NodeMetadata.Status.UNRECOGNIZED).
-           build();
-
-   private final AzureComputeApi api;
-
-   private final Supplier<Set<? extends Location>> locations;
-
-   private final GroupNamingConvention nodeNamingConvention;
-
-   private final OSImageToImage osImageToImage;
-
-   private final RoleSizeToHardware roleSizeToHardware;
-
-   private final Map<String, Credentials> credentialStore;
-
-   @Inject
-   DeploymentToNodeMetadata(
-           AzureComputeApi api,
-           @Memoized Supplier<Set<? extends Location>> locations,
-           GroupNamingConvention.Factory namingConvention, OSImageToImage osImageToImage,
-           RoleSizeToHardware roleSizeToHardware, Map<String, Credentials> credentialStore) {
-
-      this.nodeNamingConvention = namingConvention.createWithoutPrefix();
-      this.locations = checkNotNull(locations, "locations");
-      this.osImageToImage = osImageToImage;
-      this.roleSizeToHardware = roleSizeToHardware;
-      this.credentialStore = credentialStore;
-      this.api = api;
-   }
-
-   @Override
-   public NodeMetadata apply(final Deployment from) {
-      final NodeMetadataBuilder builder = new NodeMetadataBuilder();
-      builder.id(from.name());
-      builder.providerId(from.name());
-      builder.name(from.name());
-      builder.hostname(getHostname(from));
-      builder.group(nodeNamingConvention.groupInUniqueNameOrNull(getHostname(from)));
-
-      // TODO: CloudService name is required (see JCLOUDS-849): waiting for JCLOUDS-853.
-      final CloudService cloudService = api.getCloudServiceApi().get(from.name());
-      if (cloudService != null) {
-         final String location = cloudService.location() != null
-                 ? cloudService.location()
-                 : api.getAffinityGroupApi().get(cloudService.affinityGroup()).location();
-         builder.location(FluentIterable.from(locations.get()).
-                 firstMatch(LocationPredicates.idEquals(location)).
-                 orNull());
-      }
-
-      /* TODO
-       if (from.getDatacenter() != null) {
-       builder.location(from(locations.get()).firstMatch(
-       LocationPredicates.idEquals(from.getDatacenter().getId() + "")).orNull());
-       }
-       builder.hardware(roleSizeToHardware.apply(from.instanceSize()));
-       Image image = osImageToImage.apply(from);
-       if (image != null) {
-       builder.imageId(image.getId());
-       builder.operatingSystem(image.getOperatingSystem());
-       }
-       */
-      if (from.status() != null) {
-         final Optional<RoleInstance> roleInstance = tryFindFirstRoleInstanceInDeployment(from);
-         if (roleInstance.isPresent() && roleInstance.get().instanceStatus() != null) {
-            builder.status(INSTANCESTATUS_TO_NODESTATUS.get(roleInstance.get().instanceStatus()));
-         } else {
-            builder.status(STATUS_TO_NODESTATUS.get(from.status()));
-         }
-      } else {
-         builder.status(NodeMetadata.Status.UNRECOGNIZED);
-      }
-
-      final Set<String> publicIpAddresses = Sets.newLinkedHashSet();
-      if (from.virtualIPs() != null) {
-         for (Deployment.VirtualIP virtualIP : from.virtualIPs()) {
-            publicIpAddresses.add(virtualIP.address());
-         }
-         builder.publicAddresses(publicIpAddresses);
-      }
-      final Set<String> privateIpAddresses = Sets.newLinkedHashSet();
-      if (from.roleInstanceList() != null) {
-         for (RoleInstance roleInstance : from.roleInstanceList()) {
-            if (roleInstance.ipAddress() != null) {
-               privateIpAddresses.add(roleInstance.ipAddress());
-            }
-         }
-         builder.privateAddresses(privateIpAddresses);
-      }
-      return builder.build();
-   }
-
-   private String getHostname(final Deployment from) {
-      final Optional<RoleInstance> roleInstance = tryFindFirstRoleInstanceInDeployment(from);
-      return !roleInstance.isPresent() || roleInstance.get().hostname() == null
-              ? from.name()
-              : roleInstance.get().hostname();
-   }
-
-   private Optional<RoleInstance> tryFindFirstRoleInstanceInDeployment(final Deployment deployment) {
-      return (deployment.roleInstanceList() == null || deployment.roleInstanceList().isEmpty())
-              ? Optional.<RoleInstance>absent()
-              : Optional.of(deployment.roleInstanceList().get(0));
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/LocationToLocation.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/LocationToLocation.java
deleted file mode 100644
index f334ac8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/LocationToLocation.java
+++ /dev/null
@@ -1,63 +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.compute.functions;
-
-import static com.google.common.collect.Iterables.getOnlyElement;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.domain.Region;
-import org.jclouds.domain.LocationBuilder;
-import org.jclouds.domain.LocationScope;
-import org.jclouds.location.suppliers.all.JustProvider;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableSet;
-
-/**
- * Converts an Location into a Location.
- */
-@Singleton
-public class LocationToLocation implements Function<Location, org.jclouds.domain.Location> {
-
-   private final JustProvider justProvider;
-
-   // allow us to lazy discover the provider of a resource
-   @Inject
-   LocationToLocation(JustProvider justProvider) {
-      this.justProvider = justProvider;
-   }
-
-   @Override
-   public org.jclouds.domain.Location apply(final Location location) {
-      final LocationBuilder builder = new LocationBuilder();
-      builder.id(location.name());
-      builder.description(location.displayName());
-      builder.parent(getOnlyElement(justProvider.get()));
-
-      builder.scope(LocationScope.REGION);
-      final Region region = Region.byName(location.name());
-      if (region != null) {
-         builder.iso3166Codes(ImmutableSet.of(region.iso3166Code()));
-      }
-
-      return builder.build();
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/OSImageToImage.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/OSImageToImage.java
deleted file mode 100644
index ed2d8ca..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/OSImageToImage.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute.functions;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Set;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.collect.Memoized;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.ImageBuilder;
-import org.jclouds.compute.domain.OperatingSystem;
-import org.jclouds.compute.domain.OsFamily;
-import org.jclouds.location.predicates.LocationPredicates;
-
-import com.google.common.base.Function;
-import com.google.common.base.Splitter;
-import com.google.common.base.Supplier;
-import com.google.common.collect.FluentIterable;
-import com.google.inject.Inject;
-
-public class OSImageToImage implements Function<OSImage, Image> {
-
-   private static final String UNRECOGNIZED = "UNRECOGNIZED";
-
-   private static final String UBUNTU = "Ubuntu";
-
-   private static final String WINDOWS = "Windows";
-
-   private static final String OPENLOGIC = "openLogic";
-
-   private static final String CENTOS = "CentOS";
-
-   private static final String COREOS = "CoreOS";
-
-   private static final String OPENSUSE = "openSUSE";
-
-   private static final String SUSE = "SUSE";
-
-   private static final String SQL_SERVER = "SQL Server";
-
-   private static final String ORACLE_lINUX = "Oracle Linux";
-
-   public static String toGeoName(final String name, final String location) {
-      return name + "/" + location;
-   }
-
-   public static String[] fromGeoName(final String geoName) {
-      final String[] parts = checkNotNull(geoName, "geoName").split("/");
-      return (parts.length == 1) ? new String[]{geoName, null} : parts;
-   }
-
-   private final Supplier<Set<? extends org.jclouds.domain.Location>> locations;
-
-   @Inject
-   OSImageToImage(@Memoized final Supplier<Set<? extends org.jclouds.domain.Location>> locations) {
-
-      this.locations = locations;
-   }
-
-   @Override
-   public Image apply(final OSImage image) {
-      final ImageBuilder builder = new ImageBuilder()
-              .id(image.name())
-              .name(image.label())
-              .description(image.description())
-              .status(Image.Status.AVAILABLE)
-              .uri(image.mediaLink())
-              .providerId(image.name())
-              .location(FluentIterable.from(locations.get())
-                      .firstMatch(LocationPredicates.idEquals(image.location())).orNull());
-
-      final OperatingSystem.Builder osBuilder = osFamily().apply(image);
-      return builder.operatingSystem(osBuilder.build()).build();
-   }
-
-   public static Function<OSImage, OperatingSystem.Builder> osFamily() {
-      return new Function<OSImage, OperatingSystem.Builder>() {
-         @Override
-         public OperatingSystem.Builder apply(final OSImage image) {
-            checkNotNull(image.label(), "label");
-            final String label = Splitter.on('/').split(image.label()).iterator().next();
-
-            boolean is64Bit = false;
-
-            OsFamily family = OsFamily.UNRECOGNIZED;
-            if (label.contains(CENTOS)) {
-               family = OsFamily.CENTOS;
-               is64Bit = image.name().contains("x64");
-            } else if (label.contains(OPENLOGIC)) {
-               family = OsFamily.CENTOS;
-            } else if (label.contains(SUSE)) {
-               family = OsFamily.SUSE;
-            } else if (label.contains(UBUNTU)) {
-               family = OsFamily.UBUNTU;
-               is64Bit = image.name().contains("amd64");
-            } else if (label.contains(WINDOWS)) {
-               family = OsFamily.WINDOWS;
-               is64Bit = true;
-            } else if (label.contains(ORACLE_lINUX)) {
-               family = OsFamily.OEL;
-            }
-
-            String version = UNRECOGNIZED;
-            //ex: CoreOS Alpha -> Alpha
-            if (label.contains(COREOS)) {
-               version = label.replace("CoreOS ", "");
-            } //openSUSE 13.1 -> 13.1
-            else if (label.contains(OPENSUSE)) {
-               version = label.replace("openSUSE ", "");
-            } //SUSE Linux Enterprise Server 11 SP3 (Premium Image) -> 11 SP3(Premium Image)
-            else if (label.contains(SUSE)) {
-               version = label.replace("SUSE ", "");
-            } //Ubuntu Server 12.04 LTS -> 12.04 LTS
-            else if (label.contains(UBUNTU)) {
-               version = label.replace("Ubuntu Server ", "");
-            } else if (label.contains(SQL_SERVER)) {
-               version = label;
-            } else if (label.contains(CENTOS)) {
-               version = label;
-            } else if (label.contains(WINDOWS)) {
-               version = label;
-            } else if (label.equals(ORACLE_lINUX)) {
-               version = label;
-            }
-
-            return OperatingSystem.builder().
-                    family(family != OsFamily.UNRECOGNIZED
-                                    ? family
-                                    : image.os() == OSImage.Type.WINDOWS
-                                            ? OsFamily.WINDOWS
-                                            : OsFamily.LINUX).
-                    version(version).
-                    is64Bit(is64Bit).
-                    description(image.description() + "");
-         }
-      };
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/RoleSizeToHardware.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/RoleSizeToHardware.java
deleted file mode 100644
index 5421531..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/RoleSizeToHardware.java
+++ /dev/null
@@ -1,48 +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.compute.functions;
-
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.HardwareBuilder;
-import org.jclouds.compute.domain.Processor;
-import org.jclouds.compute.domain.Volume;
-import org.jclouds.compute.domain.VolumeBuilder;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableList;
-
-public class RoleSizeToHardware implements Function<RoleSize, Hardware> {
-
-   @Override
-   public Hardware apply(RoleSize from) {
-      final HardwareBuilder builder = new HardwareBuilder().
-              ids(from.name().name()).
-              name(from.name().name()).
-              hypervisor("Hyper-V").
-              processors(ImmutableList.of(new Processor(from.cores(), 2))).
-              ram(from.memoryInMb());
-      if (from.virtualMachineResourceDiskSizeInMb() != null) {
-         builder.volume(new VolumeBuilder()
-                 .size(Float.valueOf(from.virtualMachineResourceDiskSizeInMb()))
-                 .type(Volume.Type.LOCAL)
-                 .build());
-      }
-      return builder.build();
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/internal/OperatingSystems.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/internal/OperatingSystems.java
deleted file mode 100644
index 0cc1927..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/internal/OperatingSystems.java
+++ /dev/null
@@ -1,95 +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.compute.functions.internal;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.compute.domain.OsFamily;
-
-import com.google.common.base.Function;
-import com.google.common.base.Splitter;
-import com.google.common.collect.Iterables;
-
-public class OperatingSystems {
-
-   protected static final String CENTOS = "CentOS";
-
-   protected static final String SUSE = "SUSE";
-
-   protected static final String OPENSUSE = "openSUSE";
-
-   protected static final String UBUNTU = "Ubuntu";
-
-   protected static final String WINDOWS = "Windows";
-
-   private static final String MICROSOFT = "Microsoft";
-
-   public static final String WINDOWS_SERVER = "Windows Server";
-
-   public static final String MICROSOFT_SQL_SERVER = "Microsoft SQL Server";
-
-   public static Function<String, OsFamily> osFamily() {
-      return new Function<String, OsFamily>() {
-         @Override
-         public OsFamily apply(final String label) {
-            if (label != null) {
-               if (label.contains(CENTOS)) {
-                  return OsFamily.CENTOS;
-               } else if (label.contains(SUSE)) {
-                  return OsFamily.SUSE;
-               } else if (label.contains(UBUNTU)) {
-                  return OsFamily.UBUNTU;
-               } else if (label.contains(WINDOWS)) {
-                  return OsFamily.WINDOWS;
-               }
-            }
-            return OsFamily.UNRECOGNIZED;
-         }
-      };
-   }
-
-   public static Function<OSImage, String> version() {
-      return new Function<OSImage, String>() {
-         @Override
-         public String apply(final OSImage osImage) {
-            if (osImage.category().matches("Canonical|OpenLogic")) {
-               return Iterables.get(Splitter.on(" ").split(osImage.label()), 2);
-            } else if (osImage.category().matches(SUSE)) {
-               if (osImage.label().startsWith(OPENSUSE)) {
-                  return osImage.label().substring(OPENSUSE.length() + 1);
-               }
-               if (osImage.label().startsWith(SUSE)) {
-                  return Iterables.get(Splitter.on("-").split(osImage.name()), 4);
-               }
-            } else if (osImage.category().matches(MICROSOFT)) {
-               if (osImage.label().startsWith(WINDOWS_SERVER)) {
-                  return osImage.label().substring(WINDOWS_SERVER.length() + 1);
-               }
-               if (osImage.label().startsWith(MICROSOFT_SQL_SERVER)) {
-                  return osImage.label().substring(MICROSOFT_SQL_SERVER.length() + 1);
-               }
-            } else if (osImage.category().matches("RightScale with Linux|Public ")) {
-               final Iterable<String> splittedLabel = Splitter.on("-").split(osImage.label());
-               if (Iterables.size(splittedLabel) > 2) {
-                  return Iterables.get(splittedLabel, 2);
-               }
-            }
-            return null;
-         }
-      };
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/options/AzureComputeTemplateOptions.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/options/AzureComputeTemplateOptions.java
deleted file mode 100644
index db2c35d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/options/AzureComputeTemplateOptions.java
+++ /dev/null
@@ -1,443 +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.compute.options;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import java.util.List;
-import java.util.Map;
-
-import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.domain.LoginCredentials;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.scriptbuilder.domain.Statement;
-
-import com.google.common.base.MoreObjects;
-import com.google.common.collect.ImmutableList;
-
-/**
- * Contains options supported by the {@link org.jclouds.compute.ComputeService#createNodesInGroup(
- * String, int, org.jclouds.compute.options.TemplateOptions)} operation.
- *
- * <h2>Usage</h2> The recommended way to instantiate a {@link AzureComputeTemplateOptions} object is to statically
- * import {@code AzureComputeTemplateOptions.*} and invoke a static creation method followed by an instance mutator (if
- * needed):
- * <p>
- *
- * <pre>
- * import static org.jclouds.compute.options.AzureComputeTemplateOptions.Builder.*;
- * ComputeService client = // get connection
- * templateBuilder.options(inboundPorts(22, 80, 8080, 443));
- * Set&lt;? extends NodeMetadata&gt; set = client.createNodesInGroup(tag, 2, templateBuilder.build());
- * </pre>
- *
- */
-public class AzureComputeTemplateOptions extends TemplateOptions implements Cloneable {
-
-   protected String virtualNetworkName;
-   protected List<String> subnetNames = ImmutableList.of();
-   protected String storageAccountName;
-   protected String storageAccountType;
-   protected String networkSecurityGroupName;
-   protected String reservedIPName;
-   protected Boolean provisionGuestAgent;
-   protected Boolean winrmUseHttps;
-
-   @Override
-   public AzureComputeTemplateOptions clone() {
-      final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
-      copyTo(options);
-      return options;
-   }
-
-   @Override
-   public void copyTo(final TemplateOptions to) {
-      super.copyTo(to);
-      if (to instanceof AzureComputeTemplateOptions) {
-         final AzureComputeTemplateOptions eTo = AzureComputeTemplateOptions.class.cast(to);
-         eTo.virtualNetworkName(virtualNetworkName);
-         if (!subnetNames.isEmpty()) {
-            eTo.subnetNames(subnetNames);
-         }
-         eTo.storageAccountName(storageAccountName);
-         eTo.storageAccountType(storageAccountType);
-         eTo.reservedIPName(reservedIPName);
-         eTo.provisionGuestAgent(provisionGuestAgent);
-         eTo.winrmUseHttps(winrmUseHttps);
-      }
-   }
-
-   @Override
-   public boolean equals(Object o) {
-      if (this == o) return true;
-      if (!(o instanceof AzureComputeTemplateOptions)) return false;
-      if (!super.equals(o)) return false;
-
-      AzureComputeTemplateOptions that = (AzureComputeTemplateOptions) o;
-
-      if (networkSecurityGroupName != null ? !networkSecurityGroupName.equals(that.networkSecurityGroupName) : that.networkSecurityGroupName != null)
-         return false;
-      if (reservedIPName != null ? !reservedIPName.equals(that.reservedIPName) : that.reservedIPName != null) return false;
-      if (storageAccountName != null ? !storageAccountName.equals(that.storageAccountName) : that.storageAccountName != null) return false;
-      if (storageAccountType != null ? !storageAccountType.equals(that.storageAccountType) : that.storageAccountType != null) return false;
-      if (subnetNames != null ? !subnetNames.equals(that.subnetNames) : that.subnetNames != null) return false;
-      if (virtualNetworkName != null ? !virtualNetworkName.equals(that.virtualNetworkName) : that.virtualNetworkName != null) return false;
-      if (provisionGuestAgent != null ? !provisionGuestAgent.equals(that.provisionGuestAgent) : that.provisionGuestAgent != null) return false;
-      if (winrmUseHttps != null ? !winrmUseHttps.equals(that.winrmUseHttps) : that.winrmUseHttps != null) return false;
-      return true;
-   }
-
-   @Override
-   public int hashCode() {
-      int result = super.hashCode();
-      result = 31 * result + (virtualNetworkName != null ? virtualNetworkName.hashCode() : 0);
-      result = 31 * result + (subnetNames != null ? subnetNames.hashCode() : 0);
-      result = 31 * result + (storageAccountName != null ? storageAccountName.hashCode() : 0);
-      result = 31 * result + (storageAccountType != null ? storageAccountType.hashCode() : 0);
-      result = 31 * result + (networkSecurityGroupName != null ? networkSecurityGroupName.hashCode() : 0);
-      result = 31 * result + (reservedIPName != null ? reservedIPName.hashCode() : 0);
-      result = 31 * result + (provisionGuestAgent != null ? provisionGuestAgent.hashCode() : 0);
-      return result;
-   }
-
-   @Override
-   public String toString() {
-      return MoreObjects.toStringHelper(this)
-              .add("virtualNetworkName", virtualNetworkName)
-              .add("subnetNames", subnetNames)
-              .add("storageAccountName", storageAccountName)
-              .add("storageAccountType", storageAccountType)
-              .add("networkSecurityGroupName", networkSecurityGroupName)
-              .add("reservedIPName", reservedIPName)
-              .add("provisionGuestAgent", provisionGuestAgent)
-              .toString();
-   }
-
-   public AzureComputeTemplateOptions virtualNetworkName(@Nullable String virtualNetworkName) {
-      this.virtualNetworkName = virtualNetworkName;
-      return this;
-   }
-
-   public AzureComputeTemplateOptions subnetNames(Iterable<String> subnetNames) {
-      this.subnetNames = ImmutableList.copyOf(checkNotNull(subnetNames, "subnetNames"));
-      return this;
-   }
-
-   public AzureComputeTemplateOptions subnetNames(String...subnetNames) {
-      return subnetNames(ImmutableList.copyOf(checkNotNull(subnetNames, "subnetNames")));
-   }
-
-
-   public AzureComputeTemplateOptions networkSecurityGroupName(@Nullable String networkSecurityGroupName) {
-      this.networkSecurityGroupName = networkSecurityGroupName;
-      return this;
-   }
-
-   public AzureComputeTemplateOptions storageAccountName(@Nullable String storageAccountName) {
-      this.storageAccountName = storageAccountName;
-      return this;
-   }
-
-   public AzureComputeTemplateOptions storageAccountType(@Nullable String storageAccountType) {
-      this.storageAccountType = storageAccountType;
-      return this;
-   }
-
-   public AzureComputeTemplateOptions reservedIPName(@Nullable String reservedIPName) {
-      this.reservedIPName = reservedIPName;
-      return this;
-   }
-
-   public AzureComputeTemplateOptions provisionGuestAgent(@Nullable Boolean provisionGuestAgent) {
-      this.provisionGuestAgent = provisionGuestAgent;
-      return this;
-   }
-
-   public AzureComputeTemplateOptions winrmUseHttps(@Nullable Boolean winrmUseHttps) {
-      this.winrmUseHttps = winrmUseHttps;
-      return this;
-   }
-
-   public String getVirtualNetworkName() {
-      return virtualNetworkName;
-   }
-
-   public List<String> getSubnetNames() {
-      return subnetNames;
-   }
-
-   public String getStorageAccountName() {
-      return storageAccountName;
-   }
-
-   public String getStorageAccountType() {
-      return storageAccountType;
-   }
-
-   public String getNetworkSecurityGroupName() {
-      return networkSecurityGroupName;
-   }
-
-   public String getReservedIPName() {
-      return reservedIPName;
-   }
-
-   public Boolean getProvisionGuestAgent() {
-      return provisionGuestAgent;
-   }
-
-   public Boolean getWinrmUseHttps() {
-      return winrmUseHttps;
-   }
-
-   public static class Builder {
-
-      /**
-       * @see #virtualNetworkName
-       */
-      public static AzureComputeTemplateOptions virtualNetworkName(final String virtualNetworkName) {
-         final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
-         return options.virtualNetworkName(virtualNetworkName);
-      }
-
-      /**
-       * @see #subnetNames
-       */
-      public static AzureComputeTemplateOptions subnetNames(String...subnetNames) {
-         AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
-         return options.subnetNames(subnetNames);
-      }
-
-      /**
-       * @see #subnetNames
-       */
-      public static AzureComputeTemplateOptions subnetNames(Iterable<String> subnetNames) {
-         AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
-         return options.subnetNames(subnetNames);
-      }
-
-      /**
-       * @see #storageAccountName
-       */
-      public static AzureComputeTemplateOptions storageAccountName(final String storageAccountName) {
-         final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
-         return options.storageAccountName(storageAccountName);
-      }
-
-      /**
-       * @see #storageAccountType
-       */
-      public static AzureComputeTemplateOptions storageAccountType(final String storageAccountType) {
-         final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
-         return options.storageAccountType(storageAccountType);
-      }
-
-      /**
-       * @see org.jclouds.compute.options.TemplateOptions#inboundPorts(int...)
-       */
-      public static AzureComputeTemplateOptions inboundPorts(final int... ports) {
-         final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
-         return options.inboundPorts(ports);
-      }
-
-      /**
-       * @see org.jclouds.compute.options.TemplateOptions#blockOnPort(int, int)
-       */
-      public static AzureComputeTemplateOptions blockOnPort(final int port, final int seconds) {
-         final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
-         return options.blockOnPort(port, seconds);
-      }
-
-      /**
-       * @see org.jclouds.compute.options.TemplateOptions#userMetadata(java.util.Map)
-       */
-      public static AzureComputeTemplateOptions userMetadata(final Map<String, String> userMetadata) {
-         final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
-         return options.userMetadata(userMetadata);
-      }
-
-      /**
-       * @see org.jclouds.compute.options.TemplateOptions#userMetadata(String, String)
-       */
-      public static AzureComputeTemplateOptions userMetadata(final String key, final String value) {
-         final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
-         return options.userMetadata(key, value);
-      }
-
-      /**
-       * @see org.jclouds.compute.options.TemplateOptions#nodeNames(Iterable)
-       */
-      public static AzureComputeTemplateOptions nodeNames(final Iterable<String> nodeNames) {
-         final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
-         return options.nodeNames(nodeNames);
-      }
-
-      /**
-       * @see org.jclouds.compute.options.TemplateOptions#networks(Iterable)
-       */
-      public static AzureComputeTemplateOptions networks(final Iterable<String> networks) {
-         final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
-         return options.networks(networks);
-      }
-   }
-
-   // methods that only facilitate returning the correct object type
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions blockOnPort(int port, int seconds) {
-      return AzureComputeTemplateOptions.class.cast(super.blockOnPort(port, seconds));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions inboundPorts(int... ports) {
-      return AzureComputeTemplateOptions.class.cast(super.inboundPorts(ports));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions authorizePublicKey(String publicKey) {
-      return AzureComputeTemplateOptions.class.cast(super.authorizePublicKey(publicKey));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions installPrivateKey(String privateKey) {
-      return AzureComputeTemplateOptions.class.cast(super.installPrivateKey(privateKey));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions blockUntilRunning(boolean blockUntilRunning) {
-      return AzureComputeTemplateOptions.class.cast(super.blockUntilRunning(blockUntilRunning));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions dontAuthorizePublicKey() {
-      return AzureComputeTemplateOptions.class.cast(super.dontAuthorizePublicKey());
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions nameTask(String name) {
-      return AzureComputeTemplateOptions.class.cast(super.nameTask(name));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions runAsRoot(boolean runAsRoot) {
-      return AzureComputeTemplateOptions.class.cast(super.runAsRoot(runAsRoot));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions runScript(Statement script) {
-      return AzureComputeTemplateOptions.class.cast(super.runScript(script));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions overrideLoginCredentials(LoginCredentials overridingCredentials) {
-      return AzureComputeTemplateOptions.class.cast(super.overrideLoginCredentials(overridingCredentials));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions overrideLoginPassword(String password) {
-      return AzureComputeTemplateOptions.class.cast(super.overrideLoginPassword(password));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions overrideLoginPrivateKey(String privateKey) {
-      return AzureComputeTemplateOptions.class.cast(super.overrideLoginPrivateKey(privateKey));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions overrideLoginUser(String loginUser) {
-      return AzureComputeTemplateOptions.class.cast(super.overrideLoginUser(loginUser));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions overrideAuthenticateSudo(boolean authenticateSudo) {
-      return AzureComputeTemplateOptions.class.cast(super.overrideAuthenticateSudo(authenticateSudo));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions userMetadata(Map<String, String> userMetadata) {
-      return AzureComputeTemplateOptions.class.cast(super.userMetadata(userMetadata));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions userMetadata(String key, String value) {
-      return AzureComputeTemplateOptions.class.cast(super.userMetadata(key, value));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions nodeNames(Iterable<String> nodeNames) {
-      return AzureComputeTemplateOptions.class.cast(super.nodeNames(nodeNames));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
-   public AzureComputeTemplateOptions networks(Iterable<String> networks) {
-      return AzureComputeTemplateOptions.class.cast(super.networks(networks));
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/predicates/StorageServicePredicates.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/predicates/StorageServicePredicates.java
deleted file mode 100644
index 4b8d3f2..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/predicates/StorageServicePredicates.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.compute.predicates;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static java.lang.String.format;
-
-import org.jclouds.azurecompute.domain.StorageService;
-
-import com.google.common.base.Predicate;
-
-/**
- * Predicates for working with {@link StorageService} collections.
- */
-public class StorageServicePredicates {
-
-
-   public static Predicate<StorageService> sameLocation(final String location) {
-      checkNotNull(location, "location must be defined");
-
-      return new Predicate<StorageService>() {
-         @Override
-         public boolean apply(StorageService storageService) {
-            return storageService.storageServiceProperties().location().equals(location);
-         }
-
-         @Override
-         public String toString() {
-            return "sameLocation(" + location + ")";
-         }
-      };
-   }
-
-   public static Predicate<StorageService> status(final StorageService.Status status) {
-      checkNotNull(status, "status must be defined");
-
-      return new Predicate<StorageService>() {
-         @Override
-         public boolean apply(StorageService storageService) {
-            return storageService.storageServiceProperties().status() == status;
-         }
-
-         @Override
-         public String toString() {
-            return "status(" + status + ")";
-         }
-      };
-   }
-
-   public static Predicate<StorageService> matchesName(final String defaultStorageAccountPrefix) {
-      checkNotNull(defaultStorageAccountPrefix, "defaultStorageAccountPrefix must be defined");
-
-      return new Predicate<StorageService>() {
-         @Override
-         public boolean apply(StorageService storageService) {
-            return storageService.serviceName().matches(format("^%s[a-z]{10}$", defaultStorageAccountPrefix));
-         }
-
-         @Override
-         public String toString() {
-            return "matchesName(" + defaultStorageAccountPrefix + ")";
-         }
-      };
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/strategy/GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/strategy/GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes.java
deleted file mode 100644
index 348b72d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/strategy/GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes.java
+++ /dev/null
@@ -1,190 +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.compute.strategy;
-
-import static com.google.common.base.MoreObjects.firstNonNull;
-import static com.google.common.base.Predicates.and;
-import static com.google.common.base.Predicates.notNull;
-import static com.google.common.collect.Iterables.tryFind;
-import static java.lang.String.format;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicReference;
-
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.compute.config.AzureComputeServiceContextModule.AzureComputeConstants;
-import org.jclouds.azurecompute.compute.options.AzureComputeTemplateOptions;
-import org.jclouds.azurecompute.compute.predicates.StorageServicePredicates;
-import org.jclouds.azurecompute.config.AzureComputeProperties;
-import org.jclouds.azurecompute.domain.CreateStorageServiceParams;
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.compute.config.CustomizationResponse;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.functions.GroupNamingConvention;
-import org.jclouds.compute.strategy.CreateNodeWithGroupEncodedIntoName;
-import org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.Factory;
-import org.jclouds.compute.strategy.ListNodesStrategy;
-import org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Multimap;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.ListeningExecutorService;
-import com.google.inject.Inject;
-
-@Singleton
-public class GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes
-        extends CreateNodesWithGroupEncodedIntoNameThenAddToSet {
-
-   private static final String DEFAULT_STORAGE_ACCOUNT_PREFIX = "jclouds";
-   private static final String DEFAULT_STORAGE_SERVICE_TYPE = "Standard_GRS";
-
-   private final AzureComputeApi api;
-   private final Predicate<String> operationSucceededPredicate;
-   private final AzureComputeConstants azureComputeConstants;
-
-   @Inject
-   protected GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes(
-           CreateNodeWithGroupEncodedIntoName addNodeWithGroupStrategy,
-           ListNodesStrategy listNodesStrategy,
-           GroupNamingConvention.Factory namingConvention,
-           @Named("jclouds.user-threads") ListeningExecutorService userExecutor,
-           Factory customizeNodeAndAddToGoodMapOrPutExceptionIntoBadMapFactory,
-           AzureComputeApi api,
-           Predicate<String> operationSucceededPredicate,
-           AzureComputeConstants azureComputeConstants) {
-
-      super(addNodeWithGroupStrategy, listNodesStrategy, namingConvention, userExecutor,
-              customizeNodeAndAddToGoodMapOrPutExceptionIntoBadMapFactory);
-
-      this.api = api;
-      this.operationSucceededPredicate = operationSucceededPredicate;
-      this.azureComputeConstants = azureComputeConstants;
-   }
-
-   @Override
-   protected ListenableFuture<AtomicReference<NodeMetadata>> createNodeInGroupWithNameAndTemplate(
-           final String group, final String name, final Template template) {
-
-      return super.createNodeInGroupWithNameAndTemplate(group, name, template);
-   }
-
-   @Override
-   public Map<?, ListenableFuture<Void>> execute(
-           final String group, final int count, final Template template,
-           final Set<NodeMetadata> goodNodes, final Map<NodeMetadata, Exception> badNodes,
-           final Multimap<NodeMetadata, CustomizationResponse> customizationResponses) {
-
-      final AzureComputeTemplateOptions templateOptions = template.getOptions().as(AzureComputeTemplateOptions.class);
-      final String location = template.getLocation().getId();
-      final String storageAccountName = templateOptions.getStorageAccountName();
-      final String storageAccountType = firstNonNull(templateOptions.getStorageAccountType(), DEFAULT_STORAGE_SERVICE_TYPE);
-      final String virtualNetworkName = templateOptions.getVirtualNetworkName();
-
-      final StorageService storageService;
-      if (storageAccountName != null) {
-         if (api.getStorageAccountApi().get(storageAccountName) == null) {
-            String message = String.format("storageAccountName %s specified via AzureComputeTemplateOptions doesn't exist", storageAccountName);
-            logger.error(message);
-            throw new IllegalStateException(message);
-         }
-      } else { // get suitable or create storage service
-         storageService = tryFindExistingStorageServiceAccountOrCreate(api, location, generateStorageServiceName(DEFAULT_STORAGE_ACCOUNT_PREFIX), storageAccountType);
-         templateOptions.storageAccountName(storageService.serviceName());
-      }
-
-      if (virtualNetworkName != null && templateOptions.getSubnetNames().isEmpty()) {
-         String message = "AzureComputeTemplateOption.subnetNames must not be empty, if AzureComputeTemplateOption.virtualNetworkName is defined.";
-         logger.warn(message);
-         throw new IllegalArgumentException(message);
-      }
-
-      return super.execute(group, count, template, goodNodes, badNodes, customizationResponses);
-   }
-
-   /**
-    * Tries to find a storage service account whose name matches the regex DEFAULT_STORAGE_ACCOUNT_PREFIX+"[a-z]{10}" in
-    * the location, otherwise it creates a new storage service account with name and type in the location
-    */
-   private StorageService tryFindExistingStorageServiceAccountOrCreate(
-           final AzureComputeApi api, final String location, final String storageAccountName, final String type) {
-
-      final List<StorageService> storageServices = api.getStorageAccountApi().list();
-      logger.debug("Looking for a suitable existing storage account ...");
-
-      final Predicate<StorageService> storageServicePredicate = and(
-              notNull(),
-              StorageServicePredicates.sameLocation(location),
-              StorageServicePredicates.status(StorageService.Status.Created),
-              StorageServicePredicates.matchesName(DEFAULT_STORAGE_ACCOUNT_PREFIX)
-      );
-
-      final Optional<StorageService> storageServiceOptional = tryFind(storageServices, storageServicePredicate);
-      if (storageServiceOptional.isPresent()) {
-         final StorageService storageService = storageServiceOptional.get();
-         logger.debug("Found a suitable existing storage service account '%s'", storageService);
-         return storageService;
-      } else {
-         // create
-         if (!checkAvailability(storageAccountName)) {
-            logger.warn("The storage service account name %s is not available", storageAccountName);
-            throw new IllegalStateException(format("Can't create a valid storage account with name %s. "
-                    + "Please, try by choosing a different `storageAccountName` in templateOptions and try again", storageAccountName));
-         }
-         logger.debug("Creating a storage service account '%s' in location '%s' ...", storageAccountName, location);
-         final String createStorageServiceRequestId = api.getStorageAccountApi().create(
-                 CreateStorageServiceParams.builder()
-                 .serviceName(storageAccountName)
-                 .label(storageAccountName)
-                 .location(location)
-                 .accountType(StorageService.AccountType.valueOf(type))
-                 .build());
-         if (!operationSucceededPredicate.apply(createStorageServiceRequestId)) {
-            final String warnMessage = format("Create storage service account has not been completed within %sms.",
-                    azureComputeConstants.operationTimeout());
-            logger.warn(warnMessage);
-            final String illegalStateExceptionMessage = format("%s. Please, try by increasing `%s` and try again",
-                    warnMessage, AzureComputeProperties.OPERATION_TIMEOUT);
-            throw new IllegalStateException(illegalStateExceptionMessage);
-         }
-         return api.getStorageAccountApi().get(storageAccountName);
-      }
-   }
-
-   private boolean checkAvailability(final String name) {
-      return api.getStorageAccountApi().isAvailable(name).result();
-   }
-
-   private static String generateStorageServiceName(final String prefix) {
-      String characters = "abcdefghijklmnopqrstuvwxyz";
-      StringBuilder builder = new StringBuilder();
-      builder.append(prefix);
-      int charactersLength = characters.length();
-      for (int i = 0; i < 10; i++) {
-         double index = Math.random() * charactersLength;
-         builder.append(characters.charAt((int) index));
-      }
-      return builder.toString();
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/strategy/UseNodeCredentialsButOverrideFromTemplate.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/strategy/UseNodeCredentialsButOverrideFromTemplate.java
deleted file mode 100644
index 8987dea..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/strategy/UseNodeCredentialsButOverrideFromTemplate.java
+++ /dev/null
@@ -1,61 +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.compute.strategy;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.options.RunScriptOptions;
-import org.jclouds.compute.strategy.PrioritizeCredentialsFromTemplate;
-import org.jclouds.domain.LoginCredentials;
-
-import com.google.common.base.Function;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-
-/**
- * Azure needs the credentials to insert the node so the node credentials already take the Image credentials into
- * account, as such only overriding the TemplateOptions credentials is required.
- */
-@Singleton
-public class UseNodeCredentialsButOverrideFromTemplate extends PrioritizeCredentialsFromTemplate {
-
-   @Inject
-   public UseNodeCredentialsButOverrideFromTemplate(
-           Function<Template, LoginCredentials> credentialsFromImageOrTemplateOptions) {
-
-      super(credentialsFromImageOrTemplateOptions);
-   }
-
-   public LoginCredentials apply(final Template template, final LoginCredentials fromNode) {
-      final RunScriptOptions options = checkNotNull(template.getOptions(), "template options are required");
-      final LoginCredentials.Builder builder = LoginCredentials.builder(fromNode);
-      if (options.getLoginUser() != null) {
-         builder.user(template.getOptions().getLoginUser());
-      }
-      if (options.getLoginPassword() != null) {
-         builder.password(options.getLoginPassword());
-      }
-      if (options.getLoginPrivateKey() != null) {
-         builder.privateKey(options.getLoginPrivateKey());
-      }
-      if (options.shouldAuthenticateSudo() != null && options.shouldAuthenticateSudo()) {
-         builder.authenticateSudo(true);
-      }
-      return builder.build();
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeHttpApiModule.java b/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeHttpApiModule.java
deleted file mode 100644
index 779de7f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeHttpApiModule.java
+++ /dev/null
@@ -1,64 +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.config;
-
-import javax.net.ssl.SSLContext;
-
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.handlers.AzureComputeErrorHandler;
-import org.jclouds.azurecompute.suppliers.DelegatingSSLContextSupplier;
-import org.jclouds.http.HttpErrorHandler;
-import org.jclouds.http.annotation.ClientError;
-import org.jclouds.http.annotation.Redirection;
-import org.jclouds.http.annotation.ServerError;
-import org.jclouds.location.config.LocationModule;
-import org.jclouds.location.suppliers.ImplicitLocationSupplier;
-import org.jclouds.location.suppliers.implicit.OnlyLocationOrFirstRegionOptionallyMatchingRegionId;
-import org.jclouds.rest.ConfiguresHttpApi;
-import org.jclouds.rest.config.HttpApiModule;
-
-import com.google.common.base.Supplier;
-import com.google.inject.Scopes;
-import com.google.inject.TypeLiteral;
-
-@ConfiguresHttpApi
-public class AzureComputeHttpApiModule extends HttpApiModule<AzureComputeApi> {
-
-   @Override
-   protected void bindErrorHandlers() {
-      bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(AzureComputeErrorHandler.class);
-      bind(HttpErrorHandler.class).annotatedWith(ClientError.class).to(AzureComputeErrorHandler.class);
-      bind(HttpErrorHandler.class).annotatedWith(ServerError.class).to(AzureComputeErrorHandler.class);
-   }
-
-   @Override
-   protected void installLocations() {
-      install(new LocationModule());
-      bind(ImplicitLocationSupplier.class).
-              to(OnlyLocationOrFirstRegionOptionallyMatchingRegionId.class).
-              in(Scopes.SINGLETON);
-   }
-
-   @Override
-   protected void configure() {
-      install(new AzureComputeParserModule());
-      super.configure();
-      bind(new TypeLiteral<Supplier<SSLContext>>() {
-      }).to(new TypeLiteral<DelegatingSSLContextSupplier>() {
-      });
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeParserModule.java b/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeParserModule.java
deleted file mode 100644
index f357ad4..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeParserModule.java
+++ /dev/null
@@ -1,29 +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.config;
-
-import org.jclouds.json.config.GsonModule;
-
-import com.google.inject.AbstractModule;
-
-public class AzureComputeParserModule extends AbstractModule {
-
-   @Override
-   protected void configure() {
-      bind(GsonModule.DateAdapter.class).to(GsonModule.Iso8601DateAdapter.class);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeProperties.java b/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeProperties.java
deleted file mode 100644
index 381e1b8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeProperties.java
+++ /dev/null
@@ -1,36 +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.config;
-
-/**
- * Configuration properties and constants used in Azure Service Management connections.
- */
-public class AzureComputeProperties {
-
-   public static final String OPERATION_TIMEOUT = "jclouds.azurecompute.operation.timeout";
-
-   public static final String OPERATION_POLL_INITIAL_PERIOD = "jclouds.azurecompute..operation.poll.initial.period";
-
-   public static final String OPERATION_POLL_MAX_PERIOD = "jclouds.azurecompute.operation.poll.max.period";
-
-   public static final String TCP_RULE_FORMAT = "jclouds.azurecompute.tcp.rule.format";
-
-   public static final String TCP_RULE_REGEXP = "jclouds.azurecompute.tcp.rule.regexp";
-
-   public static final String DEALLOCATE_WHEN_SUSPENDING = "jclouds.azurecompute.deallocate.when.suspending";
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/AffinityGroup.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/AffinityGroup.java
deleted file mode 100644
index e4bb196..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/AffinityGroup.java
+++ /dev/null
@@ -1,104 +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.domain;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-
-import java.util.List;
-
-import com.google.auto.value.AutoValue;
-import java.util.Date;
-import org.jclouds.javax.annotation.Nullable;
-
-@AutoValue
-public abstract class AffinityGroup {
-
-   public enum Capability {
-
-      /**
-       * Enables an affinity group to support Virtual Machines.
-       */
-      PersistentVMRole,
-      /**
-       * Enables the affinity group to support Virtual Machines that use high memory relative to the number of CPUs.
-       */
-      HighMemory;
-
-   }
-
-   AffinityGroup() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies the name of the affinity group.
-    *
-    * @return the name of the affinity group
-    */
-   public abstract String name();
-
-   /**
-    * Specifies the base-64-encoded identifier of the affinity group.
-    *
-    * @return the identifier of the affinity group
-    */
-   public abstract String label();
-
-   /**
-    * Specified the description of this affinity group.
-    *
-    * @return the description of this affinity group
-    */
-   @Nullable
-   public abstract String description();
-
-   /**
-    * Specifies the data center in which the affinity group is located.
-    *
-    * @return the data center in which the affinity group is located
-    */
-   public abstract String location();
-
-   /**
-    * Specifies the capabilities that of the affinity group.
-    *
-    * @return the capabilities that of the affinity group
-    */
-   public abstract List<Capability> capabilities();
-
-   /**
-    * Specifies in UTC format when the affinity group was created.
-    *
-    * @return when the affinity group was created (in UTC)
-    */
-   public abstract Date createdTime();
-
-   /**
-    * Specifies the roles sizes that are available for deployments in the affinity group.
-    *
-    * @return the roles sizes that are available for deployments in the affinity group
-    */
-   @Nullable
-   public abstract ComputeCapabilities computeCapabilities();
-
-   public static AffinityGroup create(final String name, final String label, final String description,
-           final String location, final List<Capability> capabilities, final Date createdTime,
-           final ComputeCapabilities computeCapabilities) {
-
-      return new AutoValue_AffinityGroup(name, label, description, location, copyOf(capabilities),
-              createdTime, computeCapabilities);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Availability.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Availability.java
deleted file mode 100644
index c770b9e..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Availability.java
+++ /dev/null
@@ -1,38 +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.domain;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class Availability {
-
-   Availability() {
-   } // For AutoValue only!
-
-   public abstract Boolean result();
-
-   @Nullable
-   public abstract String reason();
-
-   public static Availability create(final Boolean result, final String reason) {
-      return new AutoValue_Availability(result, reason);
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CaptureVMImageParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CaptureVMImageParams.java
deleted file mode 100644
index a68625e..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CaptureVMImageParams.java
+++ /dev/null
@@ -1,117 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn499768.aspx" >api</a>
- */
-@AutoValue
-public abstract class CaptureVMImageParams {
-
-   public abstract VMImage.OSDiskConfiguration.OSState osState();
-
-   public abstract String name();
-
-   public abstract String label();
-
-   @Nullable public abstract String description();
-
-   @Nullable public abstract String language();
-
-   @Nullable public abstract String imageFamily();
-
-   @Nullable public abstract RoleSize.Type recommendedVMSize();
-
-   public Builder toBuilder() {
-      return builder().fromVMImageParams(this);
-   }
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public static final class Builder {
-      private VMImage.OSDiskConfiguration.OSState osState;
-      private String name;
-      private String label;
-      private String description;
-      private String language;
-      private String imageFamily;
-      private RoleSize.Type recommendedVMSize;
-
-      public Builder osState(VMImage.OSDiskConfiguration.OSState osState) {
-         this.osState = osState;
-         return this;
-      }
-
-      public Builder name(String name) {
-         this.name = name;
-         return this;
-      }
-
-      public Builder label(String label) {
-         this.label = label;
-         return this;
-      }
-
-      public Builder description(String description) {
-         this.description = description;
-         return this;
-      }
-
-      public Builder language(String language) {
-         this.language = language;
-         return this;
-      }
-
-      public Builder imageFamily(String imageFamily) {
-         this.imageFamily = imageFamily;
-         return this;
-      }
-
-      public Builder recommendedVMSize(RoleSize.Type recommendedRoleSize) {
-         this.recommendedVMSize = recommendedRoleSize;
-         return this;
-      }
-
-      public Builder fromVMImageParams(CaptureVMImageParams in) {
-         return name(in.name())
-               .label(in.label())
-               .osState(in.osState())
-               .description(in.description())
-               .language(in.language())
-               .imageFamily(in.imageFamily())
-               .recommendedVMSize(in.recommendedVMSize());
-
-      }
-
-      public CaptureVMImageParams build() {
-         return CaptureVMImageParams.create(osState, name, label, description, language,
-               imageFamily, recommendedVMSize);
-      }
-
-   }
-
-   public static CaptureVMImageParams create(VMImage.OSDiskConfiguration.OSState osState, String name, String label,
-         String description, String language, String imageFamily, RoleSize.Type recommendedVMSize) {
-      return new AutoValue_CaptureVMImageParams(osState, name, label, description, language, imageFamily,
-            recommendedVMSize);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudService.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudService.java
deleted file mode 100644
index 561c679..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudService.java
+++ /dev/null
@@ -1,117 +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.domain;
-
-import static com.google.common.collect.ImmutableMap.copyOf;
-import java.util.Date;
-import java.util.Map;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * System properties for the specified cloud service. These properties include the service name and service type; the
- * name of the affinity group to which the service belongs, or its location if it is not part of an affinity group.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >CloudService</a>
- */
-@AutoValue
-public abstract class CloudService {
-
-   public enum Status {
-
-      CREATING,
-      CREATED,
-      DELETING,
-      DELETED,
-      CHANGING,
-      RESOLVING_DNS,
-      UNRECOGNIZED;
-
-      public static Status fromString(final String text) {
-         if (text != null) {
-            for (Status status : Status.values()) {
-               if (text.equalsIgnoreCase(status.name())) {
-                  return status;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   CloudService() {
-   } // For AutoValue only!
-
-   /**
-    * The name of the cloud service. This name is the DNS prefix name and can be used to access the cloud service.
-    *
-    * <p/>
-    * For example, if the service name is MyService you could access the access the service by calling:
-    * http://MyService.cloudapp.net
-    */
-   public abstract String name();
-
-   /**
-    * The geo-location of the cloud service in Windows Azure, if the cloud service is not associated with an affinity
-    * group. If a location has been specified, the AffinityGroup element is not returned.
-    */
-   @Nullable
-   public abstract String location();
-
-   /**
-    * The affinity group with which this cloud service is associated, if any. If the service is associated with an
-    * affinity group, the Location element is not returned.
-    */
-   @Nullable
-   public abstract String affinityGroup();
-
-   /**
-    * The name can be up to 100 characters in length. The name can be used identify the storage account for your
-    * tracking purposes.
-    */
-   public abstract String label();
-
-   @Nullable
-   public abstract String description();
-
-   public abstract Status status();
-
-   public abstract Date created();
-
-   public abstract Date lastModified();
-
-   /**
-    * Represents the name of an extended cloud service property. Each extended property must have both a defined name
-    * and value. You can have a maximum of 50 extended property name/value pairs.
-    *
-    * <p/>
-    * The maximum length of the Name element is 64 characters, only alphanumeric characters and underscores are valid in
-    * the Name, and the name must start with a letter. Each extended property value has a maximum length of 255
-    * characters.
-    */
-   public abstract Map<String, String> extendedProperties();
-
-   public static CloudService create(final String name, final String location, final String affinityGroup,
-           final String label, final String description, final Status status, final Date created,
-           final Date lastModified, final Map<String, String> extendedProperties) {
-
-      return new AutoValue_CloudService(name, location, affinityGroup, label, description, status, created,
-              lastModified, copyOf(extendedProperties));
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudServiceProperties.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudServiceProperties.java
deleted file mode 100644
index a363b83..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudServiceProperties.java
+++ /dev/null
@@ -1,96 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-import java.net.URI;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import static com.google.common.collect.ImmutableMap.copyOf;
-import static com.google.common.collect.ImmutableList.copyOf;
-
-/**
- * System properties for the specified cloud service. These properties include the service name and
- * service type; the name of the affinity group to which the service belongs, or its location if it
- * is not part of an affinity group.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee460806.aspx" >CloudService</a>
- */
-@AutoValue
-public abstract class CloudServiceProperties {
-
-   public enum Status {
-      CREATING, CREATED, DELETING, DELETED, CHANGING, RESOLVING_DNS,
-      UNRECOGNIZED;
-   }
-
-   CloudServiceProperties() {
-   } // For AutoValue only!
-
-   /**
-    * The name of the cloud service. This name is the DNS prefix name and can be used to access the
-    * cloud service.
-    * <p/>
-    * <p/>For example, if the service name is MyService you could access the access the service by
-    * calling: http://MyService.cloudapp.net
-    */
-   public abstract String serviceName();
-
-   public abstract URI url();
-
-   /**
-    * The geo-location of the cloud service in Windows Azure, if the cloud service is not
-    * associated with an affinity group. If a location has been specified, the AffinityGroup element
-    * is not returned.
-    */
-   @Nullable public abstract String location();
-
-   /**
-    * The affinity group with which this cloud service is associated, if any. If the service is
-    * associated with an affinity group, the Location element is not returned.
-    */
-   @Nullable public abstract String affinityGroup();
-
-   /**
-    * The name can be up to 100 characters in length. The name can be used identify the storage account for your
-    * tracking purposes.
-    */
-   public abstract String label();
-
-   @Nullable public abstract String description();
-
-   @Nullable public abstract Status status();
-
-   @Nullable public abstract Date created();
-
-   @Nullable public abstract Date lastModified();
-
-   public abstract Map<String, String> extendedProperties();
-
-   public abstract List<Deployment> deployments();
-
-   public static CloudServiceProperties create(String name, URI url, String location, String affinityGroup,
-         String label, String description, Status status, Date created, Date lastModified, Map<String, String> extendedProperties,
-         List<Deployment> deployments) {
-      return new AutoValue_CloudServiceProperties(name, url, location, affinityGroup, label, description, status,
-            created, lastModified, copyOf(extendedProperties), copyOf(deployments));
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ComputeCapabilities.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ComputeCapabilities.java
deleted file mode 100644
index 4c5eba9..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ComputeCapabilities.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.domain;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-import java.util.List;
-
-/**
- * Shared by {@link Location} and {@link AffinityGroup}.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/gg441293#bk_computecapabilities">docs</a>
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee460797.aspx#bk_computecapabilities">docs</a>
- */
-@AutoValue
-public abstract class ComputeCapabilities {
-
-   ComputeCapabilities() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies the role size that is available for the type of deployment.
-    *
-    * @return the role size that is available for the type of deployment
-    */
-   public abstract List<RoleSize.Type> virtualMachineRoleSizes();
-
-   /**
-    * Specifies the role size that is available for the type of deployment.
-    *
-    * @return the role size that is available for the type of deployment
-    */
-   public abstract List<RoleSize.Type> webWorkerRoleSizes();
-
-   public static ComputeCapabilities create(
-           final List<RoleSize.Type> virtualMachineRoleSizes, final List<RoleSize.Type> webWorkerRoleSizes) {
-
-      return new AutoValue_ComputeCapabilities(
-              ImmutableList.copyOf(virtualMachineRoleSizes), ImmutableList.copyOf(webWorkerRoleSizes));
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateAffinityGroupParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateAffinityGroupParams.java
deleted file mode 100644
index 57e853c..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateAffinityGroupParams.java
+++ /dev/null
@@ -1,115 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * To create a new affinity group.
- */
-@AutoValue
-public abstract class CreateAffinityGroupParams {
-
-   CreateAffinityGroupParams() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies the name of the affinity group.
-    *
-    * @return the name of the affinity group
-    */
-   public abstract String name();
-
-   /**
-    * Specifies the base-64-encoded identifier of the affinity group.
-    *
-    * @return the identifier of the affinity group
-    */
-   public abstract String label();
-
-   /**
-    * Specified the description of this affinity group.
-    *
-    * @return the description of this affinity group
-    */
-   @Nullable
-   public abstract String description();
-
-   /**
-    * Specifies the data center in which the affinity group is located.
-    *
-    * @return the data center in which the affinity group is located
-    */
-   public abstract String location();
-
-   public Builder toBuilder() {
-      return builder().fromAffinityGroupParams(this);
-   }
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public static final class Builder {
-
-      private String name;
-
-      private String label;
-
-      private String description;
-
-      private String location;
-
-      public Builder name(final String name) {
-         this.name = name;
-         return this;
-      }
-
-      public Builder label(final String label) {
-         this.label = label;
-         return this;
-      }
-
-      public Builder description(final String description) {
-         this.description = description;
-         return this;
-      }
-
-      public Builder location(final String location) {
-         this.location = location;
-         return this;
-      }
-
-      public CreateAffinityGroupParams build() {
-         return CreateAffinityGroupParams.create(name, label, description, location);
-      }
-
-      public Builder fromAffinityGroupParams(final CreateAffinityGroupParams in) {
-         return name(in.name())
-                 .label(in.label())
-                 .description(in.description())
-                 .location(in.location());
-      }
-   }
-
-   private static CreateAffinityGroupParams create(
-           final String name, final String label, final String description, final String location) {
-
-      return new AutoValue_CreateAffinityGroupParams(name, label, description, location);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateProfileParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateProfileParams.java
deleted file mode 100644
index 0f2a9a3..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateProfileParams.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.domain;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * The Create Profile operation creates a new profile for a domain name, owned by the specified subscription.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758254.aspx">docs</a>
- */
-@AutoValue
-public abstract class CreateProfileParams {
-
-   CreateProfileParams() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies the name of the domain that the profile is being created for.
-    *
-    * A valid DNS name of the form &lt;subdomain name&gt;.trafficmanager.net, conforming to RFC 1123 specification.
-    *
-    * Total length of the domain name must be less than or equal to 253 characters. The &lt;subdomain name&gt; can
-    * contain periods and each label within the subdomain must be less or equal to 63 characters.
-    *
-    * @return profile domain name.
-    */
-   public abstract String domain();
-
-   /**
-    * Specifies the name of the profile.
-    *
-    * The name must be composed of letters, numbers, and hyphens. The maximum length of the profile name is 256
-    * characters. Hyphens cannot be the first or last character.
-    *
-    * @return profile name..
-    */
-   public abstract String name();
-
-   public Builder toBuilder() {
-      return builder().fromImageParams(this);
-   }
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public static final class Builder {
-
-      private String domain;
-      private String name;
-
-      public Builder domain(final String domain) {
-         this.domain = domain;
-         return this;
-      }
-
-      public Builder name(final String name) {
-         this.name = name;
-         return this;
-      }
-
-      public CreateProfileParams build() {
-         return CreateProfileParams.create(domain, name);
-      }
-
-      public Builder fromImageParams(final CreateProfileParams in) {
-         return domain(in.domain()).name(in.name());
-      }
-   }
-
-   private static CreateProfileParams create(
-           final String domain,
-           final String name) {
-      return new AutoValue_CreateProfileParams(domain, name);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateStorageServiceParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateStorageServiceParams.java
deleted file mode 100644
index 64bd9c3..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateStorageServiceParams.java
+++ /dev/null
@@ -1,161 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableMap;
-import java.util.Map;
-import org.jclouds.azurecompute.domain.StorageService.AccountType;
-import org.jclouds.javax.annotation.Nullable;
-
-@AutoValue
-public abstract class CreateStorageServiceParams {
-
-   CreateStorageServiceParams() {
-   } // For AutoValue only!
-
-   /**
-    * A name for the storage account that is unique within Azure. Storage account names must be between 3 and 24
-    * characters in length and use numbers and lower-case letters only.
-    */
-   public abstract String serviceName();
-
-   /**
-    * A description for the storage account. The description may be up to 1024 characters in length.
-    */
-   @Nullable
-   public abstract String description();
-
-   /**
-    * A label for the storage account specified as a base64-encoded string. The label may be up to 100 characters in
-    * length. The label can be used identify the storage account for your tracking purposes.
-    */
-   public abstract String label();
-
-   /**
-    * Required if AffinityGroup is not specified. The location where the storage account is created.
-    */
-   @Nullable
-   public abstract String location();
-
-   /**
-    * Required if Location is not specified. The name of an existing affinity group in the specified subscription.
-    */
-   @Nullable
-   public abstract String affinityGroup();
-
-   /**
-    * Represents the name of an extended cloud service property. Each extended property must have both a defined name
-    * and value. You can have a maximum of 50 extended property name/value pairs.
-    *
-    * <p/>
-    * The maximum length of the Name element is 64 characters, only alphanumeric characters and underscores are valid in
-    * the Name, and the name must start with a letter. Each extended property value has a maximum length of 255
-    * characters.
-    */
-   @Nullable
-   public abstract Map<String, String> extendedProperties();
-
-   /**
-    * Specifies whether the account supports locally-redundant storage, geo-redundant storage, zone-redundant storage,
-    * or read access geo-redundant storage.
-    */
-   public abstract AccountType accountType();
-
-   public Builder toBuilder() {
-      return builder().fromCreateStorageServiceParams(this);
-   }
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public static final class Builder {
-
-      private String serviceName;
-
-      private String description;
-
-      private String label;
-
-      private String location;
-
-      private String affinityGroup;
-
-      private Map<String, String> extendedProperties;
-
-      private AccountType accountType;
-
-      public Builder serviceName(final String serviceName) {
-         this.serviceName = serviceName;
-         return this;
-      }
-
-      public Builder description(final String description) {
-         this.description = description;
-         return this;
-      }
-
-      public Builder label(final String label) {
-         this.label = label;
-         return this;
-      }
-
-      public Builder location(final String location) {
-         this.location = location;
-         return this;
-      }
-
-      public Builder affinityGroup(final String affinityGroup) {
-         this.affinityGroup = affinityGroup;
-         return this;
-      }
-
-      public Builder extendedProperties(final Map<String, String> extendedProperties) {
-         this.extendedProperties = extendedProperties;
-         return this;
-      }
-
-      public Builder accountType(final AccountType accountType) {
-         this.accountType = accountType;
-         return this;
-      }
-
-      public CreateStorageServiceParams build() {
-         return CreateStorageServiceParams.create(serviceName, description, label, location, affinityGroup,
-                 extendedProperties, accountType);
-      }
-
-      public Builder fromCreateStorageServiceParams(final CreateStorageServiceParams storageServiceParams) {
-         return serviceName(storageServiceParams.serviceName()).
-                 description(storageServiceParams.description()).
-                 label(storageServiceParams.label()).
-                 location(storageServiceParams.location()).
-                 affinityGroup(storageServiceParams.affinityGroup()).
-                 extendedProperties(storageServiceParams.extendedProperties()).
-                 accountType(storageServiceParams.accountType());
-      }
-   }
-
-   private static CreateStorageServiceParams create(
-           final String serviceName, final String description, final String label, final String location,
-           final String affinityGroup, final Map<String, String> extendedProperties, final AccountType accountType) {
-
-      return new AutoValue_CreateStorageServiceParams(serviceName, description, label, location, affinityGroup,
-              extendedProperties == null ? null : ImmutableMap.copyOf(extendedProperties), accountType);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DataVirtualHardDisk.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DataVirtualHardDisk.java
deleted file mode 100644
index cf482a7..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DataVirtualHardDisk.java
+++ /dev/null
@@ -1,108 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-import java.net.URI;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/jj157193.aspx#DataVirtualHardDisks" >api</a>
- */
-@AutoValue
-public abstract class DataVirtualHardDisk {
-
-   public enum Caching {
-
-      READ_ONLY,
-      READ_WRITE,
-      NONE;
-
-      public static Caching fromString(final String text) {
-         if (text != null) {
-            for (Caching caching : Caching.values()) {
-               if (text.equalsIgnoreCase(caching.name())) {
-                  return caching;
-               }
-            }
-         }
-         return NONE;
-      }
-
-   }
-
-   /**
-    * Specifies the caching mode of the operating system disk. This setting impacts the consistency and performance of
-    * the disk. Possible values are: ReadOnly ReadWrite The default value is ReadWrite
-    */
-   @Nullable
-   public abstract Caching hostCaching();
-
-   /**
-    * Required if an existing disk is being used to create a Virtual Machine. Specifies the name of a new or existing
-    * disk
-    */
-   @Nullable
-   public abstract String diskName();
-
-   /**
-    * Specifies the Logical Unit Number (LUN) for the data disk. If the disk is the first disk that is added, this
-    * element is optional and the default value of 0 is used. If more than one disk is being added, this element is
-    * required.
-    * <p/>
-    * You can use Get Role to find the LUN numbers that are already being used. Valid LUN values are 0 through 31
-    */
-   @Nullable
-   public abstract Integer lun();
-
-   /**
-    * Specifies the size, in GB, of an empty disk to be attached to the Virtual Machine.If the disk that is being added
-    * is already registered in the subscription, this element is ignored.If the disk and VHD is being created by Azure
-    * as it is added, this element defines the size of the new disk.
-    * <p/>
-    * The number of disks that can be added to a Virtual Machine is limited by the size of the machine.
-    * <p/>
-    * This element is used with the MediaLink element.
-    */
-   @Nullable
-   public abstract Integer logicalDiskSizeInGB();
-
-   /**
-    * If the disk that is being added is already registered in the subscription or the VHD for the disk already exists
-    * in blob storage, this element is ignored. If a VHD file does not exist in blob storage, this element defines the
-    * location of the new VHD that is created when the new disk is added. Example:
-    * http://example.blob.core.windows.net/disks/mydatadisk.vhd
-    */
-   @Nullable
-   public abstract URI mediaLink();
-
-   /**
-    * This property identifies the type of the storage account for the backing VHD. If the backing VHD is in an
-    * Provisioned Storage account, “Provisioned” is returned otherwise “Standard” is returned.
-    * <p/>
-    * This property is only returned with a version header of 2014-10-01 or newer
-    */
-   @Nullable
-   public abstract String ioType();
-
-   public static DataVirtualHardDisk create(final Caching hostCaching, final String diskName,
-           final Integer lun, final Integer logicalDiskSizeInGB, final URI mediaLink, final String ioType) {
-
-      return new AutoValue_DataVirtualHardDisk(hostCaching, diskName, lun, logicalDiskSizeInGB, mediaLink, ioType);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Deployment.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Deployment.java
deleted file mode 100644
index a1db92f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Deployment.java
+++ /dev/null
@@ -1,315 +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.domain;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-
-import java.util.List;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class Deployment {
-
-   public enum Slot {
-
-      PRODUCTION,
-      STAGING,
-      UNRECOGNIZED;
-
-      public static Slot fromString(final String text) {
-         if (text != null) {
-            for (Slot slot : Slot.values()) {
-               if (text.equalsIgnoreCase(slot.name())) {
-                  return slot;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   public enum Status {
-
-      RUNNING("Running"),
-      SUSPENDED("Suspended"),
-      RUNNING_TRANSITIONING("RunningTransitioning"),
-      SUSPENDED_TRANSITIONING("SuspendedTransitioning"),
-      STARTING("Starting"),
-      SUSPENDING("Suspending"),
-      DEPLOYING("Deploying"),
-      DELETING("Deleting"),
-      UNRECOGNIZED("");
-
-      private final String key;
-
-      private Status(final String key) {
-         this.key = key;
-      }
-
-      public static Status fromString(final String text) {
-         if (text != null) {
-            for (Status status : Status.values()) {
-               if (text.equalsIgnoreCase(status.key)) {
-                  return status;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   public enum InstanceStatus {
-
-      ROLE_STATE_UNKNOWN("RoleStateUnknown"),
-      CREATING_VM("CreatingVM"),
-      STARTING_VM("StartingVM"),
-      CREATING_ROLE("CreatingRole"),
-      STARTING_ROLE("StartingRole"),
-      READY_ROLE("ReadyRole", false),
-      BUSY_ROLE("BusyRole"),
-      STOPPING_ROLE("StoppingRole"),
-      STOPPING_VM("StoppingVM"),
-      STOPPED_DEALLOCATED("StoppedDeallocated", false),
-      PREPARING("Preparing"),
-      DELETING_VM("DeletingVM"),
-      STOPPED_VM("StoppedVM", false),
-      RESTARTING_ROLE("RestartingRole"),
-      CYCLING_ROLE("CyclingRole"),
-      FAILED_STARTING_ROLE("FailedStartingRole", false),
-      FAILED_STARTING_VM("FailedStartingVM", false),
-      UNRESPONSIVE_ROLE("UnresponsiveRole"),
-      PROVISIONING("Provisioning"),
-      PROVISIONING_FAILED("ProvisioningFailed", false),
-      /**
-       * Not parsable into one of the above.
-       */
-      UNRECOGNIZED("");
-
-      private final String key;
-
-      private final boolean _transient;
-
-      private InstanceStatus(final String key) {
-         this(key, true);
-      }
-
-      private InstanceStatus(final String key, final boolean _transient) {
-         this.key = key;
-         this._transient = _transient;
-      }
-
-      public boolean isTransient() {
-         return _transient;
-      }
-
-      public static InstanceStatus fromString(final String text) {
-         if (text != null) {
-            for (InstanceStatus status : InstanceStatus.values()) {
-               if (text.equalsIgnoreCase(status.key)) {
-                  return status;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   public enum PowerState {
-
-      STARTING("Starting"),
-      STARTED("Started"),
-      STOPPING("Stopping"),
-      STOPPED("Stopped"),
-      UNKNOWN("Unknown"),
-      /**
-       * Not parsable into one of the above.
-       */
-      UNRECOGNIZED("");
-
-      private final String key;
-
-      private PowerState(final String key) {
-         this.key = key;
-      }
-
-      public static PowerState fromString(final String text) {
-         if (text != null) {
-            for (PowerState state : PowerState.values()) {
-               if (text.equalsIgnoreCase(state.key)) {
-                  return state;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   @AutoValue
-   public abstract static class VirtualIP {
-
-      public abstract String address();
-
-      public abstract Boolean isDnsProgrammed();
-
-      public abstract String name();
-
-      VirtualIP() { // For AutoValue only!
-      }
-
-      public static VirtualIP create(final String address, final Boolean isDnsProgrammed, final String name) {
-         return new AutoValue_Deployment_VirtualIP(address, isDnsProgrammed, name);
-      }
-   }
-
-   @AutoValue
-   public abstract static class InstanceEndpoint {
-
-      public abstract String name();
-
-      public abstract String vip();
-
-      public abstract int publicPort();
-
-      public abstract int localPort();
-
-      public abstract String protocol();
-
-      InstanceEndpoint() { // For AutoValue only!
-      }
-
-      public static InstanceEndpoint create(final String name, final String vip,
-              final int publicPort, final int localPort, final String protocol) {
-
-         return new AutoValue_Deployment_InstanceEndpoint(name, vip, publicPort, localPort, protocol);
-      }
-   }
-
-   @AutoValue
-   public abstract static class RoleInstance {
-
-      public abstract String roleName();
-
-      public abstract String instanceName();
-
-      public abstract InstanceStatus instanceStatus();
-
-      public abstract PowerState powerState();
-
-      @Nullable // null value in case of StoppedDeallocated
-      public abstract Integer instanceUpgradeDomain();
-
-      @Nullable // null value in case of StoppedDeallocated
-      public abstract Integer instanceFaultDomain();
-
-      @Nullable // null value in case of StoppedDeallocated
-      public abstract RoleSize.Type instanceSize();
-
-      @Nullable // null value in case of StoppedDeallocated
-      public abstract String ipAddress();
-
-      @Nullable
-      public abstract String hostname();
-
-      @Nullable
-      public abstract List<InstanceEndpoint> instanceEndpoints();
-
-      RoleInstance() { // For AutoValue only!
-      }
-
-      public static RoleInstance create(final String roleName, final String instanceName,
-              final InstanceStatus instanceStatus, final PowerState powerState, final Integer instanceUpgradeDomain,
-              final Integer instanceFaultDomain, final RoleSize.Type instanceSize,
-              final String ipAddress, final String hostname, final List<InstanceEndpoint> instanceEndpoints) {
-
-         return new AutoValue_Deployment_RoleInstance(roleName, instanceName, instanceStatus, powerState,
-                 instanceUpgradeDomain, instanceFaultDomain, instanceSize, ipAddress, hostname,
-                 instanceEndpoints == null ? null : copyOf(instanceEndpoints));
-      }
-   }
-
-   Deployment() {
-   } // For AutoValue only!
-
-   /**
-    * The user-supplied name for this deployment.
-    */
-   public abstract String name();
-
-   /**
-    * The environment to which the cloud service is deployed.
-    */
-   public abstract Slot slot();
-
-   public abstract Status status();
-
-   /**
-    * The user-supplied name of the deployment returned as a base-64 encoded string. This name can be used identify the
-    * deployment for your tracking purposes.
-    */
-   public abstract String label();
-
-   /**
-    * The instance state is returned as an English human-readable string that, when present, provides a snapshot of the
-    * state of the virtual machine at the time the operation was called.
-    *
-    * For example, when the instance is first being initialized a "Preparing Windows for first use." could be returned.
-    */
-   @Nullable
-   public abstract String instanceStateDetails();
-
-   /**
-    * Error code of the latest role or VM start
-    *
-    * For VMRoles the error codes are:
-    *
-    * WaitTimeout - The virtual machine did not communicate back to Azure infrastructure within 25 minutes. Typically
-    * this indicates that the virtual machine did not start or that the guest agent is not installed.
-    *
-    * VhdTooLarge - The VHD image selected was too large for the virtual machine hosting the role.
-    *
-    * AzureInternalError – An internal error has occurred that has caused to virtual machine to fail to start. Contact
-    * support for additional assistance.
-    *
-    * For web and worker roles this field returns an error code that can be provided to Windows Azure support to assist
-    * in resolution of errors. Typically this field will be empty.
-    */
-   @Nullable
-   public abstract String instanceErrorCode();
-
-   public abstract List<VirtualIP> virtualIPs();
-
-   public abstract List<RoleInstance> roleInstanceList();
-
-   @Nullable
-   public abstract List<Role> roleList();
-
-   @Nullable
-   public abstract String virtualNetworkName();
-
-   public static Deployment create(final String name, final Slot slot, final Status status, final String label,
-           final String instanceStateDetails, final String instanceErrorCode,
-           final List<VirtualIP> virtualIPs, final List<RoleInstance> roleInstanceList,
-           final List<Role> roles, final String virtualNetworkName) {
-
-      return new AutoValue_Deployment(name, slot, status, label, instanceStateDetails,
-              instanceErrorCode, copyOf(virtualIPs), copyOf(roleInstanceList),
-              roles == null ? null : copyOf(roles), virtualNetworkName);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java
deleted file mode 100644
index 5d0e5e6..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java
+++ /dev/null
@@ -1,194 +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.domain;
-
-import java.net.URI;
-import java.util.List;
-import java.util.Set;
-
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.rest.annotations.SinceApiVersion;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-
-/**
- * To create a new deployment/role
- *
- * Warning : the OSType must be the one of the source image used to create the VM
- */
-// TODO: check which can be null.
-@AutoValue
-public abstract class DeploymentParams {
-
-   @AutoValue
-   public abstract static class ExternalEndpoint {
-
-      public abstract String name();
-
-      /**
-       * Either {@code tcp} or {@code udp}.
-       */
-      public abstract String protocol();
-
-      public abstract int port();
-
-      public abstract int localPort();
-
-      public static ExternalEndpoint inboundTcpToLocalPort(final int port, final int localPort) {
-         return new AutoValue_DeploymentParams_ExternalEndpoint(
-                 String.format("tcp_%s-%s", port, localPort), "tcp", port, localPort);
-      }
-
-      public static ExternalEndpoint inboundUdpToLocalPort(final int port, final int localPort) {
-         return new AutoValue_DeploymentParams_ExternalEndpoint(
-                 String.format("udp_%s-%s", port, localPort), "udp", port, localPort);
-      }
-
-      ExternalEndpoint() { // For AutoValue only!
-      }
-   }
-
-   DeploymentParams() {
-   } // For AutoValue only!
-
-   /**
-    * The user-supplied name for this deployment.
-    */
-   public abstract String name();
-
-   /**
-    * The size of the virtual machine to allocate. The default value is Small.
-    */
-   public abstract RoleSize.Type size();
-
-   /**
-    * Specifies the name of a user to be created in the sudoers group of the virtual machine. User names are ASCII
-    * character strings 1 to 32 characters in length.
-    */
-   public abstract String username();
-
-   /**
-    * Specifies the associated password for the user name. Passwords are ASCII character strings 6 to 72 characters in
-    * length.
-    */
-   public abstract String password();
-
-   /**
-    * {@link OSImage#name() name} of the user or platform image.
-    */
-   public abstract String sourceImageName();
-
-   /**
-    * Indicates the {@link OSImage#mediaLink() location} when {@link #sourceImageName() source} is a platform image.
-    */
-   public abstract URI mediaLink();
-
-   /**
-    * {@link OSImage#os() Os type} of the {@link #sourceImageName() source image}.
-    */
-   public abstract OSImage.Type os();
-
-   public abstract Set<ExternalEndpoint> externalEndpoints();
-
-   /**
-    * {@link org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite#name}
-    */
-   @Nullable
-   public abstract String virtualNetworkName();
-
-   /**
-    * Optional. Specifies the name of a reserved IP address that is to be assigned to the deployment. You must run
-    * Create Reserved IP Address before you can assign the address to the deployment using this element.
-    *
-    * The ReservedIPName element is only available using version 2014-05-01 or higher.
-    *
-    * @return reserved IP.
-    */
-   @SinceApiVersion("2014-05-01")
-   @Nullable
-   public abstract String reservedIPName();
-
-   public abstract List<String> subnetNames();
-
-   /**
-    * Optional. Indicates whether the VM Agent is installed on the Virtual
-    * Machine. To run a resource extension in a Virtual Machine, this agent must
-    * be installed.
-    *
-    * @return provisionGuestAgent true/false flag (or null)
-    */
-   @Nullable
-   public abstract Boolean provisionGuestAgent();
-
-   /**
-    * Optional. Indicates whether Windows VM should be provisioned with Https WinRm listener.
-    * By default it will use http listener.
-    */
-   @Nullable
-   public abstract Boolean winrmUseHttps();
-
-   public static Builder builder() {
-      return new AutoValue_DeploymentParams.Builder()
-              .externalEndpoints(ImmutableSet.<ExternalEndpoint> of())
-              .subnetNames(ImmutableList.<String> of());
-   }
-
-   abstract Builder toBuilder();
-
-   @AutoValue.Builder
-   public abstract static class Builder {
-      public abstract Builder name(String name);
-      public abstract Builder size(RoleSize.Type roleSize);
-      public abstract Builder username(String username);
-      public abstract Builder password(String password);
-      public abstract Builder winrmUseHttps(Boolean useHttps);
-      public abstract Builder sourceImageName(String sourceImageName);
-      public abstract Builder mediaLink(URI mediaLink);
-      public abstract Builder os(OSImage.Type os);
-      public abstract Builder externalEndpoints(Set<ExternalEndpoint> externalEndpoints);
-      public abstract Builder virtualNetworkName(String virtualNetworkName);
-      public abstract Builder reservedIPName(String reservedIPName);
-      public abstract Builder subnetNames(List<String> subnetNames);
-      public abstract Builder provisionGuestAgent(Boolean provisionGuestAgent);
-
-      abstract Set<ExternalEndpoint> externalEndpoints();
-      abstract List<String> subnetNames();
-
-      abstract DeploymentParams autoBuild();
-
-      public DeploymentParams build() {
-         externalEndpoints(externalEndpoints() != null ? ImmutableSet.copyOf(externalEndpoints()) : null);
-         subnetNames(subnetNames() != null ? ImmutableList.copyOf(subnetNames()) : null);
-         return autoBuild();
-      }
-   }
-
-   public static DeploymentParams create(String name, RoleSize.Type size, String username,
-                                         String password, String sourceImageName, URI mediaLink,
-                                         OSImage.Type os, Set<ExternalEndpoint> externalEndpoints,
-                                         String virtualNetworkName, String reservedIPName,
-                                         List<String> subnetNames, Boolean provisionGuestAgent) {
-      return builder().name(name).size(size).username(username).password(password)
-              .sourceImageName(sourceImageName).mediaLink(mediaLink).os(os)
-              .externalEndpoints(externalEndpoints).virtualNetworkName(virtualNetworkName)
-              .reservedIPName(reservedIPName).subnetNames(subnetNames)
-              .provisionGuestAgent(provisionGuestAgent)
-              .build();
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Disk.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Disk.java
deleted file mode 100644
index 7ce31e1..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Disk.java
+++ /dev/null
@@ -1,128 +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.domain;
-
-import java.net.URI;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * A disk in the image repository.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157176" >api</a>
- */
-@AutoValue
-public abstract class Disk {
-
-   Disk() {
-   } // For AutoValue only!
-
-   @AutoValue
-   public abstract static class Attachment {
-
-      Attachment() {
-      } // For AutoValue only!
-
-      /**
-       * The cloud service in which the disk is being used.
-       */
-      public abstract String hostedService();
-
-      /**
-       * The deployment in which the disk is being used.
-       */
-      public abstract String deployment();
-
-      /**
-       * The virtual machine that the disk is attached to.
-       */
-      public abstract String virtualMachine();
-
-      public static Attachment create(
-              final String hostedService, final String deployment, final String virtualMachine) {
-
-         return new AutoValue_Disk_Attachment(hostedService, deployment, virtualMachine);
-      }
-   }
-
-   /**
-    * The name of the disk. This is the name that is used when creating one or more virtual machines using the disk.
-    */
-   public abstract String name();
-
-   /**
-    * The geo-location of the disk in Windows Azure, if the disk is not associated with an affinity group. If a location
-    * has been specified, the AffinityGroup element is not returned.
-    */
-   @Nullable
-   public abstract String location();
-
-   /**
-    * The affinity group with which this disk is associated, if any. If the service is associated with an affinity
-    * group, the Location element is not returned.
-    */
-   @Nullable
-   public abstract String affinityGroup();
-
-   @Nullable
-   public abstract String description();
-
-   /**
-    * The operating system type of the OS image, or null if a data disk.
-    */
-   @Nullable
-   public abstract OSImage.Type os();
-
-   /**
-    * The location of the blob in the blob store in which the media for the image is located. The blob location belongs
-    * to a storage account in the subscription specified by the
-    * <subscription-id> value in the operation call.
-    *
-    * Example:
-    *
-    * http://example.blob.core.windows.net/disks/myimage.vhd
-    */
-   @Nullable
-   public abstract URI mediaLink();
-
-   @Nullable
-   public abstract Integer logicalSizeInGB();
-
-   /**
-    * Contains properties that specify a virtual machine that currently using the disk. A disk cannot be deleted as long
-    * as it is attached to a virtual machine.
-    */
-   @Nullable
-   public abstract Attachment attachedTo();
-
-   /**
-    * The name of the OS Image from which the disk was created. This property is populated automatically when a disk is
-    * created from an OS image by calling the Add Role, Create Deployment, or Provision Disk operations.
-    */
-   @Nullable
-   public abstract String sourceImage();
-
-   public static Disk create(final String name, final String location, final String affinityGroup,
-           final String description, final OSImage.Type os,
-           final URI mediaLink, final Integer logicalSizeInGB, final Attachment attachedTo, final String sourceImage) {
-
-      return new AutoValue_Disk(
-              name, location, affinityGroup, description, os, mediaLink, logicalSizeInGB, attachedTo, sourceImage);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Error.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Error.java
deleted file mode 100644
index 1da089a..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Error.java
+++ /dev/null
@@ -1,71 +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.domain;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460801" >api</a>
- */
-@AutoValue
-public abstract class Error {
-
-   public static enum Code {
-
-      MISSING_OR_INCORRECT_VERSION_HEADER,
-      INVALID_XML_REQUEST,
-      MISSING_OR_INVALID_REQUIRED_QUERY_PARAMETER,
-      INVALID_HTTP_VERB,
-      AUTHENTICATION_FAILED,
-      RESOURCE_NOT_FOUND,
-      INTERNAL_ERROR,
-      OPERATION_TIMED_OUT,
-      SERVER_BUSY,
-      SUBSCRIPTION_DISABLED,
-      BAD_REQUEST,
-      CONFLICT_ERROR,
-      UNRECOGNIZED;
-
-      public static Code fromString(final String text) {
-         if (text != null) {
-            for (Code code : Code.values()) {
-               if (text.equalsIgnoreCase(code.name())) {
-                  return code;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   Error() {
-   } // For AutoValue only!
-
-   /**
-    * Error code
-    */
-   public abstract Code code();
-
-   /**
-    * User message
-    */
-   public abstract String message();
-
-   public static Error create(final Code code, final String message) {
-      return new AutoValue_Error(code, message);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Location.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Location.java
deleted file mode 100644
index 3ace3ee..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Location.java
+++ /dev/null
@@ -1,61 +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.domain;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-
-import java.util.List;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * A data center location that is valid for your subscription.
- */
-@AutoValue
-public abstract class Location {
-
-   Location() {
-   } // For AutoValue only!
-
-   /**
-    * The name of the data center location. Ex. {@code West Europe}.
-    */
-   public abstract String name();
-
-   /**
-    * The localized name of the data center location.
-    */
-   public abstract String displayName();
-
-   /**
-    * Indicates the services available at this location. Ex. {@code Compute}.
-    */
-   public abstract List<String> availableServices();
-
-   /**
-    * Specifies the roles sizes that are available for deployments in the location.
-    */
-   @Nullable
-   public abstract ComputeCapabilities computeCapabilities();
-
-   public static Location create(final String name, final String displayName, final List<String> availableServices,
-           final ComputeCapabilities computeCapabilities) {
-
-      return new AutoValue_Location(name, displayName, copyOf(availableServices), computeCapabilities);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/NetworkConfiguration.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/NetworkConfiguration.java
deleted file mode 100644
index 86c7027..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/NetworkConfiguration.java
+++ /dev/null
@@ -1,117 +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.domain;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-import java.util.List;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class NetworkConfiguration {
-
-   @AutoValue
-   public abstract static class Subnet {
-
-      Subnet() {
-      } // For AutoValue only!
-
-      public abstract String name();
-
-      @Nullable
-      public abstract String addressPrefix();
-
-      @Nullable
-      public abstract String networkSecurityGroup();
-
-      public static Subnet create(final String name, final String addressPrefix, final String networkSecurityGroup) {
-         return new AutoValue_NetworkConfiguration_Subnet(name, addressPrefix, networkSecurityGroup);
-      }
-   }
-
-   @AutoValue
-   public abstract static class AddressSpace {
-
-      AddressSpace() {
-      } // For AutoValue only!
-
-      @Nullable
-      public abstract String addressPrefix();
-
-      public static AddressSpace create(final String addressPrefix) {
-         return new AutoValue_NetworkConfiguration_AddressSpace(addressPrefix);
-      }
-   }
-
-   @AutoValue
-   public abstract static class VirtualNetworkSite {
-
-      VirtualNetworkSite() {
-      } // For AutoValue only!
-
-      @Nullable
-      public abstract String id();
-
-      @Nullable
-      public abstract String name();
-
-      @Nullable
-      public abstract String location();
-
-      public abstract AddressSpace addressSpace();
-
-      public abstract List<Subnet> subnets();
-
-      public static VirtualNetworkSite create(
-              final String id, final String name, final String location,
-              final AddressSpace addressSpace, final List<Subnet> subnets) {
-
-         return new AutoValue_NetworkConfiguration_VirtualNetworkSite(id, name, location, addressSpace, subnets);
-      }
-
-   }
-
-   @AutoValue
-   public abstract static class VirtualNetworkConfiguration {
-
-      VirtualNetworkConfiguration() {
-      } // For AutoValue only!
-
-      @Nullable
-      public abstract String dns();
-
-      @Nullable
-      public abstract List<VirtualNetworkSite> virtualNetworkSites();
-
-      public static VirtualNetworkConfiguration create(
-              final String dns, final List<VirtualNetworkSite> virtualNetworkSites) {
-
-         return new AutoValue_NetworkConfiguration_VirtualNetworkConfiguration(dns, copyOf(virtualNetworkSites));
-      }
-   }
-
-   public NetworkConfiguration() {
-   } // For AutoValue only!
-
-   public abstract VirtualNetworkConfiguration virtualNetworkConfiguration();
-
-   public static NetworkConfiguration create(final VirtualNetworkConfiguration virtualNetworkConfiguration) {
-      return new AutoValue_NetworkConfiguration(virtualNetworkConfiguration);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/NetworkSecurityGroup.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/NetworkSecurityGroup.java
deleted file mode 100644
index 1d490a7..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/NetworkSecurityGroup.java
+++ /dev/null
@@ -1,81 +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.domain;
-
-import java.util.List;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-
-@AutoValue
-public abstract class NetworkSecurityGroup {
-
-   public enum State {
-
-      CREATED,
-      CREATING,
-      UPDATING,
-      DELETING,
-      UNAVAILABLE,
-      UNRECOGNIZED;
-
-      public static State fromString(final String text) {
-         if (text != null) {
-            for (State status : State.values()) {
-               if (text.equalsIgnoreCase(status.name())) {
-                  return status;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   NetworkSecurityGroup() {
-   } // For AutoValue only!
-
-   public abstract String name();
-
-   @Nullable
-   public abstract String label();
-
-   @Nullable
-   public abstract String location();
-
-   @Nullable
-   public abstract State state();
-
-   @Nullable
-   public abstract List<Rule> rules();
-
-   public static NetworkSecurityGroup create(final String name) {
-      return new AutoValue_NetworkSecurityGroup(name, null, null, null, null);
-   }
-
-   public static NetworkSecurityGroup create(
-           final String name, final String label, String location, final State state, final List<Rule> rules) {
-
-      return new AutoValue_NetworkSecurityGroup(
-              name,
-              label,
-              location,
-              state,
-              rules == null ? ImmutableList.<Rule>of() : ImmutableList.copyOf(rules));
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSImage.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSImage.java
deleted file mode 100644
index 4fb7a41..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSImage.java
+++ /dev/null
@@ -1,119 +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.domain;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-import java.net.URI;
-import java.util.List;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * OS image from the image repository
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157191">api</a>
- */
-@AutoValue
-public abstract class OSImage {
-
-   public enum Type {
-
-      LINUX,
-      WINDOWS;
-
-   }
-
-   OSImage() {
-   } // For AutoValue only!
-
-   public abstract String name();
-
-   /**
-    * The geo-locations of the image, if the image is not associated with an affinity group.
-    */
-   @Nullable
-   public abstract String location();
-
-   /**
-    * The affinity group with which this image is associated, if any.
-    */
-   @Nullable
-   public abstract String affinityGroup();
-
-   /**
-    * The name can be up to 100 characters in length. The name can be used identify the storage account for your
-    * tracking purposes.
-    */
-   public abstract String label();
-
-   @Nullable
-   public abstract String description();
-
-   /**
-    * Specifies a value that can be used to group images.
-    *
-    * @return value that can be used to group images
-    */
-   @Nullable
-   public abstract String imageFamily();
-
-   /**
-    * The repository classification of image. All user images have the category "User", but categories for other images
-    * could be, for example "Canonical"
-    */
-   @Nullable
-   public abstract String category();
-
-   /**
-    * The operating system type of the OS image.
-    */
-   public abstract Type os();
-
-   //The name of the publisher of the image. All user images have a publisher name of User.
-   @Nullable
-   public abstract String publisherName();
-
-   /**
-    * The locations of the blob in the blob store in which the media for the image is located. The blob locations
-    * belongs to a storage account in the subscription specified by the
-    * <subscription-id> value in the operation call.
-    *
-    * Example:
-    *
-    * http://example.blob.core.windows.net/disks/myimage.vhd
-    */
-   @Nullable
-   public abstract URI mediaLink();
-
-   public abstract int logicalSizeInGB();
-
-   /**
-    * The eulas for the image, if available.
-    */
-   // Not URI as some providers put non-uri data in, such as riverbed.
-   public abstract List<String> eula();
-
-   public static OSImage create(final String name, final String location, final String affinityGroup, final String label,
-           final String description, final String imageFamily, final String category, final Type os,
-           final String publisherName, final URI mediaLink, final int logicalSizeInGB, final List<String> eula) {
-
-      return new AutoValue_OSImage(name, location, affinityGroup, label, description, imageFamily, category, os,
-              publisherName, mediaLink, logicalSizeInGB, copyOf(eula));
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSImageParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSImageParams.java
deleted file mode 100644
index 6c85696..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSImageParams.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.domain;
-
-import java.net.URI;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * To create a new operating system image.
- */
-@AutoValue
-public abstract class OSImageParams {
-
-   OSImageParams() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies a name that is used to identify the image when you create a Virtual Machine.
-    */
-   public abstract String name();
-
-   /**
-    * Specifies the friendly name of the image.
-    */
-   public abstract String label();
-
-   /**
-    * Specifies the location of the vhd file for the image.
-    */
-   public abstract URI mediaLink();
-
-   /**
-    * {@link OSImage#os() Os type} of the image.
-    */
-   public abstract OSImage.Type os();
-
-   public Builder toBuilder() {
-      return builder().fromImageParams(this);
-   }
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public static final class Builder {
-
-      private String name;
-
-      private String label;
-
-      private URI mediaLink;
-
-      private OSImage.Type os;
-
-      public Builder name(final String name) {
-         this.name = name;
-         return this;
-      }
-
-      public Builder label(final String label) {
-         this.label = label;
-         return this;
-      }
-
-      public Builder mediaLink(final URI mediaLink) {
-         this.mediaLink = mediaLink;
-         return this;
-      }
-
-      public Builder os(final OSImage.Type os) {
-         this.os = os;
-         return this;
-      }
-
-      public OSImageParams build() {
-         return OSImageParams.create(name, label, mediaLink, os);
-      }
-
-      public Builder fromImageParams(final OSImageParams in) {
-         return name(in.name())
-                 .label(in.label())
-                 .mediaLink(in.mediaLink())
-                 .os(in.os());
-      }
-   }
-
-   private static OSImageParams create(
-           final String name, final String label, final URI mediaLink, final OSImage.Type os) {
-
-      return new AutoValue_OSImageParams(name, label, mediaLink, os);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Operation.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Operation.java
deleted file mode 100644
index aefa470..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Operation.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-/**
- *
- * Determines whether the asynchronous operation has succeeded, failed, or is still in progress.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460783" >api</a>
- */
-@AutoValue
-public abstract class Operation {
-
-   public enum Status {
-
-      IN_PROGRESS,
-      SUCCEEDED,
-      FAILED,
-      UNRECOGNIZED;
-
-      public static Status fromString(final String text) {
-         if (text != null) {
-            for (Status status : Status.values()) {
-               if (text.equalsIgnoreCase(status.name())) {
-                  return status;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   Operation() {
-   } // For AutoValue only!
-
-   public abstract String id();
-
-   public abstract Status status();
-
-   @Nullable
-   public abstract Integer httpStatusCode();
-
-   /**
-    * Present when the operation {@link Status#FAILED failed}.
-    */
-   @Nullable
-   public abstract Error error();
-
-   public static Operation create(
-           final String id, final Status status, final Integer httpStatusCode, final Error error) {
-
-      return new AutoValue_Operation(id, status, httpStatusCode, error);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Profile.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Profile.java
deleted file mode 100644
index 7d166f8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Profile.java
+++ /dev/null
@@ -1,81 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import java.util.Map;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * Traffic Maager profile.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758255.aspx" >Traffic Manager operations</a>
- */
-@AutoValue
-public abstract class Profile {
-
-   Profile() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies the domain name, as specified during the creation of the profile.
-    *
-    * @return domain nae.
-    */
-   public abstract String domain();
-
-   /**
-    * Specifies the profile name.
-    *
-    * @return profile name.
-    */
-   public abstract String name();
-
-   /**
-    * Indicates whether a definition of the specified profile is enabled or disabled in Azure Traffic Manager. Possible
-    * values are: Enabled, Disabled.
-    *
-    * @return profile definition status.
-    */
-   public abstract ProfileDefinition.Status status();
-
-   /**
-    * Specifies the version of the enabled definition. This value is always 1.
-    *
-    * @return version.
-    */
-   @Nullable
-   public abstract String version();
-
-   /**
-    * Specifies the definition for the specified profile, along with the status. Only one definition version exists for
-    * a profile.
-    *
-    * @return profile definitions in terms of version-status pairs;
-    */
-   public abstract Map<String, ProfileDefinition.Status> definitions();
-
-   public static Profile create(
-           final String domain,
-           final String name,
-           final ProfileDefinition.Status status,
-           final String version,
-           final Map<String, ProfileDefinition.Status> definitions) {
-
-      return new AutoValue_Profile(domain, name, status, version, definitions);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinition.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinition.java
deleted file mode 100644
index df0190f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinition.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-import java.util.List;
-
-/**
- * Cloud service certifcate.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee795178.aspx" >ServiceCertificate</a>
- */
-@AutoValue
-public abstract class ProfileDefinition {
-
-   public static enum Status {
-
-      UNRECOGNIZED(""),
-      ENABLED("Enabled"),
-      DISABLED("Disabled");
-
-      private final String value;
-
-      private Status(final String value) {
-         this.value = value;
-      }
-
-      public static Status fromString(final String value) {
-         for (Status status : Status.values()) {
-            if (status.value.equalsIgnoreCase(value)) {
-               return status;
-            }
-         }
-         return UNRECOGNIZED;
-      }
-
-      public String getValue() {
-         return value;
-      }
-   }
-
-   public static enum LBMethod {
-
-      UNRECOGNIZED(""),
-      PERFORMANCE("Performance"),
-      FAILOVER("Failover"),
-      ROUNDROBIN("RoundRobin");
-
-      private final String value;
-
-      private LBMethod(final String value) {
-         this.value = value;
-      }
-
-      public static LBMethod fromString(final String value) {
-         for (LBMethod lb : LBMethod.values()) {
-            if (lb.value.equalsIgnoreCase(value)) {
-               return lb;
-            }
-         }
-         return UNRECOGNIZED;
-      }
-
-      public String getValue() {
-         return value;
-      }
-   }
-
-   public static enum Protocol {
-
-      UNRECOGNIZED, HTTP, HTTPS;
-
-      public static Protocol fromString(final String value) {
-         for (Protocol protocol : Protocol.values()) {
-            if (protocol.name().equalsIgnoreCase(value)) {
-               return protocol;
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   public static enum HealthStatus {
-
-      UNRECOGNIZED(""),
-      ONLINE("Online"),
-      DEGRADED("Degraded"),
-      INACTIVE("Inactive"),
-      DISABLED("Disabled"),
-      STOPPED("Stopped"),
-      CHECKINGENDPOINT("CheckingEndpoint");
-
-      private final String value;
-
-      private HealthStatus(final String value) {
-         this.value = value;
-      }
-
-      public static HealthStatus fromString(final String value) {
-         for (HealthStatus status : HealthStatus.values()) {
-            if (status.value.equalsIgnoreCase(value)) {
-               return status;
-            }
-         }
-         return UNRECOGNIZED;
-      }
-
-      public String getValue() {
-         return value;
-      }
-   }
-
-   ProfileDefinition() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies the DNS Time-To-Live (TTL) that informs the Local DNS resolvers how long to cache DNS entries. The value
-    * is an integer from 30 through 999,999.
-    *
-    * @return DNS cache Time-To-Live (TTL)
-    */
-   public abstract int ttl();
-
-   /**
-    * Indicates whether this definition is enabled or disabled for the profile. Possible values are: Enabled, Disabled.
-    *
-    * @return profile definition status.
-    */
-   public abstract Status status();
-
-   /**
-    * Specifies the version of the definition. This value is always 1.
-    *
-    * @return version.
-    */
-   public abstract String version();
-
-   /**
-    * Encapsulates the list of Azure Traffic Manager endpoint monitors. You have to define just 1 monitor in the list.
-    *
-    * @return profile definition monitors;
-    */
-   public abstract List<ProfileDefinitionMonitor> monitors();
-
-   /**
-    * Specifies the load balancing method to use to distribute connection. Possible values are: Performance, Failover,
-    * RoundRobin
-    *
-    * @return load balancing method..
-    */
-   public abstract LBMethod lb();
-
-   /**
-    * Encapsulates the list of Azure Traffic Manager endpoints. You can define up to 100 endpoints in the list.
-    *
-    * @return endpoints.
-    * @see EndpointParams
-    */
-   public abstract List<ProfileDefinitionEndpoint> endpoints();
-
-   /**
-    * When defined as part of a policy, indicates the health status for the overall load balancing policy. Possible
-    * values are: Online, Degraded, Inactive, Disabled, CheckingEndpoints.
-    *
-    * When defined as part of an endpoint, indicates the health status for the endpoint. Possible values are: Online,
-    * Degraded, Inactive, Disabled, Stopped, CheckingEndpoint.
-    *
-    * @return endpoint health status.
-    */
-   public abstract ProfileDefinition.HealthStatus healthStatus();
-
-   public static ProfileDefinition create(
-           final int ttl,
-           final Status status,
-           final String version,
-           final List<ProfileDefinitionMonitor> monitors,
-           final LBMethod lb,
-           final List<ProfileDefinitionEndpoint> endpoints,
-           final ProfileDefinition.HealthStatus healthStatus) {
-
-      return new AutoValue_ProfileDefinition(
-              ttl, status, version, ImmutableList.copyOf(monitors), lb, ImmutableList.copyOf(endpoints), healthStatus);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionEndpoint.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionEndpoint.java
deleted file mode 100644
index e846a79..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionEndpoint.java
+++ /dev/null
@@ -1,148 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.azurecompute.domain.ProfileDefinition.HealthStatus;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * Encapsulates the list of Azure Traffic Manager endpoints. You can define up to 100 endpoints in the list.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758257.aspx">docs</a>
- */
-@AutoValue
-public abstract class ProfileDefinitionEndpoint {
-
-   public static enum Type {
-
-      UNRECOGNIZED(""),
-      CLOUDSERVICE("CloudService"),
-      AZUREWEBSITE("AzureWebsite"),
-      ANY("Any"),
-      TRAFFICMANAGER("TrafficManager");
-
-      private final String value;
-
-      private Type(final String value) {
-         this.value = value;
-      }
-
-      public static Type fromString(final String value) {
-         for (Type type : Type.values()) {
-            if (type.value.equalsIgnoreCase(value)) {
-               return type;
-            }
-         }
-         return UNRECOGNIZED;
-      }
-
-      public String getValue() {
-         return value;
-      }
-   }
-
-   ProfileDefinitionEndpoint() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies the endpoint domain name. The value depends on endpoint type. If Type is CloudService, the value must be
-    * a fully qualified domain name (FQDN) of a cloud service that belongs to the subscription ID that owns the
-    * definition. If Type is AzureWebsite, the value must be an FQDN of an Azure web site that belongs to the
-    * subscription ID that owns the definition. If Type is Any, the value can be any FQDN for an Azure service or a
-    * service outside of Azure.
-    *
-    * @return endpoint domain name.
-    */
-   public abstract String domain();
-
-   /**
-    * Specifies the status of the monitoring endpoint. If set to Enabled, the endpoint is considered by the load
-    * balancing method and is monitored. Possible values are:Enabled, Disabled
-    *
-    * @return status of the monitoring endpoint.
-    */
-   public abstract ProfileDefinition.Status status();
-
-   /**
-    * When defined as part of a policy, indicates the health status for the overall load balancing policy. Possible
-    * values are: Online, Degraded, Inactive, Disabled, CheckingEndpoints.
-    *
-    * When defined as part of an endpoint, indicates the health status for the endpoint. Possible values are: Online,
-    * Degraded, Inactive, Disabled, Stopped, CheckingEndpoint.
-    *
-    * @return endpoint health status.
-    */
-   public abstract ProfileDefinition.HealthStatus healthStatus();
-
-   /**
-    * Optional. Specifies the type of endpoint being added to the definition. Possible values are: CloudService,
-    * AzureWebsite, Any, TrafficManager.
-    *
-    * If there is more than one AzureWebsite endpoint, they must be in different datacenters. This limitation doesn’t
-    * apply to cloud services. The default value is CloudService. Use the TrafficManager type when configuring nested
-    * profiles..
-    *
-    * @return endpoint type.
-    * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh744833.aspx">Traffic Manager Overview</a>
-    */
-   public abstract Type type();
-
-   /**
-    * Required when LoadBalancingMethod is set to Performance and Type is set to Any or TrafficManager. Specifies the
-    * name of the Azure region. The Location cannot be specified for endpoints of type CloudService or AzureWebsite, in
-    * which the locations are determined from the service.
-    *
-    * @return endpoint protocol.
-    * @see <a href="https://msdn.microsoft.com/en-us/library/gg441293.aspx">List Locations</a>
-    */
-   @Nullable
-   public abstract String location();
-
-   /**
-    * Optional. Specifies the priority of the endpoint in load balancing. The higher the weight, the more frequently the
-    * endpoint will be made available to the load balancer. The value must be greater than 0. For endpoints that do not
-    * specify a weight value, a default weight of 1 will be used.
-    *
-    * @return
-    */
-   @Nullable
-   public abstract Integer weight();
-
-   /**
-    * Optional. Can be specified when Type is set to TrafficManager. The minimum number of healthy endpoints within a
-    * nested profile that determines whether any of the endpoints within that profile can receive traffic. Default value
-    * is 1.
-    *
-    * @return minimum number of healthy endpoints.
-    */
-   @Nullable
-   public abstract Integer min();
-
-   public static ProfileDefinitionEndpoint create(
-           final String domain,
-           final ProfileDefinition.Status status,
-           final HealthStatus healthStatus,
-           final Type type,
-           final String location,
-           final Integer weight,
-           final Integer min) {
-
-      return new AutoValue_ProfileDefinitionEndpoint(
-              domain, status, healthStatus, type, location, weight, min);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionEndpointParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionEndpointParams.java
deleted file mode 100644
index 34173f9..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionEndpointParams.java
+++ /dev/null
@@ -1,180 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.azurecompute.domain.ProfileDefinition.Status;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpoint.Type;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * Encapsulates the list of Azure Traffic Manager endpoints. You can define up to 100 endpoints in the list.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758257.aspx">docs</a>
- */
-@AutoValue
-public abstract class ProfileDefinitionEndpointParams {
-
-   ProfileDefinitionEndpointParams() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies the endpoint domain name. The value depends on endpoint type. If Type is CloudService, the value must be
-    * a fully qualified domain name (FQDN) of a cloud service that belongs to the subscription ID that owns the
-    * definition. If Type is AzureWebsite, the value must be an FQDN of an Azure web site that belongs to the
-    * subscription ID that owns the definition. If Type is Any, the value can be any FQDN for an Azure service or a
-    * service outside of Azure.
-    *
-    * @return endpoint domain name.
-    */
-   public abstract String domain();
-
-   /**
-    * Specifies the status of the monitoring endpoint. If set to Enabled, the endpoint is considered by the load
-    * balancing method and is monitored. Possible values are:Enabled, Disabled
-    *
-    * @return status of the monitoring endpoint.
-    */
-   public abstract Status status();
-
-   /**
-    * Optional. Specifies the type of endpoint being added to the definition. Possible values are: CloudService,
-    * AzureWebsite, Any, TrafficManager.
-    *
-    * If there is more than one AzureWebsite endpoint, they must be in different datacenters. This limitation doesn’t
-    * apply to cloud services. The default value is CloudService. Use the TrafficManager type when configuring nested
-    * profiles..
-    *
-    * @return endpoint type.
-    * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh744833.aspx">Traffic Manager Overview</a>
-    */
-   @Nullable
-   public abstract Type type();
-
-   /**
-    * Required when LoadBalancingMethod is set to Performance and Type is set to Any or TrafficManager. Specifies the
-    * name of the Azure region. The Location cannot be specified for endpoints of type CloudService or AzureWebsite, in
-    * which the locations are determined from the service.
-    *
-    * @return endpoint protocol.
-    * @see <a href="https://msdn.microsoft.com/en-us/library/gg441293.aspx">List Locations</a>
-    */
-   @Nullable
-   public abstract String location();
-
-   /**
-    * Optional. Can be specified when Type is set to TrafficManager. The minimum number of healthy endpoints within a
-    * nested profile that determines whether any of the endpoints within that profile can receive traffic. Default value
-    * is 1.
-    *
-    * @return minimum number of healthy endpoints.
-    */
-   @Nullable
-   public abstract Integer min();
-
-   /**
-    * Optional. Specifies the priority of the endpoint in load balancing. The higher the weight, the more frequently the
-    * endpoint will be made available to the load balancer. The value must be greater than 0. For endpoints that do not
-    * specify a weight value, a default weight of 1 will be used.
-    *
-    * @return endpoint priority.
-    */
-   @Nullable
-   public abstract Integer weight();
-
-   public Builder toBuilder() {
-      return builder().fromImageParams(this);
-   }
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public static final class Builder {
-
-      private String domain;
-
-      private Status status;
-
-      private Type type;
-
-      private String location;
-
-      private Integer min;
-
-      private Integer weight;
-
-      public Builder domain(final String domain) {
-         this.domain = domain;
-         return this;
-      }
-
-      public Builder status(final Status status) {
-         this.status = status;
-         return this;
-      }
-
-      public Builder type(final Type type) {
-         this.type = type;
-         return this;
-      }
-
-      public Builder location(final String location) {
-         this.location = location;
-         return this;
-      }
-
-      public Builder min(final Integer min) {
-         this.min = min;
-         return this;
-      }
-
-      public Builder weight(final Integer weight) {
-         this.weight = weight;
-         return this;
-      }
-
-      public ProfileDefinitionEndpointParams build() {
-         return ProfileDefinitionEndpointParams.create(
-                 domain,
-                 status,
-                 type,
-                 location,
-                 min,
-                 weight);
-      }
-
-      public Builder fromImageParams(final ProfileDefinitionEndpointParams in) {
-         return domain(in.domain())
-                 .status(in.status())
-                 .type(in.type())
-                 .location(in.location())
-                 .min(in.min())
-                 .weight(in.weight());
-      }
-   }
-
-   private static ProfileDefinitionEndpointParams create(
-           final String domain,
-           final Status status,
-           final Type type,
-           final String location,
-           final Integer min,
-           final Integer weight) {
-      return new AutoValue_ProfileDefinitionEndpointParams(domain, status, type, location, min, weight);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionMonitor.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionMonitor.java
deleted file mode 100644
index 50dc800..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionMonitor.java
+++ /dev/null
@@ -1,121 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * Azure Traffic Manager endpoint monitor.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758257.aspx">docs</a>
- */
-@AutoValue
-public abstract class ProfileDefinitionMonitor {
-
-   public static final int DEFAULT_INTERVAL = 30;
-   public static final int DEFAULT_TIMEOUT = 10;
-   public static final int DEFAULT_TOLERAION = 3;
-   public static final int DEFAULT_EXPECTED = 200;
-   public static final String DEFAULT_VERB = "GET";
-
-   ProfileDefinitionMonitor() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies the number of seconds between consecutive attempts to check the status of a monitoring endpoint. The
-    * value must be set to 30.
-    *
-    * @return intervall in seconds.
-    */
-   @Nullable
-   public abstract Integer intervall();
-
-   /**
-    * Specifies the time to wait for response from the monitoring endpoint. The value must be set to 10.
-    *
-    * @return timeout in seconds.
-    */
-   @Nullable
-   public abstract Integer timeout();
-
-   /**
-    * Specifies the number of consecutive failures to probe an endpoint before taking the endpoint out of rotation. The
-    * value must be set to 3.
-    *
-    * @return tolerated number of failures.
-    */
-   @Nullable
-   public abstract Integer toleration();
-
-   /**
-    * Specifies the protocol to use to monitor endpoint health. Possible values are: HTTP, HTTPS.
-    *
-    * @return endpoint protocol.
-    */
-   public abstract ProfileDefinition.Protocol protocol();
-
-   /**
-    * Specifies the port used to monitor endpoint health. Accepted values are integer values greater than 0 and less or
-    * equal to 65,535.
-    *
-    * @return endpoint port.
-    */
-   public abstract int port();
-
-   /**
-    * Specifies the verb to use when making an HTTP request to monitor endpoint health. The value must be set to GET.
-    *
-    * @return verb to use when making an HTTP request.
-    */
-   @Nullable
-   public abstract String verb();
-
-   /**
-    * Specifies the path relative to the endpoint domain name to probe for health state. Restrictions are: The path must
-    * be from 1 through 1000 characters. It must start with a forward slash /. It must contain no brackets &lt;&gt;. It
-    * must contain no double slashes //. It must be a well-formed URI string.
-    *
-    * @return endpoint relative path.
-    * @see <a href="https://msdn.microsoft.com/en-us/library/system.uri.iswellformeduristring.aspx">
-    * Uri.IsWellFormedUriString Method</a>
-    */
-   public abstract String path();
-
-   /**
-    * Specifies the HTTP status code expected from a healthy endpoint. The endpoint is considered unhealthy otherwise.
-    * The value must be set to 200.
-    *
-    * @return expected status code.
-    */
-   @Nullable
-   public abstract Integer expected();
-
-   public static ProfileDefinitionMonitor create(
-           final Integer intervall,
-           final Integer timeout,
-           final Integer toleration,
-           final ProfileDefinition.Protocol protocol,
-           final int port,
-           final String verb,
-           final String path,
-           final Integer expected) {
-
-      return new AutoValue_ProfileDefinitionMonitor(
-              intervall, timeout, toleration, protocol, port, verb, path, expected);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionParams.java
deleted file mode 100644
index fdd8b20..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionParams.java
+++ /dev/null
@@ -1,161 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import java.util.List;
-import org.jclouds.azurecompute.domain.ProfileDefinition.LBMethod;
-import org.jclouds.azurecompute.domain.ProfileDefinition.Protocol;
-
-/**
- * The Create Definition operation creates a new definition for a specified profile. This definition will be assigned a
- * version number by the service. For more information about creating a profile, see Create Profile.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758257.aspx">docs</a>
- */
-@AutoValue
-public abstract class ProfileDefinitionParams {
-
-   ProfileDefinitionParams() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies the DNS Time-To-Live (TTL) that informs the Local DNS resolvers how long to cache DNS entries. The value
-    * is an integer from 30 through 999,999.
-    *
-    * @return DNS cache Time-To-Live (TTL)
-    */
-   public abstract Integer ttl();
-
-   /**
-    * Specifies the protocol to use to monitor endpoint health. Possible values are: HTTP, HTTPS.
-    *
-    * @return endpoint protocol.
-    */
-   public abstract Protocol protocol();
-
-   /**
-    * Specifies the port used to monitor endpoint health. Accepted values are integer values greater than 0 and less or
-    * equal to 65,535.
-    *
-    * @return endpoint port.
-    */
-   public abstract Integer port();
-
-   /**
-    * Specifies the path relative to the endpoint domain name to probe for health state. Restrictions are: The path must
-    * be from 1 through 1000 characters. It must start with a forward slash /. It must contain no brackets &lt;&gt;. It
-    * must contain no double slashes //. It must be a well-formed URI string.
-    *
-    * @return endpoint relative path.
-    * @see <a href="https://msdn.microsoft.com/en-us/library/system.uri.iswellformeduristring.aspx">
-    * Uri.IsWellFormedUriString Method</a>
-    */
-   public abstract String path();
-
-   /**
-    * Specifies the load balancing method to use to distribute connection. Possible values are: Performance, Failover,
-    * RoundRobin
-    *
-    * @return load balancing method..
-    */
-   public abstract LBMethod lb();
-
-   /**
-    * Encapsulates the list of Azure Traffic Manager endpoints. You can define up to 100 endpoints in the list.
-    *
-    * @return endpoints.
-    * @see ProfileDefinitionEndpointParams
-    */
-   public abstract List<ProfileDefinitionEndpointParams> endpoints();
-
-   public Builder toBuilder() {
-      return builder().fromImageParams(this);
-   }
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public static final class Builder {
-
-      private Integer ttl;
-
-      private Protocol protocol;
-
-      private Integer port;
-
-      private String path;
-
-      private LBMethod lb;
-
-      private List<ProfileDefinitionEndpointParams> endpoints;
-
-      public Builder ttl(final Integer ttl) {
-         this.ttl = ttl;
-         return this;
-      }
-
-      public Builder protocol(final Protocol protocol) {
-         this.protocol = protocol;
-         return this;
-      }
-
-      public Builder port(final Integer port) {
-         this.port = port;
-         return this;
-      }
-
-      public Builder path(final String path) {
-         this.path = path;
-         return this;
-      }
-
-      public Builder lb(final LBMethod lb) {
-         this.lb = lb;
-         return this;
-      }
-
-      public Builder endpoints(final List<ProfileDefinitionEndpointParams> endpoints) {
-         this.endpoints = endpoints;
-         return this;
-      }
-
-      public ProfileDefinitionParams build() {
-         return ProfileDefinitionParams.create(ttl, protocol, port, path, lb, endpoints);
-      }
-
-      public Builder fromImageParams(final ProfileDefinitionParams in) {
-         return ttl(in.ttl())
-                 .protocol(in.protocol())
-                 .port(in.port())
-                 .path(in.path())
-                 .lb(in.lb())
-                 .endpoints(in.endpoints());
-      }
-   }
-
-   private static ProfileDefinitionParams create(
-           final Integer ttl,
-           final Protocol protocol,
-           final Integer port,
-           final String path,
-           final LBMethod lb,
-           final List<ProfileDefinitionEndpointParams> endpoints) {
-      return new AutoValue_ProfileDefinitionParams(ttl, protocol, port, path, lb, endpoints);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Region.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Region.java
deleted file mode 100644
index 9ba712d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Region.java
+++ /dev/null
@@ -1,90 +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.domain;
-
-import com.google.common.base.Function;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-import java.util.Arrays;
-import java.util.Set;
-
-/**
- * Regions used in Azure.
- *
- * @see <a href="http://azure.microsoft.com/en-us/regions/">this page</a>
- */
-public enum Region {
-
-   CENTRAL_US("Central US", "US-IA"),
-   EAST_US("East US", "US-VA"),
-   EAST_US_2("East US 2", "US-VA"),
-   US_GOV_IOWA("US Gov Iowa", "US-IA"),
-   US_GOV_VIRGINIA("US Gov Virginia", "US-VA"),
-   NORTH_CENTRAL_US("North Central US", "US-IL"),
-   SOUTH_CENTRAL_US("South Central US", "US-TX"),
-   WEST_US("West US", "US-CA"),
-   NORTH_EUROPE("North Europe", "IE"),
-   WEST_EUROPE("West Europe", "NL"),
-   EAST_ASIA("East Asia", "HK"),
-   SOUTH_EAST_ASIA("Southeast Asia", "SG"),
-   JAPAN_EAST("Japan East", "JP-11"),
-   JAPAN_WEST("Japan West", "JP-27"),
-   BRAZIL_SOUTH("Brazil South", "BR"),
-   AUSTRALIA_EAST("Australia East", "AU-NSW"),
-   AUSTRALIA_SOUTH_EAST("Australia Southeast", "AU-VIC");
-
-   private final String name;
-
-   private final String iso3166Code;
-
-   Region(final String name, final String iso3166Code) {
-      this.name = name;
-      this.iso3166Code = iso3166Code;
-   }
-
-   public String getName() {
-      return name;
-   }
-
-   public String iso3166Code() {
-      return iso3166Code;
-   }
-
-   public static Region byName(final String name) {
-      Preconditions.checkNotNull(name);
-
-      Region result = null;
-      for (Region region : values()) {
-         if (name.equals(region.name)) {
-            result = region;
-         }
-      }
-
-      return result;
-   }
-
-   public static Set<String> iso3166Codes() {
-      return ImmutableSet.copyOf(Iterables.transform(Arrays.asList(values()), new Function<Region, String>() {
-
-         @Override
-         public String apply(final Region region) {
-            return region.iso3166Code;
-         }
-      }));
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ReservedIPAddress.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ReservedIPAddress.java
deleted file mode 100644
index 83ff644..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ReservedIPAddress.java
+++ /dev/null
@@ -1,152 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * In most cases, you won’t need to specify a Reserved Private IP address (RPIP) for your virtual machine. VMs in a
- * virtual network will automatically receive a private IP address from a range that you specify. But in certain cases,
- * specifying a reserved private IP address for a particular VM makes sense. For example, a VM may provide DNS services,
- * or act as a domain controller, or any othr critical role that relies on known IP address assignment. Also, if you
- * have a VM that you plan to stop and deprovision at some point, but want retain the RPIP for the VM when you provision
- * it again. An RPIP stays with the VM even through a stop/deprovision state. You can specify an RPIP by using
- * PowerShell at the time you create the VM, or you can update an existing VM.
- *
- * If you have both VMs and PaaS instances in your virtual network, you may want to separate the VMs that have static
- * DIPs from your PaaS instances by creating a separate subnet for the VMs and deploying them to that subnet. It’s not
- * only helpful for you to be able to see your static VMs in a separate subnet and know immediately which have an RPIP,
- * but for this release, it also prevents a new PaaS instance from acquiring the RPIP from a VM that is in the process
- * of being stopped/deprovisioned (not just restarted). This is a current limitation in this release for mixed VM/PaaS
- * subnets and RPIPs. This issue doesn’t happen if you deploy only VMs to the subnet, even if some of the VMs don’t have
- * an RPIP. If you’ve already deployed your VMs, you can easily move them to a new subnet to avoid this potential issue.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/dn630228.aspx" >Set a Reserved Private IP Address for a VM</a>
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn722412.aspx" >Get Reserved IP Address</a>
- */
-@AutoValue
-public abstract class ReservedIPAddress {
-
-   public static enum State {
-
-      CREATED,
-      CREATING,
-      UPDATING,
-      DELETING,
-      UNAVAILABLE,
-      UNRECOGNIZED;
-
-      public static State fromString(final String text) {
-         if (text != null) {
-            for (State state : State.values()) {
-               if (text.equalsIgnoreCase(state.name())) {
-                  return state;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   ReservedIPAddress() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies the name that is assigned to the reserved IP address.
-    *
-    * @return Reserver IP address name..
-    */
-   public abstract String name();
-
-   /**
-    * Specifies the IPv4 address that is reserved.
-    *
-    * @return IPv4 address.
-    */
-   public abstract String address();
-
-   /**
-    * Specifies the unique identifier that was generated for the reserved IP address.
-    *
-    * @return unique identifier.
-    */
-   public abstract String id();
-
-   /**
-    * Specifies a label that can be used to identify the reserved IP address. The label can be up to 100 characters long
-    * and can be used for your tracking purposes.
-    *
-    * @return label.
-    */
-   @Nullable
-   public abstract String label();
-
-   /**
-    * Specifies the state of the reserved IP address.
-    *
-    * @return state.
-    */
-   public abstract State state();
-
-   /**
-    * Indicates whether the reserved IP address is being used.
-    *
-    * @return <tt>true</tt> if in use; <tt>false</tt> otherwise.
-    */
-   @Nullable
-   public abstract Boolean inUse();
-
-   /**
-    * Specifies the name of the cloud service that is associated with the reserved IP address.
-    *
-    * @return associated cloud service name.
-    */
-   @Nullable
-   public abstract String serviceName();
-
-   /**
-    * Specifies the name of the deployment that is associated with the reserved IP address.
-    *
-    * @return associated deployment name.
-    */
-   @Nullable
-   public abstract String deploymentName();
-
-   /**
-    * Specifies the location of the reserved IP address. This is the same location as the associated cloud service.
-    *
-    * @return location.
-    */
-   public abstract String location();
-
-   public static ReservedIPAddress create(
-           final String name,
-           final String address,
-           final String id,
-           final String label,
-           final State state,
-           final Boolean inUse,
-           final String serviceName,
-           final String deploymentName,
-           final String location
-   ) {
-
-      return new AutoValue_ReservedIPAddress(
-              name, address, id, label, state, inUse, serviceName, deploymentName, location);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ReservedIPAddressParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ReservedIPAddressParams.java
deleted file mode 100644
index 9daaf12..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ReservedIPAddressParams.java
+++ /dev/null
@@ -1,104 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * The Create Reserved IP Address operation reserves an IPv4 address for the specified subscription. For more
- * information, see Reserved IP Addresses. You can use a small number of reserved IP addresses for free, but unused
- * reserved IP addresses and a number of addresses above the limit will incur charges.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn722413.aspx">Create Reserved IP Address</a>
- */
-@AutoValue
-public abstract class ReservedIPAddressParams {
-
-   ReservedIPAddressParams() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies the name for the reserved IP address.
-    *
-    * @return name.
-    */
-   public abstract String name();
-
-   /**
-    * Specifies a label for the reserved IP address. The label can be up to 100 characters long and can be used for your
-    * tracking purposes.
-    *
-    * @return label.
-    */
-   @Nullable
-   public abstract String label();
-
-   /**
-    * Specifies the location of the reserved IP address. This should be the same location that is assigned to the cloud
-    * service containing the deployment that will use the reserved IP address.
-    *
-    * @return location.
-    */
-   public abstract String location();
-
-   public Builder toBuilder() {
-      return builder().fromReservedIPAddressParams(this);
-   }
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public static final class Builder {
-
-      private String name;
-
-      private String label;
-
-      private String location;
-
-      public Builder name(final String data) {
-         this.name = data;
-         return this;
-      }
-
-      public Builder label(final String format) {
-         this.label = format;
-         return this;
-      }
-
-      public Builder location(final String password) {
-         this.location = password;
-         return this;
-      }
-
-      public ReservedIPAddressParams build() {
-         return ReservedIPAddressParams.create(name, label, location);
-      }
-
-      public Builder fromReservedIPAddressParams(final ReservedIPAddressParams in) {
-         return name(in.name())
-                 .label(in.label())
-                 .location(in.location());
-      }
-   }
-
-   private static ReservedIPAddressParams create(final String name, final String label, final String location) {
-      return new AutoValue_ReservedIPAddressParams(name, label, location);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Role.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Role.java
deleted file mode 100644
index 5c28c23..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Role.java
+++ /dev/null
@@ -1,310 +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.domain;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-import java.net.URI;
-import java.util.List;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/jj157193.aspx">Role</a>
- */
-@AutoValue
-public abstract class Role {
-
-   @AutoValue
-   public abstract static class ConfigurationSet {
-
-      @AutoValue
-      public abstract static class InputEndpoint {
-
-         @AutoValue
-         public abstract static class LoadBalancerProbe {
-
-            public abstract String path();
-
-            public abstract int port();
-
-            public abstract String protocol();
-
-            LoadBalancerProbe() { // For AutoValue only!
-            }
-
-            public static LoadBalancerProbe create(final String path, final int port, final String protocol) {
-               return new AutoValue_Role_ConfigurationSet_InputEndpoint_LoadBalancerProbe(path, port, protocol);
-            }
-         }
-
-         public abstract int localPort();
-
-         public abstract String name();
-
-         public abstract Integer port();
-
-         public abstract String protocol();
-
-         @Nullable
-         public abstract String vip();
-
-         public abstract Boolean enableDirectServerReturn();
-
-         @Nullable
-         public abstract String loadBalancerName();
-
-         @Nullable
-         public abstract LoadBalancerProbe loadBalancerProbe();
-
-         @Nullable
-         public abstract Integer idleTimeoutInMinutes();
-
-         InputEndpoint() { // For AutoValue only!
-         }
-
-         public static InputEndpoint create(
-                 final String name, final String protocol, final int localPort, final int port,
-                 final String vip, final boolean enableDirectServerReturn, final String loadBalancerName,
-                 final LoadBalancerProbe loadBalancerProbe, final Integer idleTimeoutInMinutes) {
-
-            return new AutoValue_Role_ConfigurationSet_InputEndpoint(localPort, name, port, protocol, vip,
-                    enableDirectServerReturn, loadBalancerName, loadBalancerProbe, idleTimeoutInMinutes);
-         }
-      }
-
-      @AutoValue
-      public abstract static class SubnetName {
-
-         @Nullable
-         public abstract String name();
-
-         SubnetName() { // For AutoValue only!
-         }
-
-         public static SubnetName create(final String name) {
-            return new AutoValue_Role_ConfigurationSet_SubnetName(name);
-         }
-      }
-
-      @AutoValue
-      public abstract static class PublicIP {
-
-         public abstract String name();
-
-         public abstract int idleTimeoutInMinutes();
-
-         PublicIP() { // For AutoValue only!
-         }
-
-         public static PublicIP create(final String name, final int idleTimeoutInMinutes) {
-            return new AutoValue_Role_ConfigurationSet_PublicIP(name, idleTimeoutInMinutes);
-         }
-      }
-
-      public abstract String configurationSetType();
-
-      public abstract List<InputEndpoint> inputEndpoints();
-
-      @Nullable
-      public abstract List<SubnetName> subnetNames();
-
-      @Nullable
-      public abstract String staticVirtualNetworkIPAddress();
-
-      @Nullable
-      public abstract List<PublicIP> publicIPs();
-
-      @Nullable
-      public abstract String networkSecurityGroup();
-
-      ConfigurationSet() { // For AutoValue only!
-      }
-
-      public static ConfigurationSet create(
-              final String configurationSetType, final List<InputEndpoint> inputEndpoints,
-              final List<SubnetName> subnetNames, final String staticVirtualNetworkIPAddress,
-              final List<PublicIP> publicIPs, final String networkSecurityGroup) {
-
-         return new AutoValue_Role_ConfigurationSet(configurationSetType, inputEndpoints, subnetNames,
-                 staticVirtualNetworkIPAddress, publicIPs, networkSecurityGroup);
-      }
-   }
-
-   @AutoValue
-   public abstract static class ResourceExtensionReference {
-
-      @AutoValue
-      public abstract static class ResourceExtensionParameterValue {
-
-         public abstract String key();
-
-         public abstract String value();
-
-         public abstract String type();
-
-         ResourceExtensionParameterValue() { // For AutoValue only!
-         }
-
-         public static ResourceExtensionParameterValue create(
-                 final String key, final String value, final String type) {
-
-            return new AutoValue_Role_ResourceExtensionReference_ResourceExtensionParameterValue(key, value, type);
-         }
-      }
-
-      @Nullable public abstract String referenceName();
-
-      @Nullable public abstract String publisher();
-
-      @Nullable public abstract String name();
-
-      @Nullable public abstract String version();
-
-      @Nullable public abstract List<ResourceExtensionParameterValue> resourceExtensionParameterValues();
-
-      @Nullable public abstract String state();
-
-      ResourceExtensionReference() { // For AutoValue only!
-      }
-
-      public static ResourceExtensionReference create(
-              final String referenceName, final String publisher, final String name, final String version,
-              final List<ResourceExtensionParameterValue> resourceExtensionParameterValues, final String state) {
-
-         return new AutoValue_Role_ResourceExtensionReference(referenceName, publisher, name, version,
-                 resourceExtensionParameterValues, state);
-      }
-   }
-
-   @AutoValue
-   public abstract static class OSVirtualHardDisk {
-
-      public abstract String hostCaching();
-
-      public abstract String diskName();
-
-      @Nullable
-      public abstract Integer lun();
-
-      @Nullable
-      public abstract Integer logicalDiskSizeInGB();
-
-      public abstract URI mediaLink();
-
-      @Nullable
-      public abstract String sourceImageName();
-
-      public abstract OSImage.Type os();
-
-      OSVirtualHardDisk() { // For AutoValue only!
-      }
-
-      public static OSVirtualHardDisk create(final String hostCaching, final String diskName, final Integer lun,
-              final Integer logicalDiskSizeInGB, final URI mediaLink, final String sourceImageName,
-              final OSImage.Type os) {
-
-         return new AutoValue_Role_OSVirtualHardDisk(hostCaching, diskName, lun, logicalDiskSizeInGB, mediaLink,
-                 sourceImageName, os);
-      }
-   }
-
-   /**
-    * Represents the name of the Virtual Machine.
-    */
-   public abstract String roleName();
-
-   /**
-    * Specifies the type of role that is used. For Virtual Machines, this must be PersistentVMRole.
-    */
-   public abstract String roleType();
-
-   /**
-    * Specifies the name of the VM Image that was used to create the Virtual Machine.
-    */
-   @Nullable
-   public abstract String vmImage();
-
-   /**
-    * Specifies the path to the VHD files that are associated with the VM Image.
-    */
-   @Nullable
-   public abstract String mediaLocation();
-
-   /**
-    * Contains a collection of configuration sets that define system and application settings.
-    */
-   public abstract List<ConfigurationSet> configurationSets();
-
-   /**
-    * Optional. Contains a collection of resource extensions that are installed on the Virtual Machine. This element is
-    * used if ProvisionGuestAgent is set to true.
-    */
-   @Nullable
-   public abstract List<ResourceExtensionReference> resourceExtensionReferences();
-
-   /**
-    * Specifies the name of a collection of Virtual Machines. Virtual Machines specified in the same availability set
-    * are allocated to different nodes to maximize availability.
-    */
-   @Nullable
-   public abstract String availabilitySetName();
-
-   /**
-    * Contains the parameters that were used to add a data disk to a Virtual Machine.
-    */
-   @Nullable
-   public abstract List<DataVirtualHardDisk> dataVirtualHardDisks();
-
-   /**
-    * Contains the parameters that were used to create the operating system disk for a Virtual Machine.
-    */
-   public abstract OSVirtualHardDisk osVirtualHardDisk();
-
-   /**
-    * Specifies the size of the Virtual Machine.
-    */
-   public abstract RoleSize.Type roleSize();
-
-   /**
-    * Optional. Indicates whether the VM Agent is installed on the Virtual Machine. To run a resource extension in a
-    * Virtual Machine, this service must be installed.
-    *
-    * @return true or false
-    */
-   @Nullable
-   public abstract Boolean provisionGuestAgent();
-
-   /**
-    * Specifies the read-only thumbprint of the certificate that is used with the HTTPS listener for WinRM.
-    */
-   @Nullable
-   public abstract String defaultWinRmCertificateThumbprint();
-
-   public static Role create(final String roleName, final String roleType, final String vmImage,
-           final String mediaLocation, final List<ConfigurationSet> configurationSets,
-           final List<ResourceExtensionReference> resourceExtensionReferences,
-           final String availabilitySetName, final List<DataVirtualHardDisk> dataVirtualHardDisks,
-           final OSVirtualHardDisk osVirtualHardDisk, final RoleSize.Type roleSize, final Boolean provisionGuestAgent,
-           final String defaultWinRmCertificateThumbprint) {
-
-      return new AutoValue_Role(roleName, roleType, vmImage, mediaLocation, copyOf(configurationSets),
-              copyOf(resourceExtensionReferences), availabilitySetName, copyOf(dataVirtualHardDisks),
-              osVirtualHardDisk, roleSize, provisionGuestAgent, defaultWinRmCertificateThumbprint);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/RoleSize.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/RoleSize.java
deleted file mode 100644
index 3b6290e..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/RoleSize.java
+++ /dev/null
@@ -1,161 +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.domain;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * A Role Size that is available in a given subscription.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn469422.aspx" >api</a>
- */
-@AutoValue
-public abstract class RoleSize {
-
-   public enum Type {
-
-      BASIC_A0("Basic_A0"),
-      BASIC_A1("Basic_A1"),
-      BASIC_A2("Basic_A2"),
-      BASIC_A3("Basic_A3"),
-      BASIC_A4("Basic_A4"),
-      A0("A0"),
-      A1("A1"),
-      A2("A2"),
-      A3("A3"),
-      A4("A4"),
-      A5("A5"),
-      A6("A6"),
-      A7("A7"),
-      A8("A8"),
-      A9("A9"),
-      A10("A10"),
-      A11("A11"),
-      STANDARD_A0("Standard_A0"),
-      STANDARD_A1("Standard_A1"),
-      STANDARD_A2("Standard_A2"),
-      STANDARD_A3("Standard_A3"),
-      STANDARD_A4("Standard_A4"),
-      STANDARD_A5("Standard_A5"),
-      STANDARD_A6("Standard_A6"),
-      STANDARD_A7("Standard_A7"),
-      STANDARD_A8("Standard_A8"),
-      STANDARD_A9("Standard_A9"),
-      STANDARD_D1("Standard_D1"),
-      STANDARD_D2("Standard_D2"),
-      STANDARD_D3("Standard_D3"),
-      STANDARD_D4("Standard_D4"),
-      STANDARD_D11("Standard_D11"),
-      STANDARD_D12("Standard_D12"),
-      STANDARD_D13("Standard_D13"),
-      STANDARD_D14("Standard_D14"),
-      STANDARD_G1("Standard_G1"),
-      STANDARD_G2("Standard_G2"),
-      STANDARD_G3("Standard_G3"),
-      STANDARD_G4("Standard_G4"),
-      STANDARD_G5("Standard_G5"),
-      EXTRASMALL("ExtraSmall"),
-      SMALL("Small"),
-      MEDIUM("Medium"),
-      LARGE("Large"),
-      EXTRALARGE("ExtraLarge"),
-      UNRECOGNIZED("UNRECOGNIZED");
-
-      private final String text;
-
-      Type(final String text) {
-         this.text = text;
-      }
-
-      public String getText() {
-         return this.text;
-      }
-
-      public static Type fromString(final String text) {
-         if (text != null) {
-            for (Type type : Type.values()) {
-               if (text.equalsIgnoreCase(type.text)) {
-                  return type;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   RoleSize() {
-   } // For AutoValue only!
-
-   /**
-    * The name of the role size.
-    */
-   public abstract Type name();
-
-   /**
-    * The description of the role size.
-    */
-   @Nullable
-   public abstract String label();
-
-   /**
-    * The number of cores that are available in the role size.
-    */
-   public abstract Integer cores();
-
-   /**
-    * The amount of memory that is available in the role size.
-    */
-   public abstract Integer memoryInMb();
-
-   /**
-    * Indicates whether the role size supports web roles or worker roles.
-    */
-   public abstract Boolean supportedByWebWorkerRoles();
-
-   /**
-    * Indicates whether the role size supports Virtual Machines.
-    */
-   public abstract Boolean supportedByVirtualMachines();
-
-   /**
-    * The maximum number of data disks that can be attached to the role.
-    */
-   public abstract Integer maxDataDiskCount();
-
-   /**
-    * The size of the resource disk for a web role or worker role.
-    */
-   public abstract Integer webWorkerResourceDiskSizeInMb();
-
-   /**
-    * The size of the resource disk for a Virtual Machine.
-    */
-   public abstract Integer virtualMachineResourceDiskSizeInMb();
-
-   public static RoleSize create(final Type name, final String label, final Integer cores,
-           final Integer memoryInMb, final Boolean supportedByWebWorkerRoles,
-           final Boolean supportedByVirtualMachines, final Integer maxDataDiskCount,
-           final Integer webWorkerResourceDiskSizeInMb, final Integer virtualMachineResourceDiskSizeInMb) {
-
-      return new AutoValue_RoleSize(name, label, cores, memoryInMb,
-              supportedByWebWorkerRoles, supportedByVirtualMachines, maxDataDiskCount, webWorkerResourceDiskSizeInMb,
-              virtualMachineResourceDiskSizeInMb);
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Rule.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Rule.java
deleted file mode 100644
index a58cb3b..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Rule.java
+++ /dev/null
@@ -1,146 +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.domain;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class Rule {
-
-   public enum Action {
-
-      Allow,
-      Deny,
-      UNRECOGNIZED;
-
-      public static Action fromString(final String text) {
-         if (text != null) {
-            for (Action action : Action.values()) {
-               if (text.equalsIgnoreCase(action.name())) {
-                  return action;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   public enum Type {
-
-      Inbound,
-      Outbound,
-      UNRECOGNIZED;
-
-      public static Type fromString(final String text) {
-         if (text != null) {
-            for (Type type : Type.values()) {
-               if (text.equalsIgnoreCase(type.name())) {
-                  return type;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   public enum Protocol {
-
-      TCP("TCP"),
-      UDP("UDP"),
-      ALL("*"),
-      UNRECOGNIZED("");
-
-      private final String value;
-
-      Protocol(final String value) {
-         this.value = value;
-      }
-
-      public static Protocol fromString(final String text) {
-         if (text != null) {
-            for (Protocol protocol : Protocol.values()) {
-               if (text.equalsIgnoreCase(protocol.value)) {
-                  return protocol;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-
-      public String getValue() {
-         return value;
-      }
-   }
-
-   public abstract String name();
-
-   public abstract Type type();
-
-   public abstract String priority();
-
-   public abstract Action action();
-
-   public abstract String sourceAddressPrefix();
-
-   public abstract String sourcePortRange();
-
-   public abstract String destinationAddressPrefix();
-
-   public abstract String destinationPortRange();
-
-   public abstract Protocol protocol();
-
-   public abstract String state();
-
-   @Nullable
-   public abstract Boolean isDefault();
-
-   Rule() {
-   } // For AutoValue only!
-
-   /**
-    * Use this method to create a new rule to be added to a network security group.
-    * @param name
-    * @param type
-    * @param priority
-    * @param action
-    * @param sourceAddressPrefix
-    * @param sourcePortRange
-    * @param destinationAddressPrefix
-    * @param destinationPortRange
-    * @param protocol
-    * @return 
-    */
-   public static Rule create(final String name, final Type type, final String priority, final Action action,
-           final String sourceAddressPrefix, final String sourcePortRange, final String destinationAddressPrefix,
-           final String destinationPortRange, final Protocol protocol) {
-
-      return new AutoValue_Rule(name, type, priority, action, sourceAddressPrefix, sourcePortRange,
-              destinationAddressPrefix, destinationPortRange, protocol, "Active", null);
-   }
-
-   public static Rule create(final String name, final Type type, final String priority, final Action action,
-           final String sourceAddressPrefix, final String sourcePortRange, final String destinationAddressPrefix,
-           final String destinationPortRange, final Protocol protocol, final String state, final Boolean isDefault) {
-
-      return new AutoValue_Rule(name, type, priority, action, sourceAddressPrefix, sourcePortRange,
-              destinationAddressPrefix, destinationPortRange, protocol, state, isDefault);
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ServiceCertificate.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ServiceCertificate.java
deleted file mode 100644
index 1fe0081..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ServiceCertificate.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.domain;
-
-import com.google.auto.value.AutoValue;
-import java.net.URI;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * Cloud service certifcate.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee795178.aspx" >ServiceCertificate</a>
- */
-@AutoValue
-public abstract class ServiceCertificate {
-
-   ServiceCertificate() {
-   } // For AutoValue only!
-
-   /**
-    * The Service Management API request URI used to perform Get Service Certificate requests against the certificate
-    * store.
-    *
-    * @return service certificate URL.
-    */
-   @Nullable
-   public abstract URI url();
-
-   /**
-    * The X509 certificate thumb print property of the service certificate.
-    *
-    * @return thumbprint of the service certificate.
-    */
-   @Nullable
-   public abstract String thumbprint();
-
-   /**
-    * The algorithm that was used to hash the service certificate. Currently SHA-1 is the only supported algorithm.
-    *
-    * @return thumbprint algorithm of the service certificate.
-    */
-   @Nullable
-   public abstract String thumbprintAlgorithm();
-
-   /**
-    * The public part of the service certificate as a base-64 encoded .cer file.
-    *
-    * @return base-64 encoded certificate.
-    */
-   public abstract String data();
-
-   public static ServiceCertificate create(
-           final URI url,
-           final String thumbprint,
-           final String thumbprintAlgorithm,
-           final String data) {
-
-      return new AutoValue_ServiceCertificate(url, thumbprint, thumbprintAlgorithm, data);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ServiceCertificateParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ServiceCertificateParams.java
deleted file mode 100644
index b739a7e..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ServiceCertificateParams.java
+++ /dev/null
@@ -1,100 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * To create a new service certifcate.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee460817.aspx">docs</a>
- */
-@AutoValue
-public abstract class ServiceCertificateParams {
-
-   ServiceCertificateParams() {
-   } // For AutoValue only!
-
-   /**
-    * The public part of the service certificate as a base-64 encoded .cer file.
-    *
-    * @return base-64 encoded certificate.
-    */
-   public abstract String data();
-
-   /**
-    * Required. Specifies the format of the service certificate. Possible values are: pfx, cer.
-    *
-    * @return certificate format.
-    */
-   public abstract String format();
-
-   /**
-    * Specifies the password for a .pfx certificate. A .cer certificate does not require a password.
-    *
-    * @return certificate password.
-    */
-   @Nullable
-   public abstract String password();
-
-   public Builder toBuilder() {
-      return builder().fromServiceCertificateParams(this);
-   }
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public static final class Builder {
-
-      private String data;
-
-      private String format;
-
-      private String password;
-
-      public Builder data(final String data) {
-         this.data = data;
-         return this;
-      }
-
-      public Builder format(final String format) {
-         this.format = format;
-         return this;
-      }
-
-      public Builder password(final String password) {
-         this.password = password;
-         return this;
-      }
-
-      public ServiceCertificateParams build() {
-         return ServiceCertificateParams.create(data, format, password);
-      }
-
-      public Builder fromServiceCertificateParams(final ServiceCertificateParams in) {
-         return data(in.data())
-                 .format(in.format())
-                 .password(in.password());
-      }
-   }
-
-   private static ServiceCertificateParams create(final String data, final String format, final String password) {
-      return new AutoValue_ServiceCertificateParams(data, format, password);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/StorageService.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/StorageService.java
deleted file mode 100644
index 701ec2c..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/StorageService.java
+++ /dev/null
@@ -1,243 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import java.net.URL;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import org.jclouds.javax.annotation.Nullable;
-
-@AutoValue
-public abstract class StorageService {
-
-   public enum AccountType {
-
-      Standard_LRS,
-      Standard_ZRS,
-      Standard_GRS,
-      Standard_RAGRS,
-      Premium_LRS,
-      UNRECOGNIZED;
-
-      public static AccountType fromString(final String text) {
-         if (text != null) {
-            for (AccountType type : AccountType.values()) {
-               if (text.equalsIgnoreCase(type.name())) {
-                  return type;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   public enum RegionStatus {
-
-      Available,
-      Unavailable,
-      UNRECOGNIZED;
-
-      public static RegionStatus fromString(final String text) {
-         if (text != null) {
-            for (RegionStatus status : RegionStatus.values()) {
-               if (text.equalsIgnoreCase(status.name())) {
-                  return status;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-
-   }
-
-   public enum Status {
-
-      Creating,
-      Created,
-      Deleting,
-      Deleted,
-      Changing,
-      ResolvingDns,
-      UNRECOGNIZED;
-
-      public static Status fromString(final String text) {
-         if (text != null) {
-            for (Status status : Status.values()) {
-               if (text.equalsIgnoreCase(status.name())) {
-                  return status;
-               }
-            }
-         }
-         return UNRECOGNIZED;
-      }
-   }
-
-   @AutoValue
-   public abstract static class StorageServiceProperties {
-
-      StorageServiceProperties() {
-      } // For AutoValue only!
-
-      /**
-       * A description for the storage account. The description can be up to 1024 characters in length.
-       */
-      @Nullable
-      public abstract String description();
-
-      /**
-       * Required if Location is not specified. The name of an existing affinity group associated with this
-       * subscription.
-       */
-      @Nullable
-      public abstract String affinityGroup();
-
-      /**
-       * Required if AffinityGroup is not specified. The location where the storage account will be created.
-       */
-      @Nullable
-      public abstract String location();
-
-      /**
-       * A name for the hosted service that is base-64 encoded. The name can be up to 100 characters in length. The name
-       * can be used identify the storage account for your tracking purposes
-       */
-      public abstract String label();
-
-      /**
-       * The status of the storage account.
-       */
-      public abstract Status status();
-
-      /**
-       * Specifies the endpoints of the storage account.
-       */
-      @Nullable
-      public abstract List<URL> endpoints();
-
-      /**
-       * Indicates the primary geographical region in which the storage account exists at this time.
-       */
-      @Nullable
-      public abstract String geoPrimaryRegion();
-
-      /**
-       * Indicates whether the primary storage region is available.
-       */
-      @Nullable
-      public abstract RegionStatus statusOfPrimary();
-
-      /**
-       * A timestamp that indicates the most recent instance of a failover to the secondary region. In case of multiple
-       * failovers only the latest failover date and time maintained
-       */
-      @Nullable
-      public abstract Date lastGeoFailoverTime();
-
-      /**
-       * Indicates the geographical region in which the storage account is being replicated.
-       */
-      @Nullable
-      public abstract String geoSecondaryRegion();
-
-      /**
-       * Indicates whether the secondary storage region is available.
-       */
-      @Nullable
-      public abstract RegionStatus statusOfSecondary();
-
-      /**
-       * Specifies the time that the storage account was created.
-       */
-      public abstract Date creationTime();
-
-      /**
-       * Specifies the custom domains that are associated with the storage account.
-       */
-      @Nullable
-      public abstract List<String> customDomains();
-
-      /**
-       * Specifies the secondary endpoints of the storage account.
-       */
-      @Nullable
-      public abstract List<URL> secondaryEndpoints();
-
-      /**
-       * Specifies whether the account supports locally-redundant storage, geo-redundant storage, zone-redundant
-       * storage, or read access geo-redundant storage.
-       */
-      public abstract AccountType accountType();
-
-      public static StorageServiceProperties create(final String description, final String affinityGroup,
-              final String location, final String label, final Status status, final List<URL> endpoints,
-              final String geoPrimaryRegion, final RegionStatus statusOfPrimary,
-              final Date lastGeoFailoverTime, final String geoSecondaryRegion, final RegionStatus statusOfSecondary,
-              final Date creationTime, final List<String> customDomains, final List<URL> secondaryEndpoints,
-              final AccountType accountType) {
-
-         return new AutoValue_StorageService_StorageServiceProperties(description, affinityGroup, location,
-                 label, status, endpoints == null ? null : ImmutableList.copyOf(endpoints),
-                 geoPrimaryRegion, statusOfPrimary, lastGeoFailoverTime, geoSecondaryRegion, statusOfSecondary,
-                 creationTime, customDomains,
-                 secondaryEndpoints == null ? null : ImmutableList.copyOf(secondaryEndpoints), accountType);
-      }
-   }
-
-   StorageService() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies the URI of the storage account.
-    */
-   public abstract URL url();
-
-   /**
-    * Specifies the name of the storage account. This name is the DNS prefix name and can be used to access blobs,
-    * queues, and tables in the storage account.
-    */
-   public abstract String serviceName();
-
-   /**
-    * Specifies the properties of the storage account.
-    */
-   public abstract StorageServiceProperties storageServiceProperties();
-
-   /**
-    * Specifies the name and value of an extended property that was added to the storage account.
-    */
-   @Nullable
-   public abstract Map<String, String> extendedProperties();
-
-   /**
-    * Indicates whether the storage account is able to perform virtual machine related operations. If so, this element
-    * returns a string containing PersistentVMRole. Otherwise, this element will not be present.
-    */
-   @Nullable
-   public abstract String capability();
-
-   public static StorageService create(final URL url, final String serviceName,
-           final StorageServiceProperties storageServiceProperties, final Map<String, String> extendedProperties,
-           final String capability) {
-
-      return new AutoValue_StorageService(url, serviceName, storageServiceProperties,
-              extendedProperties == null ? null : ImmutableMap.copyOf(extendedProperties), capability);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/StorageServiceKeys.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/StorageServiceKeys.java
deleted file mode 100644
index 43f2ce0..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/StorageServiceKeys.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import java.net.URL;
-
-@AutoValue
-public abstract class StorageServiceKeys {
-
-   public enum KeyType {
-
-      Primary,
-      Secondary;
-
-   }
-
-   StorageServiceKeys() {
-   } // For AutoValue only!
-
-   /**
-    * The Service Management API request URI used to perform Get Storage Account Properties requests against the storage
-    * account.
-    */
-   public abstract URL url();
-
-   /**
-    * The primary access key for the storage account.
-    */
-   public abstract String primary();
-
-   /**
-    * The secondary access key for the storage account.
-    */
-   public abstract String secondary();
-
-   public static StorageServiceKeys create(final URL url, final String primary, final String secondary) {
-      return new AutoValue_StorageServiceKeys(url, primary, secondary);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateAffinityGroupParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateAffinityGroupParams.java
deleted file mode 100644
index 7beddb5..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateAffinityGroupParams.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.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * To update an affinity group.
- */
-@AutoValue
-public abstract class UpdateAffinityGroupParams {
-
-   UpdateAffinityGroupParams() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies the base-64-encoded identifier of the affinity group.
-    *
-    * @return the identifier of the affinity group
-    */
-   @Nullable
-   public abstract String label();
-
-   /**
-    * Specified the description of this affinity group.
-    *
-    * @return the description of this affinity group
-    */
-   @Nullable
-   public abstract String description();
-
-   public Builder toBuilder() {
-      return builder().fromUpdateAffinityGroupParams(this);
-   }
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public static final class Builder {
-
-      private String label;
-
-      private String description;
-
-      public Builder label(final String label) {
-         this.label = label;
-         return this;
-      }
-
-      public Builder description(final String description) {
-         this.description = description;
-         return this;
-      }
-
-      public UpdateAffinityGroupParams build() {
-         return UpdateAffinityGroupParams.create(label, description);
-      }
-
-      public Builder fromUpdateAffinityGroupParams(final UpdateAffinityGroupParams in) {
-         return label(in.label()).
-                 description(in.description());
-      }
-   }
-
-   private static UpdateAffinityGroupParams create(final String label, final String description) {
-      return new AutoValue_UpdateAffinityGroupParams(label, description);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateProfileParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateProfileParams.java
deleted file mode 100644
index 8fc9242..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateProfileParams.java
+++ /dev/null
@@ -1,86 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * The Create Profile operation creates a new profile for a status version, owned by the specified subscription.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758254.aspx">docs</a>
- */
-@AutoValue
-public abstract class UpdateProfileParams {
-
-   UpdateProfileParams() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies whether the profile should be enabled or disabled. If there is a currently enabled profile, it is
-    * disabled. Possible values are: Enabled, Disabled;
-    *
-    * @return profile status.
-    */
-   public abstract ProfileDefinition.Status status();
-
-   /**
-    * This element is not used.
-    *
-    * @return profile definition version.
-    */
-   @Nullable
-   public abstract String version();
-
-   public Builder toBuilder() {
-      return builder().fromImageParams(this);
-   }
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public static final class Builder {
-
-      private ProfileDefinition.Status status;
-      private String version;
-
-      public Builder status(final ProfileDefinition.Status status) {
-         this.status = status;
-         return this;
-      }
-
-      public Builder version(final String version) {
-         this.version = version;
-         return this;
-      }
-
-      public UpdateProfileParams build() {
-         return UpdateProfileParams.create(status, version);
-      }
-
-      public Builder fromImageParams(final UpdateProfileParams in) {
-         return status(in.status()).version(in.version());
-      }
-   }
-
-   private static UpdateProfileParams create(
-           final ProfileDefinition.Status status,
-           final String version) {
-      return new AutoValue_UpdateProfileParams(status, version);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateStorageServiceParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateStorageServiceParams.java
deleted file mode 100644
index e62558d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateStorageServiceParams.java
+++ /dev/null
@@ -1,190 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import java.util.List;
-import java.util.Map;
-import org.jclouds.javax.annotation.Nullable;
-
-@AutoValue
-public abstract class UpdateStorageServiceParams {
-
-   public enum AccountType {
-
-      Standard_LRS,
-      Standard_GRS,
-      Standard_RAGRS;
-
-   }
-
-   /**
-    * Specifies information about a custom domain that is associated with the storage account.
-    */
-   @AutoValue
-   public abstract static class CustomDomain {
-
-      CustomDomain() {
-      } // For AutoValue only!
-
-      /**
-       * Specifies the name of the custom domain.
-       */
-      public abstract String name();
-
-      /**
-       * Indicates whether indirect CName validation is enabled.
-       */
-      public abstract Boolean useSubDomainName();
-
-      public static CustomDomain create(final String name, final boolean useSubDomainName) {
-         return new AutoValue_UpdateStorageServiceParams_CustomDomain(name, useSubDomainName);
-      }
-   }
-
-   UpdateStorageServiceParams() {
-   } // For AutoValue only!
-
-   /**
-    * Specifies a base-64 encoded name for the storage account. The label may be up to 100 characters in length. The
-    * label can be used identify the storage account for your tracking purposes. You must specify a value for either
-    * Label or Description, or for both.
-    */
-   @Nullable
-   public abstract String label();
-
-   /**
-    * A description for the storage account. The description may be up to 1024 characters in length. You must specify a
-    * value for either Label or Description, or for both.
-    */
-   @Nullable
-   public abstract String description();
-
-   /**
-    * Enables or disables geo-replication on the specified the storage. If set to true, the data in the storage account
-    * is replicated across more than one geographic location so as to enable resilience in the face of catastrophic
-    * service loss. If set to false, geo-replication is disabled. If the element is not included in the request body,
-    * the current value is left unchanged.
-    */
-   @Nullable
-   public abstract Boolean geoReplicationEnabled();
-
-   /**
-    * Represents the name of an extended cloud service property. Each extended property must have both a defined name
-    * and value. You can have a maximum of 50 extended property name/value pairs.
-    *
-    * <p/>
-    * The maximum length of the Name element is 64 characters, only alphanumeric characters and underscores are valid in
-    * the Name, and the name must start with a letter. Each extended property value has a maximum length of 255
-    * characters.
-    */
-   @Nullable
-   public abstract Map<String, String> extendedProperties();
-
-   /**
-    * Specifies the custom domains that are associated with the storage account.
-    */
-   @Nullable
-   public abstract List<CustomDomain> customDomains();
-
-   /**
-    * Specifies whether the account supports locally-redundant storage, geo-redundant storage, or read access
-    * geo-redundant storage. Zone-redundant storage is not an option when you update a storage account.
-    */
-   @Nullable
-   public abstract AccountType accountType();
-
-   public Builder toBuilder() {
-      return builder().fromUpdateStorageServiceParams(this);
-   }
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public static final class Builder {
-
-      private String label;
-
-      private String description;
-
-      private Boolean geoReplicationEnabled;
-
-      private Map<String, String> extendedProperties;
-
-      private List<CustomDomain> customDomains;
-
-      private AccountType accountType;
-
-      public Builder label(final String label) {
-         this.label = label;
-         return this;
-      }
-
-      public Builder description(final String description) {
-         this.description = description;
-         return this;
-      }
-
-      public Builder geoReplicationEnabled(final Boolean geoReplicationEnabled) {
-         this.geoReplicationEnabled = geoReplicationEnabled;
-         return this;
-      }
-
-      public Builder extendedProperties(final Map<String, String> extendedProperties) {
-         this.extendedProperties = extendedProperties;
-         return this;
-      }
-
-      public Builder customDomains(final List<CustomDomain> customDomains) {
-         this.customDomains = customDomains;
-         return this;
-      }
-
-      public Builder accountType(final AccountType accountType) {
-         this.accountType = accountType;
-         return this;
-      }
-
-      public UpdateStorageServiceParams build() {
-         return UpdateStorageServiceParams.create(label, description,
-                 geoReplicationEnabled, extendedProperties, customDomains, accountType);
-      }
-
-      public Builder fromUpdateStorageServiceParams(final UpdateStorageServiceParams storageServiceParams) {
-         return label(storageServiceParams.label()).
-                 description(storageServiceParams.description()).
-                 geoReplicationEnabled(storageServiceParams.geoReplicationEnabled()).
-                 extendedProperties(storageServiceParams.extendedProperties()).
-                 customDomains(storageServiceParams.customDomains()).
-                 accountType(storageServiceParams.accountType());
-      }
-   }
-
-   private static UpdateStorageServiceParams create(final String label, final String description,
-           final Boolean geoReplicationEnabled,
-           final Map<String, String> extendedProperties, final List<CustomDomain> customDomains,
-           final AccountType accountType) {
-
-      return new AutoValue_UpdateStorageServiceParams(label, description, geoReplicationEnabled,
-              extendedProperties == null ? null : ImmutableMap.copyOf(extendedProperties),
-              customDomains == null ? null : ImmutableList.copyOf(customDomains),
-              accountType);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/VMImage.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/VMImage.java
deleted file mode 100644
index f7f5edf..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/VMImage.java
+++ /dev/null
@@ -1,166 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-import java.net.URI;
-import java.util.Date;
-import java.util.List;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-/**
- * OS image from the image repository
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn499770.aspx" >api</a>
- */
-@AutoValue
-public abstract class VMImage {
-
-   @AutoValue
-   public abstract static class OSDiskConfiguration {
-
-      public enum Caching {
-         READ_ONLY,
-         READ_WRITE,
-         NONE
-      }
-
-      public enum OSState {
-         GENERALIZED,
-         SPECIALIZED
-      }
-
-      /**
-       * Specifies the name of the operating system disk.
-       */
-      public abstract String name();
-
-      /**
-       * Specifies the caching behavior of the operating system disk.
-       * This setting impacts the consistency and performance of the disk.
-       * The default value is ReadWrite
-       */
-      @Nullable public abstract Caching hostCaching();
-
-      /**
-       * Specifies the state of the operating system in the image.
-       * A Virtual Machine that is fully configured and running contains a Specialized operating system.
-       * A Virtual Machine on which the Sysprep command has been run with the generalize option contains
-       * a Generalized operating system.
-       */
-      @Nullable public abstract OSState osState();
-
-      /**
-       * Specifies the operating system type of the image.
-       */
-      public abstract OSImage.Type os();
-
-      /**
-       * Specifies the location of the blob in Azure storage. The blob location belongs to a storage account in the
-       * subscription specified by the <subscription-id> value in the operation call.
-       */
-      @Nullable public abstract URI mediaLink();
-
-      /**
-       * Specifies the size, in GB, of the operating system disk
-       */
-      @Nullable public abstract Integer logicalSizeInGB();
-
-      /**
-       * This property identifies the type of the storage account for the backing VHD.
-       */
-      @Nullable public abstract String ioType();
-
-      public static OSDiskConfiguration create(String name, Caching hostCaching, OSState osState, OSImage.Type os,
-            URI mediaLink, Integer logicalDiskSizeInGB, String ioType) {
-         return new AutoValue_VMImage_OSDiskConfiguration(name, hostCaching, osState, os, mediaLink,
-               logicalDiskSizeInGB, ioType);
-      }
-
-   }
-
-   public abstract String name();
-
-   /**
-    * The name can be up to 100 characters in length. The name can be used identify the storage account for your
-    * tracking purposes.
-    */
-   public abstract String label();
-
-   /**
-    * The repository classification of image. All user images have the category "User", but
-    * categories for other images could be, for example "Canonical"
-    */
-   @Nullable public abstract String category();
-
-   @Nullable public abstract String description();
-
-   @Nullable public abstract OSDiskConfiguration osDiskConfiguration();
-
-   public abstract List<DataVirtualHardDisk> dataDiskConfiguration();
-
-   @Nullable public abstract String serviceName();
-
-   @Nullable public abstract String deploymentName();
-
-   @Nullable public abstract String roleName();
-
-   /**
-    * The geo-locations of the image, if the image is not associated with an affinity group.
-    */
-   @Nullable public abstract String location();
-
-   /**
-    * The affinity group with which this image is associated, if any.
-    */
-   @Nullable public abstract String affinityGroup();
-
-   @Nullable public abstract Date createdTime();
-
-   @Nullable public abstract Date modifiedTime();
-
-   @Nullable public abstract String language();
-
-   @Nullable public abstract String imageFamily();
-
-   @Nullable public abstract RoleSize.Type recommendedVMSize();
-
-   @Nullable public abstract Boolean isPremium();
-
-   @Nullable public abstract String eula();
-
-   @Nullable public abstract URI iconUri();
-
-   @Nullable public abstract URI smallIconUri();
-
-   @Nullable public abstract URI privacyUri();
-
-   @Nullable public abstract Date publishedDate();
-
-   public static VMImage create(String name, String label, String category, String description,
-         OSDiskConfiguration osDiskConfiguration, List<DataVirtualHardDisk> dataDiskConfiguration, String serviceName,
-         String deploymentName, String roleName, String location, String affinityGroup, Date createdTime,
-         Date modifiedTime, String language, String imageFamily, RoleSize.Type recommendedVMSize, Boolean isPremium,
-         String eula, URI iconUri, URI smallIconUri,
-         URI privacyUri, Date publishedDate) {
-      return new AutoValue_VMImage(name, label, category, description, osDiskConfiguration, copyOf(dataDiskConfiguration),
-            serviceName, deploymentName, roleName, location, affinityGroup, createdTime, modifiedTime, language,
-            imageFamily, recommendedVMSize, isPremium, eula, iconUri, smallIconUri, privacyUri, publishedDate);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/VMImageParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/VMImageParams.java
deleted file mode 100644
index 7fda79d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/VMImageParams.java
+++ /dev/null
@@ -1,246 +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.domain;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.Lists;
-import org.jclouds.javax.annotation.Nullable;
-
-import java.net.URI;
-import java.util.Collection;
-import java.util.List;
-
-/**
- * OS image from the image repository
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn499770.aspx" >api</a>
- */
-@AutoValue
-public abstract class VMImageParams {
-
-   @AutoValue
-   public abstract static class OSDiskConfigurationParams {
-
-      public enum Caching {
-         READ_ONLY,
-         READ_WRITE,
-         NONE
-      }
-
-      public enum OSState {
-         GENERALIZED,
-         SPECIALIZED
-      }
-
-      /**
-       * Specifies the name of the operating system disk.
-       */
-      @Nullable public abstract String name();
-
-      /**
-       * Specifies the caching behavior of the operating system disk.
-       * This setting impacts the consistency and performance of the disk.
-       * The default value is ReadWrite
-       */
-      @Nullable public abstract Caching hostCaching();
-
-      /**
-       * Specifies the state of the operating system in the image.
-       * A Virtual Machine that is fully configured and running contains a Specialized operating system.
-       * A Virtual Machine on which the Sysprep command has been run with the generalize option contains
-       * a Generalized operating system.
-       */
-
-      @Nullable public abstract OSState osState();
-
-      /**
-       * Specifies the operating system type of the image.
-       */
-      public abstract OSImage.Type os();
-
-      /**
-       * Specifies the location of the blob in Azure storage. The blob location belongs to a storage account in the
-       * subscription specified by the <subscription-id> value in the operation call.
-       */
-      @Nullable public abstract URI mediaLink();
-
-      /**
-       * Specifies the size, in GB, of the operating system disk
-       */
-      @Nullable public abstract Integer logicalSizeInGB();
-
-      /**
-       * This property identifies the type of the storage account for the backing VHD.
-       */
-      @Nullable public abstract String ioType();
-
-      public static OSDiskConfigurationParams OSDiskConfiguration(String name, Caching hostCaching, OSState osState,
-            OSImage.Type os, URI mediaLink, Integer logicalDiskSizeInGB, String ioType) {
-         return new AutoValue_VMImageParams_OSDiskConfigurationParams(name, hostCaching, osState, os, mediaLink,
-               logicalDiskSizeInGB, ioType);
-      }
-
-   }
-
-   @Nullable public abstract String name();
-
-   /**
-    * The name can be up to 100 characters in length. The name can be used identify the storage account for your
-    * tracking purposes.
-    */
-   @Nullable public abstract String label();
-
-   @Nullable public abstract String description();
-
-   @Nullable public abstract OSDiskConfigurationParams osDiskConfiguration();
-
-   public abstract List<DataVirtualHardDisk> dataDiskConfiguration();
-
-   @Nullable public abstract String language();
-
-   @Nullable public abstract String imageFamily();
-
-   @Nullable public abstract RoleSize.Type recommendedVMSize();
-
-   @Nullable public abstract String eula();
-
-   @Nullable public abstract URI iconUri();
-
-   @Nullable public abstract URI smallIconUri();
-
-   @Nullable public abstract URI privacyUri();
-
-   @Nullable public abstract Boolean showGui();
-
-   public Builder toBuilder() {
-      return builder().fromVMImageParams(this);
-   }
-
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public static final class Builder {
-      private String name;
-      private String label;
-      private String description;
-      private OSDiskConfigurationParams osDiskConfiguration;
-      private List<DataVirtualHardDisk> dataDiskConfiguration = Lists.newArrayList();
-      private String language;
-      private String imageFamily;
-      private RoleSize.Type recommendedVMSize;
-      private String eula;
-      private URI iconUri;
-      private URI smallIconUri;
-      private URI privacyUri;
-      private Boolean showGui;
-
-      public Builder name(String name) {
-         this.name = name;
-         return this;
-      }
-
-      public Builder label(String label) {
-         this.label = label;
-         return this;
-      }
-
-      public Builder description(String description) {
-         this.description = description;
-         return this;
-      }
-
-      public Builder osDiskConfiguration(OSDiskConfigurationParams osDiskConfig) {
-         this.osDiskConfiguration = osDiskConfig;
-         return this;
-      }
-
-      public Builder language(String language) {
-         this.language = language;
-         return this;
-      }
-
-      public Builder imageFamily(String imageFamily) {
-         this.imageFamily = imageFamily;
-         return this;
-      }
-
-      public Builder recommendedVMSize(RoleSize.Type recommendedRoleSize) {
-         this.recommendedVMSize = recommendedRoleSize;
-         return this;
-      }
-
-      public Builder showGui(Boolean showGui) {
-         this.showGui = showGui;
-         return this;
-      }
-
-      public Builder eula(String eula) {
-         this.eula = eula;
-         return this;
-      }
-
-      public Builder iconUri(URI iconUri) {
-         this.iconUri = iconUri;
-         return this;
-      }
-
-      public Builder smallIconUri(URI smallIconUri) {
-         this.smallIconUri = smallIconUri;
-         return this;
-      }
-
-      public Builder privacyUri(URI privacyUri) {
-         this.privacyUri = smallIconUri;
-         return this;
-      }
-
-      public Builder dataDiskConfiguration(DataVirtualHardDisk dataDiskConfiguration) {
-         this.dataDiskConfiguration.add(dataDiskConfiguration);
-         return this;
-      }
-
-      public Builder dataDiskConfigurations(Collection<DataVirtualHardDisk> dataDiskConfiguration) {
-         this.dataDiskConfiguration.addAll(dataDiskConfiguration);
-         return this;
-      }
-
-      public VMImageParams build() {
-         return VMImageParams
-               .create(name, label, description, osDiskConfiguration, dataDiskConfiguration, language,
-                     imageFamily, recommendedVMSize, eula, iconUri, smallIconUri, privacyUri,
-                     showGui);
-      }
-
-      public Builder fromVMImageParams(VMImageParams in) {
-         return name(in.name()).label(in.label()).description(in.description())
-               .osDiskConfiguration(in.osDiskConfiguration()).dataDiskConfigurations(in.dataDiskConfiguration())
-               .language(in.language()).imageFamily(in.imageFamily()).recommendedVMSize(in.recommendedVMSize())
-               .eula(in.eula()).iconUri(in.iconUri()).smallIconUri(in.smallIconUri()).privacyUri(in.privacyUri());
-      }
-
-   }
-
-   public static VMImageParams create(String name, String label, String description,
-         OSDiskConfigurationParams osDiskConfiguration, List<DataVirtualHardDisk> dataDiskConfiguration,
-         String language, String imageFamily, RoleSize.Type recommendedVMSize, String eula, URI iconUri,
-         URI smallIconUri, URI privacyUri, Boolean showGui) {
-      return new AutoValue_VMImageParams(name, label, description, osDiskConfiguration, dataDiskConfiguration,
-            language, imageFamily, recommendedVMSize, eula, iconUri, smallIconUri, privacyUri,
-            showGui);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/AffinityGroupApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/AffinityGroupApi.java
deleted file mode 100644
index cb11df0..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/AffinityGroupApi.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.features;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
-
-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 org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.CreateAffinityGroupParamsToXML;
-import org.jclouds.azurecompute.binders.UpdateAffinityGroupParamsToXML;
-import org.jclouds.azurecompute.domain.AffinityGroup;
-import org.jclouds.azurecompute.domain.CreateAffinityGroupParams;
-import org.jclouds.azurecompute.domain.UpdateAffinityGroupParams;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.AffinityGroupHandler;
-import org.jclouds.azurecompute.xml.ListAffinityGroupsHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing affinity groups in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/azure/ee460798">docs</a>
- */
-@Path("/affinitygroups")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(APPLICATION_XML)
-@Produces(APPLICATION_XML)
-public interface AffinityGroupApi {
-
-   /**
-    * The List Affinity Groups operation lists the affinity groups that are associated with the specified subscription.
-    *
-    * @return the affinity groups that are associated with the specified subscription
-    */
-   @Named("ListAffinityGroups")
-   @GET
-   @XMLResponseParser(ListAffinityGroupsHandler.class)
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<AffinityGroup> list();
-
-   /**
-    * The Get Affinity Group Properties operation returns the system properties that are associated with the specified
-    * affinity group.
-    *
-    * @param name name of the affinity group
-    * @return the system properties that are associated with the specified affinity group
-    */
-   @Named("GetAffinityGroup")
-   @GET
-   @Path("/{name}")
-   @XMLResponseParser(AffinityGroupHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   AffinityGroup get(@PathParam("name") String name);
-
-   /**
-    * The Create Affinity Group operation creates a new affinity group for the specified subscription.
-    *
-    * @param params the affinity group to be created
-    * @return a value that uniquely identifies a request made against the management service
-    */
-   @Named("AddAffinityGroup")
-   @POST
-   @ResponseParser(ParseRequestIdHeader.class)
-   String add(@BinderParam(CreateAffinityGroupParamsToXML.class) CreateAffinityGroupParams params);
-
-   /**
-    * The Update Affinity Group operation updates the label or the description for an affinity group in the specified
-    * subscription.
-    *
-    * @param params the affinity group to be created
-    * @return a value that uniquely identifies a request made against the management service
-    */
-   @Named("UpdateAffinityGroup")
-   @PUT
-   @Path("/{name}")
-   @ResponseParser(ParseRequestIdHeader.class)
-   String update(@PathParam("name") String name,
-           @BinderParam(UpdateAffinityGroupParamsToXML.class) UpdateAffinityGroupParams params);
-
-   /**
-    * The Delete Affinity Group operation deletes an affinity group in the specified subscription.
-    *
-    * @param name name of the affinity group
-    * @return a value that uniquely identifies a request made against the management service
-    */
-   @Named("DeleteAffinityGroup")
-   @DELETE
-   @Path("/{name}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @ResponseParser(ParseRequestIdHeader.class)
-   String delete(@PathParam("name") String name);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/CloudServiceApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/CloudServiceApi.java
deleted file mode 100644
index 5a3b1ca..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/CloudServiceApi.java
+++ /dev/null
@@ -1,151 +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.features;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
-
-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.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.CloudServiceProperties;
-import org.jclouds.azurecompute.functions.Base64EncodeLabel;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.CloudServiceHandler;
-import org.jclouds.azurecompute.xml.CloudServicePropertiesHandler;
-import org.jclouds.azurecompute.xml.ListCloudServicesHandler;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ParamParser;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.QueryParams;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing the cloud services beneath your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460812">docs</a>
- */
-@Path("/services/hostedservices")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(APPLICATION_XML)
-public interface CloudServiceApi {
-
-   /**
-    * The List Cloud Services operation lists the cloud services available under the current subscription.
-    *
-    * @return the response object
-    */
-   @Named("ListCloudServices")
-   @GET
-   @QueryParams(keys = "embed-detail", values = "true")
-   @XMLResponseParser(ListCloudServicesHandler.class)
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<CloudService> list();
-
-   /**
-    * The Create Cloud Service operation creates a new cloud service in Windows Azure.
-    *
-    * @param name A name for the cloud service that is unique within Windows Azure. This name is the DNS prefix name and
-    * can be used to access the cloud service.
-    *
-    * For example: http://name.cloudapp.net//
-    * @param label The name can be used identify the storage account for your tracking purposes. The name can be up to
-    * 100 characters in length.
-    * @param location The location where the cloud service will be created.
-    * @return the requestId to track this async request progress
-    *
-    * @see <a href="http://msdn.microsoft.com/en-us/library/ee460812">docs</a>
-    */
-   @Named("CreateCloudService")
-   @POST
-   @Produces(APPLICATION_XML)
-   @ResponseParser(ParseRequestIdHeader.class)
-   @Payload("<CreateHostedService xmlns=\"http://schemas.microsoft.com/windowsazure\">"
-           + "<ServiceName>{name}</ServiceName><Label>{label}</Label>"
-           + "<Location>{location}</Location></CreateHostedService>")
-   String createWithLabelInLocation(@PayloadParam("name") String name,
-           @PayloadParam("label") @ParamParser(Base64EncodeLabel.class) String label,
-           @PayloadParam("location") String location);
-
-   /**
-    * The Get Cloud Service Properties operation retrieves system properties for the specified cloud service. These
-    * properties include the service name and service type; the name of the affinity group to which the service belongs,
-    * or its location if it is not part of an affinity group.
-    *
-    * @param name the unique DNS Prefix value in the Windows Azure Management Portal
-    */
-   @Named("GetCloudServiceProperties")
-   @GET
-   @Path("/{name}")
-   @QueryParams(keys = "embed-detail", values = "true")
-   @XMLResponseParser(CloudServiceHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
-   CloudService get(@PathParam("name") String name);
-
-   /**
-    * The Delete Cloud Service operation deletes the specified cloud service from Windows Azure.
-    *
-    * @param name the unique DNS Prefix value in the Windows Azure Management Portal
-    *
-    * @return request id or null, if not found
-    */
-   @Named("DeleteCloudService")
-   @DELETE
-   @Path("/{name}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @ResponseParser(ParseRequestIdHeader.class)
-   String delete(@PathParam("name") String name);
-
-   /*
-   * The Get Cloud Service Properties operation retrieves properties for the specified cloud service.
-   *
-   * These properties include the following values:
-   *  The name and the description of the cloud service.
-   *
-   *  The name of the affinity group to which the cloud service belongs, or its location if it is not part of an affinity group.
-   *
-   *  The label that can be used to track the cloud service.
-   *
-   *  The date and time that the cloud service was created or modified.
-   *
-   *  If details are requested, information about deployments in the cloud service is returned.
-   *
-   * */
-
-   @Named("CloudServiceProperties")
-   @GET
-   @Path("/{name}")
-   @QueryParams(keys = "embed-detail", values = "true")
-   @XMLResponseParser(CloudServicePropertiesHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable CloudServiceProperties getProperties(@PathParam("name") String name);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/DeploymentApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/DeploymentApi.java
deleted file mode 100644
index b7afcf8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/DeploymentApi.java
+++ /dev/null
@@ -1,76 +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.features;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.DeploymentParamsToXML;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.DeploymentHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-@Path("/services/hostedservices/{serviceName}/deployments")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(MediaType.APPLICATION_XML)
-public interface DeploymentApi {
-
-   /**
-    * The Get Deployment operation returns the specified deployment from Windows Azure.
-    *
-    * @param name the unique DNS Prefix value in the Windows Azure Management Portal
-    */
-   @Named("GetDeployment")
-   @GET
-   @Path("/{name}")
-   @XMLResponseParser(DeploymentHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   Deployment get(@PathParam("name") String name);
-
-   @Named("CreateVirtualMachineDeployment")
-   @POST
-   @Produces(MediaType.APPLICATION_XML)
-   @ResponseParser(ParseRequestIdHeader.class)
-   String create(@BinderParam(DeploymentParamsToXML.class) DeploymentParams params);
-
-   /**
-    * The Delete Deployment operation deletes the specified deployment from Windows Azure.
-    *
-    * @param name the unique DNS Prefix value in the Windows Azure Management Portal
-    */
-   @Named("DeleteDeployment")
-   @DELETE
-   @Path("/{name}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @ResponseParser(ParseRequestIdHeader.class)
-   String delete(@PathParam("name") String name);
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/DiskApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/DiskApi.java
deleted file mode 100644
index 22938aa..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/DiskApi.java
+++ /dev/null
@@ -1,71 +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.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.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.domain.Disk;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListDisksHandler;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.QueryParams;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing the disks in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157188">docs</a>
- */
-@Path("/services/disks")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(MediaType.APPLICATION_XML)
-public interface DiskApi {
-
-   /**
-    * The List Disks operation retrieves a list of the disks in your image repository.
-    */
-   @Named("ListDisks")
-   @GET
-   @XMLResponseParser(ListDisksHandler.class)
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<Disk> list();
-
-   /**
-    * The Delete Disk operation deletes the specified data or operating system disk from your image repository.
-    *
-    * @return request id or null, if not found
-    */
-   @Named("DeleteDisk")
-   @DELETE
-   @Path("/{diskName}")
-   @QueryParams(keys = "comp", values = "media")
-   @Fallback(NullOnNotFoundOr404.class)
-   @ResponseParser(ParseRequestIdHeader.class)
-   String delete(@PathParam("diskName") String diskName);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/LocationApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/LocationApi.java
deleted file mode 100644
index 60a3b1a..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/LocationApi.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.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.domain.Location;
-import org.jclouds.azurecompute.xml.ListLocationsHandler;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for listing the available data center locations for a cloud service in
- * your subscription.
- * <p/>
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441299">docs</a>
- */
-@Path("/locations")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(MediaType.APPLICATION_XML)
-public interface LocationApi {
-
-   /**
-    * The List Locations operation lists all of the data center locations that are valid for your subscription.
-    */
-   @Named("ListLocations")
-   @GET
-   @XMLResponseParser(ListLocationsHandler.class)
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<Location> list();
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApi.java
deleted file mode 100644
index d709831..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApi.java
+++ /dev/null
@@ -1,215 +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.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.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.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.NetworkSecurityGroupToXML;
-import org.jclouds.azurecompute.binders.RuleToXML;
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListNetworkSecurityGroupsHandler;
-import org.jclouds.azurecompute.xml.NetworkSecurityGroupHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.QueryParams;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing the network security groups in your subscription.
- *
- * @see https://msdn.microsoft.com/en-us/library/azure/dn913824.aspx.
- */
-@Path("/services/networking")
-@Produces(MediaType.APPLICATION_XML)
-@Consumes(MediaType.APPLICATION_XML)
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-public interface NetworkSecurityGroupApi {
-
-   /**
-    * The List Network Security Groups operation returns a list of the network security groups in the specified
-    * subscription.
-    *
-    * @return network security group list.
-    */
-   @Named("ListNetworkSecurityGroups")
-   @Path("/networksecuritygroups")
-   @GET
-   @XMLResponseParser(ListNetworkSecurityGroupsHandler.class)
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<NetworkSecurityGroup> list();
-
-   /**
-    * The Create Network Security Group operation creates a new network security group within the context of the
-    * specified subscription. For more information, see
-    * <a href="https://msdn.microsoft.com/en-us/library/azure/dn848316.aspx">About Network Security Groups</a>.
-    *
-    * @param networkSecurityGroup network security group.
-    * @return request id.
-    */
-   @Named("CreateNetworkSecurityGroup")
-   @Path("/networksecuritygroups")
-   @POST
-   @ResponseParser(ParseRequestIdHeader.class)
-   String create(@BinderParam(NetworkSecurityGroupToXML.class) NetworkSecurityGroup networkSecurityGroup);
-
-   /**
-    * Deletes the pecified Network Security Group from your subscription. If the Network Security group is still
-    * associated with some VM/Role/Subnet, the deletion will fail. In order to successfully delete the Network Security,
-    * it needs to be not used.
-    *
-    * @param networkSecurityGroupName
-    * @return request id
-    */
-   @Named("CreateNetworkSecurityGroup")
-   @Path("/networksecuritygroups/{networkSecurityGroupName}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @DELETE
-   @ResponseParser(ParseRequestIdHeader.class)
-   String delete(@PathParam("networkSecurityGroupName") String networkSecurityGroupName);
-
-   /**
-    * The Get Network Security Group for Subnet operation returns information about the network security group
-    * associated with a subnet.
-    *
-    * @param virtualNetworkName virtual network name.
-    * @param subnetName subnet name.
-    * @return network security group.
-    */
-   @Named("GetsNetworkSecurityGroupAppliedToSubnet")
-   @Path("/virtualnetwork/{virtualNetworkName}/subnets/{subnetName}/networksecuritygroups")
-   @GET
-   @XMLResponseParser(NetworkSecurityGroupHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   NetworkSecurityGroup getNetworkSecurityGroupAppliedToSubnet(
-           @PathParam("virtualNetworkName") String virtualNetworkName, @PathParam("subnetName") String subnetName);
-
-   /**
-    * The Get Network Security Group operation returns information about the specified network security group and rules.
-    *
-    * @param networkSecurityGroupName network security group name.
-    * @return network security group.
-    */
-   @Named("GetDetailsNetworkSecurityGroup")
-   @Path("/networksecuritygroups/{networkSecurityGroupName}")
-   @GET
-   @QueryParams(keys = "detaillevel", values = "Full")
-   @XMLResponseParser(NetworkSecurityGroupHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   NetworkSecurityGroup getFullDetails(@PathParam("networkSecurityGroupName") String networkSecurityGroupName);
-
-   /**
-    * The Get Network Security Group operation returns information about the specified network security group.
-    *
-    * @param networkSecurityGroupName network security group name.
-    * @return network security group.
-    */
-   @Named("GetDetailsNetworkSecurityGroup")
-   @Path("/networksecuritygroups/{networkSecurityGroupName}")
-   @GET
-   @XMLResponseParser(NetworkSecurityGroupHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   NetworkSecurityGroup get(@PathParam("networkSecurityGroupName") String networkSecurityGroupName);
-
-   /**
-    * The Add Network Security Group to Subnet operation associates the network security group with specified subnet in
-    * a virtual network. For more information, see
-    * <a href="https://msdn.microsoft.com/en-us/library/azure/dn848316.aspx">About Network Security Groups</a>.
-    *
-    * @param virtualNetworkName virtual network name.
-    * @param subnetName subnet name.
-    * @param networkSecurityGroupName network security group name.
-    * @return request id.
-    */
-   @Named("AddNetworkSecurityGroupToSubnet")
-   @Path("/virtualnetwork/{virtualNetworkName}/subnets/{subnetName}/networksecuritygroups")
-   @Payload("<NetworkSecurityGroup xmlns=\"http://schemas.microsoft.com/windowsazure\">"
-           + "<Name>{networkSecurityGroupName}</Name></NetworkSecurityGroup>")
-   @POST
-   @ResponseParser(ParseRequestIdHeader.class)
-   String addToSubnet(@PathParam("virtualNetworkName") String virtualNetworkName,
-           @PathParam("subnetName") String subnetName,
-           @PayloadParam("networkSecurityGroupName") String networkSecurityGroupName);
-
-   /**
-    * The Remove Network Security Group from Subnet operation removes the association of the specified network security
-    * group from the specified subnet.
-    *
-    * @param virtualNetworkName virtual network name.
-    * @param subnetName subnet name.
-    * @param networkSecurityGroupName network security group name.
-    * @return request id.
-    */
-   @Named("RemoveNetworkSecurityGroupToSubnet")
-   @Path("/virtualnetwork/{virtualNetworkName}/subnets/{subnetName}/networksecuritygroups/{networkSecurityGroupName}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @DELETE
-   @ResponseParser(ParseRequestIdHeader.class)
-   String removeFromSubnet(@PathParam("virtualNetworkName") String virtualNetworkName,
-           @PathParam("subnetName") String subnetName,
-           @PathParam("networkSecurityGroupName") String networkSecurityGroupName);
-
-   /**
-    * The Set Network Security Rule operation adds or updates a network security rule that is associated with the
-    * specified network security group.
-    *
-    * @param networkSecurityGroupName network security group name.
-    * @param ruleName rule name.
-    * @param rule rule.
-    * @return request id.
-    */
-   @Named("SetNetworkSecurityRuleToNetworkSecurityGroup")
-   @Path("/networksecuritygroups/{networkSecurityGroupName}/rules/{ruleName}")
-   @PUT
-   @ResponseParser(ParseRequestIdHeader.class)
-   String setRule(@PathParam("networkSecurityGroupName") String networkSecurityGroupName,
-           @PathParam("ruleName") String ruleName, @BinderParam(RuleToXML.class) Rule rule);
-
-   /**
-    * The Delete Network Security Rule operation deletes a network security group rule from the specified network
-    * security group.
-    *
-    * @param networkSecurityGroupName network security group name.
-    * @param ruleName name of the rule to be deleted.
-    * @return request id.
-    */
-   @Named("SetNetworkSecurityRuleToNetworkSecurityGroup")
-   @Path("/networksecuritygroups/{networkSecurityGroupName}/rules/{ruleName}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @DELETE
-   @ResponseParser(ParseRequestIdHeader.class)
-   String deleteRule(@PathParam("networkSecurityGroupName") String networkSecurityGroupName,
-           @PathParam("ruleName") String ruleName);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/OSImageApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/OSImageApi.java
deleted file mode 100644
index aaf3ba8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/OSImageApi.java
+++ /dev/null
@@ -1,98 +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.features;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
-
-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 org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.OSImageParamsToXML;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.OSImageParams;
-import org.jclouds.azurecompute.functions.OSImageParamsName;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListOSImagesHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ParamParser;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing the OS images in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157175">docs</a>
- */
-@Path("/services/images")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(APPLICATION_XML)
-public interface OSImageApi {
-
-   /**
-    * The List Cloud Services operation lists the cloud services available under the current subscription.
-    */
-   @Named("ListImages")
-   @GET
-   @Produces(APPLICATION_XML)
-   @XMLResponseParser(ListOSImagesHandler.class)
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<OSImage> list();
-
-   /**
-    * The Add OS Image operation adds an OS image that is currently stored in a storage account in your subscription to
-    * the image repository.
-    */
-   @Named("AddImage")
-   @POST
-   @ResponseParser(ParseRequestIdHeader.class)
-   String add(@BinderParam(OSImageParamsToXML.class) OSImageParams params);
-
-   /**
-    * The Update OS Image operation updates an OS image that in your image repository.
-    */
-   @Named("UpdateImage")
-   @PUT
-   @Path("/{imageName}")
-   @ResponseParser(ParseRequestIdHeader.class)
-   String update(@PathParam("imageName") @ParamParser(OSImageParamsName.class)
-           @BinderParam(OSImageParamsToXML.class) OSImageParams params);
-
-   /**
-    * The Delete Cloud Service operation deletes the specified cloud service from Windows Azure.
-    *
-    * @param imageName the unique DNS Prefix value in the Windows Azure Management Portal
-    */
-   @Named("DeleteImage")
-   @DELETE
-   @Path("/{imageName}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @ResponseParser(ParseRequestIdHeader.class)
-   String delete(@PathParam("imageName") String imageName);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/OperationApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/OperationApi.java
deleted file mode 100644
index bc5e2dc..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/OperationApi.java
+++ /dev/null
@@ -1,48 +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.features;
-
-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.domain.Operation;
-import org.jclouds.azurecompute.xml.OperationHandler;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes one operation for tracking the progress of asynchronous requests.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460796">docs</a>
- */
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(MediaType.APPLICATION_XML)
-public interface OperationApi {
-
-   @Named("GetOperation")
-   @GET
-   @Path("/operations/{request-id}")
-   @XMLResponseParser(OperationHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   Operation get(@PathParam("request-id") String requestId);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/ReservedIPAddressApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/ReservedIPAddressApi.java
deleted file mode 100644
index fd93665..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/ReservedIPAddressApi.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.features;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
-
-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.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.ReservedIPAddressParamsToXML;
-import org.jclouds.azurecompute.domain.ReservedIPAddress;
-import org.jclouds.azurecompute.domain.ReservedIPAddressParams;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListReservedIPAddressHandler;
-import org.jclouds.azurecompute.xml.ReservedIPAddressHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing the reserved IP addresses in your subscription.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn722420.aspx">docs</a>
- */
-@Path("/services/networking/reservedips")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(APPLICATION_XML)
-@Produces(APPLICATION_XML)
-public interface ReservedIPAddressApi {
-
-   /**
-    * The List Reserved IP Addresses operation lists the IP addresses that have been reserved for the specified
-    * subscription.
-    *
-    * @return list of reserved IPs.
-    */
-   @Named("ListReservedIPAddress")
-   @GET
-   @XMLResponseParser(ListReservedIPAddressHandler.class)
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<ReservedIPAddress> list();
-
-   /**
-    * The Get Reserved IP Address operation retrieves information about the specified reserved IP address.
-    *
-    * @param name reserver IP address name.
-    * @return reserved IP.
-    */
-   @Named("GetReservedIPAddress")
-   @GET
-   @Path("/{name}")
-   @XMLResponseParser(ReservedIPAddressHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   ReservedIPAddress get(@PathParam("name") String name);
-
-   /**
-    * The Get Reserved IP Address operation retrieves information about the specified reserved IP address.
-    *
-    * @param name reserver IP address name.
-    * @return request id.
-    */
-   @Named("DeleteReservedIPAddress")
-   @DELETE
-   @Path("/{name}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @ResponseParser(ParseRequestIdHeader.class)
-   String delete(@PathParam("name") String name);
-
-   /**
-    * The Create Reserved IP Address operation reserves an IPv4 address for the specified subscription. For more
-    * information, see Reserved IP Addresses. You can use a small number of reserved IP addresses for free, but unused
-    * reserved IP addresses and a number of addresses above the limit will incur charges.
-    *
-    * @param params reserved IP details to be sent as request body.
-    * @return request id.
-    */
-   @Named("CreateReservedIPAddress")
-   @POST
-   @ResponseParser(ParseRequestIdHeader.class)
-   String create(@BinderParam(ReservedIPAddressParamsToXML.class) ReservedIPAddressParams params);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/ServiceCertificatesApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/ServiceCertificatesApi.java
deleted file mode 100644
index 4ddc98e..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/ServiceCertificatesApi.java
+++ /dev/null
@@ -1,123 +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.features;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
-
-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.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.ServiceCertificateParamsToXML;
-import org.jclouds.azurecompute.domain.ServiceCertificate;
-import org.jclouds.azurecompute.domain.ServiceCertificateParams;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListServiceCertificatesHandler;
-import org.jclouds.azurecompute.xml.ServiceCertificateHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing service certificates in your subscription.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee795178.aspx">docs</a>
- */
-@Path("/services/hostedservices")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(APPLICATION_XML)
-@Produces(APPLICATION_XML)
-public interface ServiceCertificatesApi {
-
-   /**
-    * The List Service Certificates operation lists all of the service certificates associated with the specified cloud
-    * service.
-    *
-    * @param service service name.
-    * @return list of cloud service certificates.
-    */
-   @Named("ListServiceCertificates")
-   @GET
-   @Path("/{service}/certificates")
-   @XMLResponseParser(ListServiceCertificatesHandler.class)
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<ServiceCertificate> list(@PathParam("service") String service);
-
-   /**
-    * The Get Service Certificate operation returns the public data for the specified X.509 certificate associated with
-    * a cloud service.
-    *
-    * @param service service name.
-    * @param thumbprintAlgorithm thumbprint algorithm.
-    * @param thumbprintInHexadecimal thumbprint hexadecimal format.
-    * @return service certificate including data only.
-    */
-   @Named("GetServiceCertificate")
-   @GET
-   @Path("/{service}/certificates/{thumbprintAlgorithm}-{thumbprintInHexadecimal}")
-   @XMLResponseParser(ServiceCertificateHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   ServiceCertificate get(
-           @PathParam("service") String service,
-           @PathParam("thumbprintAlgorithm") String thumbprintAlgorithm,
-           @PathParam("thumbprintInHexadecimal") String thumbprintInHexadecimal);
-
-   /**
-    * The Delete Service Certificate asynchronous operation deletes a service certificate from the certificate store of
-    * a cloud service.
-    *
-    * @param service service name.
-    * @param thumbprintAlgorithm thumbprint algorithm.
-    * @param thumbprintInHexadecimal thumbprint hexadecimal format.
-    * @return request id.
-    */
-   @Named("DeleteServiceCertificate")
-   @DELETE
-   @Path("/{service}/certificates/{thumbprintAlgorithm}-{thumbprintInHexadecimal}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @ResponseParser(ParseRequestIdHeader.class)
-   String delete(
-           @PathParam("service") String service,
-           @PathParam("thumbprintAlgorithm") String thumbprintAlgorithm,
-           @PathParam("thumbprintInHexadecimal") String thumbprintInHexadecimal);
-
-   /**
-    * The Add Service Certificate asynchronous operation adds a certificate to a cloud service.
-    *
-    * @param service service name.
-    * @param params service certificate details to be sent as request body.
-    * @return request id.
-    */
-   @Named("AddServiceCertificate")
-   @POST
-   @Path("/{service}/certificates")
-   @ResponseParser(ParseRequestIdHeader.class)
-   String add(
-           @PathParam("service") String service,
-           @BinderParam(ServiceCertificateParamsToXML.class) ServiceCertificateParams params);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/StorageAccountApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/StorageAccountApi.java
deleted file mode 100644
index 336cdc7..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/StorageAccountApi.java
+++ /dev/null
@@ -1,140 +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.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.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.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.StorageServiceKeyTypeToXML;
-import org.jclouds.azurecompute.binders.CreateStorageServiceParamsToXML;
-import org.jclouds.azurecompute.binders.UpdateStorageServiceParamsToXML;
-import org.jclouds.azurecompute.domain.Availability;
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.azurecompute.domain.StorageServiceKeys;
-import org.jclouds.azurecompute.domain.StorageServiceKeys.KeyType;
-import org.jclouds.azurecompute.domain.CreateStorageServiceParams;
-import org.jclouds.azurecompute.domain.UpdateStorageServiceParams;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.AvailabilityHandler;
-import org.jclouds.azurecompute.xml.ListStorageServicesHandler;
-import org.jclouds.azurecompute.xml.StorageServiceHandler;
-import org.jclouds.azurecompute.xml.StorageServiceKeysHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.QueryParams;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing the storage accounts in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/azure/ee460790">docs</a>
- */
-@Path("/services/storageservices")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Produces(MediaType.APPLICATION_XML)
-@Consumes(MediaType.APPLICATION_XML)
-public interface StorageAccountApi {
-
-   /**
-    * The List Storage Accounts operation lists the storage accounts that are available in the specified subscription.
-    */
-   @Named("ListStorageAccounts")
-   @GET
-   @XMLResponseParser(ListStorageServicesHandler.class)
-   @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class)
-   List<StorageService> list();
-
-   /**
-    * The Create Storage Account asynchronous operation creates a new storage account in Microsoft Azure.
-    */
-   @Named("CreateStorageAccount")
-   @POST
-   @ResponseParser(ParseRequestIdHeader.class)
-   String create(@BinderParam(CreateStorageServiceParamsToXML.class) CreateStorageServiceParams storageServiceParams);
-
-   /**
-    * 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.
-    */
-   @Named("CheckStorageAccountNameAvailability")
-   @GET
-   @Path("/operations/isavailable/{storageAccountName}")
-   @XMLResponseParser(AvailabilityHandler.class)
-   Availability isAvailable(@PathParam("storageAccountName") String storageAccountName);
-
-   /**
-    * The Get Storage Account Properties operation returns system properties for the specified storage account.
-    */
-   @Named("GetStorageAccountProperties")
-   @GET
-   @Path("/{storageAccountName}")
-   @XMLResponseParser(StorageServiceHandler.class)
-   @Fallback(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.
-    */
-   @Named("GetStorageAccountKeys")
-   @GET
-   @Path("/{storageAccountName}/keys")
-   @XMLResponseParser(StorageServiceKeysHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   StorageServiceKeys getKeys(@PathParam("storageAccountName") String storageAccountName);
-
-   @Named("RegenerateStorageAccountKeys")
-   @POST
-   @Path("/{storageAccountName}/keys")
-   @QueryParams(keys = "action", values = "regenerate")
-   @ResponseParser(ParseRequestIdHeader.class)
-   String regenerateKeys(
-           @PathParam("storageAccountName") String storageAccountName,
-           @BinderParam(StorageServiceKeyTypeToXML.class) KeyType keyType);
-
-   /**
-    * The Update Storage Account asynchronous operation updates the label, the description, and enables or disables the
-    * geo-replication status for the specified storage account.
-    */
-   @Named("UpdateStorageAccount")
-   @PUT
-   @Path("/{storageAccountName}")
-   @ResponseParser(ParseRequestIdHeader.class)
-   String update(
-           @PathParam("storageAccountName") String storageAccountName,
-           @BinderParam(UpdateStorageServiceParamsToXML.class) UpdateStorageServiceParams storageServiceParams);
-
-   @Named("DeleteStorageAccount")
-   @DELETE
-   @Path("/{serviceName}")
-   @ResponseParser(ParseRequestIdHeader.class)
-   String delete(@PathParam("serviceName") String serviceName);
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/SubscriptionApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/SubscriptionApi.java
deleted file mode 100644
index c0ac9ca..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/SubscriptionApi.java
+++ /dev/null
@@ -1,53 +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.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.domain.RoleSize;
-import org.jclouds.azurecompute.xml.ListRoleSizesHandler;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for retrieving information about a subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg715315">docs</a>
- */
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(MediaType.APPLICATION_XML)
-public interface SubscriptionApi {
-
-   /**
-    * The List Role Sizes operation lists the role sizes that are available under the specified subscription.
-    */
-   @Named("ListRoleSizes")
-   @GET
-   @Path("/rolesizes")
-   @XMLResponseParser(ListRoleSizesHandler.class)
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<RoleSize> listRoleSizes();
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/TrafficManagerApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/TrafficManagerApi.java
deleted file mode 100644
index d41cda1..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/TrafficManagerApi.java
+++ /dev/null
@@ -1,184 +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.features;
-
-import java.util.List;
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
-
-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 org.jclouds.Fallbacks;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.ProfileDefinitionParamsToXML;
-import org.jclouds.azurecompute.binders.ProfileParamsToXML;
-import org.jclouds.azurecompute.domain.Profile;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinitionParams;
-import org.jclouds.azurecompute.domain.CreateProfileParams;
-import org.jclouds.azurecompute.domain.UpdateProfileParams;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListProfileDefinitionsHandler;
-import org.jclouds.azurecompute.xml.ListProfilesHandler;
-import org.jclouds.azurecompute.xml.ProfileDefinitionHandler;
-import org.jclouds.azurecompute.xml.ProfileHandler;
-import org.jclouds.azurecompute.xml.ResultHandler;
-
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for creating, updating, listing, and deleting Azure Traffic Manager
- * profiles and definitions.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758255.aspx">docs</a>
- */
-@Path("/services/WATM")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(APPLICATION_XML)
-@Produces(APPLICATION_XML)
-public interface TrafficManagerApi {
-
-   /**
-    * The List Definitions operation returns all definitions of a profile.
-    *
-    * @param profile profile name.
-    * @return profile definitions.
-    */
-   @Named("ListProfileDefinitions")
-   @GET
-   @Path("/profiles/{profile}/definitions")
-   @XMLResponseParser(ListProfileDefinitionsHandler.class)
-   @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class)
-   List<ProfileDefinition> listDefinitions(@PathParam("profile") String profile);
-
-   /**
-    * The Get Definition operation returns an existing profile definition.
-    *
-    * @param profile profile name.
-    * @return profile definition.
-    */
-   @Named("GetProfileDefinition")
-   @GET
-   @Path("/profiles/{profile}/definitions/1")
-   @XMLResponseParser(ProfileDefinitionHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   ProfileDefinition getDefinition(@PathParam("profile") String profile);
-
-   /**
-    * The Create Profile operation creates a new profile for a domain name, owned by the specified subscription.
-    *
-    * @return traffic manager profiles.
-    */
-   @Named("ListProfiles")
-   @GET
-   @Path("/profiles")
-   @XMLResponseParser(ListProfilesHandler.class)
-   @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class)
-   List<Profile> listProfiles();
-
-   /**
-    * The Get Profile operation returns profile details, including all definition versions and their statuses.
-    *
-    * @param profile profile name.
-    * @return traffic manager profile.
-    */
-   @Named("GetProfile")
-   @GET
-   @Path("/profiles/{profile}")
-   @XMLResponseParser(ProfileHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   Profile getProfile(@PathParam("profile") String profile);
-
-   /**
-    * The Check DNS Prefix Availability operation checks whether the specified DNS prefix is available for creating a
-    * profile.
-    *
-    * @param name DNS name that you want to use. You must include .trafficmanager.net in the name.
-    * @return DNS name availability.
-    */
-   @Named("CheckDNSPrefixAvailability")
-   @GET
-   @Path("/operations/isavailable/{name}")
-   @XMLResponseParser(ResultHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   boolean checkDNSPrefixAvailability(@PathParam("name") String name);
-
-   /**
-    * The Create Definition operation creates a new definition for a specified profile. This definition will be assigned
-    * a version number by the service. For more information about creating a profile, see Create Profile.
-    *
-    * @param name profile name.
-    * @param params profile definition details to be sent as request body.
-    * @return request id.
-    */
-   @Named("CreateProfileDefinition")
-   @POST
-   @Path("/profiles/{name}/definitions")
-   @ResponseParser(ParseRequestIdHeader.class)
-   String createDefinition(
-           @PathParam("name") String name,
-           @BinderParam(ProfileDefinitionParamsToXML.class) ProfileDefinitionParams params);
-
-   /**
-    * The Delete Profile operation deletes a profile and all of its definitions. This operation cannot be reverted.
-    *
-    * @param profile traffic manager profile name.
-    * @return request id.
-    */
-   @Named("DeleteProfile")
-   @DELETE
-   @Path("/profiles/{profile}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @ResponseParser(ParseRequestIdHeader.class)
-   String delete(@PathParam("profile") String profile);
-
-   /**
-    * The Create Profile operation creates a new profile for a domain name, owned by the specified subscription.
-    *
-    * @param params profile parameters.
-    * @return request id.
-    */
-   @Named("CreateProfile")
-   @POST
-   @Path("/profiles")
-   @ResponseParser(ParseRequestIdHeader.class)
-   String createProfile(@BinderParam(ProfileParamsToXML.class) CreateProfileParams params);
-
-   /**
-    * The Update Profile operation enables or disables a profile.
-    *
-    * @param profile traffic manager profile name.
-    * @param params update profile params.
-    * @return request id.
-    */
-   @Named("UpdateProfile")
-   @PUT
-   @Path("/profiles/{profile}")
-   @ResponseParser(ParseRequestIdHeader.class)
-   String updateProfile(
-           @PathParam("profile") String profile, @BinderParam(ProfileParamsToXML.class) UpdateProfileParams params);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/VMImageApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/VMImageApi.java
deleted file mode 100644
index 6ad52b2..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/VMImageApi.java
+++ /dev/null
@@ -1,95 +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.features;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.VMImageParamsToXML;
-import org.jclouds.azurecompute.domain.VMImage;
-import org.jclouds.azurecompute.domain.VMImageParams;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListVMImagesHandler;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-import org.jclouds.rest.annotations.BinderParam;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import java.util.List;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
-
-/**
- * The Service Management API includes operations for managing the VM Images in your subscription.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn499771.aspx">docs</a>
- */
-@Path("/services/vmimages")
-@Consumes(APPLICATION_XML)
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-public interface VMImageApi {
-
-
-   /**
-    * The List VM Images operation retrieves a list of the VM Images from the image repository that is associated with
-    * the specified subscription.
-    */
-   @Named("ListVMImages")
-   @GET
-   @XMLResponseParser(ListVMImagesHandler.class)
-   @Fallback(EmptyListOnNotFoundOr404.class) List<VMImage> list();
-
-   /**
-    * The Create VM Image operation creates a VM Image in the image repository that is associated with the specified
-    * subscription using a specified set of virtual hard disks.
-    */
-   @Named("CreateVMImage")
-   @POST
-   @Produces(APPLICATION_XML)
-   @ResponseParser(ParseRequestIdHeader.class) String create(
-         @BinderParam(VMImageParamsToXML.class) VMImageParams params);
-
-   /**
-    * The Create VM Image operation creates a VM Image in the image repository that is associated with the specified
-    * subscription using a specified set of virtual hard disks.
-    */
-   @Named("UpdateVMImage")
-   @PUT
-   @Path("/{imageName}")
-   @Produces(APPLICATION_XML)
-   @ResponseParser(ParseRequestIdHeader.class) String update(@PathParam("imageName") String imageName,
-         @BinderParam(VMImageParamsToXML.class) VMImageParams params);
-
-   /**
-    * The Delete VM Image operation deletes the specified VM Image from the image repository that is associated with
-    * the specified subscription.
-    */
-   @Named("DeleteImage")
-   @DELETE
-   @Path("/{imageName}")
-   @Fallback(NullOnNotFoundOr404.class)
-   @ResponseParser(ParseRequestIdHeader.class) String delete(@PathParam("imageName") String imageName);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/VirtualMachineApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/VirtualMachineApi.java
deleted file mode 100644
index 4065195..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/VirtualMachineApi.java
+++ /dev/null
@@ -1,152 +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.features;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-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.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.CaptureVMImageParamsToXML;
-import org.jclouds.azurecompute.binders.RoleToXML;
-import org.jclouds.azurecompute.domain.CaptureVMImageParams;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.RoleHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing the virtual machines in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157206">docs</a>
- */
-@Path("/services/hostedservices/{serviceName}/deployments/{deploymentName}")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(MediaType.APPLICATION_XML)
-// NOTE: MS Docs refer to the commands as Role, but in the description, it is always Virtual Machine.
-public interface VirtualMachineApi {
-
-   @Named("RestartRole")
-   @POST
-   // Warning : the url in the documentation is WRONG ! @see
-   // http://social.msdn.microsoft.com/Forums/pl-PL/WAVirtualMachinesforWindows/thread/\
-   // 7ba2367b-e450-49e0-89e4-46c240e9d213
-   @Path("/roleinstances/{name}/Operations")
-   @Produces(MediaType.APPLICATION_XML)
-   @ResponseParser(ParseRequestIdHeader.class)
-   @Payload(value = "<RestartRoleOperation xmlns=\"http://schemas.microsoft.com/windowsazure\">"
-           + "<OperationType>RestartRoleOperation</OperationType></RestartRoleOperation>")
-   String restart(@PathParam("name") String name);
-
-   /**
-    * http://msdn.microsoft.com/en-us/library/jj157201
-    */
-   @Named("CaptureRole")
-   @POST
-   @Path("/roleinstances/{name}/Operations")
-   @Produces(MediaType.APPLICATION_XML)
-   @ResponseParser(ParseRequestIdHeader.class)
-   @Payload(value = "<CaptureRoleOperation xmlns=\"http://schemas.microsoft.com/windowsazure\">"
-           + "<OperationType>CaptureRoleOperation</OperationType>"
-           + "<PostCaptureAction>Delete</PostCaptureAction>"
-           + "<TargetImageLabel>{imageLabel}</TargetImageLabel>"
-           + "<TargetImageName>{imageName}</TargetImageName></CaptureRoleOperation>")
-   String capture(@PathParam("name") String name, @PayloadParam("imageName") String imageName,
-           @PayloadParam("imageLabel") String imageLabel);
-
-   /**
-    * http://msdn.microsoft.com/en-us/library/jj157195
-    */
-   @Named("ShutdownRole")
-   @POST
-   @Path("/roleinstances/{name}/Operations")
-   @Produces(MediaType.APPLICATION_XML)
-   @ResponseParser(ParseRequestIdHeader.class)
-   @Payload(value = "<ShutdownRoleOperation xmlns=\"http://schemas.microsoft.com/windowsazure\">"
-           + "<OperationType>ShutdownRoleOperation</OperationType>" +
-           "<PostShutdownAction>{postShutdownAction}</PostShutdownAction></ShutdownRoleOperation>")
-   String shutdown(@PathParam("name") String name, @PayloadParam("postShutdownAction") String postShutdownAction);
-
-   /**
-    * http://msdn.microsoft.com/en-us/library/jj157195
-    */
-   @Named("ShutdownRole")
-   @POST
-   @Path("/roleinstances/{name}/Operations")
-   @Produces(MediaType.APPLICATION_XML)
-   @ResponseParser(ParseRequestIdHeader.class)
-   @Payload(value = "<ShutdownRoleOperation xmlns=\"http://schemas.microsoft.com/windowsazure\">"
-           + "<OperationType>ShutdownRoleOperation</OperationType></ShutdownRoleOperation>")
-   String shutdown(@PathParam("name") String name);
-
-   /**
-    * http://msdn.microsoft.com/en-us/library/jj157189
-    */
-   @Named("StartRole")
-   @POST
-   @Path("/roleinstances/{name}/Operations")
-   @Produces(MediaType.APPLICATION_XML)
-   @ResponseParser(ParseRequestIdHeader.class)
-   @Payload(value = "<StartRoleOperation xmlns=\"http://schemas.microsoft.com/windowsazure\">"
-           + "<OperationType>StartRoleOperation</OperationType></StartRoleOperation>")
-   String start(@PathParam("name") String name);
-
-   /**
-    * https://msdn.microsoft.com/en-us/library/azure/jj157193.aspx
-    */
-   @Named("GetRole")
-   @GET
-   @Path("/roles/{roleName}")
-   @Produces(MediaType.APPLICATION_XML)
-   @XMLResponseParser(RoleHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   Role getRole(@PathParam("roleName") String roleName);
-
-   /**
-    * https://msdn.microsoft.com/library/azure/jj157187.aspx
-    */
-   @Named("UpdateRole")
-   @PUT
-   @Path("/roles/{roleName}")
-   @Produces(MediaType.APPLICATION_XML)
-   @ResponseParser(ParseRequestIdHeader.class)
-   String updateRole(@PathParam("roleName") String roleName, @BinderParam(RoleToXML.class) Role role);
-
-   /**
-    * The Capture VM Image operation creates a copy of the operating system virtual hard disk (VHD) and all of the data
-    * VHDs that are associated with the Virtual Machine, saves the VHD copies in the same storage location as the original
-    * VHDs, and registers the copies as a VM Image in the image repository that is associated with the specified subscription.
-    */
-   @Named("CaptureVMImage")
-   @POST
-   @Produces(MediaType.APPLICATION_XML)
-   @Path("/roleinstances/{name}/Operations")
-   @ResponseParser(ParseRequestIdHeader.class) String capture(@PathParam("name") String name,
-         @BinderParam(CaptureVMImageParamsToXML.class) CaptureVMImageParams params);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/VirtualNetworkApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/VirtualNetworkApi.java
deleted file mode 100644
index 23cba78..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/VirtualNetworkApi.java
+++ /dev/null
@@ -1,75 +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.features;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.NetworkConfigurationToXML;
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListVirtualNetworkSitesHandler;
-import org.jclouds.azurecompute.xml.NetworkConfigurationHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-@Path("/services/networking")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(MediaType.APPLICATION_XML)
-public interface VirtualNetworkApi {
-
-   /**
-    * The Get Network Configuration operation retrieves the network configuration file.
-    *
-    * @return The response body is a netcfg.cfg file.
-    *
-    */
-   @Named("GetVirtualNetworkConfiguration")
-   @Path("/media")
-   @GET
-   @XMLResponseParser(NetworkConfigurationHandler.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   NetworkConfiguration getNetworkConfiguration();
-
-   @Named("ListVirtualNetworkSites")
-   @Path("/virtualnetwork")
-   @GET
-   @XMLResponseParser(ListVirtualNetworkSitesHandler.class)
-   @Fallback(EmptyListOnNotFoundOr404.class)
-   List<VirtualNetworkSite> list();
-
-   @Named("SetVirtualNetworkConfiguration")
-   @Path("/media")
-   @PUT
-   @Produces(MediaType.TEXT_PLAIN)
-   @ResponseParser(ParseRequestIdHeader.class)
-   String set(@BinderParam(NetworkConfigurationToXML.class) NetworkConfiguration networkConfiguration);
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/functions/Base64EncodeLabel.java b/azurecompute/src/main/java/org/jclouds/azurecompute/functions/Base64EncodeLabel.java
deleted file mode 100644
index 89aa61b..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/functions/Base64EncodeLabel.java
+++ /dev/null
@@ -1,30 +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.functions;
-
-import static com.google.common.base.Charsets.UTF_8;
-import static com.google.common.io.BaseEncoding.base64;
-
-import com.google.common.base.Function;
-
-public final class Base64EncodeLabel implements Function<Object, String> {
-
-   @Override
-   public String apply(final Object label) {
-      return base64().encode(label.toString().getBytes(UTF_8));
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/functions/OSImageParamsName.java b/azurecompute/src/main/java/org/jclouds/azurecompute/functions/OSImageParamsName.java
deleted file mode 100644
index 1f5fa40..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/functions/OSImageParamsName.java
+++ /dev/null
@@ -1,29 +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.functions;
-
-import org.jclouds.azurecompute.domain.OSImageParams;
-
-import com.google.common.base.Function;
-
-public class OSImageParamsName implements Function<Object, String> {
-
-   @Override
-   public String apply(final Object input) {
-      return OSImageParams.class.cast(input).name();
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/functions/ParseRequestIdHeader.java b/azurecompute/src/main/java/org/jclouds/azurecompute/functions/ParseRequestIdHeader.java
deleted file mode 100644
index 17cc0bb..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/functions/ParseRequestIdHeader.java
+++ /dev/null
@@ -1,46 +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.functions;
-
-import static org.jclouds.http.HttpUtils.releasePayload;
-
-import javax.inject.Singleton;
-
-import org.jclouds.http.HttpResponse;
-
-import com.google.common.base.Function;
-
-/**
- * Parses an x-ms-request-id the header
- *
- * A value that uniquely identifies a request made against the management service. For an asynchronous operation, you
- * can call get operation status with the value of the header to determine whether the operation is complete, has
- * failed, or is still in progress.
- */
-@Singleton
-public class ParseRequestIdHeader implements Function<HttpResponse, String> {
-
-   public String apply(final HttpResponse from) {
-      releasePayload(from);
-      final String requestId = from.getFirstHeaderOrNull("x-ms-request-id");
-      if (requestId != null) {
-         return requestId;
-      }
-      throw new IllegalStateException("did not receive RequestId in: " + from);
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/handlers/AzureComputeErrorHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/handlers/AzureComputeErrorHandler.java
deleted file mode 100644
index 23a691c..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/handlers/AzureComputeErrorHandler.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.handlers;
-
-import java.io.IOException;
-
-import javax.inject.Singleton;
-
-import org.jclouds.http.HttpCommand;
-import org.jclouds.http.HttpErrorHandler;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.HttpResponseException;
-import org.jclouds.rest.AuthorizationException;
-import org.jclouds.rest.ResourceNotFoundException;
-import org.jclouds.util.Closeables2;
-import org.jclouds.util.Strings2;
-
-/**
- * This will parse and set an appropriate exception on the command object.
- */
-@Singleton
-public class AzureComputeErrorHandler implements HttpErrorHandler {
-
-   @Override
-   public void handleError(final HttpCommand command, final HttpResponse response) {
-      // it is important to always read fully and close streams
-      String message = parseMessage(response);
-      Exception exception = message == null
-              ? new HttpResponseException(command, response)
-              : new HttpResponseException(command, response, message);
-      try {
-         message = message == null
-                 ? String.format("%s -> %s", command.getCurrentRequest().getRequestLine(), response.getStatusLine())
-                 : message;
-         switch (response.getStatusCode()) {
-            case 401:
-            case 403:
-               exception = new AuthorizationException(message, exception);
-               break;
-
-            case 404:
-               if (!command.getCurrentRequest().getMethod().equals("DELETE")) {
-                  exception = new ResourceNotFoundException(message, exception);
-               }
-               break;
-
-            case 409:
-               exception = new IllegalStateException(message, exception);
-               break;
-
-            default:
-         }
-      } finally {
-         Closeables2.closeQuietly(response.getPayload());
-         command.setException(exception);
-      }
-   }
-
-   public String parseMessage(final HttpResponse response) {
-      if (response.getPayload() == null) {
-         return null;
-      }
-      try {
-         return Strings2.toStringAndClose(response.getPayload().openStream());
-      } catch (IOException e) {
-         throw new RuntimeException(e);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/DelegatingSSLContextSupplier.java b/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/DelegatingSSLContextSupplier.java
deleted file mode 100644
index bdc81f3..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/DelegatingSSLContextSupplier.java
+++ /dev/null
@@ -1,92 +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.suppliers;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Throwables.propagate;
-
-import com.google.common.base.Supplier;
-import java.io.File;
-import java.security.SecureRandom;
-import javax.inject.Inject;
-import javax.inject.Singleton;
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import org.jclouds.crypto.Crypto;
-import org.jclouds.domain.Credentials;
-import org.jclouds.http.HttpUtils;
-import org.jclouds.http.config.SSLModule.TrustAllCerts;
-import org.jclouds.location.Provider;
-import org.jclouds.rest.AuthorizationException;
-
-/**
- * This supplier handles two different types of authentication: PKCS12 and PEM.
- * <br/>
- * Out of the {@link Credentials} instance:
- * <ol>
- * <li><tt>PKCS12</tt>: where {@link Credentials#identity} is keystore path and {@link Credentials#credential} is
- * keystore password</li>
- * <li><tt>PEM</tt>: where {@link Credentials#identity} is PEM-encoded certificate content and
- * {@link Credentials#credential} is PEM-encoded private key</li>
- * </ol>
- */
-@Singleton
-public class DelegatingSSLContextSupplier implements Supplier<SSLContext> {
-
-   private final Crypto crypto;
-
-   private final TrustManager[] trustManager;
-
-   private final Supplier<Credentials> creds;
-
-   @Inject
-   DelegatingSSLContextSupplier(
-           Crypto crypto, @Provider Supplier<Credentials> creds, HttpUtils utils, TrustAllCerts trustAllCerts) {
-
-      this.crypto = crypto;
-      this.trustManager = utils.trustAllCerts() ? new TrustManager[]{trustAllCerts} : null;
-      this.creds = creds;
-   }
-
-   @Override
-   public SSLContext get() {
-      final Credentials currentCreds = checkNotNull(creds.get(), "credential supplier returned null");
-      final String identity = checkNotNull(currentCreds.identity, "credential supplier returned null identity");
-      final String credential = checkNotNull(currentCreds.credential, "credential supplier returned null credential");
-
-      final File pkcs12File = new File(identity);
-
-      final KeyManager[] keyManagers = pkcs12File.isFile()
-              ? // identity is path to PKCS12 file, credential holds keystore password
-              new FileBasedKeyManagersSupplier(pkcs12File, credential.toCharArray()).get()
-              : // identity is PEM-encoded certificate content, credentials PEM-encoded private key
-              new InMemoryKeyManagersSupplier(crypto, identity).get();
-
-      if (keyManagers == null) {
-         throw new AuthorizationException("Could not setup any viable authentication method");
-      }
-
-      try {
-         final SSLContext sslContext = SSLContext.getInstance("TLS");
-         sslContext.init(keyManagers, trustManager, new SecureRandom());
-         return sslContext;
-      } catch (Exception e) {
-         throw propagate(e);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/FileBasedKeyManagersSupplier.java b/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/FileBasedKeyManagersSupplier.java
deleted file mode 100644
index e388184..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/FileBasedKeyManagersSupplier.java
+++ /dev/null
@@ -1,64 +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.suppliers;
-
-import com.google.common.base.Supplier;
-import java.io.File;
-import java.io.FileInputStream;
-import java.security.KeyStore;
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.KeyManagerFactory;
-import org.jclouds.util.Closeables2;
-
-import static com.google.common.base.Throwables.propagate;
-
-class FileBasedKeyManagersSupplier implements Supplier<KeyManager[]> {
-
-   private final File pkcs12File;
-
-   private final char[] credential;
-
-   public FileBasedKeyManagersSupplier(final File pkcs12File, final char[] credential) {
-      this.pkcs12File = pkcs12File;
-      this.credential = credential;
-   }
-
-   @Override
-   public KeyManager[] get() {
-      KeyManager[] keyManagers = null;
-
-      FileInputStream stream = null;
-      try {
-         stream = new FileInputStream(pkcs12File);
-
-         final KeyStore keyStore = KeyStore.getInstance("PKCS12");
-         keyStore.load(stream, credential);
-
-         final KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
-         keyManagerFactory.init(keyStore, credential);
-
-         keyManagers = keyManagerFactory.getKeyManagers();
-      } catch (Exception e) {
-         propagate(e);
-      } finally {
-         Closeables2.closeQuietly(stream);
-      }
-
-      return keyManagers;
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/InMemoryKeyManagersSupplier.java b/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/InMemoryKeyManagersSupplier.java
deleted file mode 100644
index d95a928..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/InMemoryKeyManagersSupplier.java
+++ /dev/null
@@ -1,138 +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.suppliers;
-
-import com.google.common.base.Charsets;
-import com.google.common.base.Supplier;
-import com.google.common.io.ByteSource;
-import java.io.ByteArrayInputStream;
-import java.net.Socket;
-import java.security.Principal;
-import java.security.PrivateKey;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateFactory;
-import java.security.cert.X509Certificate;
-import java.security.spec.KeySpec;
-import java.util.Collection;
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.X509ExtendedKeyManager;
-import org.jclouds.crypto.Crypto;
-import org.jclouds.crypto.Pems;
-
-import static com.google.common.base.Throwables.propagate;
-
-class InMemoryKeyManagersSupplier implements Supplier<KeyManager[]> {
-
-   private final Crypto crypto;
-
-   private final String identity;
-
-   public InMemoryKeyManagersSupplier(final Crypto crypto, final String identity) {
-      this.crypto = crypto;
-      this.identity = identity;
-   }
-
-   @Override
-   public KeyManager[] get() {
-      KeyManager[] keyManagers = null;
-
-      // split in private key and certs
-      final int privateKeyBeginIdx = identity.indexOf("-----BEGIN PRIVATE KEY");
-      final int privateKeyEndIdx = identity.indexOf("-----END PRIVATE KEY");
-      if (privateKeyBeginIdx != -1 && privateKeyEndIdx != -1) {
-         try {
-            final String pemPrivateKey = identity.substring(privateKeyBeginIdx, privateKeyEndIdx + 26);
-
-            final StringBuilder pemCerts = new StringBuilder();
-            int certsBeginIdx = 0;
-            do {
-               certsBeginIdx = identity.indexOf("-----BEGIN CERTIFICATE", certsBeginIdx);
-               if (certsBeginIdx >= 0) {
-                  final int certsEndIdx = identity.indexOf("-----END CERTIFICATE", certsBeginIdx) + 26;
-                  pemCerts.append(identity.substring(certsBeginIdx, certsEndIdx));
-                  certsBeginIdx = certsEndIdx;
-               }
-            } while (certsBeginIdx != -1);
-
-            // parse private key
-            final KeySpec keySpec = Pems.privateKeySpec(ByteSource.wrap(pemPrivateKey.getBytes(Charsets.UTF_8)));
-            final PrivateKey privateKey = crypto.rsaKeyFactory().generatePrivate(keySpec);
-
-            // parse cert(s)
-            @SuppressWarnings("unchecked")
-            final Collection<Certificate> certs = (Collection<Certificate>) CertificateFactory.getInstance("X.509").
-                    generateCertificates(new ByteArrayInputStream(pemCerts.toString().getBytes(Charsets.UTF_8)));
-
-            if (certs.isEmpty()) {
-               throw new IllegalStateException("Could not find any valid certificate");
-            }
-
-            final X509Certificate certificate = (X509Certificate) certs.iterator().next();
-
-            keyManagers = new KeyManager[]{new InMemoryKeyManager(certificate, privateKey)};
-         } catch (Exception e) {
-            propagate(e);
-         }
-      }
-
-      return keyManagers;
-   }
-
-   private static class InMemoryKeyManager extends X509ExtendedKeyManager {
-
-      private static final String DEFAULT_ALIAS = "azure";
-
-      private final X509Certificate certificate;
-
-      private final PrivateKey privateKey;
-
-      public InMemoryKeyManager(final X509Certificate certificate, final PrivateKey privateKey) {
-         this.certificate = certificate;
-         this.privateKey = privateKey;
-      }
-
-      @Override
-      public String chooseClientAlias(final String[] keyType, final Principal[] issuers, final Socket socket) {
-         return DEFAULT_ALIAS;
-      }
-
-      @Override
-      public String chooseServerAlias(final String keyType, final Principal[] issuers, final Socket socket) {
-         return DEFAULT_ALIAS;
-      }
-
-      @Override
-      public X509Certificate[] getCertificateChain(final String alias) {
-         return new X509Certificate[]{certificate};
-      }
-
-      @Override
-      public String[] getClientAliases(final String keyType, final Principal[] issuers) {
-         return new String[]{DEFAULT_ALIAS};
-      }
-
-      @Override
-      public PrivateKey getPrivateKey(final String alias) {
-         return privateKey;
-      }
-
-      @Override
-      public String[] getServerAliases(final String keyType, final Principal[] issuers) {
-         return new String[]{DEFAULT_ALIAS};
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/util/ConflictManagementPredicate.java b/azurecompute/src/main/java/org/jclouds/azurecompute/util/ConflictManagementPredicate.java
deleted file mode 100644
index 1f940bf..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/util/ConflictManagementPredicate.java
+++ /dev/null
@@ -1,211 +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.util;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.jclouds.azurecompute.domain.Operation.Status.FAILED;
-import java.util.concurrent.CancellationException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-import javax.annotation.Resource;
-import javax.inject.Named;
-
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.domain.Operation;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.HttpResponseException;
-import org.jclouds.logging.Logger;
-import org.jclouds.util.Predicates2;
-
-import com.google.common.base.Predicate;
-
-/**
- * Conflict errors (409 response status code) management predicate.
- */
-public class ConflictManagementPredicate implements Predicate<String> {
-
-   @Resource
-   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
-   protected Logger logger = Logger.NULL;
-
-   private AzureComputeApi api;
-
-   private Predicate<String> operationSucceeded;
-
-   private final long timeout = 600000;
-   private final long interval = 15000;
-
-   public ConflictManagementPredicate() {
-      this(null);
-   }
-
-   /**
-    * Constructor.
-    *
-    * @param api azure api.
-    */
-   public ConflictManagementPredicate(final AzureComputeApi api) {
-      this(api, Predicates2.retry(new OperationSucceededPredicate(api), 600, 5, 5, SECONDS));
-   }
-
-   /**
-    * Constructor.
-    *
-    * @param api azure api.
-    * @param timeout predicate timeout.
-    * @param period predicate period.
-    * @param maxPeriod max period
-    * @param unit timeout and period time unit.
-    */
-   public ConflictManagementPredicate(
-           final AzureComputeApi api, long timeout, long period, long maxPeriod, TimeUnit unit) {
-      this(api, Predicates2.retry(new OperationSucceededPredicate(api), timeout, period, maxPeriod, unit));
-   }
-
-   /**
-    * Constructor.
-    *
-    * @param api azure api.
-    * @param operationSucceeded predicate to be applied to the requestId.
-    */
-   public ConflictManagementPredicate(final AzureComputeApi api, final Predicate<String> operationSucceeded) {
-      this.api = api;
-      this.operationSucceeded = operationSucceeded;
-   }
-
-   /**
-    * Operation to be executed.
-    *
-    * @return requestId.
-    */
-   protected String operation() {
-      throw new UnsupportedOperationException();
-   }
-
-   /**
-    * {@inheritDoc }
-    *
-    * @param input interested object/operation description or requestId.
-    * @return predicate evaluation.
-    */
-   @Override
-   public final boolean apply(final String input) {
-      Operation operation = null;
-      String requestId = null;
-
-      boolean retry = true;
-
-      long now = System.currentTimeMillis();
-      long end = now + timeout;
-
-      while (retry && now < end) {
-         try {
-            requestId = operation();
-            logger.debug("Executed operation on %s", input);
-
-            // If request id is not available let's assume operation succeeded.
-            if (requestId == null) {
-               logger.debug("No request id available. Assume operation succeeded.");
-               return true;
-            }
-
-            operation = api.getOperationApi().get(requestId);
-            logger.debug("Operation %s status: %s", operation.id(), operation.status().name());
-
-            if (operation.status() == FAILED) {
-               // rise an exception based on HTTP status code
-               if (operation.httpStatusCode() == 409 || operation.httpStatusCode() == 500) {
-                  logger.info("Retry operation %s with (code %d)", operation.id(), operation.httpStatusCode());
-               } else {
-                  logger.info("Not retriable operation %s (code %d)", operation.id(), operation.httpStatusCode());
-                  retry = false;
-               }
-            } else {
-               logger.debug("Tracking for operation %s ...", operation.id());
-               retry = false;
-            }
-         } catch (UnsupportedOperationException e) {
-            requestId = input;
-            retry = false;
-            logger.debug("Tracking for operation %s ...", input);
-         } catch (RuntimeException e) {
-            final HttpResponseException re = (e instanceof HttpResponseException)
-                    ? HttpResponseException.class.cast(e) : (e.getCause() instanceof HttpResponseException)
-                            ? HttpResponseException.class.cast(e.getCause())
-                            : null;
-            if (re == null) {
-               throw e;
-            } else {
-               final HttpResponse res = re.getResponse();
-               logger.info("[%s (%d)] Performing operation on %s", res.getStatusLine(), res.getStatusCode(), input);
-               if (res.getStatusCode() == 409 || res.getStatusCode() == 500) {
-                  logger.info("Retry operation %s", operation == null ? "" : operation.id(), res.getStatusCode());
-               } else {
-                  throw re;
-               }
-            }
-         }
-
-         if (retry) {
-            try {
-               Thread.sleep(interval);
-            } catch (InterruptedException ex) {
-               // ignore
-            }
-
-            now = System.currentTimeMillis();
-         }
-      }
-
-      if (now >= end) {
-         throw new RuntimeException(new TimeoutException(requestId));
-      }
-
-      return operationSucceeded.apply(requestId);
-   }
-
-   private static class OperationSucceededPredicate implements Predicate<String> {
-
-      private final AzureComputeApi api;
-
-      public OperationSucceededPredicate(final AzureComputeApi api) {
-         this.api = checkNotNull(api, "api must not be null");
-      }
-
-      @Override
-      public boolean apply(final String input) {
-         final Operation operation = api.getOperationApi().get(input);
-         switch (operation.status()) {
-            case SUCCEEDED:
-               return true;
-
-            case IN_PROGRESS:
-            case UNRECOGNIZED:
-               return false;
-
-            case FAILED:
-               throw new RuntimeException(new CancellationException(input));
-
-            default:
-               throw new IllegalStateException("Operation is in invalid status: " + operation.status().name());
-         }
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/util/NetworkSecurityGroups.java b/azurecompute/src/main/java/org/jclouds/azurecompute/util/NetworkSecurityGroups.java
deleted file mode 100644
index 7035d70..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/util/NetworkSecurityGroups.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.util;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.domain.Rule;
-
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
-import com.google.common.collect.FluentIterable;
-
-public class NetworkSecurityGroups {
-
-   public static List<Rule> getCustomRules(final NetworkSecurityGroup networkSecurityGroup) {
-      final List<Rule> rules = networkSecurityGroup.rules();
-      return FluentIterable.from(rules)
-              .filter(Predicates.notNull())
-              .filter(new Predicate<Rule>() {
-                 @Override
-                 public boolean apply(final Rule rule) {
-                    return rule.isDefault() == null || !rule.isDefault();
-                 }
-              })
-              .toSortedList(new Comparator<Rule>() {
-                 @Override
-                 public int compare(final Rule r1, final Rule r2) {
-                    final int p1 = Integer.parseInt(r1.priority());
-                    final int p2 = Integer.parseInt(r2.priority());
-                    return p1 < p2 ? -1 : p1 == p2 ? 0 : 1;
-
-                 }
-              });
-   }
-
-   public static int getFirstAvailablePriority(final List<Rule> rules) {
-      int priority;
-      if (rules.isEmpty()) {
-         priority = 100;
-      } else {
-         priority = Integer.parseInt(Collections.max(rules, new Comparator<Rule>() {
-            @Override
-            public int compare(final Rule rule1, final Rule rule2) {
-               return Integer.valueOf(rule1.priority()).compareTo(Integer.valueOf(rule2.priority()));
-            }
-         }).priority()) + 1;
-      }
-      return priority;
-   }
-
-   public static String createRuleName(final String format, final int fromPort, final int toPort) {
-      return String.format(format, fromPort, toPort);
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AddressSpaceHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AddressSpaceHandler.java
deleted file mode 100644
index ad2d52d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AddressSpaceHandler.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration.AddressSpace;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-public class AddressSpaceHandler extends ParseSax.HandlerForGeneratedRequestWithResult<AddressSpace> {
-
-   private String addressPrefix;
-
-   private StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public void startElement(final String uri, final String localName, final String qName, final Attributes attributes) {
-   }
-
-   @Override
-   public AddressSpace getResult() {
-      AddressSpace result = AddressSpace.create(addressPrefix);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      addressPrefix = null;
-   }
-
-   @Override
-   public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
-      if (qName.equals("AddressPrefix")) {
-         addressPrefix = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      currentText.append(ch, start, length);
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AffinityGroupHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AffinityGroupHandler.java
deleted file mode 100644
index 05dff68..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AffinityGroupHandler.java
+++ /dev/null
@@ -1,136 +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.xml;
-
-import static com.google.common.base.Charsets.UTF_8;
-import static com.google.common.io.BaseEncoding.base64;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.util.Date;
-import java.util.List;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-
-import org.jclouds.http.functions.ParseSax;
-import org.jclouds.azurecompute.domain.AffinityGroup;
-import org.jclouds.azurecompute.domain.AffinityGroup.Capability;
-import org.jclouds.azurecompute.domain.ComputeCapabilities;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157191">api</a>
- */
-public final class AffinityGroupHandler extends ParseSax.HandlerForGeneratedRequestWithResult<AffinityGroup> {
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   private final ComputeCapabilitiesHandler computeCapabilitiesHandler;
-
-   private String name;
-
-   private String label;
-
-   private String description;
-
-   private String location;
-
-   private final List<Capability> capabilities = Lists.newArrayList();
-
-   private Date createdTime;
-
-   private ComputeCapabilities computeCapabilities;
-
-   private boolean inComputeCapabilities = false;
-
-   @Inject
-   AffinityGroupHandler(final ComputeCapabilitiesHandler computeCapabilitiesHandler) {
-      this.computeCapabilitiesHandler = computeCapabilitiesHandler;
-   }
-
-   @Override
-   public AffinityGroup getResult() {
-      final AffinityGroup result = AffinityGroup.create(
-              name, label, description, location, capabilities, createdTime, computeCapabilities);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      name = null;
-      label = null;
-      description = null;
-      location = null;
-      capabilities.clear();
-      createdTime = null;
-      computeCapabilities = null;
-   }
-
-   @Override
-   public void startElement(final String uri, final String localName, final String qName, final Attributes attributes)
-           throws SAXException {
-
-      if ("ComputeCapabilities".equals(qName)) {
-         inComputeCapabilities = true;
-      } else if (inComputeCapabilities) {
-         computeCapabilitiesHandler.startElement(uri, localName, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
-      if ("Name".equals(qName)) {
-         name = currentOrNull(currentText);
-      } else if ("Label".equals(qName)) {
-         label = new String(base64().decode(currentOrNull(currentText)), UTF_8);
-      } else if ("Description".equals(qName)) {
-         description = currentOrNull(currentText);
-      } else if ("Location".equals(qName)) {
-         location = currentOrNull(currentText);
-      } else if ("Capability".equals(qName)) {
-         final String capabilityText = currentOrNull(currentText);
-         if (capabilityText != null) {
-            capabilities.add(Capability.valueOf(capabilityText));
-         }
-      } else if ("CreatedTime".equals(qName)) {
-         final String createdTimeText = currentOrNull(currentText);
-         if (createdTimeText != null) {
-            createdTime = new SimpleDateFormatDateService().iso8601DateOrSecondsDateParse(createdTimeText);
-         }
-      } else if ("ComputeCapabilities".equals(qName)) {
-         inComputeCapabilities = false;
-         computeCapabilities = computeCapabilitiesHandler.getResult();
-      } else if (inComputeCapabilities) {
-         computeCapabilitiesHandler.endElement(ignoredUri, ignoredName, qName);
-      }
-
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      if (inComputeCapabilities) {
-         computeCapabilitiesHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AttachmentHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AttachmentHandler.java
deleted file mode 100644
index 5b7e658..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AttachmentHandler.java
+++ /dev/null
@@ -1,60 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Disk.Attachment;
-import org.jclouds.http.functions.ParseSax;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157176" >api</a>
- */
-final class AttachmentHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Attachment> {
-
-   private String hostedService;
-
-   private String deployment;
-
-   private String virtualMachine;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public Attachment getResult() {
-      final Attachment result = Attachment.create(hostedService, deployment, virtualMachine);
-      hostedService = deployment = virtualMachine = null; // handler could be called in a loop.
-      return result;
-   }
-
-   @Override
-   public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
-      if (qName.equals("HostedServiceName")) {
-         hostedService = currentOrNull(currentText);
-      } else if (qName.equals("DeploymentName")) {
-         deployment = currentOrNull(currentText);
-      } else if (qName.equals("RoleName")) {
-         virtualMachine = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AvailabilityHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AvailabilityHandler.java
deleted file mode 100644
index e7b1d7b..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AvailabilityHandler.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Availability;
-import org.jclouds.http.functions.ParseSax;
-
-public class AvailabilityHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Availability> {
-
-   private Boolean result;
-
-   private String reason;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public Availability getResult() {
-      return Availability.create(result, reason);
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("Result")) {
-         String resultText = currentOrNull(currentText);
-         if (resultText != null) {
-            result = Boolean.valueOf(resultText);
-         }
-      } else if (qName.equals("Reason")) {
-         reason = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServiceHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServiceHandler.java
deleted file mode 100644
index 9af6141..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServiceHandler.java
+++ /dev/null
@@ -1,134 +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.xml;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static com.google.common.base.Charsets.UTF_8;
-import static com.google.common.io.BaseEncoding.base64;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.util.Date;
-import java.util.Map;
-
-import javax.inject.Inject;
-
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.date.DateService;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Maps;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >Response body description</a>
- */
-public final class CloudServiceHandler extends ParseSax.HandlerForGeneratedRequestWithResult<CloudService> {
-
-   private String name;
-
-   private String location;
-
-   private String affinityGroup;
-
-   private String label;
-
-   private String description;
-
-   private CloudService.Status status;
-
-   private Date created;
-
-   private Date lastModified;
-
-   private Map<String, String> extendedProperties = Maps.newLinkedHashMap();
-
-   private boolean inHostedServiceProperties;
-
-   private String propertyName;
-
-   private StringBuilder currentText = new StringBuilder();
-
-   private final DateService dateService;
-
-   @Inject
-   CloudServiceHandler(DateService dateService) {
-      this.dateService = dateService;
-   }
-
-   @Override
-   public CloudService getResult() {
-      CloudService result = CloudService.create(name, location, affinityGroup, label, description, status, created, //
-              lastModified, ImmutableMap.copyOf(extendedProperties));
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      name = description = location = affinityGroup = label = null;
-      status = null;
-      created = lastModified = null;
-      extendedProperties.clear();
-      inHostedServiceProperties = false;
-      propertyName = null;
-   }
-
-   @Override
-   public void startElement(String ignoredUri, String ignoredLocalName, String qName, Attributes ignoredAttributes) {
-      if (qName.equals("HostedServiceProperties")) {
-         inHostedServiceProperties = true;
-      }
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("HostedServiceProperties")) {
-         inHostedServiceProperties = false;
-      } else if (inHostedServiceProperties) {
-         if (qName.equals("DateCreated")) {
-            created = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
-         } else if (qName.equals("DateLastModified")) {
-            lastModified = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
-         } else if (qName.equals("Status")) {
-            String statusText = currentOrNull(currentText);
-            status = CloudService.Status.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, statusText));
-         } else if (qName.equals("Name")) {
-            propertyName = currentOrNull(currentText);
-         } else if (qName.equals("Value")) {
-            extendedProperties.put(propertyName, currentOrNull(currentText));
-            propertyName = null;
-         } else if (qName.equals("Description")) {
-            description = currentOrNull(currentText);
-         } else if (qName.equals("Location")) {
-            location = currentOrNull(currentText);
-         } else if (qName.equals("AffinityGroup")) {
-            affinityGroup = currentOrNull(currentText);
-         } else if (qName.equals("Label")) {
-            label = new String(base64().decode(currentOrNull(currentText)), UTF_8);
-         }
-      } else if (qName.equals("ServiceName")) {
-         name = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServicePropertiesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServicePropertiesHandler.java
deleted file mode 100644
index a692df2..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServicePropertiesHandler.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-
-import org.jclouds.azurecompute.domain.CloudServiceProperties;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.date.DateService;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import javax.inject.Inject;
-
-import java.net.URI;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee460806.aspx" >Response body description</a>
- */
-public final class CloudServicePropertiesHandler
-      extends ParseSax.HandlerForGeneratedRequestWithResult<CloudServiceProperties> {
-   private String name;
-   private URI url;
-   private String location;
-   private String affinityGroup;
-   private String label;
-   private String description;
-   private CloudServiceProperties.Status status;
-   private Date created;
-   private Date lastModified;
-   private Map<String, String> extendedProperties = Maps.newLinkedHashMap();
-   private List<Deployment> deploymentList = Lists.newArrayList();
-
-   private boolean inHostedServiceProperties;
-   private boolean inDeployment;
-   private String propertyName;
-   private StringBuilder currentText = new StringBuilder();
-   private final DateService dateService;
-   private final DeploymentHandler deploymentHandler;
-
-   @Inject CloudServicePropertiesHandler(DateService dateService, DeploymentHandler deploymentHandler) {
-      this.dateService = dateService;
-      this.deploymentHandler = deploymentHandler;
-   }
-
-   @Override public CloudServiceProperties getResult() {
-      CloudServiceProperties result = CloudServiceProperties
-            .create(name, url, location, affinityGroup, label, description, status, created, //
-                  lastModified, ImmutableMap.copyOf(extendedProperties), ImmutableList.copyOf(deploymentList));
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      name = description = location = affinityGroup = label = null;
-      status = null;
-      created = lastModified = null;
-      extendedProperties.clear();
-      inHostedServiceProperties = false;
-      propertyName = null;
-   }
-
-   @Override public void startElement(String ignoredUri, String ignoredLocalName, String qName,
-         Attributes ignoredAttributes) {
-      if (qName.equals("HostedServiceProperties")) {
-         inHostedServiceProperties = true;
-      } else if (qName.equals("Deployment")) {
-         inDeployment = true;
-      }
-      if (inDeployment) {
-         deploymentHandler.startElement(ignoredUri, ignoredLocalName, qName, ignoredAttributes);
-      }
-   }
-
-   @Override public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("HostedServiceProperties")) {
-         inHostedServiceProperties = false;
-      } else if (inHostedServiceProperties) {
-         if (qName.equals("DateCreated")) {
-            created = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
-         } else if (qName.equals("DateLastModified")) {
-            lastModified = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
-         } else if (qName.equals("Status")) {
-            String statusText = currentOrNull(currentText);
-            if (statusText != null) {
-               status = status(statusText);
-            }
-         } else if (qName.equals("Name")) {
-            propertyName = currentOrNull(currentText);
-         } else if (qName.equals("Value")) {
-            extendedProperties.put(propertyName, currentOrNull(currentText));
-            propertyName = null;
-         } else if (qName.equals("Description")) {
-            description = currentOrNull(currentText);
-         } else if (qName.equals("Location")) {
-            location = currentOrNull(currentText);
-         } else if (qName.equals("AffinityGroup")) {
-            affinityGroup = currentOrNull(currentText);
-         } else if (qName.equals("Label")) {
-            label = currentOrNull(currentText);
-         }
-      } else if (qName.equals("ServiceName")) {
-         name = currentOrNull(currentText);
-      } else if (qName.equals("Deployment")) {
-         deploymentList.add(deploymentHandler.getResult());
-         inDeployment = false;
-      } else if (inDeployment) {
-         deploymentHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("Url")) {
-         String link = currentOrNull(currentText);
-         if (link != null) {
-            url = URI.create(link);
-         }
-      }
-      currentText.setLength(0);
-   }
-
-   @Override public void characters(char[] ch, int start, int length) {
-      if (inDeployment) {
-         deploymentHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-
-   private static CloudServiceProperties.Status status(String status) {
-      try {
-         return CloudServiceProperties.Status.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, status));
-      } catch (IllegalArgumentException e) {
-         return CloudServiceProperties.Status.UNRECOGNIZED;
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ComputeCapabilitiesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ComputeCapabilitiesHandler.java
deleted file mode 100644
index 706e6d7..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ComputeCapabilitiesHandler.java
+++ /dev/null
@@ -1,87 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import com.google.common.collect.Lists;
-import java.util.List;
-import org.jclouds.azurecompute.domain.ComputeCapabilities;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-public class ComputeCapabilitiesHandler
-        extends ParseSax.HandlerForGeneratedRequestWithResult<ComputeCapabilities> {
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   private final List<RoleSize.Type> virtualMachineRoleSizes = Lists.newArrayList();
-
-   private final List<RoleSize.Type> webWorkerRoleSizes = Lists.newArrayList();
-
-   private boolean inVirtualMachineRoleSizes = false;
-
-   private boolean inWebWorkerRoleSizes = false;
-
-   @Override
-   public ComputeCapabilities getResult() {
-      final ComputeCapabilities result = ComputeCapabilities.create(virtualMachineRoleSizes, webWorkerRoleSizes);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      virtualMachineRoleSizes.clear();
-      webWorkerRoleSizes.clear();
-   }
-
-   @Override
-   public void startElement(final String uri, final String localName, final String qName, final Attributes attributes)
-           throws SAXException {
-
-      if ("WebWorkerRoleSizes".equals(qName)) {
-         inWebWorkerRoleSizes = true;
-      } else if ("VirtualMachinesRoleSizes".equals(qName)) {
-         inVirtualMachineRoleSizes = true;
-      }
-   }
-
-   @Override
-   public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
-      if ("RoleSize".equals(qName)) {
-         final RoleSize.Type roleSizeType = RoleSize.Type.fromString(currentOrNull(currentText));
-         if (inVirtualMachineRoleSizes) {
-            virtualMachineRoleSizes.add(roleSizeType);
-         } else if (inWebWorkerRoleSizes) {
-            webWorkerRoleSizes.add(roleSizeType);
-         }
-      } else if ("WebWorkerRoleSizes".equals(qName)) {
-         inWebWorkerRoleSizes = false;
-      } else if ("VirtualMachinesRoleSizes".equals(qName)) {
-         inVirtualMachineRoleSizes = false;
-      }
-
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ConfigurationSetHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ConfigurationSetHandler.java
deleted file mode 100644
index 4065f72..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ConfigurationSetHandler.java
+++ /dev/null
@@ -1,124 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet.InputEndpoint;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet.PublicIP;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet.SubnetName;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-
-public class ConfigurationSetHandler extends ParseSax.HandlerForGeneratedRequestWithResult<ConfigurationSet> {
-
-   private String configurationSetType;
-
-   private List<InputEndpoint> inputEndpoint = Lists.newArrayList();
-
-   private List<SubnetName> subnetNames = Lists.newArrayList();
-
-   private String staticVirtualNetworkIPAddress;
-
-   private List<PublicIP> publicIPs = Lists.newArrayList();
-
-   private String networkSecurityGroup;
-
-   private boolean inInputEndpoint;
-
-   private boolean inSubnetNames;
-
-   private final InputEndpointHandler inputEndpointHandler;
-
-   private final SubnetNameHandler subnetNameHandler;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Inject
-   ConfigurationSetHandler(InputEndpointHandler inputEndpointHandler, SubnetNameHandler subnetNameHandler) {
-      this.inputEndpointHandler = inputEndpointHandler;
-      this.subnetNameHandler = subnetNameHandler;
-   }
-
-   @Override
-   public ConfigurationSet getResult() {
-      ConfigurationSet result = ConfigurationSet.create(configurationSetType, inputEndpoint, subnetNames,
-              staticVirtualNetworkIPAddress, publicIPs, networkSecurityGroup);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      configurationSetType = staticVirtualNetworkIPAddress = networkSecurityGroup = null;
-      inputEndpoint = Lists.newArrayList();
-      subnetNames = Lists.newArrayList();
-      publicIPs = Lists.newArrayList();
-   }
-
-   @Override
-   public void startElement(String uri, String localName, String qName, Attributes attributes) {
-      if (qName.equals("InputEndpoint")) {
-         inInputEndpoint = true;
-      }
-      if (inInputEndpoint) {
-         inputEndpointHandler.startElement(uri, localName, qName, attributes);
-      }
-      if (qName.equals("SubnetNames")) {
-         inSubnetNames = true;
-      }
-      if (inSubnetNames) {
-         subnetNameHandler.startElement(uri, localName, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("InputEndpoint")) {
-         inInputEndpoint = false;
-         inputEndpoint.add(inputEndpointHandler.getResult());
-      } else if (qName.equals("SubnetNames")) {
-         inSubnetNames = false;
-         subnetNames.add(subnetNameHandler.getResult());
-      } else if (inInputEndpoint) {
-         inputEndpointHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (inSubnetNames) {
-         subnetNameHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("ConfigurationSetType")) {
-         configurationSetType = currentOrNull(currentText);
-      } else if (qName.equals("NetworkSecurityGroup")) {
-         networkSecurityGroup = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inInputEndpoint) {
-         inputEndpointHandler.characters(ch, start, length);
-      } else if (inSubnetNames) {
-         subnetNameHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DataVirtualHardDiskHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DataVirtualHardDiskHandler.java
deleted file mode 100644
index 22472bb..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DataVirtualHardDiskHandler.java
+++ /dev/null
@@ -1,92 +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.xml;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/jj157193.aspx#DataVirtualHardDisks" >api</a>
- */
-final class DataVirtualHardDiskHandler extends ParseSax.HandlerForGeneratedRequestWithResult<DataVirtualHardDisk> {
-
-   private DataVirtualHardDisk.Caching hostCaching;
-
-   private String diskName;
-
-   private Integer lun;
-
-   private Integer logicalDiskSizeInGB;
-
-   private URI mediaLink;
-
-   private String ioType;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public void startElement(String uri, String localName, String qName, Attributes attributes) {
-   }
-
-   @Override
-   public DataVirtualHardDisk getResult() {
-      DataVirtualHardDisk result = DataVirtualHardDisk
-              .create(hostCaching, diskName, lun, logicalDiskSizeInGB, mediaLink, ioType);
-      return result;
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-
-      if (qName.equals("HostCaching")) {
-         String hostCachingText = currentOrNull(currentText);
-         if (hostCachingText != null)
-            hostCaching = DataVirtualHardDisk.Caching.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, hostCachingText));
-      } else if (qName.equals("DiskName") || qName.equals("Name")) {
-         diskName = currentOrNull(currentText);
-      } else if (qName.equals("Lun")) {
-         String lunText = currentOrNull(currentText);
-         if (lunText != null) {
-            lun = Integer.parseInt(lunText);
-         }
-      } else if (qName.equals("LogicalDiskSizeInGB")) {
-         String gb = currentOrNull(currentText);
-         if (gb != null) {
-            logicalDiskSizeInGB = Integer.parseInt(gb);
-         }
-      } else if (qName.equals("MediaLink")) {
-         String link = currentOrNull(currentText);
-         if (link != null) {
-            mediaLink = URI.create(link);
-         }
-      } else if (qName.equals("IOType")) {
-         ioType = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DeploymentHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DeploymentHandler.java
deleted file mode 100644
index a3fc96f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DeploymentHandler.java
+++ /dev/null
@@ -1,163 +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.xml;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static com.google.common.base.Charsets.UTF_8;
-import static com.google.common.io.BaseEncoding.base64;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.Deployment.Slot;
-import org.jclouds.azurecompute.domain.Deployment.Status;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460804" >Response body description</a>.
- */
-public final class DeploymentHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Deployment> {
-
-   private String name;
-
-   private Slot slot;
-
-   private Status status;
-
-   private String label;
-
-   private String instanceStateDetails;
-
-   private String virtualNetworkName;
-
-   private List<Deployment.VirtualIP> virtualIPs = Lists.newArrayList();
-
-   private List<Deployment.RoleInstance> roleInstanceList = Lists.newArrayList();
-
-   private List<Role> roleList = Lists.newArrayList();
-
-   private String instanceErrorCode;
-
-   private boolean inRoleInstanceList;
-
-   private boolean inRoleList;
-
-   private boolean inListVirtualIPs;
-
-   private final VirtualIPHandler virtualIPHandler;
-
-   private final RoleInstanceHandler roleInstanceHandler;
-
-   private final RoleHandler roleHandler;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Inject
-   DeploymentHandler(VirtualIPHandler virtualIPHandler, RoleInstanceHandler roleInstanceHandler, RoleHandler roleHandler) {
-      this.virtualIPHandler = virtualIPHandler;
-      this.roleInstanceHandler = roleInstanceHandler;
-      this.roleHandler = roleHandler;
-   }
-
-   @Override
-   public Deployment getResult() { // Fields don't need to be reset as this isn't used in a loop.
-      return Deployment.create(name, slot, status, label, //
-              instanceStateDetails, instanceErrorCode, virtualIPs, roleInstanceList, roleList, virtualNetworkName);
-   }
-
-   @Override
-   public void startElement(String url, String name, String qName, Attributes attributes) {
-      if (qName.equals("VirtualIPs")) {
-         inListVirtualIPs = true;
-      } else if (qName.equals("RoleInstanceList")) {
-         inRoleInstanceList = true;
-      } else if (qName.equals("RoleList")) {
-         inRoleList = true;
-      }
-      if (inRoleInstanceList) {
-         roleInstanceHandler.startElement(url, name, qName, attributes);
-      }
-      if (inRoleList) {
-         roleHandler.startElement(url, name, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("RoleInstanceList")) {
-         inRoleInstanceList = false;
-      } else if (qName.equals("RoleInstance")) {
-         roleInstanceList.add(roleInstanceHandler.getResult());
-      } else if (inRoleInstanceList) {
-         roleInstanceHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("RoleList")) {
-         inRoleList = false;
-      } else if (qName.equals("Role")) {
-         roleList.add(roleHandler.getResult());
-      } else if (inRoleList) {
-         roleHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("VirtualIPs")) {
-         inListVirtualIPs = false;
-      } else if (qName.equals("VirtualIP")) {
-         virtualIPs.add(virtualIPHandler.getResult());
-      } else if (inListVirtualIPs) {
-         virtualIPHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("Name") && name == null) {
-         name = currentOrNull(currentText);
-      } else if (qName.equals("DeploymentSlot")) {
-         String slotText = currentOrNull(currentText);
-         slot = Slot.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, slotText));
-      } else if (qName.equals("Status")) {
-         String statusText = currentOrNull(currentText);
-         if (status == null && statusText != null) {
-            status = Status.fromString(statusText);
-         }
-      } else if (qName.equals("Label")) {
-         String labelText = currentOrNull(currentText);
-         if (labelText != null) {
-            label = new String(base64().decode(labelText), UTF_8);
-         }
-      } else if (qName.equals("InstanceStateDetails")) {
-         instanceStateDetails = currentOrNull(currentText);
-      } else if (qName.equals("InstanceErrorCode")) {
-         instanceErrorCode = currentOrNull(currentText);
-      } else if (qName.equals("VirtualNetworkName")) {
-         virtualNetworkName = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inListVirtualIPs) {
-         virtualIPHandler.characters(ch, start, length);
-      } else if (inRoleInstanceList) {
-         roleInstanceHandler.characters(ch, start, length);
-      } else if (inRoleList) {
-         roleHandler.characters(ch, start, length);
-      } else if (!inListVirtualIPs && !inRoleInstanceList && !inRoleList) {
-         currentText.append(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DiskHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DiskHandler.java
deleted file mode 100644
index 0800d51..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DiskHandler.java
+++ /dev/null
@@ -1,125 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.Disk;
-import org.jclouds.azurecompute.domain.Disk.Attachment;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157176" >api</a>
- */
-final class DiskHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Disk> {
-
-   private String name;
-
-   private String location;
-
-   private String affinityGroup;
-
-   private String description;
-
-   private OSImage.Type os;
-
-   private URI mediaLink;
-
-   private Integer logicalSizeInGB;
-
-   private Attachment attachedTo;
-
-   private String sourceImage;
-
-   private boolean inAttachment;
-
-   private final AttachmentHandler attachmentHandler = new AttachmentHandler();
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public Disk getResult() {
-      Disk result = Disk.create(name, location, affinityGroup, description, os, mediaLink, logicalSizeInGB, attachedTo,
-              sourceImage);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      name = location = affinityGroup = description = sourceImage = null;
-      os = null;
-      mediaLink = null;
-      logicalSizeInGB = null;
-      attachedTo = null;
-   }
-
-   @Override
-   public void startElement(String uri, String localName, String qName, Attributes attributes) {
-      if (qName.equals("AttachedTo")) {
-         inAttachment = true;
-      }
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("AttachedTo")) {
-         attachedTo = attachmentHandler.getResult();
-         inAttachment = false;
-      } else if (inAttachment) {
-         attachmentHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("OS")) {
-         String osText = currentOrNull(currentText);
-         if (osText != null) {
-            os = OSImage.Type.valueOf(osText.toUpperCase());
-         }
-      } else if (qName.equals("Name")) {
-         name = currentOrNull(currentText);
-      } else if (qName.equals("LogicalDiskSizeInGB")) {
-         String gb = currentOrNull(currentText);
-         if (gb != null) {
-            logicalSizeInGB = Integer.parseInt(gb);
-         }
-      } else if (qName.equals("Description")) {
-         description = currentOrNull(currentText);
-      } else if (qName.equals("Location")) {
-         location = currentOrNull(currentText);
-      } else if (qName.equals("AffinityGroup")) {
-         affinityGroup = currentOrNull(currentText);
-      } else if (qName.equals("MediaLink")) {
-         String link = currentOrNull(currentText);
-         if (link != null) {
-            mediaLink = URI.create(link);
-         }
-      } else if (qName.equals("SourceImageName")) {
-         sourceImage = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inAttachment) {
-         attachmentHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ErrorHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ErrorHandler.java
deleted file mode 100644
index 8ab50dd..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ErrorHandler.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.xml;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Error;
-import org.jclouds.azurecompute.domain.Error.Code;
-import org.jclouds.http.functions.ParseSax;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460801" >api</a>
- */
-public final class ErrorHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Error> {
-
-   private Code code;
-
-   private String message;
-
-   private StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public Error getResult() {
-      return Error.create(code, message);
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("Code")) {
-         String codeText = currentOrNull(currentText);
-         code = Code.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, codeText));
-      } else if (qName.equals("Message")) {
-         message = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ExtendedPropertiesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ExtendedPropertiesHandler.java
deleted file mode 100644
index be675b8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ExtendedPropertiesHandler.java
+++ /dev/null
@@ -1,55 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import com.google.common.collect.Lists;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.xml.sax.helpers.DefaultHandler;
-
-public class ExtendedPropertiesHandler extends DefaultHandler {
-
-   private final List<String> extendedProperties = Lists.newArrayList();
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   public Map<String, String> getResult() {
-      final Map<String, String> result = new HashMap<String, String>();
-      for (int i = 0; i < extendedProperties.size(); i += 2) {
-         result.put(extendedProperties.get(i), extendedProperties.get(i + 1));
-      }
-      extendedProperties.clear();
-      return result;
-   }
-
-   @Override
-   public void endElement(final String uri, final String localName, final String qName) {
-      if ("Name".equals(qName) || "Value".equals(qName)) {
-         extendedProperties.add(currentOrNull(currentText));
-      }
-
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/InputEndpointHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/InputEndpointHandler.java
deleted file mode 100644
index ad5a13f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/InputEndpointHandler.java
+++ /dev/null
@@ -1,96 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet.InputEndpoint;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet.InputEndpoint.LoadBalancerProbe;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-public class InputEndpointHandler extends ParseSax.HandlerForGeneratedRequestWithResult<InputEndpoint> {
-
-   private Integer localPort;
-
-   private String name;
-
-   private Integer port;
-
-   private String protocol;
-
-   private Boolean enableDirectServerReturn;
-
-   private String vip;
-
-   private String loadBalancerName;
-
-   private LoadBalancerProbe loadBalancerProbe;
-
-   private Integer idleTimeoutInMinutes;
-
-   private StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public void startElement(String uri, String localName, String qName, Attributes attributes) {
-   }
-
-   @Override
-   public InputEndpoint getResult() {
-      InputEndpoint result = InputEndpoint.create(name, protocol, localPort, port, vip,
-              enableDirectServerReturn, loadBalancerName, loadBalancerProbe, idleTimeoutInMinutes);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      name = vip = protocol = null;
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("Name")) {
-         name = currentOrNull(currentText);
-      } else if (qName.equals("Vip")) {
-         vip = currentOrNull(currentText);
-      } else if (qName.equals("LocalPort")) {
-         String localPortText = currentOrNull(currentText);
-         if (localPortText != null) {
-            localPort = Integer.parseInt(localPortText);
-         }
-      } else if (qName.equals("Port")) {
-         String portText = currentOrNull(currentText);
-         if (portText != null) {
-            port = Integer.parseInt(portText);
-         }
-      } else if (qName.equals("Protocol")) {
-         protocol = currentOrNull(currentText);
-      } else if (qName.equals("EnableDirectServerReturn")) {
-         String enableDirectServerReturnText = currentOrNull(currentText);
-         if (enableDirectServerReturnText != null) {
-            enableDirectServerReturn = Boolean.parseBoolean(enableDirectServerReturnText);
-         }
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      currentText.append(ch, start, length);
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/InstanceEndpointHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/InstanceEndpointHandler.java
deleted file mode 100644
index 2d254d4..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/InstanceEndpointHandler.java
+++ /dev/null
@@ -1,81 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Deployment.InstanceEndpoint;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-public class InstanceEndpointHandler extends ParseSax.HandlerForGeneratedRequestWithResult<InstanceEndpoint> {
-
-   private String name;
-
-   private String vip;
-
-   private Integer publicPort;
-
-   private Integer localPort;
-
-   private String protocol;
-
-   private StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public void startElement(String uri, String localName, String qName, Attributes attributes) {
-   }
-
-   @Override
-   public InstanceEndpoint getResult() {
-      InstanceEndpoint result = InstanceEndpoint.create(name, vip, publicPort, localPort, protocol);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      name = vip = protocol = null;
-      publicPort = localPort = null;
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("Name")) {
-         name = currentOrNull(currentText);
-      } else if (qName.equals("Vip")) {
-         vip = currentOrNull(currentText);
-      } else if (qName.equals("PublicPort")) {
-         String publicPortText = currentOrNull(currentText);
-         if (publicPortText != null) {
-            publicPort = Integer.parseInt(publicPortText);
-         }
-      } else if (qName.equals("LocalPort")) {
-         String localPortText = currentOrNull(currentText);
-         if (localPortText != null) {
-            localPort = Integer.parseInt(localPortText);
-         }
-      } else if (qName.equals("Protocol")) {
-         protocol = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListAffinityGroupsHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListAffinityGroupsHandler.java
deleted file mode 100644
index 98d3d63..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListAffinityGroupsHandler.java
+++ /dev/null
@@ -1,76 +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.xml;
-
-import java.util.List;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import com.google.inject.Inject;
-import org.jclouds.azurecompute.domain.AffinityGroup;
-import org.xml.sax.SAXException;
-
-public final class ListAffinityGroupsHandler
-        extends ParseSax.HandlerForGeneratedRequestWithResult<List<AffinityGroup>> {
-
-   private final Builder<AffinityGroup> affinityGroups = ImmutableList.builder();
-
-   private final AffinityGroupHandler affinityGroupHandler;
-
-   private boolean inAffinityGroup;
-
-   @Inject
-   ListAffinityGroupsHandler(AffinityGroupHandler affinityGroupHandler) {
-      this.affinityGroupHandler = affinityGroupHandler;
-   }
-
-   @Override
-   public List<AffinityGroup> getResult() {
-      return affinityGroups.build();
-   }
-
-   @Override
-   public void startElement(final String url, final String name, final String qName, final Attributes attributes)
-           throws SAXException {
-
-      if ("AffinityGroup".equals(qName)) {
-         inAffinityGroup = true;
-      } else if (inAffinityGroup) {
-         affinityGroupHandler.startElement(url, qName, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(final String uri, final String name, final String qName) {
-      if ("AffinityGroup".equals(qName)) {
-         inAffinityGroup = false;
-         affinityGroups.add(affinityGroupHandler.getResult());
-      } else if (inAffinityGroup) {
-         affinityGroupHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      if (inAffinityGroup) {
-         affinityGroupHandler.characters(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListCloudServicesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListCloudServicesHandler.java
deleted file mode 100644
index 98eae83..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListCloudServicesHandler.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.xml;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460781">Response body description</a>
- */
-public final class ListCloudServicesHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<CloudService>> {
-
-   private boolean inHostedService;
-
-   private final CloudServiceHandler cloudServiceHandler;
-
-   private final Builder<CloudService> hostedServices = ImmutableList.builder();
-
-   @Inject
-   ListCloudServicesHandler(CloudServiceHandler cloudServiceHandler) {
-      this.cloudServiceHandler = cloudServiceHandler;
-   }
-
-   @Override
-   public List<CloudService> getResult() {
-      return hostedServices.build();
-   }
-
-   @Override
-   public void startElement(String url, String name, String qName, Attributes attributes) {
-      if (qName.equals("HostedService")) {
-         inHostedService = true;
-      }
-      if (inHostedService) {
-         cloudServiceHandler.startElement(url, name, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(String uri, String name, String qName) {
-      if (qName.equals("HostedService")) {
-         inHostedService = false;
-         hostedServices.add(cloudServiceHandler.getResult());
-      } else if (inHostedService) {
-         cloudServiceHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inHostedService) {
-         cloudServiceHandler.characters(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListDataVirtualHardDisksHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListDataVirtualHardDisksHandler.java
deleted file mode 100644
index a37bc41..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListDataVirtualHardDisksHandler.java
+++ /dev/null
@@ -1,70 +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.xml;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import com.google.inject.Inject;
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import java.util.List;
-
-public final class ListDataVirtualHardDisksHandler
-        extends ParseSax.HandlerForGeneratedRequestWithResult<List<DataVirtualHardDisk>> {
-
-   private boolean inDataVHD;
-
-   private final DataVirtualHardDiskHandler dataVirtualHardDiskHandler;
-
-   private final Builder<DataVirtualHardDisk> VHDs = ImmutableList.builder();
-
-   @Inject
-   ListDataVirtualHardDisksHandler(DataVirtualHardDiskHandler dataVirtualHardDiskHandler) {
-      this.dataVirtualHardDiskHandler = dataVirtualHardDiskHandler;
-   }
-
-   @Override
-   public List<DataVirtualHardDisk> getResult() {
-      return VHDs.build();
-   }
-
-   @Override
-   public void startElement(String url, String name, String qName, Attributes attributes) {
-      if (qName.equals("DataVirtualHardDisk")) {
-         inDataVHD = true;
-      }
-   }
-
-   @Override
-   public void endElement(String uri, String name, String qName) {
-      if (qName.equals("DataVirtualHardDisk")) {
-         inDataVHD = false;
-         VHDs.add(dataVirtualHardDiskHandler.getResult());
-      } else if (inDataVHD) {
-         dataVirtualHardDiskHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inDataVHD) {
-         dataVirtualHardDiskHandler.characters(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListDisksHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListDisksHandler.java
deleted file mode 100644
index 4014647..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListDisksHandler.java
+++ /dev/null
@@ -1,73 +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.xml;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Disk;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import com.google.inject.Inject;
-
-public final class ListDisksHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<Disk>> {
-
-   private boolean inDisk;
-
-   private final DiskHandler diskHandler;
-
-   private final Builder<Disk> disks = ImmutableList.builder();
-
-   @Inject
-   ListDisksHandler(DiskHandler diskHandler) {
-      this.diskHandler = diskHandler;
-   }
-
-   @Override
-   public List<Disk> getResult() {
-      return disks.build();
-   }
-
-   @Override
-   public void startElement(String url, String name, String qName, Attributes attributes) {
-      if (qName.equals("Disk")) {
-         inDisk = true;
-      }
-      if (inDisk) {
-         diskHandler.startElement(url, name, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(String uri, String name, String qName) {
-      if (qName.equals("Disk")) {
-         inDisk = false;
-         disks.add(diskHandler.getResult());
-      } else if (inDisk) {
-         diskHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inDisk) {
-         diskHandler.characters(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListLocationsHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListLocationsHandler.java
deleted file mode 100644
index 926be98..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListLocationsHandler.java
+++ /dev/null
@@ -1,70 +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.xml;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import com.google.inject.Inject;
-
-public final class ListLocationsHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<Location>> {
-
-   private boolean inLocation;
-
-   private final LocationHandler locationHandler;
-
-   private final Builder<Location> locations = ImmutableList.builder();
-
-   @Inject
-   ListLocationsHandler(LocationHandler locationHandler) {
-      this.locationHandler = locationHandler;
-   }
-
-   @Override
-   public List<Location> getResult() {
-      return locations.build();
-   }
-
-   @Override
-   public void startElement(String url, String name, String qName, Attributes attributes) {
-      if (qName.equals("Location")) {
-         inLocation = true;
-      }
-   }
-
-   @Override
-   public void endElement(String uri, String name, String qName) {
-      if (qName.equals("Location")) {
-         inLocation = false;
-         locations.add(locationHandler.getResult());
-      } else if (inLocation) {
-         locationHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inLocation) {
-         locationHandler.characters(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListNetworkSecurityGroupsHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListNetworkSecurityGroupsHandler.java
deleted file mode 100644
index ad47e77..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListNetworkSecurityGroupsHandler.java
+++ /dev/null
@@ -1,70 +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.xml;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.Inject;
-
-public class ListNetworkSecurityGroupsHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<NetworkSecurityGroup>> {
-
-   private boolean inNetworkSecurityGroup;
-
-   private final NetworkSecurityGroupHandler networkSecurityGroupHandler;
-
-   private final ImmutableList.Builder<NetworkSecurityGroup> networkSecurityGroups = ImmutableList.builder();
-
-   @Inject
-   ListNetworkSecurityGroupsHandler(NetworkSecurityGroupHandler networkSecurityGroupHandler) {
-      this.networkSecurityGroupHandler = networkSecurityGroupHandler;
-   }
-
-   @Override
-   public List<NetworkSecurityGroup> getResult() {
-      return networkSecurityGroups.build();
-   }
-
-   @Override
-   public void startElement(String url, String name, String qName, Attributes attributes) {
-      if (qName.equals("NetworkSecurityGroup")) {
-         inNetworkSecurityGroup = true;
-      }
-   }
-
-   @Override
-   public void endElement(String uri, String name, String qName) {
-      if (qName.equals("NetworkSecurityGroup")) {
-         inNetworkSecurityGroup = false;
-         networkSecurityGroups.add(networkSecurityGroupHandler.getResult());
-      } else if (inNetworkSecurityGroup) {
-         networkSecurityGroupHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inNetworkSecurityGroup) {
-         networkSecurityGroupHandler.characters(ch, start, length);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListOSImagesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListOSImagesHandler.java
deleted file mode 100644
index 29e7df4..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListOSImagesHandler.java
+++ /dev/null
@@ -1,70 +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.xml;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import com.google.inject.Inject;
-
-public final class ListOSImagesHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<OSImage>> {
-
-   private boolean inOSImage;
-
-   private final OSImageHandler osImageHandler;
-
-   private final Builder<OSImage> images = ImmutableList.builder();
-
-   @Inject
-   ListOSImagesHandler(OSImageHandler osImageHandler) {
-      this.osImageHandler = osImageHandler;
-   }
-
-   @Override
-   public List<OSImage> getResult() {
-      return images.build();
-   }
-
-   @Override
-   public void startElement(String url, String name, String qName, Attributes attributes) {
-      if (qName.equals("OSImage")) {
-         inOSImage = true;
-      }
-   }
-
-   @Override
-   public void endElement(String uri, String name, String qName) {
-      if (qName.equals("OSImage")) {
-         inOSImage = false;
-         images.add(osImageHandler.getResult());
-      } else if (inOSImage) {
-         osImageHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inOSImage) {
-         osImageHandler.characters(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListProfileDefinitionsHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListProfileDefinitionsHandler.java
deleted file mode 100644
index 733b002..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListProfileDefinitionsHandler.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.xml;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758252.aspx">Response body description</a>
- */
-public final class ListProfileDefinitionsHandler extends
-        ParseSax.HandlerForGeneratedRequestWithResult<List<ProfileDefinition>> {
-
-   private boolean inDefinition;
-
-   private final ProfileDefinitionHandler profileDefinitionHandler;
-
-   private final Builder<ProfileDefinition> definitions = ImmutableList.builder();
-
-   @Inject
-   ListProfileDefinitionsHandler(ProfileDefinitionHandler profileDefinitionHandler) {
-      this.profileDefinitionHandler = profileDefinitionHandler;
-   }
-
-   @Override
-   public List<ProfileDefinition> getResult() {
-      return definitions.build();
-   }
-
-   @Override
-   public void startElement(final String url, final String name, final String qName, final Attributes attributes) {
-      if (qName.equals("Definition")) {
-         inDefinition = true;
-      }
-
-      if (inDefinition) {
-         profileDefinitionHandler.startElement(url, name, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(final String uri, final String name, final String qName) {
-      if (qName.equals("Definition")) {
-         inDefinition = false;
-         definitions.add(profileDefinitionHandler.getResult());
-      } else if (inDefinition) {
-         profileDefinitionHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      if (inDefinition) {
-         profileDefinitionHandler.characters(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListProfilesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListProfilesHandler.java
deleted file mode 100644
index 2602afc..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListProfilesHandler.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.xml;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import org.jclouds.azurecompute.domain.Profile;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758249.aspx">Response body description</a>
- */
-public final class ListProfilesHandler extends
-        ParseSax.HandlerForGeneratedRequestWithResult<List<Profile>> {
-
-   private boolean inProfile;
-
-   private final ProfileHandler profileHandler;
-
-   private final Builder<Profile> profiles = ImmutableList.builder();
-
-   @Inject
-   ListProfilesHandler(ProfileHandler profileHandler) {
-      this.profileHandler = profileHandler;
-   }
-
-   @Override
-   public List<Profile> getResult() {
-      return profiles.build();
-   }
-
-   @Override
-   public void startElement(final String url, final String name, final String qName, final Attributes attributes) {
-      if (qName.equals("Profile")) {
-         inProfile = true;
-      }
-
-      if (inProfile) {
-         profileHandler.startElement(url, name, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(final String uri, final String name, final String qName) {
-      if (qName.equals("Profile")) {
-         inProfile = false;
-         profiles.add(profileHandler.getResult());
-      } else if (inProfile) {
-         profileHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      if (inProfile) {
-         profileHandler.characters(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListReservedIPAddressHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListReservedIPAddressHandler.java
deleted file mode 100644
index b576662..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListReservedIPAddressHandler.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.xml;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import org.jclouds.azurecompute.domain.ReservedIPAddress;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn722418.aspx">Response body description</a>
- */
-public final class ListReservedIPAddressHandler extends
-        ParseSax.HandlerForGeneratedRequestWithResult<List<ReservedIPAddress>> {
-
-   private boolean inReservedIP;
-
-   private final ReservedIPAddressHandler reservedIPAddressHandler;
-
-   private final Builder<ReservedIPAddress> ips = ImmutableList.builder();
-
-   @Inject
-   ListReservedIPAddressHandler(ReservedIPAddressHandler reservedIPAddressHandler) {
-      this.reservedIPAddressHandler = reservedIPAddressHandler;
-   }
-
-   @Override
-   public List<ReservedIPAddress> getResult() {
-      return ips.build();
-   }
-
-   @Override
-   public void startElement(final String url, final String name, final String qName, final Attributes attributes) {
-      if (qName.equals("ReservedIP")) {
-         inReservedIP = true;
-      }
-      if (inReservedIP) {
-         reservedIPAddressHandler.startElement(url, name, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(final String uri, final String name, final String qName) {
-      if (qName.equals("ReservedIP")) {
-         inReservedIP = false;
-         ips.add(reservedIPAddressHandler.getResult());
-      } else if (inReservedIP) {
-         reservedIPAddressHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      if (inReservedIP) {
-         reservedIPAddressHandler.characters(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListRoleSizesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListRoleSizesHandler.java
deleted file mode 100644
index 94b7d75..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListRoleSizesHandler.java
+++ /dev/null
@@ -1,69 +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.xml;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.Inject;
-
-public final class ListRoleSizesHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<RoleSize>> {
-
-   private boolean inRoleSize;
-
-   private final RoleSizeHandler roleSizeHandler;
-
-   private final ImmutableList.Builder<RoleSize> roleSizes = ImmutableList.builder();
-
-   @Inject
-   ListRoleSizesHandler(RoleSizeHandler roleSizeHandler) {
-      this.roleSizeHandler = roleSizeHandler;
-   }
-
-   @Override
-   public List<RoleSize> getResult() {
-      return roleSizes.build();
-   }
-
-   @Override
-   public void startElement(String url, String name, String qName, Attributes attributes) {
-      if (qName.equals("RoleSize")) {
-         inRoleSize = true;
-      }
-   }
-
-   @Override
-   public void endElement(String uri, String name, String qName) {
-      if (qName.equals("RoleSize")) {
-         inRoleSize = false;
-         roleSizes.add(roleSizeHandler.getResult());
-      } else if (inRoleSize) {
-         roleSizeHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inRoleSize) {
-         roleSizeHandler.characters(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListServiceCertificatesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListServiceCertificatesHandler.java
deleted file mode 100644
index 5310f01..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListServiceCertificatesHandler.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.xml;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import org.jclouds.azurecompute.domain.ServiceCertificate;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee460788.aspx">Response body description</a>
- */
-public final class ListServiceCertificatesHandler extends
-        ParseSax.HandlerForGeneratedRequestWithResult<List<ServiceCertificate>> {
-
-   private boolean inCertificate;
-
-   private final ServiceCertificateHandler serviceCertificateHandler;
-
-   private final Builder<ServiceCertificate> certificates = ImmutableList.builder();
-
-   @Inject
-   ListServiceCertificatesHandler(ServiceCertificateHandler serviceCertificateHandler) {
-      this.serviceCertificateHandler = serviceCertificateHandler;
-   }
-
-   @Override
-   public List<ServiceCertificate> getResult() {
-      return certificates.build();
-   }
-
-   @Override
-   public void startElement(final String url, final String name, final String qName, final Attributes attributes) {
-      if (qName.equals("Certificate")) {
-         inCertificate = true;
-      }
-      if (inCertificate) {
-         serviceCertificateHandler.startElement(url, name, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(final String uri, final String name, final String qName) {
-      if (qName.equals("Certificate")) {
-         inCertificate = false;
-         certificates.add(serviceCertificateHandler.getResult());
-      } else if (inCertificate) {
-         serviceCertificateHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      if (inCertificate) {
-         serviceCertificateHandler.characters(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListStorageServicesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListStorageServicesHandler.java
deleted file mode 100644
index 284131f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListStorageServicesHandler.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.Inject;
-
-public class ListStorageServicesHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<StorageService>> {
-
-   private boolean inStorageService;
-
-   private final StorageServiceHandler storageServiceHandler;
-
-   private final ImmutableList.Builder<StorageService> storageAccounts = ImmutableList.builder();
-
-   @Inject
-   ListStorageServicesHandler(final StorageServiceHandler storageServiceHandler) {
-      this.storageServiceHandler = storageServiceHandler;
-   }
-
-   @Override
-   public List<StorageService> getResult() {
-      return storageAccounts.build();
-   }
-
-   @Override
-   public void startElement(final String url, final String name, final String qName, final Attributes attributes) {
-      if ("StorageService".equals(qName)) {
-         inStorageService = true;
-      }
-      if (inStorageService) {
-         storageServiceHandler.startElement(url, name, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(final String uri, final String name, final String qName) {
-      if ("StorageService".equals(qName)) {
-         inStorageService = false;
-         storageAccounts.add(storageServiceHandler.getResult());
-      } else if (inStorageService) {
-         storageServiceHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      if (inStorageService) {
-         storageServiceHandler.characters(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListVMImagesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListVMImagesHandler.java
deleted file mode 100644
index 7818abc..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListVMImagesHandler.java
+++ /dev/null
@@ -1,70 +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.xml;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import com.google.inject.Inject;
-import org.jclouds.azurecompute.domain.VMImage;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-import java.util.List;
-
-public final class ListVMImagesHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<VMImage>> {
-   private boolean inVMImage;
-   private final VMImageHandler vmImageHandler;
-   private final Builder<VMImage> images = ImmutableList.builder();
-
-   @Inject ListVMImagesHandler(VMImageHandler vmImageHandler) {
-      this.vmImageHandler = vmImageHandler;
-   }
-
-   @Override
-   public List<VMImage> getResult() {
-      return images.build();
-   }
-
-   @Override
-   public void startElement(String url, String name, String qName, Attributes attributes) throws SAXException {
-      if (qName.equals("VMImage")) {
-         inVMImage = true;
-      }
-      if (inVMImage) {
-         vmImageHandler.startElement(url, name, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(String uri, String name, String qName) {
-      if (qName.equals("VMImage")) {
-         inVMImage = false;
-         images.add(vmImageHandler.getResult());
-      }
-      if (inVMImage) {
-         vmImageHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inVMImage) {
-         vmImageHandler.characters(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListVirtualNetworkSitesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListVirtualNetworkSitesHandler.java
deleted file mode 100644
index cd8aed5..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListVirtualNetworkSitesHandler.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.Inject;
-
-public class ListVirtualNetworkSitesHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<VirtualNetworkSite>> {
-
-   private boolean inVirtualNetworkSite;
-
-   private final VirtualNetworkSiteHandler virtualNetworkSiteHandler;
-
-   private final ImmutableList.Builder<VirtualNetworkSite> virtualNetworkSites = ImmutableList.builder();
-
-   @Inject
-   ListVirtualNetworkSitesHandler(VirtualNetworkSiteHandler virtualNetworkSiteHandler) {
-      this.virtualNetworkSiteHandler = virtualNetworkSiteHandler;
-   }
-
-   @Override
-   public List<VirtualNetworkSite> getResult() {
-      return virtualNetworkSites.build();
-   }
-
-   @Override
-   public void startElement(String url, String name, String qName, Attributes attributes) {
-      if (qName.equals("VirtualNetworkSite")) {
-         inVirtualNetworkSite = true;
-      }
-      if (inVirtualNetworkSite) {
-         virtualNetworkSiteHandler.startElement(url, name, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(String uri, String name, String qName) {
-      if (qName.equals("VirtualNetworkSite")) {
-         inVirtualNetworkSite = false;
-         virtualNetworkSites.add(virtualNetworkSiteHandler.getResult());
-      } else if (inVirtualNetworkSite) {
-         virtualNetworkSiteHandler.endElement(uri, name, qName);
-      }
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inVirtualNetworkSite) {
-         virtualNetworkSiteHandler.characters(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/LocationHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/LocationHandler.java
deleted file mode 100644
index 2b226c5..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/LocationHandler.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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.http.functions.ParseSax;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-import org.jclouds.azurecompute.domain.ComputeCapabilities;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >api</a>
- */
-final class LocationHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Location> {
-
-   private String name;
-
-   private String displayName;
-
-   private final List<String> availableServices = Lists.newArrayList();
-
-   private ComputeCapabilities computeCapabilities;
-
-   private boolean inComputeCapabilities = false;
-
-   private final ComputeCapabilitiesHandler computeCapabilitiesHandler;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Inject
-   LocationHandler(final ComputeCapabilitiesHandler computeCapabilitiesHandler) {
-      this.computeCapabilitiesHandler = computeCapabilitiesHandler;
-   }
-
-   @Override
-   public Location getResult() {
-      Location result = Location.create(
-              name, displayName, ImmutableList.copyOf(availableServices), computeCapabilities);
-
-      // handler is called in a loop.
-      name = displayName = null;
-      availableServices.clear();
-      computeCapabilities = null;
-
-      return result;
-   }
-
-   @Override
-   public void startElement(final String uri, final String localName, final String qName, final Attributes attributes)
-           throws SAXException {
-
-      if ("ComputeCapabilities".equals(qName)) {
-         inComputeCapabilities = true;
-      } else if (inComputeCapabilities) {
-         computeCapabilitiesHandler.startElement(uri, localName, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("Name")) {
-         name = currentOrNull(currentText);
-      } else if (qName.equals("DisplayName")) {
-         displayName = currentOrNull(currentText);
-      } else if (qName.equals("AvailableService")) {
-         availableServices.add(currentOrNull(currentText));
-      } else if ("ComputeCapabilities".equals(qName)) {
-         inComputeCapabilities = false;
-         computeCapabilities = computeCapabilitiesHandler.getResult();
-      } else if (inComputeCapabilities) {
-         computeCapabilitiesHandler.endElement(ignoredUri, ignoredName, qName);
-      }
-
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      if (inComputeCapabilities) {
-         computeCapabilitiesHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/NetworkConfigurationHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/NetworkConfigurationHandler.java
deleted file mode 100644
index 1679d6a..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/NetworkConfigurationHandler.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.xml;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkConfiguration;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.inject.Inject;
-
-public class NetworkConfigurationHandler extends ParseSax.HandlerForGeneratedRequestWithResult<NetworkConfiguration> {
-
-   private VirtualNetworkConfiguration virtualNetworkConfiguration;
-
-   private boolean inVirtualNetworkConfiguration;
-
-   private final VirtualNetworkConfigurationHandler virtualNetworkConfigurationHandler;
-
-   @Inject
-   NetworkConfigurationHandler(VirtualNetworkConfigurationHandler virtualNetworkConfigurationHandler) {
-      this.virtualNetworkConfigurationHandler = virtualNetworkConfigurationHandler;
-   }
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public void startElement(String url, String name, String qName, Attributes attributes) {
-      if (qName.equals("VirtualNetworkConfiguration")) {
-         inVirtualNetworkConfiguration = true;
-      }
-      if (inVirtualNetworkConfiguration) {
-         virtualNetworkConfigurationHandler.startElement(url, name, qName, attributes);
-      }
-   }
-
-   @Override
-   public NetworkConfiguration getResult() {
-      return NetworkConfiguration.create(virtualNetworkConfiguration);
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("VirtualNetworkConfiguration")) {
-         virtualNetworkConfiguration = virtualNetworkConfigurationHandler.getResult();
-      } else if (inVirtualNetworkConfiguration) {
-         virtualNetworkConfigurationHandler.endElement(ignoredUri, ignoredName, qName);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inVirtualNetworkConfiguration) {
-         virtualNetworkConfigurationHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/NetworkSecurityGroupHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/NetworkSecurityGroupHandler.java
deleted file mode 100644
index 876cfe8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/NetworkSecurityGroupHandler.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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-
-public class NetworkSecurityGroupHandler extends ParseSax.HandlerForGeneratedRequestWithResult<NetworkSecurityGroup> {
-
-   private String name;
-
-   private String label;
-
-   private String location;
-
-   private NetworkSecurityGroup.State state;
-
-   private List<Rule> rules = Lists.newArrayList();
-
-   private boolean inRule;
-
-   private final RuleHandler ruleHandler = new RuleHandler();
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public void startElement(String uri, String localName, String qName, Attributes attributes) {
-      if (qName.equals("Rule")) {
-         inRule = true;
-      }
-   }
-
-   @Override
-   public NetworkSecurityGroup getResult() {
-      NetworkSecurityGroup result = NetworkSecurityGroup.create(name, label, location, state, rules);
-      name = label = location = null; // handler is called in a loop.
-      this.state = null;
-      rules = Lists.newArrayList();
-      return result;
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("Rule")) {
-         inRule = false;
-         rules.add(ruleHandler.getResult());
-      } else if (inRule) {
-         ruleHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("Name")) {
-         name = currentOrNull(currentText);
-      } else if (qName.equals("Label")) {
-         label = currentOrNull(currentText);
-      } else if (qName.equals("Location")) {
-         location = currentOrNull(currentText);
-      } else if (qName.equals("State")) {
-         state = NetworkSecurityGroup.State.fromString(currentOrNull(currentText));
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inRule) {
-         ruleHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSConfigHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSConfigHandler.java
deleted file mode 100644
index 2d4998b..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSConfigHandler.java
+++ /dev/null
@@ -1,106 +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.xml;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.VMImage;
-import org.jclouds.http.functions.ParseSax;
-
-import java.net.URI;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/jj157193.aspx#DataVirtualHardDisks" >api</a>
- */
-final class OSConfigHandler extends ParseSax.HandlerForGeneratedRequestWithResult<VMImage.OSDiskConfiguration> {
-
-    private VMImage.OSDiskConfiguration.Caching hostCaching;
-    private String name;
-    private VMImage.OSDiskConfiguration.OSState osState;
-    private OSImage.Type os;
-    private Integer logicalDiskSizeInGB;
-    private URI mediaLink;
-    private String ioType;
-
-    private final StringBuilder currentText = new StringBuilder();
-
-    @Override
-    public VMImage.OSDiskConfiguration getResult() {
-        return VMImage.OSDiskConfiguration
-                .create(name, hostCaching, osState, os, mediaLink, logicalDiskSizeInGB, ioType);
-    }
-
-    @Override
-    public void endElement(String ignoredUri, String ignoredName, String qName) {
-
-        if (qName.equals("HostCaching")) {
-            String hostCachingText = currentOrNull(currentText);
-            if (hostCachingText != null) {
-                hostCaching = parseHostCache(hostCachingText);
-            }
-        } else if (qName.equals("OSState")) {
-            String osStateText = currentOrNull(currentText);
-            if (osStateText != null) {
-                osState = VMImage.OSDiskConfiguration.OSState.valueOf(osStateText.toUpperCase());
-            }
-        } else if (qName.equals("OS")) {
-            String osText = currentOrNull(currentText);
-            if (osText != null) {
-                os = OSImage.Type.valueOf(osText.toUpperCase());
-            }
-        } else if (qName.equals("Name")) {
-            name = currentOrNull(currentText);
-        } else if (qName.equals("LogicalDiskSizeInGB")) {
-            String gb = currentOrNull(currentText);
-            if (gb != null) {
-                logicalDiskSizeInGB = Integer.parseInt(gb);
-            }
-        } else if (qName.equals("MediaLink")) {
-            String link = currentOrNull(currentText);
-            if (link != null) {
-                mediaLink = URI.create(link);
-            }
-        } else if (qName.equals("IOType")) {
-            ioType = currentOrNull(currentText);
-        }
-        currentText.setLength(0);
-    }
-
-    private static VMImage.OSDiskConfiguration.Caching parseHostCache(String hostCaching) {
-        try {
-            return VMImage.OSDiskConfiguration.Caching.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, hostCaching));
-        } catch (IllegalArgumentException e) {
-            return VMImage.OSDiskConfiguration.Caching.NONE;
-        }
-    }
-
-    private static VMImage.OSDiskConfiguration.OSState parseOSState(String osState) {
-        try {
-            return VMImage.OSDiskConfiguration.OSState.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, osState));
-        } catch (IllegalArgumentException e) {
-            throw new IllegalArgumentException(e);
-        }
-    }
-
-    @Override
-    public void characters(char[] ch, int start, int length) {
-        currentText.append(ch, start, length);
-    }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSImageHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSImageHandler.java
deleted file mode 100644
index 0932c08..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSImageHandler.java
+++ /dev/null
@@ -1,188 +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.xml;
-
-import static com.google.common.base.Strings.emptyToNull;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.net.URI;
-import java.util.Date;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.ParseSax;
-
-import com.google.common.base.Splitter;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157191" >api</a>
- */
-final class OSImageHandler extends ParseSax.HandlerForGeneratedRequestWithResult<OSImage> {
-
-   private String name;
-
-   private String location;
-
-   private String affinityGroup;
-
-   private String label;
-
-   private String category;
-
-   private String description;
-
-   private String imageFamily;
-
-   private OSImage.Type os;
-
-   private URI mediaLink;
-
-   private Integer logicalSizeInGB;
-
-   private final List<String> eulas = Lists.newArrayList();
-
-   private Date publishedDate;
-
-   private String iconUri;
-
-   private String smallIconUri;
-
-   private URI privacyUri;
-
-   private URI pricingDetailLink;
-
-   private String recommendedVMSize;
-
-   private Boolean isPremium;
-
-   private Boolean showInGui;
-
-   private String publisherName;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public OSImage getResult() {
-      OSImage result = OSImage.create(name, location, affinityGroup, label, description, imageFamily, category, os,
-              publisherName, mediaLink, logicalSizeInGB, ImmutableList.copyOf(eulas));
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      name = affinityGroup = label = description = category = imageFamily = iconUri = smallIconUri = recommendedVMSize
-              = publisherName = null;
-      os = null;
-      publisherName = null;
-      mediaLink = null;
-      logicalSizeInGB = null;
-      publishedDate = null;
-      privacyUri = pricingDetailLink = null;
-      isPremium = null;
-      showInGui = null;
-      eulas.clear();
-      location = null;
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("OS")) {
-         String osText = currentOrNull(currentText);
-         if (osText != null) {
-            os = OSImage.Type.valueOf(currentOrNull(currentText).toUpperCase());
-         }
-      } else if (qName.equals("Name")) {
-         name = currentOrNull(currentText);
-      } else if (qName.equals("LogicalSizeInGB")) {
-         String gb = currentOrNull(currentText);
-         if (gb != null) {
-            logicalSizeInGB = Integer.parseInt(gb);
-         }
-      } else if (qName.equals("Description")) {
-         description = currentOrNull(currentText);
-      } else if (qName.equals("Category")) {
-         category = currentOrNull(currentText);
-      } else if (qName.equals("Location")) {
-         location = currentOrNull(currentText);
-      } else if (qName.equals("AffinityGroup")) {
-         affinityGroup = currentOrNull(currentText);
-      } else if (qName.equals("PublisherName")) {
-         publisherName = currentOrNull(currentText);
-      } else if (qName.equals("MediaLink")) {
-         String link = currentOrNull(currentText);
-         if (link != null) {
-            mediaLink = URI.create(link);
-         }
-      } else if (qName.equals("Eula")) {
-         String eulaField = currentOrNull(currentText);
-         if (eulaField != null) {
-            for (String eula : Splitter.on(';').split(eulaField)) {
-               if ((eula = emptyToNull(eula.trim())) != null) { // Dirty data in RightScale eulas field.
-                  eulas.add(eula);
-               }
-            }
-         }
-      } else if (qName.equals("Label")) {
-         label = currentOrNull(currentText);
-      } else if (qName.equals("ImageFamily")) {
-         imageFamily = currentOrNull(currentText);
-      } else if (qName.equals("PublishedDate")) {
-         String date = currentOrNull(currentText);
-         if (date != null) {
-            publishedDate = new SimpleDateFormatDateService().iso8601DateOrSecondsDateParse(date);
-         }
-      } else if (qName.equals("IconUri")) {
-         iconUri = currentOrNull(currentText);
-      } else if (qName.equals("SmallIconUri")) {
-         smallIconUri = currentOrNull(currentText);
-      } else if (qName.equals("PrivacyUri")) {
-         String uri = currentOrNull(currentText);
-         if (uri != null) {
-            privacyUri = URI.create(uri);
-         }
-      } else if (qName.equals("RecommendedVMSize")) {
-         recommendedVMSize = currentOrNull(currentText);
-      } else if (qName.equals("IsPremium")) {
-         String premium = currentOrNull(currentText);
-         if (premium != null) {
-            isPremium = Boolean.valueOf(premium);
-         }
-      } else if (qName.equals("ShowInGui")) {
-         String show = currentOrNull(currentText);
-         if (show != null) {
-            showInGui = Boolean.valueOf(show);
-         }
-      } else if (qName.equals("PublisherName")) {
-         publisherName = currentOrNull(currentText);
-      } else if (qName.equals("PricingDetailLink")) {
-         String uri = currentOrNull(currentText);
-         if (uri != null) {
-            pricingDetailLink = URI.create(uri);
-         }
-      }
-
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSVirtualHardDiskHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSVirtualHardDiskHandler.java
deleted file mode 100644
index 265e786..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSVirtualHardDiskHandler.java
+++ /dev/null
@@ -1,76 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.http.functions.ParseSax;
-
-public class OSVirtualHardDiskHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Role.OSVirtualHardDisk> {
-
-   private String hostCaching;
-
-   private String diskName;
-
-   private URI mediaLink;
-
-   private String sourceImageName;
-
-   private OSImage.Type os;
-
-   private Integer lun;
-
-   private Integer logicalDiskSizeInGB;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public Role.OSVirtualHardDisk getResult() {
-      return Role.OSVirtualHardDisk.create(hostCaching, diskName, lun, logicalDiskSizeInGB, mediaLink, sourceImageName, os);
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("HostCaching")) {
-         hostCaching = currentOrNull(currentText);
-      } else if (qName.equals("DiskName")) {
-         diskName = currentOrNull(currentText);
-      } else if (qName.equals("MediaLink")) {
-         String link = currentOrNull(currentText);
-         if (link != null) {
-            mediaLink = URI.create(link);
-         }
-      } else if (qName.equals("SourceImageName")) {
-         sourceImageName = currentOrNull(currentText);
-      } else if (qName.equals("OS")) {
-         String osText = currentOrNull(currentText);
-         if (osText != null) {
-            os = OSImage.Type.valueOf(currentOrNull(currentText).toUpperCase());
-         }
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      currentText.append(ch, start, length);
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OperationHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OperationHandler.java
deleted file mode 100644
index 321316d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OperationHandler.java
+++ /dev/null
@@ -1,86 +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.xml;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Error;
-import org.jclouds.azurecompute.domain.Operation;
-import org.jclouds.azurecompute.domain.Operation.Status;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460783" >api</a>
- */
-public final class OperationHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Operation> {
-
-   private String id;
-
-   private Status status;
-
-   private Integer httpStatusCode;
-
-   private Error error;
-
-   private boolean inError;
-
-   private final ErrorHandler errorHandler = new ErrorHandler();
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public Operation getResult() {
-      return Operation.create(id, status, httpStatusCode, error);
-   }
-
-   @Override
-   public void startElement(String url, String name, String qName, Attributes attributes) {
-      if (qName.equals("Error")) {
-         inError = true;
-      }
-   }
-
-   @Override
-   public void endElement(String uri, String name, String qName) {
-      if (qName.equals("Error")) {
-         error = errorHandler.getResult();
-         inError = false;
-      } else if (inError) {
-         errorHandler.endElement(uri, name, qName);
-      } else if (qName.equals("ID")) {
-         id = currentOrNull(currentText);
-      } else if (qName.equals("Status")) {
-         String statusText = currentOrNull(currentText);
-         status = Status.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, statusText));
-      } else if (qName.equals("HttpStatusCode")) {
-         httpStatusCode = Integer.parseInt(currentOrNull(currentText));
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inError) {
-         errorHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionEndpointHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionEndpointHandler.java
deleted file mode 100644
index 8266a17..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionEndpointHandler.java
+++ /dev/null
@@ -1,110 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpoint;
-import org.jclouds.azurecompute.domain.ProfileDefinition.HealthStatus;
-import org.jclouds.azurecompute.domain.ProfileDefinition.Status;
-
-import org.jclouds.http.functions.ParseSax;
-
-import org.xml.sax.Attributes;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >Response body description</a>
- */
-public final class ProfileDefinitionEndpointHandler
-        extends ParseSax.HandlerForGeneratedRequestWithResult<ProfileDefinitionEndpoint> {
-
-   private String domain;
-
-   private Status status;
-
-   private HealthStatus healthStatus;
-
-   private ProfileDefinitionEndpoint.Type type;
-
-   private String location;
-
-   private Integer weight;
-
-   private Integer min;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public ProfileDefinitionEndpoint getResult() {
-      final ProfileDefinitionEndpoint result = ProfileDefinitionEndpoint.create(
-              domain, status, healthStatus, type, location, weight, min);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      domain = location = null;
-      min = null;
-      status = null;
-      type = null;
-   }
-
-   @Override
-   public void startElement(
-           final String ignoredUri,
-           final String ignoredLocalName,
-           final String qName,
-           final Attributes ignoredAttributes) {
-   }
-
-   @Override
-   public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
-      if (qName.equals("DomainName")) {
-         domain = currentOrNull(currentText);
-      } else if (qName.equals("Status")) {
-         final String value = currentText.toString().trim();
-         status = value.isEmpty()
-                 ? null
-                 : Status.fromString(value);
-      } else if (qName.equals("MonitorStatus")) {
-         final String value = currentText.toString().trim();
-         healthStatus = value.isEmpty()
-                 ? null
-                 : ProfileDefinition.HealthStatus.fromString(value);
-      } else if (qName.equals("Type")) {
-         final String value = currentText.toString().trim();
-         type = value.isEmpty()
-                 ? ProfileDefinitionEndpoint.Type.CLOUDSERVICE
-                 : ProfileDefinitionEndpoint.Type.fromString(value);
-      } else if (qName.equals("Location")) {
-         location = currentOrNull(currentText);
-      } else if (qName.equals("Weight")) {
-         final String value = currentText.toString().trim();
-         weight = value.isEmpty() ? 1 : Integer.parseInt(value);
-      } else if (qName.equals("MinChildEndpoints")) {
-         final String value = currentText.toString().trim();
-         min = value.isEmpty() ? 1 : Integer.parseInt(value);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionHandler.java
deleted file mode 100644
index 98a8804..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionHandler.java
+++ /dev/null
@@ -1,148 +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.xml;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import javax.inject.Inject;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpoint;
-import org.jclouds.azurecompute.domain.ProfileDefinitionMonitor;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >Response body description</a>
- */
-public final class ProfileDefinitionHandler extends ParseSax.HandlerForGeneratedRequestWithResult<ProfileDefinition> {
-
-   private Integer ttl;
-
-   private ProfileDefinition.Status status;
-
-   private String version;
-
-   private Builder<ProfileDefinitionMonitor> monitors = ImmutableList.<ProfileDefinitionMonitor>builder();
-
-   private ProfileDefinition.LBMethod lb;
-
-   private Builder<ProfileDefinitionEndpoint> endpoints = ImmutableList.<ProfileDefinitionEndpoint>builder();
-
-   private ProfileDefinition.HealthStatus healthStatus;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   private final ProfileDefinitionMonitorHandler monitorHandler;
-
-   private final ProfileDefinitionEndpointHandler endpointHandler;
-
-   private boolean inMonitor = false;
-   private boolean inEndpoint = false;
-
-   @Inject
-   public ProfileDefinitionHandler(
-           ProfileDefinitionMonitorHandler monitorHandler, ProfileDefinitionEndpointHandler endpointHandler) {
-      this.monitorHandler = monitorHandler;
-      this.endpointHandler = endpointHandler;
-   }
-
-   @Override
-   public ProfileDefinition getResult() {
-      final ProfileDefinition result = ProfileDefinition.create(
-              ttl, status, version, monitors.build(), lb, endpoints.build(), healthStatus);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      ttl = null;
-      status = null;
-      version = null;
-      monitors = ImmutableList.<ProfileDefinitionMonitor>builder();
-      lb = null;
-      endpoints = ImmutableList.<ProfileDefinitionEndpoint>builder();
-      inMonitor = false;
-      inEndpoint = false;
-   }
-
-   @Override
-   public void startElement(
-           final String url,
-           final String name,
-           final String qName,
-           final Attributes attributes) {
-
-      if (!inEndpoint && qName.equals("Monitor")) {
-         inMonitor = true;
-      }
-
-      if (!inMonitor && qName.equals("Endpoint")) {
-         inEndpoint = true;
-      }
-
-      if (inMonitor) {
-         monitorHandler.startElement(url, name, qName, attributes);
-      } else if (inEndpoint) {
-         endpointHandler.startElement(url, name, qName, attributes);
-      }
-   }
-
-   @Override
-   public void endElement(final String uri, final String name, final String qName) {
-      if (!inEndpoint && qName.equals("Monitor")) {
-         inMonitor = false;
-         monitors.add(monitorHandler.getResult());
-      } else if (!inMonitor && qName.equals("Endpoint")) {
-         inEndpoint = false;
-         endpoints.add(endpointHandler.getResult());
-      } else if (inMonitor) {
-         monitorHandler.endElement(uri, name, qName);
-      } else if (inEndpoint) {
-         endpointHandler.endElement(uri, name, qName);
-      } else {
-         if (qName.equals("TimeToLiveInSeconds")) {
-            ttl = Integer.parseInt(currentOrNull(currentText));
-         } else if (qName.equals("Status")) {
-            status = ProfileDefinition.Status.fromString(currentOrNull(currentText));
-         } else if (qName.equals("Version")) {
-            version = currentOrNull(currentText);
-         } else if (qName.equals("LoadBalancingMethod")) {
-            lb = ProfileDefinition.LBMethod.fromString(currentOrNull(currentText));
-         } else if (qName.equals("MonitorStatus")) {
-            final String value = currentText.toString().trim();
-            healthStatus = value.isEmpty()
-                    ? null
-                    : ProfileDefinition.HealthStatus.fromString(value);
-         }
-         currentText.setLength(0);
-      }
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      if (inMonitor) {
-         monitorHandler.characters(ch, start, length);
-      } else if (inEndpoint) {
-         endpointHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionMonitorHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionMonitorHandler.java
deleted file mode 100644
index 2a19158..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionMonitorHandler.java
+++ /dev/null
@@ -1,114 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinitionMonitor;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >Response body description</a>
- */
-public final class ProfileDefinitionMonitorHandler
-        extends ParseSax.HandlerForGeneratedRequestWithResult<ProfileDefinitionMonitor> {
-
-   private Integer intervall;
-
-   private Integer timeout;
-
-   private Integer toleration;
-
-   private ProfileDefinition.Protocol protocol;
-
-   private Integer port;
-
-   private String verb;
-
-   private String path;
-
-   private Integer expected;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public ProfileDefinitionMonitor getResult() {
-      final ProfileDefinitionMonitor result = ProfileDefinitionMonitor.create(
-              intervall, timeout, toleration, protocol, port, verb, path, expected);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      intervall = timeout = toleration = port = expected = null;
-      protocol = null;
-      verb = path = null;
-   }
-
-   @Override
-   public void startElement(
-           final String ignoredUri,
-           final String ignoredLocalName,
-           final String qName,
-           final Attributes ignoredAttributes) {
-   }
-
-   @Override
-   public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
-      if (qName.equals("IntervalInSeconds")) {
-         final String value = currentText.toString().trim();
-         intervall = value.isEmpty()
-                 ? ProfileDefinitionMonitor.DEFAULT_INTERVAL
-                 : Integer.parseInt(value);
-      } else if (qName.equals("TimeoutInSeconds")) {
-         final String value = currentText.toString().trim();
-         timeout = value.isEmpty()
-                 ? ProfileDefinitionMonitor.DEFAULT_TIMEOUT
-                 : Integer.parseInt(value);
-      } else if (qName.equals("ToleratedNumberOfFailures")) {
-         final String value = currentText.toString().trim();
-         toleration = value.isEmpty()
-                 ? ProfileDefinitionMonitor.DEFAULT_TOLERAION
-                 : Integer.parseInt(value);
-      } else if (qName.equals("Protocol")) {
-         protocol = ProfileDefinition.Protocol.fromString(currentOrNull(currentText));
-      } else if (qName.equals("Port")) {
-         port = Integer.parseInt(currentOrNull(currentText));
-      } else if (qName.equals("Verb")) {
-         final String value = currentText.toString().trim();
-         verb = value.isEmpty()
-                 ? ProfileDefinitionMonitor.DEFAULT_VERB
-                 : value;
-      } else if (qName.equals("RelativePath")) {
-         path = currentOrNull(currentText);
-      } else if (qName.equals("ExpectedStatusCode")) {
-         final String value = currentText.toString().trim();
-         expected = value.isEmpty()
-                 ? ProfileDefinitionMonitor.DEFAULT_EXPECTED
-                 : Integer.parseInt(value);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileHandler.java
deleted file mode 100644
index 8df6a85..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileHandler.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import com.google.common.collect.ImmutableMap;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import org.jclouds.azurecompute.domain.Profile;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758251.aspx" >Response body description</a>
- */
-public final class ProfileHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Profile> {
-
-   private String domain;
-
-   private String name;
-
-   private ProfileDefinition.Status status;
-
-   private String version;
-
-   private ImmutableMap.Builder<String, ProfileDefinition.Status> definitions
-           = ImmutableMap.<String, ProfileDefinition.Status>builder();
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   private boolean inDefinition = false;
-
-   private String definitionVersion = null;
-   private ProfileDefinition.Status definitionStatus = null;
-
-   @Override
-   public Profile getResult() {
-      final Profile result = Profile.create(domain, name, status, version, definitions.build());
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      domain = name = version = null;
-      status = null;
-      definitions = ImmutableMap.<String, ProfileDefinition.Status>builder();
-      inDefinition = false;
-   }
-
-   @Override
-   public void startElement(
-           final String url,
-           final String name,
-           final String qName,
-           final Attributes attributes) {
-
-      if (qName.equals("Definition")) {
-         inDefinition = true;
-      }
-   }
-
-   @Override
-   public void endElement(final String ignoredURI, final String ignoredName, final String qName) {
-      if (qName.equals("Definition")) {
-         inDefinition = false;
-         definitions.put(definitionVersion, definitionStatus);
-      } else if (inDefinition) {
-         if (qName.equals("Status")) {
-            final String value = currentText.toString().trim();
-            definitionStatus = value.isEmpty()
-                    ? null
-                    : ProfileDefinition.Status.fromString(value);
-         } else if (qName.equals("Version")) {
-            definitionVersion = currentOrNull(currentText);
-         }
-      } else {
-         if (qName.equals("DomainName")) {
-            domain = currentOrNull(currentText);
-         } else if (qName.equals("Name")) {
-            name = currentOrNull(currentText);
-         } else if (qName.equals("Status")) {
-            final String value = currentText.toString().trim();
-            status = value.isEmpty()
-                    ? null
-                    : ProfileDefinition.Status.fromString(value);
-         } else if (qName.equals("EnabledVersion")) {
-            version = currentOrNull(currentText);
-         }
-      }
-      currentText.setLength(0);
-
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ReservedIPAddressHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ReservedIPAddressHandler.java
deleted file mode 100644
index c3838e0..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ReservedIPAddressHandler.java
+++ /dev/null
@@ -1,103 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import org.jclouds.azurecompute.domain.ReservedIPAddress;
-import org.jclouds.azurecompute.domain.ReservedIPAddress.State;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn722412.aspx" >Response body description</a>
- */
-public final class ReservedIPAddressHandler extends ParseSax.HandlerForGeneratedRequestWithResult<ReservedIPAddress> {
-
-   private String name;
-
-   private String address;
-
-   private String id;
-
-   private String label;
-
-   private State state;
-
-   private Boolean inUse;
-
-   private String serviceName;
-
-   private String deploymentName;
-
-   private String location;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public ReservedIPAddress getResult() {
-      final ReservedIPAddress result = ReservedIPAddress.create(
-              name, address, id, label, state, inUse, serviceName, deploymentName, location);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      name = address = id = label = serviceName = deploymentName = location = null;
-      state = null;
-      inUse = null;
-   }
-
-   @Override
-   public void startElement(
-           final String ignoredUri,
-           final String ignoredLocalName,
-           final String qName,
-           final Attributes ignoredAttributes) {
-   }
-
-   @Override
-   public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
-      if (qName.equals("Name")) {
-         name = currentOrNull(currentText);
-      } else if (qName.equals("Address")) {
-         address = currentOrNull(currentText);
-      } else if (qName.equals("Id")) {
-         id = currentOrNull(currentText);
-      } else if (qName.equals("Label")) {
-         label = currentOrNull(currentText);
-      } else if (qName.equals("State")) {
-         state = State.fromString(currentOrNull(currentText));
-      } else if (qName.equals("InUse")) {
-         final String use = currentOrNull(currentText);
-         inUse = use == null ? null : Boolean.valueOf(use);
-      } else if (qName.equals("ServiceName")) {
-         serviceName = currentOrNull(currentText);
-      } else if (qName.equals("DeploymentName")) {
-         deploymentName = currentOrNull(currentText);
-      } else if (qName.equals("Location")) {
-         location = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResourceExtensionParameterValueHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResourceExtensionParameterValueHandler.java
deleted file mode 100644
index a858195..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResourceExtensionParameterValueHandler.java
+++ /dev/null
@@ -1,67 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Role.ResourceExtensionReference.ResourceExtensionParameterValue;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-public final class ResourceExtensionParameterValueHandler extends ParseSax.HandlerForGeneratedRequestWithResult<ResourceExtensionParameterValue> {
-
-   private String key;
-
-   private String value;
-
-   private String type;
-
-   private StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public void startElement(String uri, String localName, String qName, Attributes attributes) {
-   }
-
-   @Override
-   public ResourceExtensionParameterValue getResult() {
-      ResourceExtensionParameterValue result = ResourceExtensionParameterValue.create(key, value, type);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      key = value = type = null;
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("Key")) {
-         key = currentOrNull(currentText);
-      } else if (qName.equals("Value")) {
-         value = currentOrNull(currentText);
-      } else if (qName.equals("Type")) {
-         type = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      currentText.append(ch, start, length);
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResourceExtensionReferenceHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResourceExtensionReferenceHandler.java
deleted file mode 100644
index 9a0a4ef..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResourceExtensionReferenceHandler.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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Role.ResourceExtensionReference;
-import org.jclouds.azurecompute.domain.Role.ResourceExtensionReference.ResourceExtensionParameterValue;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-
-public class ResourceExtensionReferenceHandler extends ParseSax.HandlerForGeneratedRequestWithResult<ResourceExtensionReference> {
-
-   private String referenceName;
-
-   private String publisher;
-
-   private String name;
-
-   private String version;
-
-   private List<ResourceExtensionParameterValue> resourceExtensionParameterValues = Lists.newArrayList();
-
-   private String state;
-
-   private final ResourceExtensionParameterValueHandler resourceExtensionParameterValueHandler;
-
-   private boolean inResourceExtensionParameterValue = false;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Inject
-   ResourceExtensionReferenceHandler(ResourceExtensionParameterValueHandler resourceExtensionParameterValueHandler) {
-      this.resourceExtensionParameterValueHandler = resourceExtensionParameterValueHandler;
-   }
-
-   @Override
-   public void startElement(String uri, String localName, String qName, Attributes attributes) {
-      if (qName.equals("ResourceExtensionParameterValue")) {
-         inResourceExtensionParameterValue = true;
-      }
-      if (inResourceExtensionParameterValue) {
-         resourceExtensionParameterValueHandler.startElement(uri, localName, qName, attributes);
-      }
-   }
-
-   @Override
-   public ResourceExtensionReference getResult() {
-      ResourceExtensionReference result = ResourceExtensionReference.create(referenceName, publisher, name, version,
-              resourceExtensionParameterValues, state);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      referenceName = publisher = version = name = state = null;
-      resourceExtensionParameterValues = Lists.newArrayList();
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("ResourceExtensionParameterValue")) {
-         inResourceExtensionParameterValue = false;
-         resourceExtensionParameterValues.add(resourceExtensionParameterValueHandler.getResult());
-      } else if (inResourceExtensionParameterValue) {
-         resourceExtensionParameterValueHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("ReferenceName")) {
-         referenceName = currentOrNull(currentText);
-      } else if (qName.equals("Publisher")) {
-         publisher = currentOrNull(currentText);
-      } else if (qName.equals("Name")) {
-         name = currentOrNull(currentText);
-      } else if (qName.equals("Version")) {
-         version = currentOrNull(currentText);
-      } else if (qName.equals("State")) {
-         state = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inResourceExtensionParameterValue) {
-         resourceExtensionParameterValueHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResultHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResultHandler.java
deleted file mode 100644
index 4b78499..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResultHandler.java
+++ /dev/null
@@ -1,64 +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.xml;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-/**
- * @see for example <a href="https://msdn.microsoft.com/en-us/library/azure/dn510368.aspx">Check DNS Prefix
- * Availability</a>
- */
-public final class ResultHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Boolean> {
-
-   private boolean result = false;
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public Boolean getResult() {
-      final boolean res = result;
-      resetState(); // handler is called in a loop.
-      return res;
-   }
-
-   private void resetState() {
-      result = false;
-   }
-
-   @Override
-   public void startElement(
-           final String url,
-           final String name,
-           final String qName,
-           final Attributes attributes) {
-   }
-
-   @Override
-   public void endElement(final String ignoredURI, final String ignoredName, final String qName) {
-      if (qName.equals("Result")) {
-         final String value = currentText.toString().trim();
-         result = value.isEmpty() ? false : Boolean.parseBoolean(value);
-      }
-      currentText.setLength(0);
-
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleHandler.java
deleted file mode 100644
index 3dd1481..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleHandler.java
+++ /dev/null
@@ -1,193 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet;
-import org.jclouds.azurecompute.domain.Role.ResourceExtensionReference;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-
-public class RoleHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Role> {
-
-   private String roleName;
-
-   private String roleType;
-
-   private String vmImage;
-
-   private String mediaLocation;
-
-   private List<ConfigurationSet> configurationSets = Lists.newArrayList();
-
-   private List<ResourceExtensionReference> resourceExtensionReferences = Lists.newArrayList();
-
-   private String availabilitySetName;
-
-   private List<DataVirtualHardDisk> dataVirtualHardDisks = Lists.newArrayList();
-
-   private Role.OSVirtualHardDisk osVirtualHardDisk;
-
-   private RoleSize.Type roleSize;
-
-   private Boolean provisionGuestAgent;
-
-   private String defaultWinRmCertificateThumbprint;
-
-   private boolean inConfigurationSets;
-
-   private boolean inOSVirtualHardDisk;
-
-   private boolean inDataVirtualHardDisks;
-
-   private boolean inResourceExtensionReference;
-
-   private final ConfigurationSetHandler configurationSetHandler;
-
-   private final OSVirtualHardDiskHandler osVirtualDiskHandler;
-
-   private final DataVirtualHardDiskHandler dataVirtualHardDiskHandler;
-
-   private final ResourceExtensionReferenceHandler resourceExtensionReferenceHandler;
-
-   @Inject
-   RoleHandler(ConfigurationSetHandler configurationSetHandler, OSVirtualHardDiskHandler osVirtualDiskHandler,
-           DataVirtualHardDiskHandler dataVirtualHardDiskHandler, ResourceExtensionReferenceHandler resourceExtensionReferenceHandler) {
-      this.configurationSetHandler = configurationSetHandler;
-      this.osVirtualDiskHandler = osVirtualDiskHandler;
-      this.dataVirtualHardDiskHandler = dataVirtualHardDiskHandler;
-      this.resourceExtensionReferenceHandler = resourceExtensionReferenceHandler;
-   }
-
-   private StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public void startElement(String uri, String localName, String qName, Attributes attributes) {
-      if (qName.equals("ConfigurationSets")) {
-         inConfigurationSets = true;
-      }
-      if (inConfigurationSets) {
-         configurationSetHandler.startElement(uri, localName, qName, attributes);
-      }
-      if (qName.equals("OSVirtualHardDisk")) {
-         inOSVirtualHardDisk = true;
-      }
-      if (qName.equals("DataVirtualHardDisks")) {
-         inDataVirtualHardDisks = true;
-      }
-      if (inDataVirtualHardDisks) {
-         dataVirtualHardDiskHandler.startElement(uri, localName, qName, attributes);
-      }
-      if (qName.equals("ResourceExtensionReference")) {
-         inResourceExtensionReference = true;
-      }
-      if (inResourceExtensionReference) {
-         resourceExtensionReferenceHandler.startElement(uri, localName, qName, attributes);
-      }
-
-   }
-
-   private void resetState() {
-      roleName = roleType = vmImage = mediaLocation = availabilitySetName = defaultWinRmCertificateThumbprint = null;
-      configurationSets = null;
-      osVirtualHardDisk = null;
-      configurationSets = Lists.newArrayList();
-      resourceExtensionReferences = Lists.newArrayList();
-      dataVirtualHardDisks = Lists.newArrayList();
-      roleSize = null;
-      provisionGuestAgent = null;
-   }
-
-   @Override
-   public Role getResult() {
-      Role result = Role.create(roleName, roleType, vmImage, mediaLocation, configurationSets,
-              resourceExtensionReferences, availabilitySetName, dataVirtualHardDisks, osVirtualHardDisk, roleSize,
-              provisionGuestAgent, defaultWinRmCertificateThumbprint);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("DataVirtualHardDisks")) {
-         inDataVirtualHardDisks = false;
-      } else if (qName.equals("ConfigurationSet")) {
-         inConfigurationSets = false;
-         configurationSets.add(configurationSetHandler.getResult());
-      } else if (inConfigurationSets) {
-         configurationSetHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("DataVirtualHardDisks")) {
-         inDataVirtualHardDisks = false;
-         dataVirtualHardDisks.add(dataVirtualHardDiskHandler.getResult());
-      } else if (inDataVirtualHardDisks) {
-         dataVirtualHardDiskHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("RoleName")) {
-         roleName = currentOrNull(currentText);
-      } else if (qName.equals("VMImage")) {
-         vmImage = currentOrNull(currentText);
-      } else if (qName.equals("MediaLocation")) {
-         mediaLocation = currentOrNull(currentText);
-      } else if (qName.equals("AvailabilitySetName")) {
-         availabilitySetName = currentOrNull(currentText);
-      } else if (qName.equals("DefaultWinRmCertificateThumbprint")) {
-         defaultWinRmCertificateThumbprint = currentOrNull(currentText);
-      } else if (qName.equals("RoleType")) {
-         roleType = currentOrNull(currentText);
-      } else if (qName.equals("OSVirtualHardDisk")) {
-         inOSVirtualHardDisk = false;
-         osVirtualHardDisk = osVirtualDiskHandler.getResult();
-      } else if (inOSVirtualHardDisk) {
-         osVirtualDiskHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("RoleSize")) {
-         roleSize = RoleSize.Type.fromString(currentOrNull(currentText).toUpperCase());
-      } else if (qName.equals("ProvisionGuestAgent")) {
-         String provisionGuestAgentString = currentOrNull(currentText);
-         if (provisionGuestAgentString != null) {
-            provisionGuestAgent = Boolean.valueOf(provisionGuestAgentString);
-         }
-      } else if (qName.equals("ResourceExtensionReferences")) {
-         inResourceExtensionReference = false;
-      } else if (qName.equals("ResourceExtensionReference")) {
-         resourceExtensionReferences.add(resourceExtensionReferenceHandler.getResult());
-      } else if (inResourceExtensionReference) {
-         resourceExtensionReferenceHandler.endElement(ignoredUri, ignoredName, qName);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inConfigurationSets) {
-         configurationSetHandler.characters(ch, start, length);
-      } else if (inOSVirtualHardDisk) {
-         osVirtualDiskHandler.characters(ch, start, length);
-      } else if (inResourceExtensionReference) {
-         resourceExtensionReferenceHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleInstanceHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleInstanceHandler.java
deleted file mode 100644
index 524b644..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleInstanceHandler.java
+++ /dev/null
@@ -1,136 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Deployment.InstanceEndpoint;
-import org.jclouds.azurecompute.domain.Deployment.InstanceStatus;
-import org.jclouds.azurecompute.domain.Deployment.PowerState;
-import org.jclouds.azurecompute.domain.Deployment.RoleInstance;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-
-public class RoleInstanceHandler extends ParseSax.HandlerForGeneratedRequestWithResult<RoleInstance> {
-
-   private String roleName;
-
-   private String instanceName;
-
-   private InstanceStatus instanceStatus;
-
-   private PowerState powerState;
-
-   private int instanceUpgradeDomain;
-
-   private int instanceFaultDomain;
-
-   private RoleSize.Type instanceSize;
-
-   private String ipAddress;
-
-   private String hostname;
-
-   private boolean inInstanceEndpoints;
-
-   private final InstanceEndpointHandler instanceEndpointHandler = new InstanceEndpointHandler();
-
-   private List<InstanceEndpoint> instanceEndpoints = Lists.newArrayList();
-
-   @Override
-   public void startElement(String uri, String localName, String qName, Attributes attributes) {
-      if (qName.equals("InstanceEndpoints")) {
-         inInstanceEndpoints = true;
-      }
-      if (inInstanceEndpoints) {
-         instanceEndpointHandler.startElement(uri, localName, qName, attributes);
-      }
-   }
-
-   private void resetState() {
-      roleName = instanceName = ipAddress = hostname = null;
-      instanceStatus = null;
-      powerState = null;
-      instanceUpgradeDomain = instanceFaultDomain = -1;
-      instanceSize = null;
-      instanceEndpoints = Lists.newArrayList();
-   }
-
-   private StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public RoleInstance getResult() {
-      RoleInstance result = RoleInstance.create(roleName, instanceName, instanceStatus, powerState,
-              instanceUpgradeDomain, instanceFaultDomain, instanceSize, ipAddress, hostname, instanceEndpoints);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("InstanceEndpoints")) {
-         inInstanceEndpoints = false;
-      } else if (qName.equals("InstanceEndpoint")) {
-         instanceEndpoints.add(instanceEndpointHandler.getResult());
-      } else if (inInstanceEndpoints) {
-         instanceEndpointHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("RoleName")) {
-         roleName = currentOrNull(currentText);
-      } else if (qName.equals("InstanceName")) {
-         instanceName = currentOrNull(currentText);
-      } else if (qName.equals("InstanceStatus")) {
-         instanceStatus = InstanceStatus.fromString(currentOrNull(currentText));
-      } else if (qName.equals("PowerState")) {
-         powerState = PowerState.fromString(currentOrNull(currentText));
-      } else if (qName.equals("InstanceUpgradeDomain")) {
-         String upgradeDomain = currentOrNull(currentText);
-         if (upgradeDomain != null) {
-            instanceUpgradeDomain = Integer.parseInt(upgradeDomain);
-         }
-      } else if (qName.equals("InstanceFaultDomain")) {
-         String faultDomain = currentOrNull(currentText);
-         if (faultDomain != null) {
-            instanceFaultDomain = Integer.parseInt(faultDomain);
-         }
-      } else if (qName.equals("InstanceSize")) {
-         String size = currentOrNull(currentText);
-         if (size != null) {
-            instanceSize = RoleSize.Type.fromString(size);
-         }
-      } else if (qName.equals("IpAddress")) {
-         ipAddress = currentOrNull(currentText);
-      } else if (qName.equals("HostName")) {
-         hostname = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inInstanceEndpoints) {
-         instanceEndpointHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleSizeHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleSizeHandler.java
deleted file mode 100644
index f343d7f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleSizeHandler.java
+++ /dev/null
@@ -1,106 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.functions.ParseSax;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/dn469422.aspx" >api</a>
- */
-final class RoleSizeHandler extends ParseSax.HandlerForGeneratedRequestWithResult<RoleSize> {
-
-   private RoleSize.Type name;
-
-   private String label;
-
-   private Integer cores;
-
-   private Integer memoryInMb;
-
-   private Boolean supportedByWebWorkerRoles;
-
-   private Boolean supportedByVirtualMachines;
-
-   private Integer maxDataDiskCount;
-
-   private Integer webWorkerResourceDiskSizeInMb;
-
-   private Integer virtualMachineResourceDiskSizeInMb;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public RoleSize getResult() {
-      return RoleSize.create(name, label, cores, memoryInMb, supportedByWebWorkerRoles,
-              supportedByVirtualMachines, maxDataDiskCount, webWorkerResourceDiskSizeInMb, virtualMachineResourceDiskSizeInMb);
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("Name")) {
-         String type = currentOrNull(currentText);
-         name = RoleSize.Type.fromString(currentOrNull(currentText).toUpperCase());
-      } else if (qName.equals("Label")) {
-         label = currentOrNull(currentText);
-
-      } else if (qName.equals("Cores")) {
-         String coresString = currentOrNull(currentText);
-         if (coresString != null) {
-            cores = Integer.parseInt(coresString);
-         }
-      } else if (qName.equals("MemoryInMb")) {
-         String memoryInMbString = currentOrNull(currentText);
-         if (memoryInMbString != null) {
-            memoryInMb = Integer.parseInt(memoryInMbString);
-         }
-      } else if (qName.equals("SupportedByWebWorkerRoles")) {
-         String supportedByWebWorkerRolesString = currentOrNull(currentText);
-         if (supportedByWebWorkerRolesString != null) {
-            supportedByWebWorkerRoles = Boolean.valueOf(supportedByWebWorkerRolesString);
-         }
-      } else if (qName.equals("SupportedByVirtualMachines")) {
-         String supportedByVirtualMachinesString = currentOrNull(currentText);
-         if (supportedByVirtualMachinesString != null) {
-            supportedByVirtualMachines = Boolean.valueOf(supportedByVirtualMachinesString);
-         }
-      } else if (qName.equals("MaxDataDiskCount")) {
-         String maxDataDiskCountString = currentOrNull(currentText);
-         if (maxDataDiskCountString != null) {
-            maxDataDiskCount = Integer.parseInt(maxDataDiskCountString);
-         }
-      } else if (qName.equals("WebWorkerResourceDiskSizeInMb")) {
-         String webWorkerResourceDiskSizeInMbString = currentOrNull(currentText);
-         if (webWorkerResourceDiskSizeInMbString != null) {
-            webWorkerResourceDiskSizeInMb = Integer.parseInt(webWorkerResourceDiskSizeInMbString);
-         }
-      } else if (qName.equals("VirtualMachineResourceDiskSizeInMb")) {
-         String virtualMachineResourceDiskSizeInMbString = currentOrNull(currentText);
-         if (virtualMachineResourceDiskSizeInMbString != null) {
-            virtualMachineResourceDiskSizeInMb = Integer.parseInt(virtualMachineResourceDiskSizeInMbString);
-         }
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      currentText.append(ch, start, length);
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RuleHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RuleHandler.java
deleted file mode 100644
index 6c9229b..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RuleHandler.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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.http.functions.ParseSax;
-
-final class RuleHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Rule> {
-
-   private String name;
-
-   private Rule.Type type;
-
-   private String priority;
-
-   private Rule.Action action;
-
-   private String sourceAddressPrefix;
-
-   private String sourcePortRange;
-
-   private String destinationAddressPrefix;
-
-   private String destinationPortRange;
-
-   private Rule.Protocol protocol;
-
-   private String state;
-
-   private Boolean isDefault;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public Rule getResult() {
-      Rule result = Rule.create(name, type, priority, action, sourceAddressPrefix, sourcePortRange,
-              destinationAddressPrefix, destinationPortRange, protocol, state, isDefault);
-      
-      name = priority = sourceAddressPrefix = sourcePortRange = destinationAddressPrefix
-              = destinationPortRange = state = null; // handler is called in a loop.
-      protocol = null;
-      action = null;
-      type = null;
-      isDefault = false;
-      return result;
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("Name")) {
-         name = currentOrNull(currentText);
-      } else if (qName.equals("Type")) {
-         type = Rule.Type.fromString(currentOrNull(currentText));
-      } else if (qName.equals("Priority")) {
-         priority = currentOrNull(currentText);
-      } else if (qName.equals("Action")) {
-         action = Rule.Action.fromString(currentOrNull(currentText));
-      } else if (qName.equals("SourceAddressPrefix")) {
-         sourceAddressPrefix = currentOrNull(currentText);
-      } else if (qName.equals("SourcePortRange")) {
-         sourcePortRange = currentOrNull(currentText);
-      } else if (qName.equals("DestinationAddressPrefix")) {
-         destinationAddressPrefix = currentOrNull(currentText);
-      } else if (qName.equals("DestinationPortRange")) {
-         destinationPortRange = currentOrNull(currentText);
-      } else if (qName.equals("Protocol")) {
-         protocol = Rule.Protocol.fromString(currentOrNull(currentText));
-      } else if (qName.equals("State")) {
-         state = currentOrNull(currentText);
-      } else if (qName.equals("IsDefault")) {
-         String isDefaultString = currentOrNull(currentText);
-         if (isDefaultString != null) {
-            isDefault = Boolean.valueOf(isDefaultString);
-         }
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ServiceCertificateHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ServiceCertificateHandler.java
deleted file mode 100644
index 475e837..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ServiceCertificateHandler.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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import java.net.URI;
-import org.jclouds.azurecompute.domain.ServiceCertificate;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >Response body description</a>
- */
-public final class ServiceCertificateHandler extends ParseSax.HandlerForGeneratedRequestWithResult<ServiceCertificate> {
-
-   private URI url;
-
-   private String thumbprint;
-
-   private String thumbprintAlgorithm;
-
-   private String data;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public ServiceCertificate getResult() {
-      final ServiceCertificate result = ServiceCertificate.create(url, thumbprint, thumbprintAlgorithm, data);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      url = null;
-      thumbprint = thumbprintAlgorithm = data = null;
-   }
-
-   @Override
-   public void startElement(
-           final String ignoredUri,
-           final String ignoredLocalName,
-           final String qName,
-           final Attributes ignoredAttributes) {
-   }
-
-   @Override
-   public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
-      if (qName.equals("CertificateUrl")) {
-         url = URI.create(currentOrNull(currentText));
-      } else if (qName.equals("Thumbprint")) {
-         thumbprint = currentOrNull(currentText);
-      } else if (qName.equals("ThumbprintAlgorithm")) {
-         thumbprintAlgorithm = currentOrNull(currentText);
-      } else if (qName.equals("Data")) {
-         data = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServiceHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServiceHandler.java
deleted file mode 100644
index 133fefe..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServiceHandler.java
+++ /dev/null
@@ -1,129 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Map;
-
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.base.Throwables;
-import com.google.common.collect.Maps;
-import com.google.inject.Inject;
-import org.jclouds.date.DateService;
-
-public class StorageServiceHandler extends ParseSax.HandlerForGeneratedRequestWithResult<StorageService> {
-
-   private URL url;
-
-   private String serviceName;
-
-   private StorageService.StorageServiceProperties storageServiceProperties;
-
-   private boolean inStorageServiceProperties;
-
-   private final StorageServicePropertiesHandler storageServicePropertiesHandler;
-
-   private final Map<String, String> extendedProperties = Maps.newHashMap();
-
-   private boolean inExtendedProperties;
-
-   private final ExtendedPropertiesHandler extendedPropertiesHandler = new ExtendedPropertiesHandler();
-
-   private String capability;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Inject
-   StorageServiceHandler(final DateService dateService) {
-      this.storageServicePropertiesHandler = new StorageServicePropertiesHandler(dateService);
-   }
-
-   @Override
-   public StorageService getResult() {
-      final StorageService result = StorageService.create(
-              url, serviceName, storageServiceProperties, extendedProperties, capability);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      serviceName = null;
-      url = null;
-      storageServiceProperties = null;
-      extendedProperties.clear();
-      capability = null;
-   }
-
-   @Override
-   public void startElement(final String uri, final String localName, final String qName, final Attributes attributes) {
-      if ("StorageServiceProperties".equals(qName)) {
-         inStorageServiceProperties = true;
-      } else if (inStorageServiceProperties) {
-         storageServicePropertiesHandler.startElement(uri, localName, qName, attributes);
-      } else if ("ExtendedProperties".equals(qName)) {
-         inExtendedProperties = true;
-      }
-   }
-
-   @Override
-   public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
-      if ("StorageServiceProperties".equals(qName)) {
-         inStorageServiceProperties = false;
-         storageServiceProperties = storageServicePropertiesHandler.getResult();
-      } else if (inStorageServiceProperties) {
-         storageServicePropertiesHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if ("ExtendedProperties".equals(qName)) {
-         inExtendedProperties = false;
-         extendedProperties.putAll(extendedPropertiesHandler.getResult());
-      } else if (inExtendedProperties) {
-         extendedPropertiesHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if ("ServiceName".equals(qName)) {
-         serviceName = currentOrNull(currentText);
-      } else if ("Url".equals(qName)) {
-         final String urlText = currentOrNull(currentText);
-         if (urlText != null) {
-            try {
-               url = new URL(urlText);
-            } catch (MalformedURLException e) {
-               throw Throwables.propagate(e);
-            }
-         }
-      } else if ("Capability".equals(qName)) {
-         capability = currentOrNull(currentText);
-      }
-
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      if (inStorageServiceProperties) {
-         storageServicePropertiesHandler.characters(ch, start, length);
-      } else if (inExtendedProperties) {
-         extendedPropertiesHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServiceKeysHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServiceKeysHandler.java
deleted file mode 100644
index ee528aa..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServiceKeysHandler.java
+++ /dev/null
@@ -1,70 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import com.google.common.base.Throwables;
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.jclouds.azurecompute.domain.StorageServiceKeys;
-import org.jclouds.http.functions.ParseSax;
-
-public class StorageServiceKeysHandler extends ParseSax.HandlerForGeneratedRequestWithResult<StorageServiceKeys> {
-
-   private URL url;
-
-   private String primary;
-
-   private String secondary;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public StorageServiceKeys getResult() {
-      final StorageServiceKeys result = StorageServiceKeys.create(url, primary, secondary);
-      url = null;
-      primary = null;
-      secondary = null;
-      return result;
-   }
-
-   @Override
-   public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
-      if ("Url".equals(qName)) {
-         final String urlText = currentOrNull(currentText);
-         if (urlText != null) {
-            try {
-               url = new URL(urlText);
-            } catch (MalformedURLException e) {
-               throw Throwables.propagate(e);
-            }
-         }
-      } else if ("Primary".equals(qName)) {
-         primary = currentOrNull(currentText);
-      } else if ("Secondary".equals(qName)) {
-         secondary = currentOrNull(currentText);
-      }
-      
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServicePropertiesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServicePropertiesHandler.java
deleted file mode 100644
index 41f6236..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServicePropertiesHandler.java
+++ /dev/null
@@ -1,175 +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.xml;
-
-import static com.google.common.base.Charsets.UTF_8;
-import static com.google.common.io.BaseEncoding.base64;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import com.google.common.base.Throwables;
-import com.google.common.collect.Lists;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Date;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.azurecompute.domain.StorageService.AccountType;
-import org.jclouds.azurecompute.domain.StorageService.RegionStatus;
-import org.jclouds.azurecompute.domain.StorageService.Status;
-import org.jclouds.date.DateService;
-import org.jclouds.http.functions.ParseSax;
-
-import org.xml.sax.Attributes;
-
-public class StorageServicePropertiesHandler
-        extends ParseSax.HandlerForGeneratedRequestWithResult<StorageService.StorageServiceProperties> {
-
-   private String description;
-
-   private String affinityGroup;
-
-   private String location;
-
-   private String label;
-
-   private StorageService.Status status;
-
-   private final List<URL> endpoints = Lists.newArrayList();
-
-   private boolean inEndpoints;
-
-   private String geoPrimaryRegion;
-
-   private StorageService.RegionStatus statusOfPrimary;
-
-   private Date lastGeoFailoverTime;
-
-   private String geoSecondaryRegion;
-
-   private StorageService.RegionStatus statusOfSecondary;
-
-   private Date creationTime;
-
-   private final List<String> customDomains = Lists.newArrayList();
-
-   private final List<URL> secondaryEndpoints = Lists.newArrayList();
-
-   private boolean inSecondaryEndpoints;
-
-   private AccountType accountType;
-
-   private final DateService dateService;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   public StorageServicePropertiesHandler(final DateService dateService) {
-      this.dateService = dateService;
-   }
-
-   @Override
-   public StorageService.StorageServiceProperties getResult() {
-      final StorageService.StorageServiceProperties result = StorageService.StorageServiceProperties.create(
-              description, affinityGroup, location, label, status, endpoints,
-              geoPrimaryRegion, statusOfPrimary, lastGeoFailoverTime, geoSecondaryRegion, statusOfSecondary,
-              creationTime, customDomains, secondaryEndpoints, accountType);
-
-      description = affinityGroup = location = label = null;
-      status = null;
-      endpoints.clear();
-      geoPrimaryRegion = null;
-      statusOfPrimary = null;
-      lastGeoFailoverTime = null;
-      geoSecondaryRegion = null;
-      statusOfSecondary = null;
-      creationTime = null;
-      customDomains.clear();
-      secondaryEndpoints.clear();
-      accountType = null;
-
-      return result;
-   }
-
-   @Override
-   public void startElement(final String uri, final String localName, final String qName, final Attributes attributes) {
-      if ("Endpoints".equals(qName)) {
-         inEndpoints = true;
-      } else if ("SecondaryEndpoints".equals(qName)) {
-         inSecondaryEndpoints = true;
-      }
-   }
-
-   @Override
-   public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
-      if ("Description".equals(qName)) {
-         description = currentOrNull(currentText);
-      } else if ("AffinityGroup".equals(qName)) {
-         affinityGroup = currentOrNull(currentText);
-      } else if ("Location".equals(qName)) {
-         location = currentOrNull(currentText);
-      } else if ("Label".equals(qName)) {
-         label = new String(base64().decode(currentOrNull(currentText)), UTF_8);
-      } else if ("Status".equals(qName)) {
-         status = Status.fromString(currentOrNull(currentText));
-      } else if ("Endpoints".equals(qName)) {
-         inEndpoints = false;
-      } else if ("SecondaryEndpoints".equals(qName)) {
-         inSecondaryEndpoints = false;
-      } else if ("Endpoint".equals(qName)) {
-         final String urlText = currentOrNull(currentText);
-         try {
-            if (inEndpoints) {
-               endpoints.add(new URL(urlText));
-            } else if (inSecondaryEndpoints) {
-               secondaryEndpoints.add(new URL(urlText));
-            }
-         } catch (MalformedURLException e) {
-            throw Throwables.propagate(e);
-         }
-      } else if ("GeoPrimaryRegion".equals(qName)) {
-         geoPrimaryRegion = currentOrNull(currentText);
-      } else if ("StatusOfPrimary".equals(qName)) {
-         statusOfPrimary = RegionStatus.fromString(currentOrNull(currentText));
-      } else if ("LastGeoFailoverTime".equals(qName)) {
-         lastGeoFailoverTime = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
-      } else if ("GeoSecondaryRegion".equals(qName)) {
-         geoSecondaryRegion = currentOrNull(currentText);
-      } else if ("StatusOfSecondary".equals(qName)) {
-         final String text = currentOrNull(currentText);
-         if (text != null) {
-            statusOfSecondary = RegionStatus.fromString(text);
-         }
-      } else if ("CreationTime".equals(qName)) {
-         creationTime = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
-      } else if ("Name".equals(qName)) {
-         final String text = currentOrNull(currentText);
-         if (text != null) {
-            customDomains.add(text);
-         }
-      } else if ("AccountType".equals(qName)) {
-         accountType = AccountType.fromString(currentOrNull(currentText));
-      }
-
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(final char[] ch, final int start, final int length) {
-      currentText.append(ch, start, length);
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/SubnetHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/SubnetHandler.java
deleted file mode 100644
index c60f610..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/SubnetHandler.java
+++ /dev/null
@@ -1,70 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration.Subnet;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-public class SubnetHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Subnet> {
-
-   private String name;
-
-   private String addressPrefix;
-
-   private String networkSecurityGroup;
-
-   private StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public void startElement(String uri, String localName, String qName, Attributes attributes) {
-      if (qName.equalsIgnoreCase("Subnet")) {
-         name = attributes.getValue("name");
-      }
-   }
-
-   @Override
-   public Subnet getResult() {
-      Subnet result = Subnet.create(name, addressPrefix, networkSecurityGroup);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      name = addressPrefix = null;
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("Name")) {
-         name = currentOrNull(currentText);
-      } else if (qName.equals("AddressPrefix")) {
-         addressPrefix = currentOrNull(currentText);
-      } else if (qName.equals("NetworkSecurityGroup")) {
-         networkSecurityGroup = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      currentText.append(ch, start, length);
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/SubnetNameHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/SubnetNameHandler.java
deleted file mode 100644
index 3853478..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/SubnetNameHandler.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-public class SubnetNameHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Role.ConfigurationSet.SubnetName> {
-
-   private String name;
-
-   private StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public void startElement(String uri, String localName, String qName, Attributes attributes) {
-   }
-
-   @Override
-   public Role.ConfigurationSet.SubnetName getResult() {
-      Role.ConfigurationSet.SubnetName result = Role.ConfigurationSet.SubnetName.create(name);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      name = null;
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("SubnetName")) {
-         name = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      currentText.append(ch, start, length);
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VMImageHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VMImageHandler.java
deleted file mode 100644
index 9812018..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VMImageHandler.java
+++ /dev/null
@@ -1,207 +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.xml;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.domain.VMImage;
-import org.jclouds.date.DateService;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-import java.net.URI;
-import java.util.Date;
-import java.util.List;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn499770.aspx" >api</a>
- */
-final class VMImageHandler extends ParseSax.HandlerForGeneratedRequestWithResult<VMImage> {
-   private String name;
-   private String label;
-   private String category;
-   private String description;
-   private VMImage.OSDiskConfiguration osDiskConfiguration;
-   private String serviceName;
-   private String deploymentName;
-   private String roleName;
-   private String location;
-   private String affinityGroup;
-   private Date createdTime;
-   private Date modifiedTime;
-   private String language;
-   private String imageFamily;
-   private RoleSize.Type recommendedVMSize;
-   private Boolean isPremium;
-   private String eula;
-   private URI iconUri;
-   private URI smallIconUri;
-   private URI privacyUri;
-   private Date publishedDate;
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   private final DataVirtualHardDiskHandler dataVirtualHardDiskHandler;
-   private final OSConfigHandler osConfigHandler;
-   private List<DataVirtualHardDisk> dataDiskConfigurations = Lists.newArrayList();
-
-   private boolean inOSConfig;
-   private boolean inDataConfig;
-   private final DateService dateService = new SimpleDateFormatDateService();
-
-   @Inject VMImageHandler(DataVirtualHardDiskHandler dataVirtualHardDiskHandler, OSConfigHandler osConfigHandler) {
-      this.dataVirtualHardDiskHandler = dataVirtualHardDiskHandler;
-      this.osConfigHandler = osConfigHandler;
-   }
-
-   @Override
-   public VMImage getResult() {
-      VMImage result = VMImage
-            .create(name, label, category, description, osDiskConfiguration, dataDiskConfigurations,
-                  serviceName, deploymentName, roleName, location, affinityGroup, createdTime, modifiedTime, language,
-                  imageFamily, recommendedVMSize, isPremium, eula, iconUri, smallIconUri, privacyUri, publishedDate);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   @Override
-   public void startElement(String ignoredUri, String ignoredLocalName, String qName,
-         Attributes ignoredAttributes) throws SAXException {
-
-      if (qName.equals("OSDiskConfiguration")) {
-         inOSConfig = true;
-      }
-      if (inOSConfig) {
-         osConfigHandler.endElement(ignoredUri, ignoredLocalName, qName);
-      }
-      if (qName.equals("DataDiskConfiguration")) {
-         inDataConfig = true;
-      }
-      if (inDataConfig) {
-         dataVirtualHardDiskHandler.startElement(ignoredUri, ignoredLocalName, qName, ignoredAttributes);
-      }
-   }
-
-   private void resetState() {
-      name = affinityGroup = label = description = category = null;
-      serviceName = deploymentName = roleName = location = affinityGroup = null;
-      createdTime = modifiedTime = null;
-      language = imageFamily = eula = null;
-      recommendedVMSize = null;
-      isPremium = Boolean.FALSE;
-      iconUri = smallIconUri = privacyUri = null;
-      publishedDate = null;
-      osDiskConfiguration = null;
-      dataDiskConfigurations = Lists.newArrayList();
-   }
-
-   @Override public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("Name") && !inDataConfig && !inOSConfig) {
-         name = currentOrNull(currentText);
-      } else if (qName.equals("Label")) {
-         label = currentOrNull(currentText);
-      } else if (qName.equals("Category")) {
-         category = currentOrNull(currentText);
-      } else if (qName.equals("Description")) {
-         description = currentOrNull(currentText);
-      } else if (qName.equals("OSDiskConfiguration")) {
-         osDiskConfiguration = osConfigHandler.getResult();
-         inOSConfig = false;
-      } else if (inOSConfig) {
-         osConfigHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("DataDiskConfiguration") && !inOSConfig) {
-         dataDiskConfigurations.add(dataVirtualHardDiskHandler.getResult());
-         inDataConfig = false;
-      } else if (inDataConfig) {
-         dataVirtualHardDiskHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("ServiceName")) {
-         serviceName = currentOrNull(currentText);
-      } else if (qName.equals("DeploymentName")) {
-         deploymentName = currentOrNull(currentText);
-      } else if (qName.equals("RoleName")) {
-         roleName = currentOrNull(currentText);
-      } else if (qName.equals("Location")) {
-         location = currentOrNull(currentText);
-      } else if (qName.equals("AffinityGroup")) {
-         affinityGroup = currentOrNull(currentText);
-      } else if (qName.equals("CreatedTime")) {
-         createdTime = dateService.iso8601DateOrSecondsDateParse(currentOrNull(currentText));
-      } else if (qName.equals("ModifiedTime")) {
-         modifiedTime = dateService.iso8601DateOrSecondsDateParse(currentOrNull(currentText));
-      } else if (qName.equals("Language")) {
-         language = currentOrNull(currentText);
-      } else if (qName.equals("ImageFamily")) {
-         imageFamily = currentOrNull(currentText);
-      } else if (qName.equals("Label")) {
-         label = currentOrNull(currentText);
-      } else if (qName.equals("RecommendedVMSize")) {
-         String vmSizeText = currentOrNull(currentText);
-         if (vmSizeText != null) {
-            recommendedVMSize = parseRoleSize(vmSizeText);
-         }
-      } else if (qName.equals("IconUri")) {
-         String uri = currentOrNull(currentText);
-         if (uri != null) {
-            iconUri = URI.create(uri);
-         }
-      } else if (qName.equals("SmallIconUri")) {
-         String uri = currentOrNull(currentText);
-         if (uri != null) {
-            smallIconUri = URI.create(uri);
-         }
-      } else if (qName.equals("PrivacyUri")) {
-         String uri = currentOrNull(currentText);
-         if (uri != null) {
-            privacyUri = URI.create(uri);
-         }
-      } else if (qName.equals("IsPremium")) {
-         String isPremiumText = currentOrNull(currentText);
-         if (isPremiumText != null) {
-            isPremium = Boolean.parseBoolean(isPremiumText);
-         }
-      } else if (qName.equals("Eula")) {
-         eula = currentOrNull(currentText);
-      } else if (qName.equals("PublishedDate")) {
-         publishedDate = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
-      }
-      currentText.setLength(0);
-   }
-
-   @Override public void characters(char[] ch, int start, int length) {
-      if (inDataConfig) {
-         dataVirtualHardDiskHandler.characters(ch, start, length);
-      } else if (inOSConfig) {
-         osConfigHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-
-   private static RoleSize.Type parseRoleSize(String roleSize) {
-      try {
-         return RoleSize.Type.valueOf(roleSize.toUpperCase().replace(" ", ""));
-      } catch (IllegalArgumentException e) {
-         return RoleSize.Type.UNRECOGNIZED;
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualIPHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualIPHandler.java
deleted file mode 100644
index 0ce1b52..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualIPHandler.java
+++ /dev/null
@@ -1,71 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Deployment.VirtualIP;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-public final class VirtualIPHandler extends ParseSax.HandlerForGeneratedRequestWithResult<VirtualIP> {
-
-   private String address;
-
-   private Boolean isDnsProgrammed;
-
-   private String name;
-
-   private StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public void startElement(String uri, String localName, String qName, Attributes attributes) {
-   }
-
-   @Override
-   public VirtualIP getResult() {
-      VirtualIP result = VirtualIP.create(address, isDnsProgrammed, name);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   private void resetState() {
-      name = address = null;
-      isDnsProgrammed = null;
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("Address")) {
-         address = currentOrNull(currentText);
-      } else if (qName.equals("IsDnsProgrammed")) {
-         String dnsProgrammed = currentOrNull(currentText);
-         if (dnsProgrammed != null) {
-            isDnsProgrammed = Boolean.valueOf(dnsProgrammed);
-         }
-      } else if (qName.equals("Name")) {
-         name = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      currentText.append(ch, start, length);
-   }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualNetworkConfigurationHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualNetworkConfigurationHandler.java
deleted file mode 100644
index 2f6d11f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualNetworkConfigurationHandler.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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkConfiguration;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-
-public class VirtualNetworkConfigurationHandler extends ParseSax.HandlerForGeneratedRequestWithResult<VirtualNetworkConfiguration> {
-
-   private String dns;
-
-   private List<NetworkConfiguration.VirtualNetworkSite> virtualNetworkSites = Lists.newArrayList();
-
-   private boolean inVirtualNetworkSite;
-
-   private final VirtualNetworkSiteHandler virtualNetworkSiteHandler = new VirtualNetworkSiteHandler();
-
-   private final StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public void startElement(String url, String name, String qName, Attributes attributes) {
-      if (qName.equals("VirtualNetworkSite")) {
-         inVirtualNetworkSite = true;
-      }
-      if (inVirtualNetworkSite) {
-         virtualNetworkSiteHandler.startElement(url, name, qName, attributes);
-      }
-   }
-
-   @Override
-   public VirtualNetworkConfiguration getResult() {
-      return VirtualNetworkConfiguration.create(dns, virtualNetworkSites);
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("Dns")) {
-         dns = currentOrNull(currentText);
-      } else if (qName.equals("VirtualNetworkSites")) {
-         inVirtualNetworkSite = false;
-      } else if (qName.equals("VirtualNetworkSite")) {
-         virtualNetworkSites.add(virtualNetworkSiteHandler.getResult());
-      } else if (inVirtualNetworkSite) {
-         virtualNetworkSiteHandler.endElement(ignoredUri, ignoredName, qName);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inVirtualNetworkSite) {
-         virtualNetworkSiteHandler.characters(ch, start, length);
-      } else {
-         currentText.append(ch, start, length);
-      }
-   }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualNetworkSiteHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualNetworkSiteHandler.java
deleted file mode 100644
index dd9c7ee..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualNetworkSiteHandler.java
+++ /dev/null
@@ -1,118 +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.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration.AddressSpace;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.Subnet;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-
-public class VirtualNetworkSiteHandler extends ParseSax.HandlerForGeneratedRequestWithResult<VirtualNetworkSite> {
-
-   private String id;
-
-   private String name;
-
-   private String location;
-
-   private AddressSpace addressSpace;
-
-   private List<Subnet> subnets = Lists.newArrayList();
-
-   private boolean inSubnet;
-
-   private boolean inAddressSpace;
-
-   private final SubnetHandler subnetHandler = new SubnetHandler();
-
-   private final AddressSpaceHandler addressSpaceHandler = new AddressSpaceHandler();
-
-   private StringBuilder currentText = new StringBuilder();
-
-   @Override
-   public void startElement(String uri, String localName, String qName, Attributes attributes) {
-      if (qName.equalsIgnoreCase("VirtualNetworkSite")) {
-         name = attributes.getValue("name");
-         location = attributes.getValue("Location");
-      }
-
-      if (qName.equals("AddressSpace")) {
-         inAddressSpace = true;
-      } else if (qName.equals("Subnet")) {
-         inSubnet = true;
-      }
-      if (inAddressSpace) {
-         addressSpaceHandler.startElement(uri, name, qName, attributes);
-      }
-      if (inSubnet) {
-         subnetHandler.startElement(uri, name, qName, attributes);
-      }
-   }
-
-   private void resetState() {
-      id = name = location = null;
-      subnets = Lists.newArrayList();
-      addressSpace = null;
-   }
-
-   @Override
-   public VirtualNetworkSite getResult() {
-      VirtualNetworkSite result = VirtualNetworkSite.create(id, name, location, addressSpace, subnets);
-      resetState(); // handler is called in a loop.
-      return result;
-   }
-
-   @Override
-   public void endElement(String ignoredUri, String ignoredName, String qName) {
-      if (qName.equals("AddressSpace")) {
-         inAddressSpace = false;
-         addressSpace = addressSpaceHandler.getResult();
-      } else if (inAddressSpace) {
-         addressSpaceHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("Subnet")) {
-         inSubnet = false;
-         subnets.add(subnetHandler.getResult());
-      } else if (inSubnet) {
-         subnetHandler.endElement(ignoredUri, ignoredName, qName);
-      } else if (qName.equals("Id")) {
-         id = currentOrNull(currentText);
-      } else if (qName.equals("Name")) {
-         name = currentOrNull(currentText);
-      } else if (qName.equals("Location")) {
-         location = currentOrNull(currentText);
-      }
-      currentText.setLength(0);
-   }
-
-   @Override
-   public void characters(char[] ch, int start, int length) {
-      if (inAddressSpace) {
-         addressSpaceHandler.characters(ch, start, length);
-      } else if (inSubnet) {
-         subnetHandler.characters(ch, start, length);
-      } else if (!inAddressSpace && !inSubnet) {
-         currentText.append(ch, start, length);
-      }
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/AzureComputeProviderMetadataTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/AzureComputeProviderMetadataTest.java
deleted file mode 100644
index a7e7eb7..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/AzureComputeProviderMetadataTest.java
+++ /dev/null
@@ -1,28 +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;
-
-import org.jclouds.providers.internal.BaseProviderMetadataTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "AzureManagementProviderMetadataTest")
-public class AzureComputeProviderMetadataTest extends BaseProviderMetadataTest {
-
-   public AzureComputeProviderMetadataTest() {
-      super(new AzureComputeProviderMetadata(), new AzureManagementApiMetadata());
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/AzureTestUtils.java b/azurecompute/src/test/java/org/jclouds/azurecompute/AzureTestUtils.java
deleted file mode 100644
index 029c6d2..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/AzureTestUtils.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;
-
-import com.google.common.base.Predicate;
-import java.util.ArrayList;
-import java.util.List;
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.features.VirtualNetworkApi;
-
-public class AzureTestUtils {
-
-   public static List<NetworkConfiguration.VirtualNetworkSite> getVirtualNetworkSite(AzureComputeApi api) {
-      final VirtualNetworkApi vnapi = api.getVirtualNetworkApi();
-      final NetworkConfiguration netConf = vnapi.getNetworkConfiguration();
-
-      return netConf == null
-              ? new ArrayList<NetworkConfiguration.VirtualNetworkSite>()
-              : new ArrayList<NetworkConfiguration.VirtualNetworkSite>(netConf.virtualNetworkConfiguration().
-                      virtualNetworkSites());
-
-   }
-
-   public static class SameVirtualNetworkSiteNamePredicate
-           implements Predicate<NetworkConfiguration.VirtualNetworkSite> {
-
-      private final String virtualNetworkSiteName;
-
-      public SameVirtualNetworkSiteNamePredicate(final String virtualNetworkSiteName) {
-         this.virtualNetworkSiteName = virtualNetworkSiteName;
-      }
-
-      @Override
-      public boolean apply(final NetworkConfiguration.VirtualNetworkSite input) {
-         return input.name().equals(virtualNetworkSiteName);
-      }
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/binders/DeploymentParamsToXMLTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/binders/DeploymentParamsToXMLTest.java
deleted file mode 100644
index cc21a98..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/binders/DeploymentParamsToXMLTest.java
+++ /dev/null
@@ -1,64 +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.binders;
-
-import static org.testng.Assert.assertEquals;
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.HttpRequest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
-/**
- * Tests behavior of {@code DeploymentParamsToXML}
- */
-@Test(groups = "unit")
-public class DeploymentParamsToXMLTest {
-   Injector injector = Guice.createInjector();
-   DeploymentParamsToXML binder = injector
-         .getInstance(DeploymentParamsToXML.class);
-
-   public void testDeploymentParamsToXmlString() {
-      DeploymentParams.Builder paramsBuilder = DeploymentParams.builder()
-              .name("name")
-              .os(OSImage.Type.LINUX)
-              .username("loginUser")
-              .password("loginPassword")
-              .sourceImageName("sourceImageName")
-              .mediaLink(URI.create("http://medialink"))
-              .size(RoleSize.Type.BASIC_A0)
-              .externalEndpoints(ImmutableSet.of(DeploymentParams.ExternalEndpoint.inboundTcpToLocalPort(22, 22)))
-              .virtualNetworkName("virtualNetworkName")
-              .reservedIPName("reservedIPName")
-              .subnetNames(ImmutableList.of("subnetName"));
-
-      HttpRequest request = HttpRequest.builder().method("POST").endpoint("http://localhost")
-            .addFormParam("InstanceId", "i-foo").build();
-      request = binder.bindToRequest(request, paramsBuilder.build());
-      assertEquals(
-            request.getPayload().getRawContent(),
-            "<Deployment xmlns=\"http://schemas.microsoft.com/windowsazure\"><Name>name</Name><DeploymentSlot>Production</DeploymentSlot><Label>name</Label><RoleList><Role><RoleName>name</RoleName><RoleType>PersistentVMRole</RoleType><ConfigurationSets><ConfigurationSet><ConfigurationSetType>LinuxProvisioningConfiguration</ConfigurationSetType><HostName>name</HostName><UserName>loginUser</UserName><UserPassword>loginPassword</UserPassword><DisableSshPasswordAuthentication>false</DisableSshPasswordAuthentication><SSH><PublicKeys/><KeyPairs/></SSH></ConfigurationSet><ConfigurationSet><ConfigurationSetType>NetworkConfiguration</ConfigurationSetType><InputEndpoints><InputEndpoint><LocalPort>22</LocalPort><Name>tcp_22-22</Name><Port>22</Port><Protocol>tcp</Protocol></InputEndpoint></InputEndpoints><SubnetNames><SubnetName>subnetName</SubnetName></SubnetNames></ConfigurationSet></ConfigurationSets><DataVirtualHardDisks/><OSVirtualHardDisk><HostCaching>ReadWrite</HostCaching><MediaLink>http://medialink</MediaLink><SourceImageName>sourceImageName</SourceImageName><OS>Linux</OS></OSVirtualHardDisk><RoleSize>Basic_A0</RoleSize></Role></RoleList><VirtualNetworkName>virtualNetworkName</VirtualNetworkName><ReservedIPName>reservedIPName</ReservedIPName></Deployment>");
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureComputeServiceContextLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureComputeServiceContextLiveTest.java
deleted file mode 100644
index dbcfd38..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureComputeServiceContextLiveTest.java
+++ /dev/null
@@ -1,127 +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.compute;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.jclouds.compute.predicates.NodePredicates.inGroup;
-import static org.jclouds.compute.predicates.NodePredicates.runningInGroup;
-import java.util.Map;
-import java.util.Random;
-import java.util.Set;
-
-import org.jclouds.azurecompute.compute.options.AzureComputeTemplateOptions;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.jclouds.compute.RunNodesException;
-import org.jclouds.compute.RunScriptOnNodesException;
-import org.jclouds.compute.domain.ExecResponse;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.domain.TemplateBuilder;
-import org.jclouds.compute.internal.BaseComputeServiceContextLiveTest;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import com.google.inject.Module;
-
-@Test(groups = "live", testName = "AzureComputeServiceContextLiveTest")
-public class AzureComputeServiceContextLiveTest extends BaseComputeServiceContextLiveTest {
-
-   private static final int COUNT = 2;
-
-   @Override
-   protected Module getSshModule() {
-      return new SshjSshClientModule();
-   }
-
-   public AzureComputeServiceContextLiveTest() {
-      provider = "azurecompute";
-   }
-
-
-   @Test
-   public void testWindowsNode() throws RunNodesException {
-      final String groupName = String.format("win-%s", System.getProperty("user.name"));
-
-      final TemplateBuilder templateBuilder = view.getComputeService().templateBuilder();
-      //templateBuilder.imageId("3a50f22b388a4ff7ab41029918570fa6__Windows-Server-2012-Essentials-20141204-enus");
-      templateBuilder.imageId("a699494373c04fc0bc8f2bb1389d6106__Nano_TP4_Azure_20151118_8GB.vhd");
-      templateBuilder.hardwareId("BASIC_A2");
-      templateBuilder.locationId(BaseAzureComputeApiLiveTest.LOCATION);
-      final Template template = templateBuilder.build();
-
-      // test passing custom options
-      final AzureComputeTemplateOptions options = template.getOptions().as(AzureComputeTemplateOptions.class);
-      options.inboundPorts(5985);
-
-      try {
-         Set<? extends NodeMetadata> nodes = view.getComputeService().createNodesInGroup(groupName, 1, template);
-         assertThat(nodes).hasSize(1);
-      } finally {
-         view.getComputeService().destroyNodesMatching(inGroup(groupName));
-      }
-   }
-
-   @Test
-   public void testLaunchNodes() throws RunNodesException {
-      final int rand = new Random().nextInt(999);
-      final String groupName = String.format("%s%d-group-acsclt", System.getProperty("user.name"), rand);
-
-      final TemplateBuilder templateBuilder = view.getComputeService().templateBuilder();
-      templateBuilder.imageId(BaseAzureComputeApiLiveTest.IMAGE_NAME);
-      templateBuilder.hardwareId("BASIC_A0");
-      templateBuilder.locationId(BaseAzureComputeApiLiveTest.LOCATION);
-      final Template template = templateBuilder.build();
-
-      // test passing custom options
-      final AzureComputeTemplateOptions options = template.getOptions().as(AzureComputeTemplateOptions.class);
-      options.inboundPorts(22);
-
-      try {
-         Set<? extends NodeMetadata> nodes = view.getComputeService().createNodesInGroup(groupName, COUNT, template);
-         assertThat(nodes).hasSize(COUNT);
-
-         Map<? extends NodeMetadata, ExecResponse> responses = view.getComputeService().runScriptOnNodesMatching(runningInGroup(groupName), "echo hello");
-         assertThat(responses).hasSize(COUNT);
-
-         for (ExecResponse execResponse : responses.values()) {
-            assertThat(execResponse.getOutput().trim()).isEqualTo("hello");
-         }
-      } catch (RunScriptOnNodesException e) {
-         Assert.fail();
-      } finally {
-         view.getComputeService().destroyNodesMatching(inGroup(groupName));
-      }
-   }
-
-   @Test(expectedExceptions = { IllegalStateException.class })
-   public void testNotExistingStorageAccount() throws RunNodesException {
-      final int rand = new Random().nextInt(999);
-      final String groupName = String.format("%s%d-group-acsclt", System.getProperty("user.name"), rand);
-
-      final String storageServiceName = "not3x1st1ng";
-
-      final Template template = view.getComputeService().templateBuilder().build();
-
-      // test passing custom options
-      final AzureComputeTemplateOptions options = template.getOptions().as(AzureComputeTemplateOptions.class);
-      options.storageAccountName(storageServiceName);
-
-      Set<? extends NodeMetadata> nodes = view.getComputeService().createNodesInGroup(groupName, 1, template);
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureComputeServiceLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureComputeServiceLiveTest.java
deleted file mode 100644
index 6eb0220..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureComputeServiceLiveTest.java
+++ /dev/null
@@ -1,63 +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.compute;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.domain.TemplateBuilder;
-import org.jclouds.compute.internal.BaseComputeServiceLiveTest;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Module;
-
-@Test(groups = {"integration", "live"}, singleThreaded = true, testName = "AzureComputeServiceLiveTest", alwaysRun = false)
-public class AzureComputeServiceLiveTest extends BaseComputeServiceLiveTest {
-
-   public AzureComputeServiceLiveTest() {
-      super();
-      provider = "azurecompute";
-      // this is 30 seconds by default, but Azure will take anyway longer because we need to wait for a non-null
-      // Deployment object to be returned: see the end of AzureComputeServiceAdapter#createNodeWithGroupEncodedIntoName
-      nonBlockDurationSeconds = 600;
-   }
-
-   @Override
-   protected void checkUserMetadataContains(final NodeMetadata node, final ImmutableMap<String, String> userMetadata) {
-      // Azure doe not support user metadata
-   }
-
-   @Override
-   protected void checkTagsInNodeEquals(final NodeMetadata node, final ImmutableSet<String> tags) {
-      // Azure does not support tags
-   }
-
-   @Override
-   protected Module getSshModule() {
-      return new SshjSshClientModule();
-   }
-
-   protected Template buildTemplate(TemplateBuilder templateBuilder) {
-      return templateBuilder.imageId(BaseAzureComputeApiLiveTest.IMAGE_NAME)
-              .hardwareId("BASIC_A1")
-              .locationId(BaseAzureComputeApiLiveTest.LOCATION)
-              .build();
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureTemplateBuilderLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureTemplateBuilderLiveTest.java
deleted file mode 100644
index f900c34..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureTemplateBuilderLiveTest.java
+++ /dev/null
@@ -1,49 +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.compute;
-
-import java.util.Set;
-import org.jclouds.azurecompute.AzureComputeProviderMetadata;
-import org.jclouds.compute.internal.BaseTemplateBuilderLiveTest;
-import org.jclouds.providers.ProviderMetadata;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "AzureTemplateBuilderLiveTest")
-public class AzureTemplateBuilderLiveTest extends BaseTemplateBuilderLiveTest {
-
-   private AzureComputeProviderMetadata providerMeta;
-
-   public AzureTemplateBuilderLiveTest() {
-      super();
-
-      provider = "azurecompute";
-   }
-
-   @Override
-   protected ProviderMetadata createProviderMetadata() {
-      if (providerMeta == null) {
-         providerMeta = new AzureComputeProviderMetadata();
-      }
-      return providerMeta;
-   }
-
-   @Override
-   protected Set<String> getIso3166Codes() {
-      return createProviderMetadata().getIso3166Codes();
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/extensions/AzureComputeSecurityGroupExtensionLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/compute/extensions/AzureComputeSecurityGroupExtensionLiveTest.java
deleted file mode 100644
index 50a88c0..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/extensions/AzureComputeSecurityGroupExtensionLiveTest.java
+++ /dev/null
@@ -1,82 +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.compute.extensions;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-import com.google.inject.Module;
-
-import org.jclouds.compute.extensions.internal.BaseSecurityGroupExtensionLiveTest;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.jclouds.compute.ComputeService;
-import org.jclouds.compute.domain.SecurityGroup;
-import org.jclouds.compute.extensions.SecurityGroupExtension;
-
-import org.testng.annotations.Test;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-
-/**
- * Live test for AzureCompute {@link org.jclouds.compute.extensions.SecurityGroupExtension} implementation.
- */
-@Test(groups = "live", singleThreaded = true, testName = "AzureComputeSecurityGroupExtensionLiveTest")
-public class AzureComputeSecurityGroupExtensionLiveTest extends BaseSecurityGroupExtensionLiveTest {
-
-   public AzureComputeSecurityGroupExtensionLiveTest() {
-      super();
-      provider = "azurecompute";
-   }
-
-   @Override
-   protected Iterable<Module> setupModules() {
-      return ImmutableSet.of(getLoggingModule(), credentialStoreModule, getSshModule());
-   }
-
-   @Override
-   protected Module getSshModule() {
-      return new SshjSshClientModule();
-   }
-
-   @BeforeClass(groups = {"integration", "live"})
-   public void setup() {
-      final ComputeService computeService = view.getComputeService();
-
-      final Optional<SecurityGroupExtension> securityGroupExtension = computeService.getSecurityGroupExtension();
-      if (securityGroupExtension.isPresent()) {
-         final Optional<SecurityGroup> group = Iterables.tryFind(securityGroupExtension.get().listSecurityGroups(),
-                 new Predicate<SecurityGroup>() {
-                    @Override
-                    public boolean apply(final SecurityGroup input) {
-                       return input.getId().equals(secGroupName);
-                    }
-                 });
-
-         if (group.isPresent()) {
-            securityGroupExtension.get().removeSecurityGroup(group.get().getId());
-         }
-      }
-   }
-
-   @AfterClass(groups = {"integration", "live"}, alwaysRun = true)
-   @Override
-   protected void tearDownContext() {
-      super.tearDownContext();
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/functions/OSImageToImageTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/compute/functions/OSImageToImageTest.java
deleted file mode 100644
index c4ae3dd..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/functions/OSImageToImageTest.java
+++ /dev/null
@@ -1,266 +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.compute.functions;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-
-import java.net.URI;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import com.google.common.base.Supplier;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Region;
-import org.jclouds.compute.domain.OperatingSystem;
-import org.jclouds.compute.domain.OsFamily;
-import org.jclouds.domain.Location;
-import org.jclouds.domain.LocationBuilder;
-import org.jclouds.domain.LocationScope;
-
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "OSImageToImageTest")
-public class OSImageToImageTest {
-
-   public void testImageTransform() {
-      final OSImageToImage imageToImage = new OSImageToImage(new Supplier<Set<? extends Location>>() {
-
-         private Location getLocation(final String input) {
-            final LocationBuilder builder = new LocationBuilder();
-            builder.id(input);
-            builder.description(input);
-
-            builder.scope(LocationScope.REGION);
-            final Region region = Region.byName(input);
-            if (region != null) {
-               builder.iso3166Codes(ImmutableSet.of(region.iso3166Code()));
-            }
-
-            return builder.build();
-         }
-
-         @Override
-         public Set<? extends Location> get() {
-            return ImmutableSet.of(getLocation("Central US"), getLocation("North Europe"));
-         }
-      });
-
-      for (OSImage osImage : createOSImage()) {
-         final org.jclouds.compute.domain.Image transformed = imageToImage.apply(osImage);
-         final OperatingSystem os = OSImageToImage.osFamily().apply(osImage).build();
-         assertNotNull(osImage.label());
-         assertNotNull(transformed.getId());
-         assertEquals(transformed.getId(), osImage.name());
-         assertEquals(transformed.getName(), osImage.label());
-         assertEquals(transformed.getOperatingSystem().getFamily(), os.getFamily());
-         assertEquals(transformed.getOperatingSystem().getVersion(), os.getVersion());
-         assertEquals(transformed.getProviderId(), osImage.name());
-         final Location location = transformed.getLocation();
-         assertEquals(location.getId(), osImage.location());
-      }
-   }
-
-   public void testOperatingSystem() {
-      ImmutableList<String> version = ImmutableList.of(
-              "13.1",
-              "12.04 LTS",
-              "Windows Server 2008 R2 SP1, June 2012",
-              "Microsoft SQL Server 2012 Evaluation Edition",
-              "Windows Server 2012 Release Candidate, July 2012",
-              "Windows Server 2008 R2 SP1, July 2012",
-              "OpenLogic CentOS 6.2",
-              "12.1",
-              "Linux Enterprise Server",
-              "RightImage-CentOS-6.4-x64-v13.4"
-      );
-      ImmutableList<OsFamily> osFamily = ImmutableList.of(
-              OsFamily.SUSE,
-              OsFamily.UBUNTU,
-              OsFamily.WINDOWS,
-              OsFamily.WINDOWS,
-              OsFamily.WINDOWS,
-              OsFamily.WINDOWS,
-              OsFamily.CENTOS,
-              OsFamily.SUSE,
-              OsFamily.SUSE,
-              OsFamily.CENTOS
-      );
-
-      List<OSImage> images = createOSImage();
-      for (int i = 0; i < images.size(); i++) {
-         OSImage osImage = images.get(i);
-         OperatingSystem os = OSImageToImage.osFamily().apply(osImage).build();
-         assertEquals(os.getFamily(), osFamily.get(i));
-         assertEquals(os.getVersion(), version.get(i));
-      }
-   }
-
-   private static ImmutableList<OSImage> createOSImage() {
-      return ImmutableList.of(
-              OSImage.create(
-                      "SUSE__openSUSE-12-1-20120603-en-us-30GB.vhd", // name
-                      "Central US", // location
-                      null, // affinityGroup
-                      "openSUSE 13.1", // label
-                      "openSUSE 13.1 brings updated desktop environments and software, lot of polishing, a brand new KDE theme, "
-                      + "complete systemd integration and many other features.", // description
-                      null, // imageFamily
-                      "MSDN", // category
-                      OSImage.Type.WINDOWS, // os
-                      "SUSE", // publisherName
-                      URI.create("http://example.blob.core.windows.net/disks/myimage.vhd"), // mediaLink
-                      30, // logicalSizeInGB
-                      Arrays.asList("http://www.ubuntu.com/project/about-ubuntu/licensing")// eula
-              ),
-              OSImage.create(
-                      "CANONICAL__Canonical-Ubuntu-12-04-amd64-server-20120528.1.3-en-us-30GB.vhd", // name
-                      "North Europe", // locations
-                      null, // affinityGroup
-                      "Ubuntu Server 12.04 LTS", // label
-                      "Ubuntu Server 12.04 LTS amd64 20120528 Cloud Image", //description
-                      null, // imageFamily
-                      "Canonical", // category
-                      OSImage.Type.LINUX, // os
-                      "Canonical", // publisherName
-                      null, // mediaLink
-                      30, // logicalSizeInGB
-                      Arrays.asList("http://www.ubuntu.com/project/about-ubuntu/licensing") // eula
-              ),
-              OSImage.create( //
-                      "MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd", // name
-                      "North Europe", // locations
-                      null, // affinityGroup
-                      "Windows Server 2008 R2 SP1, June 2012", // label
-                      "Windows Server 2008 R2 is a multi-purpose server.", //description
-                      null, // imageFamily
-                      "Microsoft", // category
-                      OSImage.Type.WINDOWS, // os
-                      "Microsoft", //publisherName
-                      URI.create("http://blobs/disks/mydeployment/MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd"),
-                      // mediaLink
-                      30, // logicalSizeInGB
-                      Collections.<String>emptyList() // eula
-              ),
-              OSImage.create( //
-                      "MSFT__Sql-Server-11EVAL-11.0.2215.0-05152012-en-us-30GB.vhd", // name
-                      "North Europe", // locations
-                      null, // affinityGroup
-                      "Microsoft SQL Server 2012 Evaluation Edition", // label
-                      "SQL Server 2012 Evaluation Edition (64-bit).", //description
-                      null, // imageFamily
-                      "Microsoft", // category
-                      OSImage.Type.WINDOWS, // os
-                      "Microsoft", //publisherName
-                      null, // mediaLink
-                      30, // logicalSizeInGB
-                      Arrays.asList("http://go.microsoft.com/fwlink/?LinkID=251820",
-                              "http://go.microsoft.com/fwlink/?LinkID=131004") // eula
-              ),
-              OSImage.create( //
-                      "MSFT__Win2K12RC-Datacenter-201207.02-en.us-30GB.vhd", // name
-                      "North Europe", // locations
-                      null, // affinityGroup
-                      "Windows Server 2012 Release Candidate, July 2012", // label
-                      "Windows Server 2012 incorporates Microsoft's experience building.", //description
-                      null, // imageFamily
-                      "Microsoft", // category
-                      OSImage.Type.WINDOWS, // os
-                      "Microsoft", //publisherName
-                      null, // mediaLink
-                      30, // logicalSizeInGB
-                      Collections.<String>emptyList() // eula
-              ),
-              OSImage.create( //
-                      "MSFT__Win2K8R2SP1-Datacenter-201207.01-en.us-30GB.vhd", // name
-                      "North Europe", // locations
-                      null, // affinityGroup
-                      "Windows Server 2008 R2 SP1, July 2012", // label
-                      "Windows Server 2008 R2 is a multi-purpose server.", //description
-                      null, // imageFamily
-                      "Microsoft", // category
-                      OSImage.Type.WINDOWS, // os
-                      "Microsoft", //publisherName
-                      null, // mediaLink
-                      30, // logicalSizeInGB
-                      Collections.<String>emptyList() // eula
-              ),
-              OSImage.create( //
-                      "OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd", // name
-                      "North Europe", // locations
-                      null, // affinityGroup
-                      "OpenLogic CentOS 6.2", // label
-                      "This distribution of Linux is based on CentOS.", //description
-                      null, // imageFamily
-                      "OpenLogic", // category
-                      OSImage.Type.LINUX, // os
-                      "openLogic", //publisherName
-                      URI.create("http://blobs/disks/mydeployment/OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd"),
-                      // mediaLink
-                      30, //logicalSizeInGB
-                      Arrays.asList("http://www.openlogic.com/azure/service-agreement/") // eula
-              ),
-              OSImage.create( //
-                      "SUSE__openSUSE-12-1-20120603-en-us-30GB.vhd", // name
-                      "North Europe", // locations
-                      null, // affinityGroup
-                      "openSUSE 12.1", // label
-                      "openSUSE is a free and Linux-based operating system!", //description
-                      null, // imageFamily
-                      "SUSE", // category
-                      OSImage.Type.LINUX, // os
-                      "SUSE", //publisherName
-                      null, // mediaLink
-                      30, // logicalSizeInGB
-                      Arrays.asList("http://opensuse.org/") // eula
-              ),
-              OSImage.create( //
-                      "SUSE__SUSE-Linux-Enterprise-Server-11SP2-20120601-en-us-30GB.vhd", // name
-                      "North Europe", // locations
-                      null, // affinityGroup
-                      "SUSE Linux Enterprise Server", // label
-                      "SUSE Linux Enterprise Server is a highly reliable value.", //description
-                      null, // imageFamily
-                      "SUSE", // category
-                      OSImage.Type.LINUX, // os
-                      "SUSE", //publisherName
-                      null, // mediaLink
-                      30, // logicalSizeInGB
-                      Arrays.asList("http://www.novell.com/licensing/eula/") // eula
-              ),
-              OSImage.create( //
-                      "0b11de9248dd4d87b18621318e037d37__RightImage-CentOS-6.4-x64-v13.4", // name
-                      "North Europe", // locations
-                      null, // affinityGroup
-                      "RightImage-CentOS-6.4-x64-v13.4", // label
-                      null, //description
-                      null, // imageFamily
-                      "RightScale with Linux", // category
-                      OSImage.Type.LINUX, // os
-                      "RightScale with Linux",
-                      null, // mediaLink
-                      10, // logicalSizeInGB
-                      Collections.<String>emptyList() // No EULA, as RightScale stuffed ';' into the field.
-              )
-      );
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/AffinityGroupApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/AffinityGroupApiLiveTest.java
deleted file mode 100644
index 62bab24..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/AffinityGroupApiLiveTest.java
+++ /dev/null
@@ -1,97 +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.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertNotNull;
-
-import static org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest.LOCATION;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.AffinityGroup;
-import org.jclouds.azurecompute.domain.CreateAffinityGroupParams;
-import org.jclouds.azurecompute.domain.UpdateAffinityGroupParams;
-import org.jclouds.azurecompute.internal.AbstractAzureComputeApiLiveTest;
-
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "AffinityGroupApiLiveTest")
-public class AffinityGroupApiLiveTest extends AbstractAzureComputeApiLiveTest {
-
-   private static final String GROUP_NAME = String.format("%3.24s",
-           System.getProperty("user.name") + RAND + "-securityGroup");
-
-   private AffinityGroupApi api() {
-      return api.getAffinityGroupApi();
-   }
-
-   @Test(dependsOnMethods = "testCreate")
-   public void testList() {
-      final List<AffinityGroup> groups = api().list();
-      assertFalse(groups.isEmpty());
-
-      final AffinityGroup matching = Iterables.find(groups, new Predicate<AffinityGroup>() {
-
-         @Override
-         public boolean apply(final AffinityGroup group) {
-            return GROUP_NAME.equals(group.name());
-         }
-      });
-      assertNotNull(matching);
-   }
-
-   @Test(dependsOnMethods = "testCreate")
-   public void testRead() {
-      final AffinityGroup group = api().get(GROUP_NAME);
-      assertNotNull(group);
-      assertEquals(group.name(), GROUP_NAME);
-   }
-
-   public void testCreate() {
-      final CreateAffinityGroupParams params = CreateAffinityGroupParams.builder().
-              name(GROUP_NAME).
-              label(GROUP_NAME).
-              location(LOCATION).
-              build();
-
-      final String requestId = api().add(params);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-   }
-
-   @Test(dependsOnMethods = "testCreate")
-   public void testUpdate() {
-      final UpdateAffinityGroupParams params = UpdateAffinityGroupParams.builder().
-              description(GROUP_NAME + " description").
-              build();
-
-      final String requestId = api().update(GROUP_NAME, params);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-   }
-
-   @AfterClass(alwaysRun = true)
-   public void testDelete() throws Exception {
-      final String requestId = api().delete(GROUP_NAME);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/AffinityGroupApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/AffinityGroupApiMockTest.java
deleted file mode 100644
index 65960c2..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/AffinityGroupApiMockTest.java
+++ /dev/null
@@ -1,161 +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.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertNull;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListAffinityGroupsHandlerTest;
-import org.jclouds.azurecompute.domain.CreateAffinityGroupParams;
-import org.jclouds.azurecompute.domain.UpdateAffinityGroupParams;
-
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "AffinityGroupApiMockTest")
-public class AffinityGroupApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void testList() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/affinityGroups.xml"));
-
-      try {
-         final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
-         assertEquals(api.list(), ListAffinityGroupsHandlerTest.expected());
-
-         assertSent(server, "GET", "/affinitygroups");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testEmptyList() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
-         assertTrue(api.list().isEmpty());
-
-         assertSent(server, "GET", "/affinitygroups");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testRead() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/affinityGroup.xml"));
-
-      try {
-         final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
-         assertEquals(api.get("Test1"), ListAffinityGroupsHandlerTest.expected().get(0));
-
-         assertSent(server, "GET", "/affinitygroups/Test1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testNullRead() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
-         assertNull(api.get("Test1"));
-
-         assertSent(server, "GET", "/affinitygroups/Test1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testAdd() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
-         final CreateAffinityGroupParams params = CreateAffinityGroupParams.builder().name("mygroup").label("foo").
-                 location("West Europe").build();
-
-         assertEquals(api.add(params), "request-1");
-
-         assertSent(server, "POST", "/affinitygroups", "/createaffinitygroupparams.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testUpdate() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-2"));
-
-      try {
-         final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
-         final UpdateAffinityGroupParams params = UpdateAffinityGroupParams.builder().label("foo").
-                 description("mygroup description").build();
-
-         assertEquals(api.update("mygroup", params), "request-2");
-
-         assertSent(server, "PUT", "/affinitygroups/mygroup", "/updateaffinitygroupparams.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testDelete() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-3"));
-
-      try {
-         final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
-         assertEquals(api.delete("mygroup"), "request-3");
-
-         assertSent(server, "DELETE", "/affinitygroups/mygroup");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testNullDelete() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
-         assertNull(api.delete("mygroup"));
-
-         assertSent(server, "DELETE", "/affinitygroups/mygroup");
-      } finally {
-         server.shutdown();
-      }
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/CloudServiceApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/CloudServiceApiLiveTest.java
deleted file mode 100644
index b0dcbd8..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/CloudServiceApiLiveTest.java
+++ /dev/null
@@ -1,146 +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.features;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.jclouds.azurecompute.domain.CloudService.Status.UNRECOGNIZED;
-import static org.jclouds.util.Predicates2.retry;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import java.util.List;
-import java.util.logging.Logger;
-
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.CloudService.Status;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import java.util.logging.Level;
-
-@Test(groups = "live", testName = "CloudServiceApiLiveTest", singleThreaded = true)
-public class CloudServiceApiLiveTest extends BaseAzureComputeApiLiveTest {
-
-   private static final String CLOUD_SERVICE = String.format("%s%d-%s",
-           System.getProperty("user.name"), RAND, CloudServiceApiLiveTest.class.getSimpleName()).toLowerCase();
-
-   private Predicate<CloudService> cloudServiceCreated;
-
-   private Predicate<CloudService> cloudServiceGone;
-
-   @BeforeClass(groups = {"integration", "live"})
-   @Override
-   public void setup() {
-      super.setup();
-      cloudServiceCreated = retry(new Predicate<CloudService>() {
-
-         @Override
-         public boolean apply(CloudService input) {
-            return api().get(input.name()).status() == Status.CREATED;
-         }
-      }, 600, 5, 5, SECONDS);
-      cloudServiceGone = retry(new Predicate<CloudService>() {
-
-         @Override
-         public boolean apply(CloudService input) {
-            return api().get(input.name()) == null;
-         }
-      }, 600, 5, 5, SECONDS);
-   }
-
-   private CloudService cloudService;
-
-   public void testCreate() {
-      String requestId = api().createWithLabelInLocation(CLOUD_SERVICE, CLOUD_SERVICE, LOCATION);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-      Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-
-      cloudService = api().get(CLOUD_SERVICE);
-      Logger.getAnonymousLogger().log(Level.INFO, "created cloudService: {0}", cloudService);
-
-      assertEquals(cloudService.name(), CLOUD_SERVICE);
-
-      checkHostedService(cloudService);
-
-      assertTrue(cloudServiceCreated.apply(cloudService), cloudService.toString());
-      cloudService = api().get(cloudService.name());
-      Logger.getAnonymousLogger().log(Level.INFO, "cloudService available: {0}", cloudService);
-
-   }
-
-   @Test(dependsOnMethods = "testCreate")
-   public void testGet() {
-      CloudService foundCloudService = api().get(cloudService.name());
-      assertThat(foundCloudService).isEqualToComparingFieldByField(cloudService);
-   }
-
-   @Test(dependsOnMethods = "testGet")
-   public void testDelete() {
-      String requestId = api().delete(cloudService.name());
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-      Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-
-      assertTrue(cloudServiceGone.apply(cloudService), cloudService.toString());
-      Logger.getAnonymousLogger().log(Level.INFO, "cloudService deleted: {0}", cloudService);
-   }
-
-   @Override
-   @AfterClass(groups = "live", alwaysRun = true)
-   protected void tearDown() {
-      String requestId = api().delete(CLOUD_SERVICE);
-      if (requestId != null) {
-         operationSucceeded.apply(requestId);
-      }
-
-      super.tearDown();
-   }
-
-   public void testList() {
-      List<CloudService> response = api().list();
-
-      for (CloudService cs : response) {
-         checkHostedService(cs);
-      }
-
-      if (!response.isEmpty()) {
-         CloudService cs = response.iterator().next();
-         assertEquals(api().get(cs.name()), cs);
-      }
-   }
-
-   private void checkHostedService(CloudService cloudService) {
-      assertNotNull(cloudService.name(), "ServiceName cannot be null for " + cloudService);
-      assertTrue(cloudService.location() != null || cloudService.affinityGroup() != null,
-              "Location or AffinityGroup must be present for " + cloudService);
-      assertNotNull(cloudService.label(), "Label cannot be null for " + cloudService);
-      assertNotNull(cloudService.status(), "Status cannot be null for " + cloudService);
-      assertNotEquals(cloudService.status(), UNRECOGNIZED, "Status cannot be UNRECOGNIZED for " + cloudService);
-      assertNotNull(cloudService.created(), "Created cannot be null for " + cloudService);
-      assertNotNull(cloudService.lastModified(), "LastModified cannot be null for " + cloudService);
-      assertNotNull(cloudService.extendedProperties(), "ExtendedProperties cannot be null for " + cloudService);
-   }
-
-   private CloudServiceApi api() {
-      return api.getCloudServiceApi();
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/CloudServiceApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/CloudServiceApiMockTest.java
deleted file mode 100644
index c321d5d..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/CloudServiceApiMockTest.java
+++ /dev/null
@@ -1,169 +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.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.CloudServiceHandlerTest;
-import org.jclouds.azurecompute.xml.CloudServicePropertiesHandlerTest;
-import org.jclouds.azurecompute.xml.ListCloudServicesHandlerTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-@Test(groups = "unit", testName = "CloudServiceApiMockTest")
-public class CloudServiceApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void listWhenFound() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/hostedservices.xml"));
-
-      try {
-         CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
-         assertEquals(api.list(), ListCloudServicesHandlerTest.expected());
-
-         assertSent(server, "GET", "/services/hostedservices?embed-detail=true");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void listWhenNotFound() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
-         assertTrue(api.list().isEmpty());
-
-         assertSent(server, "GET", "/services/hostedservices?embed-detail=true");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getWhenFound() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/hostedservice.xml"));
-
-      try {
-         CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
-         assertEquals(api.get("myservice"), CloudServiceHandlerTest.expected());
-
-         assertSent(server, "GET", "/services/hostedservices/myservice?embed-detail=true");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getWhenNotFound() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
-         assertNull(api.get("myservice"));
-
-         assertSent(server, "GET", "/services/hostedservices/myservice?embed-detail=true");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-    public void getPropertiesWhenFound() throws Exception {
-        MockWebServer server = mockAzureManagementServer();
-        server.enqueue(xmlResponse("/cloudserviceproperties.xml"));
-
-        try {
-            CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
-            assertEquals(api.getProperties("myservice"), CloudServicePropertiesHandlerTest.expected());
-
-            assertSent(server, "GET", "/services/hostedservices/myservice?embed-detail=true");
-        } finally {
-            server.shutdown();
-        }
-    }
-
-    public void getPropertiesWhenNotFound() throws Exception {
-        MockWebServer server = mockAzureManagementServer();
-        server.enqueue(new MockResponse().setResponseCode(404));
-
-        try {
-            CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
-            assertNull(api.getProperties("myservice"));
-
-            assertSent(server, "GET", "/services/hostedservices/myservice?embed-detail=true");
-        } finally {
-            server.shutdown();
-        }
-    }
-
-   public void createWithLabelInLocation() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
-         assertEquals(api.createWithLabelInLocation("myservice", "service mine", "West US"), "request-1");
-
-         assertSent(server, "POST", "/services/hostedservices", "/create_hostedservice_location.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void deleteWhenFound() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
-         assertEquals(api.delete("myservice"), "request-1");
-
-         assertSent(server, "DELETE", "/services/hostedservices/myservice");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void deleteWhenNotFound() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
-         assertNull(api.delete("myservice"));
-
-         assertSent(server, "DELETE", "/services/hostedservices/myservice");
-      } finally {
-         server.shutdown();
-      }
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiLiveTest.java
deleted file mode 100644
index 6982300..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiLiveTest.java
+++ /dev/null
@@ -1,187 +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.features;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.jclouds.util.Predicates2.retry;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.jclouds.azurecompute.compute.AzureComputeServiceAdapter;
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.CloudServiceProperties;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableSet;
-
-@Test(groups = "live", testName = "DeploymentApiLiveTest", singleThreaded = true)
-public class DeploymentApiLiveTest extends BaseAzureComputeApiLiveTest {
-
-   private static final String CLOUD_SERVICE = String.format("%s%d-%s",
-           System.getProperty("user.name"), RAND, DeploymentApiLiveTest.class.getSimpleName()).toLowerCase();
-
-   private static final String DEPLOYMENT = String.format("%s%d-%s",
-           System.getProperty("user.name"), RAND, DeploymentApiLiveTest.class.getSimpleName()).toLowerCase();
-
-   private Predicate<Deployment> deploymentCreated;
-
-   private Predicate<Deployment> deploymentGone;
-
-   private Deployment deployment;
-
-   private CloudService cloudService;
-
-   @BeforeClass(groups = {"integration", "live"})
-   @Override
-   public void setup() {
-      super.setup();
-
-      cloudService = getOrCreateCloudService(CLOUD_SERVICE, LOCATION);
-
-      deploymentCreated = retry(new Predicate<Deployment>() {
-
-         @Override
-         public boolean apply(final Deployment input) {
-            return api().get(input.name()).status() == Deployment.Status.RUNNING;
-         }
-      }, 600, 5, 5, SECONDS);
-
-      deploymentGone = retry(new Predicate<Deployment>() {
-
-         @Override
-         public boolean apply(final Deployment input) {
-            return api().get(input.name()) == null;
-         }
-      }, 600, 5, 5, SECONDS);
-   }
-
-   public void testCreate() {
-      final DeploymentParams params = DeploymentParams.builder()
-              .name(DEPLOYMENT)
-              .os(OSImage.Type.LINUX)
-              .sourceImageName(DeploymentApiLiveTest.IMAGE_NAME)
-              .mediaLink(AzureComputeServiceAdapter.createMediaLink(storageService.serviceName(), DEPLOYMENT))
-              .username("test")
-              .password("supersecurePassword1!")
-              .size(RoleSize.Type.BASIC_A0)
-              .externalEndpoints(ImmutableSet.of(DeploymentParams.ExternalEndpoint.inboundTcpToLocalPort(22, 22)))
-              .build();
-      final String requestId = api().create(params);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-
-      deployment = api().get(DEPLOYMENT);
-      assertNotNull(deployment);
-      assertTrue(deploymentCreated.apply(deployment), deployment.toString());
-      assertThat(deployment.name()).isEqualTo(DEPLOYMENT);
-      assertThat(deployment.status()).isEqualTo(Deployment.Status.RUNNING);
-      assertThat(deployment.label()).isEqualTo(DEPLOYMENT);
-      assertThat(deployment.slot()).isEqualTo(Deployment.Slot.PRODUCTION);
-      assertThat(deployment.roleList().size()).isEqualTo(1);
-      assertThat(deployment.roleInstanceList().size()).isEqualTo(1);
-
-   }
-
-   @Test(dependsOnMethods = "testCreate")
-   public void testGet() {
-      Deployment foundDeployment = api().get(deployment.name());
-      assertThat(foundDeployment).isEqualToComparingFieldByField(deployment);
-   }
-
-   // Test CloudServiceProperties with a deployment
-   @Test(dependsOnMethods = "testCreate")
-   public void testGetProperties() {
-      CloudServiceProperties cloudServiceProperties = api.getCloudServiceApi().getProperties(cloudService.name());
-      assertNotNull(cloudServiceProperties);
-      assertEquals(cloudServiceProperties.serviceName(), CLOUD_SERVICE);
-
-      Deployment deployment = cloudServiceProperties.deployments().get(0);
-      checkDeployment(deployment);
-   }
-
-   @Test(dependsOnMethods = "testGet")
-   public void testDelete() {
-      final List<Role> roles = api.getDeploymentApiForService(cloudService.name()).get(DEPLOYMENT).roleList();
-
-      assertTrue(new ConflictManagementPredicate(api) {
-
-         @Override
-         protected String operation() {
-            return api().delete(deployment.name());
-         }
-      }.apply(deployment.name()));
-
-      assertTrue(deploymentGone.apply(deployment), deployment.toString());
-      Logger.getAnonymousLogger().log(Level.INFO, "deployment deleted: {0}", deployment);
-
-      assertTrue(new ConflictManagementPredicate(api) {
-
-         @Override
-         protected String operation() {
-            return api.getCloudServiceApi().delete(cloudService.name());
-         }
-      }.apply(cloudService.name()));
-
-      for (Role r : roles) {
-         final Role.OSVirtualHardDisk disk = r.osVirtualHardDisk();
-         if (disk != null) {
-            assertTrue(new ConflictManagementPredicate(api) {
-
-               @Override
-               protected String operation() {
-                  return api.getDiskApi().delete(disk.diskName());
-               }
-            }.apply(disk.diskName()));
-         }
-      }
-   }
-
-   private void checkDeployment(Deployment deployment) {
-      assertNotNull(deployment);
-      assertNotNull(deployment.name(), "Name cannot be Null for Deployment" + deployment);
-      assertTrue(deployment.roleList().size() > 0, "There should be atleast 1 Virtual machine for a deployment  ");
-      assertNotNull(deployment.label(), "Label cannot be Null for Deployment" + deployment);
-
-      Deployment.Slot slot = deployment.slot();
-      assertTrue((slot == Deployment.Slot.PRODUCTION) || (slot == Deployment.Slot.STAGING));
-      assertEquals(deployment.name(), DEPLOYMENT);
-   }
-
-   @Override
-   @AfterClass(groups = "live", alwaysRun = true)
-   protected void tearDown() {
-      super.tearDown();
-   }
-
-   private DeploymentApi api() {
-      return api.getDeploymentApiForService(cloudService.name());
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiMockTest.java
deleted file mode 100644
index d41901d..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiMockTest.java
+++ /dev/null
@@ -1,121 +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.features;
-
-import static org.jclouds.azurecompute.domain.DeploymentParams.ExternalEndpoint.inboundTcpToLocalPort;
-import static org.jclouds.azurecompute.domain.DeploymentParams.ExternalEndpoint.inboundUdpToLocalPort;
-import static org.testng.Assert.assertEquals;
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.DeploymentHandlerTest;
-import org.jclouds.azurecompute.xml.ListOSImagesHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableSet;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-@Test(groups = "unit", testName = "DeploymentApiMockTest")
-public class DeploymentApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void testCreateLinux() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         DeploymentApi api = api(server.getUrl("/")).getDeploymentApiForService("myservice");
-
-         OSImage osImage = ListOSImagesHandlerTest.expected().get(5); // Centos
-
-         DeploymentParams params = DeploymentParams.builder()
-                 .name("mydeployment")
-                 .size(RoleSize.Type.MEDIUM)
-                 .sourceImageName(osImage.name()).mediaLink(URI.create("https://mydeployment.blob.core.windows.net/vhds/disk-mydeployment.vhd")).os(osImage.os())
-                 .username("username").password("testpwd")
-                 .virtualNetworkName("my-virtualNetworkName")
-                 .reservedIPName("myreservedip")
-                 .externalEndpoints(ImmutableSet.of(inboundTcpToLocalPort(80, 8080), inboundUdpToLocalPort(53, 53)))
-                 .build();
-
-         assertEquals(api.create(params), "request-1");
-
-         assertSent(server, "POST", "/services/hostedservices/myservice/deployments", "/deploymentparams.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testCreateWindows() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         DeploymentApi api = api(server.getUrl("/")).getDeploymentApiForService("myservice");
-
-         OSImage osImage = ListOSImagesHandlerTest.expected().get(1); // Windows
-
-         DeploymentParams params = DeploymentParams.builder()
-                 .name("mydeployment")
-                 .size(RoleSize.Type.MEDIUM)
-                 .sourceImageName(osImage.name()).mediaLink(osImage.mediaLink()).os(osImage.os())
-                 .username("username").password("testpwd")
-                 .virtualNetworkName("my-virtualNetworkName")
-                 .externalEndpoints(ImmutableSet.of(inboundTcpToLocalPort(80, 8080), inboundUdpToLocalPort(53, 53)))
-                 .build();
-
-         assertEquals(api.create(params), "request-1");
-
-         assertSent(server, "POST", "/services/hostedservices/myservice/deployments", "/deploymentparams-windows.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testGet() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/deployment.xml"));
-
-      try {
-         DeploymentApi api = api(server.getUrl("/")).getDeploymentApiForService("myservice");
-
-         assertEquals(api.get("mydeployment"), DeploymentHandlerTest.expected());
-
-         assertSent(server, "GET", "/services/hostedservices/myservice/deployments/mydeployment");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testDelete() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         DeploymentApi api = api(server.getUrl("/")).getDeploymentApiForService("myservice");
-
-         assertEquals(api.delete("mydeployment"), "request-1");
-
-         assertSent(server, "DELETE", "/services/hostedservices/myservice/deployments/mydeployment");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiLiveTest.java
deleted file mode 100644
index 1847f1f..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiLiveTest.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static com.google.common.collect.Iterables.transform;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.azurecompute.domain.AffinityGroup;
-import org.jclouds.azurecompute.domain.Disk;
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.internal.AbstractAzureComputeApiLiveTest;
-
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableSet;
-
-@Test(groups = "live", testName = "DiskApiLiveTest")
-public class DiskApiLiveTest extends AbstractAzureComputeApiLiveTest {
-
-   private ImmutableSet<String> locations;
-
-   private ImmutableSet<String> images;
-
-   private ImmutableSet<String> groups;
-
-   @BeforeClass(groups = {"integration", "live"})
-   @Override
-   public void setup() {
-      super.setup();
-
-      locations = ImmutableSet.copyOf(transform(api.getLocationApi().list(),
-              new Function<Location, String>() {
-
-                 @Override
-                 public String apply(final Location location) {
-                    return location.name();
-                 }
-              }));
-      images = ImmutableSet.copyOf(transform(api.getOSImageApi().list(), new Function<OSImage, String>() {
-
-         @Override
-         public String apply(final OSImage image) {
-            return image.name();
-         }
-      }));
-      groups = ImmutableSet.copyOf(transform(api.getAffinityGroupApi().list(), new Function<AffinityGroup, String>() {
-
-         @Override
-         public String apply(final AffinityGroup group) {
-            return group.name();
-         }
-      }));
-   }
-
-   public void testList() {
-      for (Disk disk : api().list()) {
-         checkDisk(disk);
-      }
-   }
-
-   // TODO testDeleteDisk, if we will need testCreateDisk
-   private void checkDisk(Disk disk) {
-      assertNotNull(disk.name(), "Name cannot be null for: " + disk);
-
-      if (disk.attachedTo() != null) {
-         // TODO: verify you can lookup the role
-      }
-
-      if (disk.logicalSizeInGB() != null) {
-         assertTrue(disk.logicalSizeInGB() > 0, "LogicalSizeInGB should be positive, if set" + disk);
-      }
-
-      if (disk.mediaLink() != null) {
-         assertTrue(ImmutableSet.of("http", "https").contains(disk.mediaLink().getScheme()),
-                 "MediaLink should be an http(s) url" + disk);
-      }
-
-      if (disk.location() != null) {
-         assertTrue(locations.contains(disk.location()), "Location not in " + locations + " :" + disk);
-      }
-
-      if (disk.sourceImage() != null) {
-      //TODO disk can be generated from a `VM Image` that listDisk doesn't consider
-      //   assertTrue(images.contains(disk.sourceImage()), "SourceImage not in " + images + " :" + disk);
-      }
-
-      if (disk.affinityGroup() != null) {
-         assertTrue(groups.contains(disk.affinityGroup()), "AffinityGroup not in " + groups + " :" + disk);
-      }
-   }
-
-   private DiskApi api() {
-      return api.getDiskApi();
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiMockTest.java
deleted file mode 100644
index a9b6900..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiMockTest.java
+++ /dev/null
@@ -1,60 +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.features;
-
-import static org.testng.Assert.assertEquals;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListDisksHandlerTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-@Test(groups = "unit", testName = "DiskApiMockTest")
-public class DiskApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void testList() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/disks.xml"));
-
-      try {
-         DiskApi api = api(server.getUrl("/")).getDiskApi();
-
-         assertEquals(api.list(), ListDisksHandlerTest.expected());
-
-         assertSent(server, "GET", "/services/disks");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testDelete() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         DiskApi api = api(server.getUrl("/")).getDiskApi();
-
-         assertEquals(api.delete("my-disk"), "request-1");
-
-         assertSent(server, "DELETE", "/services/disks/my-disk?comp=media");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/LocationApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/LocationApiLiveTest.java
deleted file mode 100644
index 8b43292..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/LocationApiLiveTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.internal.AbstractAzureComputeApiLiveTest;
-
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "LocationApiLiveTest")
-public class LocationApiLiveTest extends AbstractAzureComputeApiLiveTest {
-
-   private static final List<String> KNOWN_SERVICES = Arrays
-           .asList("Compute", "Storage", "PersistentVMRole", "HighMemory");
-
-   @Test
-   public void testList() {
-      for (Location location : api().list()) {
-         checkLocation(location);
-      }
-   }
-
-   private void checkLocation(final Location location) {
-      assertNotNull(location.name(), "Name cannot be null for a Location.");
-      assertNotNull(location.displayName(), "DisplayName cannot be null for: " + location);
-      assertNotNull(location.availableServices(), "AvailableServices cannot be null for: " + location.name());
-      assertTrue(KNOWN_SERVICES.containsAll(location.availableServices()),
-              "AvailableServices in " + location + " didn't match: " + KNOWN_SERVICES);
-   }
-
-   private LocationApi api() {
-      return api.getLocationApi();
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/LocationApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/LocationApiMockTest.java
deleted file mode 100644
index c6f1924..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/LocationApiMockTest.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.features;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListLocationsHandlerTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-@Test(groups = "unit", testName = "LocationApiMockTest")
-public class LocationApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void testList() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/locations.xml"));
-
-      try {
-         LocationApi api = api(server.getUrl("/")).getLocationApi();
-
-         assertThat(api.list()).containsExactlyElementsOf(ListLocationsHandlerTest.expected());
-
-         assertSent(server, "GET", "/locations");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApiLiveTest.java
deleted file mode 100644
index 7e41eb7..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApiLiveTest.java
+++ /dev/null
@@ -1,215 +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.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "NetworkSecurityGroupApiLiveTest", singleThreaded = true)
-public class NetworkSecurityGroupApiLiveTest extends BaseAzureComputeApiLiveTest {
-
-   private static final String GROUP1 = System.getProperty("user.name") + RAND + "-1";
-
-   private static final String GROUP2 = System.getProperty("user.name") + RAND + "-2";
-
-   @BeforeClass
-   public void groupSetup() {
-      // ----------------------------
-      // Clean before start
-      // ----------------------------
-      try {
-         final NetworkSecurityGroup group = api().
-                 getNetworkSecurityGroupAppliedToSubnet(VIRTUAL_NETWORK_NAME, DEFAULT_SUBNET_NAME);
-
-         if (group != null && (group.name().equals(GROUP1) || group.name().equals(GROUP2))) {
-            api().removeFromSubnet(VIRTUAL_NETWORK_NAME, DEFAULT_SUBNET_NAME, group.name());
-         }
-      } catch (Exception e) {
-         // ignore
-      }
-
-      try {
-         if (api().get(GROUP1) != null) {
-            operationSucceeded.apply(api.getNetworkSecurityGroupApi().delete(GROUP1));
-         }
-      } catch (Exception e) {
-         // ignore
-      }
-
-      try {
-         if (api().get(GROUP2) != null) {
-            operationSucceeded.apply(api.getNetworkSecurityGroupApi().delete(GROUP2));
-         }
-      } catch (Exception e) {
-         // ignore
-      }
-      // ----------------------------
-
-      String requestId = api().create(
-              NetworkSecurityGroup.create(GROUP1, GROUP1 + " security group", LOCATION, null, null));
-
-      assertTrue(operationSucceeded.apply(requestId), GROUP1);
-
-      requestId = api().create(
-              NetworkSecurityGroup.create(GROUP2, GROUP2 + " security group", LOCATION, null, null));
-
-      assertTrue(operationSucceeded.apply(requestId), GROUP2);
-   }
-
-   @Test
-   public void list() {
-      final List<NetworkSecurityGroup> groups = api().list();
-      assertFalse(groups.isEmpty());
-   }
-
-   @Test
-   public void get() {
-      final NetworkSecurityGroup group = api().get(GROUP1);
-      assertEquals(group.name(), GROUP1);
-      assertEquals(group.label(), GROUP1 + " security group");
-      assertEquals(group.location(), LOCATION);
-      assertTrue(group.state() == NetworkSecurityGroup.State.CREATED);
-      assertTrue(group.rules().isEmpty());
-   }
-
-   @Test
-   public void getFullDetails() {
-      final NetworkSecurityGroup group = api().getFullDetails(GROUP2);
-      assertEquals(group.name(), GROUP2);
-      assertEquals(group.label(), GROUP2 + " security group");
-      assertEquals(group.location(), LOCATION);
-      assertTrue(group.state() == NetworkSecurityGroup.State.CREATED);
-      assertFalse(group.rules().isEmpty());
-   }
-
-   @Test
-   public void setRule() {
-      final String ruleName = "newrule";
-
-      final String requestId = api().setRule(GROUP1, ruleName, Rule.create(
-              ruleName,
-              Rule.Type.Inbound,
-              "100",
-              Rule.Action.Allow,
-              "INTERNET",
-              "*",
-              "10.0.0.0/0",
-              "*",
-              Rule.Protocol.ALL));
-
-      assertTrue(operationSucceeded.apply(requestId), ruleName);
-
-      Rule newrule = null;
-
-      for (Rule rule : api().getFullDetails(GROUP1).rules()) {
-         if (ruleName.equals(rule.name())) {
-            newrule = rule;
-         }
-      }
-
-      assertNotNull(newrule);
-
-      assertNull(newrule.isDefault());
-      assertEquals(newrule.action(), Rule.Action.Allow);
-      assertEquals(newrule.type(), Rule.Type.Inbound);
-      assertEquals(newrule.protocol(), Rule.Protocol.ALL);
-      assertEquals(newrule.state(), "Active");
-   }
-
-   @Test(dependsOnMethods = {"setRule"})
-   public void removeRule() {
-      final String ruleName = "newrule";
-
-      final String requestId = api().deleteRule(GROUP1, ruleName);
-      assertTrue(operationSucceeded.apply(requestId), ruleName);
-
-      Rule newrule = null;
-
-      for (Rule rule : api().getFullDetails(GROUP1).rules()) {
-         if (ruleName.equals(rule.name())) {
-            newrule = rule;
-         }
-      }
-
-      assertNull(newrule);
-   }
-
-   @Test(dependsOnMethods = {"removeRule"})
-   public void addToSubnet() {
-      assertTrue(new ConflictManagementPredicate(api) {
-
-         @Override
-         protected String operation() {
-            return api().addToSubnet(VIRTUAL_NETWORK_NAME, DEFAULT_SUBNET_NAME, GROUP1);
-         }
-      }.apply(GROUP1));
-   }
-
-   @Test(dependsOnMethods = {"addToSubnet"})
-   public void getForSubnet() {
-      final NetworkSecurityGroup group = api().
-              getNetworkSecurityGroupAppliedToSubnet(VIRTUAL_NETWORK_NAME, DEFAULT_SUBNET_NAME);
-      assertEquals(group.state(), NetworkSecurityGroup.State.CREATED);
-   }
-
-   @Test(dependsOnMethods = {"getForSubnet"})
-   public void removeFromSubnet() {
-      assertTrue(new ConflictManagementPredicate(api) {
-
-         @Override
-         protected String operation() {
-            return api().removeFromSubnet(VIRTUAL_NETWORK_NAME, DEFAULT_SUBNET_NAME, GROUP1);
-         }
-      }.apply(GROUP1));
-   }
-
-   @AfterClass
-   public void cleanup() {
-      // no assertion is required: just to be sure to remove for subnet
-      final NetworkSecurityGroup group = api().
-              getNetworkSecurityGroupAppliedToSubnet(VIRTUAL_NETWORK_NAME, DEFAULT_SUBNET_NAME);
-
-      if (group != null) {
-         api().removeFromSubnet(VIRTUAL_NETWORK_NAME, DEFAULT_SUBNET_NAME, group.name());
-      }
-
-      String requestId = api.getNetworkSecurityGroupApi().delete(GROUP1);
-      assertTrue(operationSucceeded.apply(requestId), GROUP1);
-
-      requestId = api.getNetworkSecurityGroupApi().delete(GROUP2);
-      assertTrue(operationSucceeded.apply(requestId), GROUP2);
-   }
-
-   private NetworkSecurityGroupApi api() {
-      return api.getNetworkSecurityGroupApi();
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApiMockTest.java
deleted file mode 100644
index 3a1bd54..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApiMockTest.java
+++ /dev/null
@@ -1,277 +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.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertNull;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.azurecompute.xml.ListNetworkSecurityGroupsHandlerTest;
-import org.jclouds.azurecompute.xml.NetworkSecurityGroupHandlerTest;
-
-@Test(groups = "unit", testName = "NetworkSecurityGroupApiMockTest")
-public class NetworkSecurityGroupApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void list() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/networksecuritygroups.xml"));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertEquals(api.list(), ListNetworkSecurityGroupsHandlerTest.expected());
-         assertSent(server, "GET", "/services/networking/networksecuritygroups");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void listWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertTrue(api.list().isEmpty());
-         assertSent(server, "GET", "/services/networking/networksecuritygroups");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getFullDetails() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/networksecuritygroupfulldetails.xml"));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertEquals(api.getFullDetails("jclouds-NSG"), NetworkSecurityGroupHandlerTest.expectedFull());
-         assertSent(server, "GET", "/services/networking/networksecuritygroups/jclouds-NSG?detaillevel=Full");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getFullDetailsWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertNull(api.getFullDetails("jclouds-NSG"));
-         assertSent(server, "GET", "/services/networking/networksecuritygroups/jclouds-NSG?detaillevel=Full");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void get() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/networksecuritygroup.xml"));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertEquals(api.get("group1"), NetworkSecurityGroupHandlerTest.expected());
-         assertSent(server, "GET", "/services/networking/networksecuritygroups/group1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertNull(api.get("group1"));
-         assertSent(server, "GET", "/services/networking/networksecuritygroups/group1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getNetworkSecurityGroupAppliedToSubnet() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/networksecuritygroupforsubnet.xml"));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertEquals(api.getNetworkSecurityGroupAppliedToSubnet("myvn", "mysubnet"),
-                 NetworkSecurityGroupHandlerTest.expectedForSubnet());
-         assertSent(server, "GET", "/services/networking/virtualnetwork/myvn/subnets/mysubnet/networksecuritygroups");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getNetworkSecurityGroupAppliedToSubnetWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertNull(api.getNetworkSecurityGroupAppliedToSubnet("myvn", "mysubnet"));
-         assertSent(server, "GET", "/services/networking/virtualnetwork/myvn/subnets/mysubnet/networksecuritygroups");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void deleteGroup() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertEquals(api.delete("mygroup"), "request-1");
-         assertSent(server, "DELETE", "/services/networking/networksecuritygroups/mygroup");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void deleteGroupWhenNotFound() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertNull(api.delete("mygroup"));
-         assertSent(server, "DELETE", "/services/networking/networksecuritygroups/mygroup");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void deleteRule() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertEquals(api.deleteRule("mygroup", "myrule"), "request-1");
-         assertSent(server, "DELETE", "/services/networking/networksecuritygroups/mygroup/rules/myrule");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void deleteRuleWhenNotFound() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertNull(api.deleteRule("mygroup", "myrule"));
-         assertSent(server, "DELETE", "/services/networking/networksecuritygroups/mygroup/rules/myrule");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void removeFromSubnet() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertEquals(api.removeFromSubnet("myvn", "mysubnet", "mygroup"), "request-1");
-         assertSent(server, "DELETE",
-                 "/services/networking/virtualnetwork/myvn/subnets/mysubnet/networksecuritygroups/mygroup");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void removeFromSubnetWhenNotFound() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertNull(api.removeFromSubnet("myvn", "mysubnet", "mygroup"));
-         assertSent(server, "DELETE",
-                 "/services/networking/virtualnetwork/myvn/subnets/mysubnet/networksecuritygroups/mygroup");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void addToSubnet() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertEquals(api.addToSubnet("myvn", "mysubnet", "mygroup"), "request-1");
-         assertSent(server, "POST",
-                 "/services/networking/virtualnetwork/myvn/subnets/mysubnet/networksecuritygroups");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void create() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertEquals(api.create(NetworkSecurityGroup.create("mygroup", "sec mygroup", "North Europe", null, null)),
-                 "request-1");
-         assertSent(server, "POST", "/services/networking/networksecuritygroups");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void setRule() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
-         assertEquals(api.setRule("mygroup", "myrule", Rule.create(
-                 "myrule",
-                 Rule.Type.Inbound,
-                 "100",
-                 Rule.Action.Allow,
-                 "192.168.0.2",
-                 "*",
-                 "192.168.0.1",
-                 "80",
-                 Rule.Protocol.TCP
-         )), "request-1");
-
-         assertSent(server, "PUT", "/services/networking/networksecuritygroups/mygroup/rules/myrule");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   private NetworkSecurityGroupApi networkSecurityGroupApi(final MockWebServer server) {
-      return api(server.getUrl("/")).getNetworkSecurityGroupApi();
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/OSImageApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/OSImageApiLiveTest.java
deleted file mode 100644
index edff894..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/OSImageApiLiveTest.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.features;
-
-import static com.google.common.collect.Iterables.transform;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.internal.AbstractAzureComputeApiLiveTest;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableSet;
-
-@Test(groups = "live", testName = "OSImageApiLiveTest")
-public class OSImageApiLiveTest extends AbstractAzureComputeApiLiveTest {
-
-   private ImmutableSet<String> locations;
-
-   @BeforeClass(groups = {"integration", "live"})
-   @Override
-   public void setup() {
-      super.setup();
-
-      locations = ImmutableSet.copyOf(transform(api.getLocationApi().list(), new Function<Location, String>() {
-
-         @Override
-         public String apply(final Location location) {
-            return location.name();
-         }
-      }));
-   }
-
-   public void testList() {
-      for (OSImage osImage : api().list()) {
-         checkOSImage(osImage);
-      }
-   }
-
-   private void checkOSImage(final OSImage osImage) {
-      assertNotNull(osImage.label(), "Label cannot be null for " + osImage);
-      assertNotNull(osImage.name(), "Name cannot be null for " + osImage);
-      assertNotNull(osImage.os(), "OS cannot be null for " + osImage);
-      assertTrue(osImage.logicalSizeInGB() > 0, "LogicalSizeInGB should be positive, if set" + osImage);
-
-      if (osImage.category() != null) {
-         assertNotEquals("", osImage.category().trim(), "Invalid Category for " + osImage);
-      }
-
-      if (osImage.mediaLink() != null) {
-         assertTrue(ImmutableSet.of("http", "https").contains(osImage.mediaLink().getScheme()),
-                 "MediaLink should be an http(s) url" + osImage);
-      }
-
-      // Ex. Dirty data in RightScale eula field comes out as an empty string.
-      assertFalse(osImage.eula().contains(""));
-      if (osImage.affinityGroup() != null) {
-         assertTrue(locations.contains(osImage.affinityGroup()), "No " + osImage.affinityGroup() + " in " + locations);
-      }
-   }
-
-   private OSImageApi api() {
-      return api.getOSImageApi();
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/OSImageApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/OSImageApiMockTest.java
deleted file mode 100644
index 2483ce4..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/OSImageApiMockTest.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.features;
-
-import static org.testng.Assert.assertEquals;
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.OSImageParams;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListOSImagesHandlerTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-@Test(groups = "unit", testName = "OSImageApiMockTest")
-public class OSImageApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void testList() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/images.xml"));
-
-      try {
-         OSImageApi api = api(server.getUrl("/")).getOSImageApi();
-
-         assertEquals(api.list(), ListOSImagesHandlerTest.expected());
-
-         assertSent(server, "GET", "/services/images");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testAdd() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         OSImageApi api = api(server.getUrl("/")).getOSImageApi();
-
-         OSImageParams params = OSImageParams.builder().name("myimage").label("foo").os(OSImage.Type.LINUX)
-                 .mediaLink(URI.create("http://example.blob.core.windows.net/disks/mydisk.vhd")).build();
-
-         assertEquals(api.add(params), "request-1");
-
-         assertSent(server, "POST", "/services/images", "/imageparams.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testUpdate() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         OSImageApi api = api(server.getUrl("/")).getOSImageApi();
-
-         OSImageParams params = OSImageParams.builder().name("myimage").label("foo").os(OSImage.Type.LINUX)
-                 .mediaLink(URI.create("http://example.blob.core.windows.net/disks/mydisk.vhd")).build();
-
-         assertEquals(api.update(params), "request-1");
-
-         assertSent(server, "PUT", "/services/images/myimage", "/imageparams.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testDelete() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         OSImageApi api = api(server.getUrl("/")).getOSImageApi();
-
-         assertEquals(api.delete("myimage"), "request-1");
-
-         assertSent(server, "DELETE", "/services/images/myimage");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/OperationApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/OperationApiMockTest.java
deleted file mode 100644
index f155f33..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/OperationApiMockTest.java
+++ /dev/null
@@ -1,43 +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.features;
-
-import static org.testng.Assert.assertEquals;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.OperationHandlerTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-@Test(groups = "unit", testName = "OperationApiMockTest")
-public class OperationApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void testGet() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/operation.xml"));
-
-      try {
-         final OperationApi api = api(server.getUrl("/")).getOperationApi();
-         assertEquals(api.get("request-id"), OperationHandlerTest.expected());
-         assertSent(server, "GET", "/operations/request-id");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ReservedIPAddressApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/ReservedIPAddressApiLiveTest.java
deleted file mode 100644
index 79c9bf8..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ReservedIPAddressApiLiveTest.java
+++ /dev/null
@@ -1,92 +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.features;
-
-import static org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest.LOCATION;
-import static org.testng.Assert.assertTrue;
-
-import com.google.common.base.Predicate;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.jclouds.azurecompute.domain.ReservedIPAddress;
-import org.jclouds.azurecompute.domain.ReservedIPAddress.State;
-import org.jclouds.azurecompute.domain.ReservedIPAddressParams;
-import org.jclouds.azurecompute.internal.AbstractAzureComputeApiLiveTest;
-import org.jclouds.util.Predicates2;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "ReservedIPAddressApiLiveTest", singleThreaded = true)
-public class ReservedIPAddressApiLiveTest extends AbstractAzureComputeApiLiveTest {
-
-   private static final String RESERVED_IP_NAME = String.format("%s%d-%s",
-           System.getProperty("user.name"), RAND, ReservedIPAddressApiLiveTest.class.getSimpleName()).toLowerCase();
-
-   @Test
-   public void testCreate() {
-      final String requestId = api().create(
-              ReservedIPAddressParams.builder().name(RESERVED_IP_NAME).location(LOCATION).build());
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-      Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-   }
-
-   @Test(dependsOnMethods = "testCreate")
-   public void testGet() {
-      assertTrue(Predicates2.retry(new Predicate<String>() {
-
-         @Override
-         public boolean apply(final String input) {
-            final ReservedIPAddress res = api().get(input);
-            Assert.assertEquals(res.name(), RESERVED_IP_NAME);
-            Assert.assertNull(res.label());
-            Assert.assertEquals(res.location(), LOCATION);
-            Assert.assertNull(res.serviceName());
-            Assert.assertNull(res.deploymentName());
-            return res.state().equals(State.CREATED);
-         }
-      }, 60, 5, 5).apply(RESERVED_IP_NAME));
-   }
-
-   @Test(dependsOnMethods = "testCreate")
-   public void testList() {
-      final ReservedIPAddress res = api().list().get(0);
-      Assert.assertEquals(res.name(), RESERVED_IP_NAME);
-      Assert.assertNull(res.label());
-      Assert.assertEquals(res.location(), LOCATION);
-      Assert.assertNull(res.serviceName());
-      Assert.assertNull(res.deploymentName());
-   }
-
-   @AfterClass(alwaysRun = true)
-   public void testDelete() {
-      final ReservedIPAddress res = api().get(RESERVED_IP_NAME);
-
-      if (res != null) {
-         final String requestId = api().delete(RESERVED_IP_NAME);
-         assertTrue(operationSucceeded.apply(requestId), requestId);
-         Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-      }
-
-      Assert.assertNull(api().get(RESERVED_IP_NAME));
-   }
-
-   private ReservedIPAddressApi api() {
-      return api.getReservedIPAddressApi();
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ReservedIPAddressApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/ReservedIPAddressApiMockTest.java
deleted file mode 100644
index 8e598dd..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ReservedIPAddressApiMockTest.java
+++ /dev/null
@@ -1,131 +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.features;
-
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import org.jclouds.azurecompute.domain.ReservedIPAddressParams;
-import org.jclouds.azurecompute.xml.ListReservedIPAddressHandlerTest;
-import org.jclouds.azurecompute.xml.ReservedIPAddressHandlerTest;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-
-@Test(groups = "unit", testName = "ReservedIPAddressApiMockTest")
-public class ReservedIPAddressApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void listWhenFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/listreservedipaddress.xml"));
-
-      try {
-         final ReservedIPAddressApi api = api(server.getUrl("/")).getReservedIPAddressApi();
-         assertEquals(api.list(), ListReservedIPAddressHandlerTest.expected());
-         assertSent(server, "GET", "/services/networking/reservedips");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void listWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final ReservedIPAddressApi api = api(server.getUrl("/")).getReservedIPAddressApi();
-         assertTrue(api.list().isEmpty());
-         assertSent(server, "GET", "/services/networking/reservedips");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getWhenFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/reservedipaddress.xml"));
-
-      try {
-         final ReservedIPAddressApi api = api(server.getUrl("/")).getReservedIPAddressApi();
-         assertEquals(api.get("myreservedip"), ReservedIPAddressHandlerTest.expected());
-         assertSent(server, "GET", "/services/networking/reservedips/myreservedip");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final ReservedIPAddressApi api = api(server.getUrl("/")).getReservedIPAddressApi();
-         assertNull(api.get("myreservedip"));
-         assertSent(server, "GET", "/services/networking/reservedips/myreservedip");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void deleteWhenFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final ReservedIPAddressApi api = api(server.getUrl("/")).getReservedIPAddressApi();
-         assertEquals(api.delete("myreservedip"), "request-1");
-         assertSent(server, "DELETE", "/services/networking/reservedips/myreservedip");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void deleteWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final ReservedIPAddressApi api = api(server.getUrl("/")).getReservedIPAddressApi();
-         assertNull(api.delete("myreservedip"));
-         assertSent(server, "DELETE", "/services/networking/reservedips/myreservedip");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void create() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final ReservedIPAddressApi api = api(server.getUrl("/")).getReservedIPAddressApi();
-
-         final ReservedIPAddressParams params = ReservedIPAddressParams.builder().
-                 name("myreservedip").
-                 label("myreservedip label").
-                 location("West Europe").build();
-
-         assertEquals(api.create(params), "request-1");
-         assertSent(server, "POST", "/services/networking/reservedips", "/reservedipaddressparams.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ServiceCertificatesApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/ServiceCertificatesApiLiveTest.java
deleted file mode 100644
index e7aa14c..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ServiceCertificatesApiLiveTest.java
+++ /dev/null
@@ -1,117 +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.features;
-
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.jclouds.azurecompute.domain.ServiceCertificate;
-import org.jclouds.azurecompute.domain.ServiceCertificateParams;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import static org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest.LOCATION;
-import org.testng.Assert;
-import static org.testng.Assert.assertTrue;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "ServiceCertificatesApiLivTest", singleThreaded = true)
-public class ServiceCertificatesApiLiveTest extends BaseAzureComputeApiLiveTest {
-
-   private static final String CLOUD_SERVICE = String.format("%s%d-%s",
-           System.getProperty("user.name"), RAND, ServiceCertificatesApiLiveTest.class.getSimpleName()).toLowerCase();
-
-   private static final String FORMAT = "pfx";
-   private static final String PASSWORD = "password";
-
-   private static final String THUMBPRINT = "8D6ED1395205C57D23E518672903FDAF144EE8AE";
-   private static final String THUMBPRINT_ALGO = "sha1";
-   private static final String DATA
-           = "MIIDyzCCArOgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQ"
-           + "HDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJKoZIh"
-           + "vcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MzQwWhcNMTYwMzAzMTQ1MzQwWjBVMQswCQYDVQQGEwJ"
-           + "JVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQswCQYDVQQLDAJBTTEWMBQGA1UEAwwNYW0udGlyY"
-           + "XNhLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMzqTZFbzahmEqp60txg8aUYw4Y7PL44A7rzHVn"
-           + "b5cb01/4VVjNeijmROOL8o5ZEbkNkQly43zjoZcrkw4bpvOz95OP8/NH/ZgyYKR42VqcTlxcj/22iq2Ie1XhWsKARm"
-           + "ObdnNUcFCsdqXWXBo0bLF+WuUYh4ZoMxFMlP7YYl7WOCCgekE8E9sL02RuLZgq7v2M6fsxhT5rEG81jzUlmY5c/jXZ"
-           + "KbUIBaltKtzC3DnBpuk9u+S87WseqTeuhUzF6VvgwmiQ+zeHdr5Hjqxrvmq445DPz+2U3PYN1vFoB/6QzjtZVakSfO"
-           + "SZ0YAtFhZFHmR11kJTNMfVQ5k5oIQPtHksCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblN"
-           + "TTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOIYM6WyNdc4odsThFVtOefT/xg1MB8GA1UdIwQYMBaAF"
-           + "DqheOl4dpXYelhPC/bM+VdN1AXpMA0GCSqGSIb3DQEBCwUAA4IBAQB33qLYghIYa2j1ycHBpeZVadsb8xb4AnfnAW9"
-           + "g5dYfZP1eIvmKzOxN3CjpuCRKNI4vyKHiLbucfFDl5zi9BdYwwdduPbYTgE8F8Ilyit3irSRJFk1wHICX0sBPq5ulz"
-           + "39MPZsP2Fmzbrphr9BrRZOc1RJdHnj8C7phrfBneGSfwoY+qH5H6/h5A5rS8oDAraeklR2RJK4ztK+yDvp8orRDJQq"
-           + "5LAALQtWDhdW8Qj7WoIbGUeB77aJLluLOgriJLK+kKaGoUuAaKFRJXPyTmtUC17CJUJbapmtDwivILhU/dSdz6+1YX"
-           + "Tg0ddNNlug3I6L5VVRnlwJJc/hIna1VjQJO";
-
-   @BeforeClass
-   @Override
-   public void setup() {
-      super.setup();
-      final String requestId
-              = api.getCloudServiceApi().createWithLabelInLocation(CLOUD_SERVICE, CLOUD_SERVICE, LOCATION);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-      Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-   }
-
-   @Test
-   public void testAdd() {
-
-      final String requestId = api().add(CLOUD_SERVICE,
-              ServiceCertificateParams.builder().data(DATA).format(FORMAT).password(PASSWORD).build());
-
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-      Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-   }
-
-   @Test(dependsOnMethods = "testAdd")
-   public void testList() {
-      final List<ServiceCertificate> res = api().list(CLOUD_SERVICE);
-      Assert.assertEquals(res.size(), 1);
-      Assert.assertEquals(res.get(0).data(), DATA);
-      Assert.assertEquals(res.get(0).thumbprintAlgorithm(), THUMBPRINT_ALGO);
-      Assert.assertEquals(res.get(0).thumbprint(), THUMBPRINT);
-   }
-
-   @Test(dependsOnMethods = "testList")
-   public void testGet() {
-      Assert.assertNotNull(api().get(CLOUD_SERVICE, THUMBPRINT_ALGO, THUMBPRINT));
-   }
-
-   @Test(dependsOnMethods = "testGet")
-   public void testDelete() {
-      final String requestId = api().delete(CLOUD_SERVICE, THUMBPRINT_ALGO, THUMBPRINT);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-      Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-
-      Assert.assertNull(api().get(CLOUD_SERVICE, THUMBPRINT_ALGO, THUMBPRINT));
-   }
-
-   @Override
-   @AfterClass(alwaysRun = true)
-   protected void tearDown() {
-      final String requestId = api.getCloudServiceApi().delete(CLOUD_SERVICE);
-      if (requestId != null) {
-         operationSucceeded.apply(requestId);
-      }
-
-      super.tearDown();
-   }
-
-   private ServiceCertificatesApi api() {
-      return api.getServiceCertificatesApi();
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ServiceCertificatesApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/ServiceCertificatesApiMockTest.java
deleted file mode 100644
index 29d5177..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ServiceCertificatesApiMockTest.java
+++ /dev/null
@@ -1,151 +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.features;
-
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import org.jclouds.azurecompute.domain.ServiceCertificateParams;
-import org.jclouds.azurecompute.xml.ListServiceCertificatessHandlerTest;
-import org.jclouds.azurecompute.xml.ServiceCertificateHandlerTest;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-
-@Test(groups = "unit", testName = "ServiceCertificatesApiMockTest")
-public class ServiceCertificatesApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void listWhenFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/servicecertificates.xml"));
-
-      try {
-         final ServiceCertificatesApi api = api(server.getUrl("/")).getServiceCertificatesApi();
-         assertEquals(api.list("myservice"), ListServiceCertificatessHandlerTest.expected());
-         assertSent(server, "GET", "/services/hostedservices/myservice/certificates");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void listWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final ServiceCertificatesApi api = api(server.getUrl("/")).getServiceCertificatesApi();
-         assertTrue(api.list("myservice").isEmpty());
-         assertSent(server, "GET", "/services/hostedservices/myservice/certificates");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getWhenFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/servicecertificate.xml"));
-
-      try {
-         final ServiceCertificatesApi api = api(server.getUrl("/")).getServiceCertificatesApi();
-         assertEquals(api.get("myservice", "sha1", "8D6ED1395205C57D23E518672903FDAF144EE8AE"),
-                 ServiceCertificateHandlerTest.expected());
-         assertSent(server, "GET",
-                 "/services/hostedservices/myservice/certificates/sha1-8D6ED1395205C57D23E518672903FDAF144EE8AE");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final ServiceCertificatesApi api = api(server.getUrl("/")).getServiceCertificatesApi();
-         assertNull(api.get("myservice", "sha1", "8D6ED1395205C57D23E518672903FDAF144EE8AE"));
-         assertSent(server, "GET",
-                 "/services/hostedservices/myservice/certificates/sha1-8D6ED1395205C57D23E518672903FDAF144EE8AE");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void deleteWhenFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final ServiceCertificatesApi api = api(server.getUrl("/")).getServiceCertificatesApi();
-         assertEquals(api.delete("myservice", "sha1", "8D6ED1395205C57D23E518672903FDAF144EE8AE"), "request-1");
-         assertSent(server, "DELETE",
-                 "/services/hostedservices/myservice/certificates/sha1-8D6ED1395205C57D23E518672903FDAF144EE8AE");
-
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void deleteWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final ServiceCertificatesApi api = api(server.getUrl("/")).getServiceCertificatesApi();
-         assertNull(api.delete("myservice", "sha1", "8D6ED1395205C57D23E518672903FDAF144EE8AE"));
-         assertSent(server, "DELETE",
-                 "/services/hostedservices/myservice/certificates/sha1-8D6ED1395205C57D23E518672903FDAF144EE8AE");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void add() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final ServiceCertificatesApi api = api(server.getUrl("/")).getServiceCertificatesApi();
-
-         final ServiceCertificateParams params = ServiceCertificateParams.builder().
-                 data("MIIDyzCCArOgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQ"
-                         + "HDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJKoZIh"
-                         + "vcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MzQwWhcNMTYwMzAzMTQ1MzQwWjBVMQswCQYDVQQGEwJ"
-                         + "JVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQswCQYDVQQLDAJBTTEWMBQGA1UEAwwNYW0udGlyY"
-                         + "XNhLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMzqTZFbzahmEqp60txg8aUYw4Y7PL44A7rzHVn"
-                         + "b5cb01/4VVjNeijmROOL8o5ZEbkNkQly43zjoZcrkw4bpvOz95OP8/NH/ZgyYKR42VqcTlxcj/22iq2Ie1XhWsKARm"
-                         + "ObdnNUcFCsdqXWXBo0bLF+WuUYh4ZoMxFMlP7YYl7WOCCgekE8E9sL02RuLZgq7v2M6fsxhT5rEG81jzUlmY5c/jXZ"
-                         + "KbUIBaltKtzC3DnBpuk9u+S87WseqTeuhUzF6VvgwmiQ+zeHdr5Hjqxrvmq445DPz+2U3PYN1vFoB/6QzjtZVakSfO"
-                         + "SZ0YAtFhZFHmR11kJTNMfVQ5k5oIQPtHksCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblN"
-                         + "TTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOIYM6WyNdc4odsThFVtOefT/xg1MB8GA1UdIwQYMBaAF"
-                         + "DqheOl4dpXYelhPC/bM+VdN1AXpMA0GCSqGSIb3DQEBCwUAA4IBAQB33qLYghIYa2j1ycHBpeZVadsb8xb4AnfnAW9"
-                         + "g5dYfZP1eIvmKzOxN3CjpuCRKNI4vyKHiLbucfFDl5zi9BdYwwdduPbYTgE8F8Ilyit3irSRJFk1wHICX0sBPq5ulz"
-                         + "39MPZsP2Fmzbrphr9BrRZOc1RJdHnj8C7phrfBneGSfwoY+qH5H6/h5A5rS8oDAraeklR2RJK4ztK+yDvp8orRDJQq"
-                         + "5LAALQtWDhdW8Qj7WoIbGUeB77aJLluLOgriJLK+kKaGoUuAaKFRJXPyTmtUC17CJUJbapmtDwivILhU/dSdz6+1YX"
-                         + "Tg0ddNNlug3I6L5VVRnlwJJc/hIna1VjQJO").
-                 format("pfx").
-                 password("password").build();
-
-         assertEquals(api.add("myservice", params), "request-1");
-         assertSent(server, "POST", "/services/hostedservices/myservice/certificates", "/servicecertificateparams.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/StorageAccountApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/StorageAccountApiLiveTest.java
deleted file mode 100644
index 536be67..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/StorageAccountApiLiveTest.java
+++ /dev/null
@@ -1,118 +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.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import com.google.common.collect.ImmutableMap;
-import org.jclouds.azurecompute.domain.CreateStorageServiceParams;
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.azurecompute.domain.StorageServiceKeys;
-import org.jclouds.azurecompute.domain.UpdateStorageServiceParams;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "StorageAccountApiLiveTest")
-public class StorageAccountApiLiveTest extends BaseAzureComputeApiLiveTest {
-
-   private static final String NAME = String.format("%3.24s",
-           RAND + StorageAccountApiLiveTest.class.getSimpleName().toLowerCase());
-
-   private void check(final StorageService storage) {
-      assertNotNull(storage.url());
-      assertNotNull(storage.serviceName());
-      assertNotNull(storage.storageServiceProperties());
-      assertNotNull(storage.storageServiceProperties().accountType());
-      assertFalse(storage.storageServiceProperties().endpoints().isEmpty());
-      assertNotNull(storage.storageServiceProperties().creationTime());
-   }
-
-   public void testList() {
-      for (StorageService storage : api().list()) {
-         check(storage);
-      }
-   }
-
-   public void testIsAvailable() {
-      assertTrue(api().isAvailable(NAME).result());
-   }
-
-   @Test(dependsOnMethods = "testIsAvailable")
-   public void testCreate() {
-      final CreateStorageServiceParams params = CreateStorageServiceParams.builder().
-              serviceName(NAME).
-              description("description").
-              label("label").
-              location(LOCATION).
-              extendedProperties(ImmutableMap.of("property_name", "property_value")).
-              accountType(StorageService.AccountType.Standard_ZRS).
-              build();
-      final String requestId = api().create(params);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-   }
-
-   @Test(dependsOnMethods = "testCreate")
-   public void testGet() {
-      final StorageService service = api().get(NAME);
-      assertNotNull(service);
-      assertEquals(service.serviceName(), NAME);
-      assertEquals(service.storageServiceProperties().description(), "description");
-      assertEquals(service.storageServiceProperties().location(), LOCATION);
-      assertEquals(service.storageServiceProperties().label(), "label");
-      assertEquals(service.storageServiceProperties().accountType(), StorageService.AccountType.Standard_ZRS);
-      assertTrue(service.extendedProperties().containsKey("property_name"));
-      assertEquals(service.extendedProperties().get("property_name"), "property_value");
-   }
-
-   @Test(dependsOnMethods = "testCreate")
-   public void testGetKeys() {
-      final StorageServiceKeys keys = api().getKeys(NAME);
-      assertNotNull(keys);
-      assertNotNull(keys.url());
-      assertNotNull(keys.primary());
-      assertNotNull(keys.secondary());
-   }
-
-   @Test(dependsOnMethods = "testCreate")
-   public void testRegenerateKeys() {
-      final String requestId = api().regenerateKeys(NAME, StorageServiceKeys.KeyType.Primary);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-   }
-
-   @Test(dependsOnMethods = "testCreate")
-   public void testUpdate() {
-      final UpdateStorageServiceParams params = UpdateStorageServiceParams.builder().
-              extendedProperties(ImmutableMap.of("another_property_name", "another_property_value")).
-              build();
-      final String requestId = api().update(NAME, params);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-   }
-
-   @AfterClass(alwaysRun = true)
-   public void testDelete() {
-      final String requestId = api().delete(NAME);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-   }
-
-   private StorageAccountApi api() {
-      return api.getStorageAccountApi();
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/StorageAccountApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/StorageAccountApiMockTest.java
deleted file mode 100644
index 05e84ce..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/StorageAccountApiMockTest.java
+++ /dev/null
@@ -1,228 +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.features;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import java.net.URL;
-import org.jclouds.azurecompute.domain.Availability;
-import org.jclouds.azurecompute.domain.CreateStorageServiceParams;
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.azurecompute.domain.StorageServiceKeys;
-import org.jclouds.azurecompute.domain.UpdateStorageServiceParams;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListStorageServiceHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "StorageAccountApiMockTest")
-public class StorageAccountApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void testList() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/storageservices.xml"));
-
-      try {
-         final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
-         assertEquals(api.list(), ListStorageServiceHandlerTest.expected());
-
-         assertSent(server, "GET", "/services/storageservices");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testEmptyList() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
-         assertTrue(api.list().isEmpty());
-
-         assertSent(server, "GET", "/services/storageservices");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testCreate() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
-         final CreateStorageServiceParams params = CreateStorageServiceParams.builder().
-                 serviceName("name-of-storage-account").
-                 description("description-of-storage-account").
-                 label("base64-encoded-label").
-                 location("location-of-storage-account").
-                 extendedProperties(ImmutableMap.of("property_name", "property_value")).
-                 accountType(StorageService.AccountType.Premium_LRS).
-                 build();
-
-         assertEquals(api.create(params), "request-1");
-
-         assertSent(server, "POST", "/services/storageservices", "/createstorageserviceparams.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testIsAvailable() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/isavailablestorageservice.xml"));
-
-      try {
-         final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
-         assertEquals(api.isAvailable("serviceName"),
-                 Availability.create(false, "The storage account named 'serviceName' is already taken."));
-
-         assertSent(server, "GET", "/services/storageservices/operations/isavailable/serviceName");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testGet() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/storageservices.xml"));
-
-      try {
-         final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
-         assertEquals(api.get("serviceName"), ListStorageServiceHandlerTest.expected().get(0));
-
-         assertSent(server, "GET", "/services/storageservices/serviceName");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testNullGet() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
-         assertNull(api.get("serviceName"));
-
-         assertSent(server, "GET", "/services/storageservices/serviceName");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testGetKeys() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/storageaccountkeys.xml"));
-
-      try {
-         final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
-         assertEquals(api.getKeys("serviceName"), StorageServiceKeys.create(
-                 new URL("https://management.core.windows.net/subscriptionid/services/storageservices/serviceName"),
-                 "bndO7lydwDkMo4Y0mFvmfLyi2f9aZY7bwfAVWoJWv4mOVK6E9c/exLnFsSm/NMWgifLCfxC/c6QBTbdEvWUA7w==",
-                 "/jMLLT3kKqY4K+cUtJTbh7pCBdvG9EMKJxUvaJJAf6W6aUiZe1A1ulXHcibrqRVA2RJE0oUeXQGXLYJ2l85L7A=="));
-
-         assertSent(server, "GET", "/services/storageservices/serviceName/keys");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testNullGetKeys() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
-         assertNull(api.getKeys("serviceName"));
-
-         assertSent(server, "GET", "/services/storageservices/serviceName/keys");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testRegenerateKeys() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
-         assertEquals(api.regenerateKeys("serviceName", StorageServiceKeys.KeyType.Primary), "request-1");
-
-         assertSent(server, "POST", "/services/storageservices/serviceName/keys?action=regenerate",
-                 "/storageaccountregeneratekeys.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testUpdate() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
-         final UpdateStorageServiceParams params = UpdateStorageServiceParams.builder().
-                 description("description-of-storage-account").
-                 label("base64-encoded-label").
-                 extendedProperties(ImmutableMap.of("property_name", "property_value")).
-                 customDomains(ImmutableList.of(
-                                 UpdateStorageServiceParams.CustomDomain.create("name-of-custom-domain", false))).
-                 accountType(UpdateStorageServiceParams.AccountType.Standard_GRS).
-                 build();
-
-         assertEquals(api.update("serviceName", params), "request-1");
-
-         assertSent(server, "PUT", "/services/storageservices/serviceName", "/updatestorageserviceparams.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testDelete() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
-         assertEquals(api.delete("serviceName"), "request-1");
-
-         assertSent(server, "DELETE", "/services/storageservices/serviceName");
-      } finally {
-         server.shutdown();
-      }
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/SubscriptionApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/SubscriptionApiLiveTest.java
deleted file mode 100644
index 7ae63f8..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/SubscriptionApiLiveTest.java
+++ /dev/null
@@ -1,44 +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.features;
-
-import static org.testng.Assert.assertNotNull;
-
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.internal.AbstractAzureComputeApiLiveTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "SubscriptionApiLiveTest")
-public class SubscriptionApiLiveTest extends AbstractAzureComputeApiLiveTest {
-
-   @Test
-   public void testList() {
-      for (RoleSize roleSize : api().listRoleSizes()) {
-         checkLocation(roleSize);
-      }
-   }
-
-   private void checkLocation(final RoleSize roleSize) {
-      assertNotNull(roleSize.name(), "Name cannot be null for a Location.");
-      assertNotNull(roleSize.label(), "Label cannot be null for: " + roleSize);
-      assertNotNull(roleSize.cores(), "Cores cannot be null for: " + roleSize.name());
-   }
-
-   private SubscriptionApi api() {
-      return api.getSubscriptionApi();
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/SubscriptionApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/SubscriptionApiMockTest.java
deleted file mode 100644
index b74a243..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/SubscriptionApiMockTest.java
+++ /dev/null
@@ -1,60 +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.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListRoleSizesHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "SubscriptionApiMockTest")
-public class SubscriptionApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void testList() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/rolesizes.xml"));
-
-      try {
-         final SubscriptionApi api = api(server.getUrl("/")).getSubscriptionApi();
-
-         assertEquals(api.listRoleSizes(), ListRoleSizesHandlerTest.expected());
-
-         assertSent(server, "GET", "/rolesizes");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testEmptyList() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final SubscriptionApi api = api(server.getUrl("/")).getSubscriptionApi();
-
-         assertTrue(api.listRoleSizes().isEmpty());
-
-         assertSent(server, "GET", "/rolesizes");
-      } finally {
-         server.shutdown();
-      }
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/TrafficManagerApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/TrafficManagerApiLiveTest.java
deleted file mode 100644
index de8275c..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/TrafficManagerApiLiveTest.java
+++ /dev/null
@@ -1,181 +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.features;
-
-import com.google.common.collect.ImmutableList;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.jclouds.azurecompute.domain.CreateProfileParams;
-import org.jclouds.azurecompute.domain.Profile;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpoint;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpointParams;
-import org.jclouds.azurecompute.domain.ProfileDefinitionParams;
-import org.jclouds.azurecompute.domain.UpdateProfileParams;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import static org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest.LOCATION;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.testng.Assert;
-import static org.testng.Assert.assertTrue;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "ServiceCertificatesApiLivTest", singleThreaded = true)
-public class TrafficManagerApiLiveTest extends BaseAzureComputeApiLiveTest {
-
-   private static final String CLOUD1 = String.format("%s%d-%s1",
-           System.getProperty("user.name"), RAND, TrafficManagerApiLiveTest.class.getSimpleName()).toLowerCase();
-
-   private static final String CLOUD2 = String.format("%s%d-%s2",
-           System.getProperty("user.name"), RAND, TrafficManagerApiLiveTest.class.getSimpleName()).toLowerCase();
-
-   @BeforeClass
-   @Override
-   public void setup() {
-      super.setup();
-      String requestId = api.getCloudServiceApi().createWithLabelInLocation(CLOUD1, CLOUD1, LOCATION);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-      Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-
-      requestId = api.getCloudServiceApi().createWithLabelInLocation(CLOUD2, CLOUD2, LOCATION);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-      Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-   }
-
-   @Test
-   public void createProfile() throws Exception {
-      final CreateProfileParams params = CreateProfileParams.builder().
-              domain(String.format("%s.trafficmanager.net", CLOUD1)).name(CLOUD1).build();
-
-      final String requestId = api().createProfile(params);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-      Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-   }
-
-   @Test(dependsOnMethods = "createProfile")
-   public void createDefinition() throws Exception {
-      final ImmutableList.Builder<ProfileDefinitionEndpointParams> endpoints
-              = ImmutableList.<ProfileDefinitionEndpointParams>builder();
-
-      endpoints.add(ProfileDefinitionEndpointParams.builder()
-              .domain(String.format("%s.cloudapp.net", CLOUD1))
-              .status(ProfileDefinition.Status.ENABLED)
-              .type(ProfileDefinitionEndpoint.Type.CLOUDSERVICE)
-              .weight(1).build());
-
-      endpoints.add(ProfileDefinitionEndpointParams.builder()
-              .domain(String.format("%s.cloudapp.net", CLOUD2))
-              .status(ProfileDefinition.Status.ENABLED)
-              .type(ProfileDefinitionEndpoint.Type.CLOUDSERVICE)
-              .weight(1).build());
-
-      final ProfileDefinitionParams params = ProfileDefinitionParams.builder()
-              .ttl(300)
-              .lb(ProfileDefinition.LBMethod.ROUNDROBIN)
-              .path("/")
-              .port(80)
-              .protocol(ProfileDefinition.Protocol.HTTP)
-              .endpoints(endpoints.build())
-              .build();
-
-      final String requestId = api().createDefinition(CLOUD1, params);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-      Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-   }
-
-   @Test(dependsOnMethods = "createDefinition")
-   public void updateProfile() throws Exception {
-      final UpdateProfileParams params = UpdateProfileParams.builder().
-              status(ProfileDefinition.Status.DISABLED).build();
-
-      final String requestId = api().updateProfile(CLOUD1, params);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-      Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-   }
-
-   @Test(dependsOnMethods = "createDefinition")
-   public void listDefinitions() throws Exception {
-      final List<ProfileDefinition> defs = api().listDefinitions(CLOUD1);
-      Assert.assertEquals(defs.size(), 1);
-      Assert.assertEquals(defs.get(0).endpoints().size(), 2);
-      Assert.assertEquals(defs.get(0).monitors().size(), 1);
-      Assert.assertEquals(defs.get(0).lb(), ProfileDefinition.LBMethod.ROUNDROBIN);
-      Assert.assertEquals(defs.get(0).ttl(), 300, 0);
-      Assert.assertEquals(defs.get(0).status(), ProfileDefinition.Status.ENABLED);
-      Assert.assertEquals(defs.get(0).monitors().get(0).port(), 80, 0);
-      Assert.assertEquals(defs.get(0).monitors().get(0).path(), "/");
-      Assert.assertEquals(defs.get(0).endpoints().get(0).type(), ProfileDefinitionEndpoint.Type.CLOUDSERVICE);
-      Assert.assertNull(defs.get(0).endpoints().get(0).location());
-   }
-
-   @Test(dependsOnMethods = "createDefinition")
-   public void getDefinitions() throws Exception {
-      final ProfileDefinition def = api().getDefinition(CLOUD1);
-      Assert.assertEquals(def.endpoints().size(), 2);
-      Assert.assertEquals(def.monitors().size(), 1);
-      Assert.assertEquals(def.lb(), ProfileDefinition.LBMethod.ROUNDROBIN);
-      Assert.assertEquals(def.ttl(), 300, 0);
-      Assert.assertEquals(def.status(), ProfileDefinition.Status.ENABLED);
-      Assert.assertEquals(def.monitors().get(0).port(), 80, 0);
-      Assert.assertEquals(def.monitors().get(0).path(), "/");
-      Assert.assertEquals(def.endpoints().get(0).type(), ProfileDefinitionEndpoint.Type.CLOUDSERVICE);
-      Assert.assertNull(def.endpoints().get(0).location());
-   }
-
-   @Test(dependsOnMethods = "createDefinition")
-   public void listProfile() throws Exception {
-      final List<Profile> profs = api().listProfiles();
-      Assert.assertFalse(profs.isEmpty());
-
-      final Profile prof = api().getProfile(CLOUD1);
-      Assert.assertEquals(prof.domain(), String.format("%s.trafficmanager.net", CLOUD1));
-      Assert.assertEquals(prof.name(), CLOUD1);
-      Assert.assertEquals(prof.status(), ProfileDefinition.Status.ENABLED);
-      Assert.assertEquals(prof.version(), "1");
-      Assert.assertFalse(prof.definitions().isEmpty());
-   }
-
-   @Override
-   @AfterClass(alwaysRun = true)
-   protected void tearDown() {
-      final String requestId = api().delete(CLOUD1);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-      Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-
-      assertTrue(new ConflictManagementPredicate(api) {
-         @Override
-         protected String operation() {
-            return api.getCloudServiceApi().delete(CLOUD1);
-         }
-      }.apply(CLOUD1));
-
-      assertTrue(new ConflictManagementPredicate(api) {
-         @Override
-         protected String operation() {
-            return api.getCloudServiceApi().delete(CLOUD2);
-         }
-      }.apply(CLOUD2));
-
-      super.tearDown();
-   }
-
-   private TrafficManagerApi api() {
-      return api.getTrafficManaerApi();
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/TrafficManagerApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/TrafficManagerApiMockTest.java
deleted file mode 100644
index e94a339..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/TrafficManagerApiMockTest.java
+++ /dev/null
@@ -1,258 +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.features;
-
-import com.google.common.collect.ImmutableList;
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import org.jclouds.azurecompute.domain.CreateProfileParams;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpoint;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpointParams;
-import org.jclouds.azurecompute.domain.ProfileDefinitionParams;
-import org.jclouds.azurecompute.domain.UpdateProfileParams;
-import org.jclouds.azurecompute.xml.ListProfileDefinitionsHandlerTest;
-import org.jclouds.azurecompute.xml.ListProfilesHandlerTest;
-import org.jclouds.azurecompute.xml.ProfileDefinitionHandlerTest;
-import org.jclouds.azurecompute.xml.ProfileHandlerTest;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-
-@Test(groups = "unit", testName = "TrafficManagerApiMockTest")
-public class TrafficManagerApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void listDefWhenFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/listprofiledefinitions.xml"));
-
-      try {
-         final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-         assertEquals(api.listDefinitions("myprofile"), ListProfileDefinitionsHandlerTest.expected());
-         assertSent(server, "GET", "/services/WATM/profiles/myprofile/definitions");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void listDefWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-         assertTrue(api.listDefinitions("myprofile").isEmpty());
-         assertSent(server, "GET", "/services/WATM/profiles/myprofile/definitions");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getDefWhenFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/profiledefinition.xml"));
-
-      try {
-         final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-         assertEquals(api.getDefinition("myprofile"), ProfileDefinitionHandlerTest.expected());
-         assertSent(server, "GET", "/services/WATM/profiles/myprofile/definitions/1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getDefWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-         assertNull(api.getDefinition("myprofile"));
-         assertSent(server, "GET", "/services/WATM/profiles/myprofile/definitions/1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void listProfWhenFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/listprofiles.xml"));
-
-      try {
-         final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-         assertEquals(api.listProfiles(), ListProfilesHandlerTest.expected());
-         assertSent(server, "GET", "/services/WATM/profiles");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void listProfWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-         assertTrue(api.listProfiles().isEmpty());
-         assertSent(server, "GET", "/services/WATM/profiles");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getProfWhenFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/profile.xml"));
-
-      try {
-         final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-         assertEquals(api.getProfile("myprofile"), ProfileHandlerTest.expected());
-         assertSent(server, "GET", "/services/WATM/profiles/myprofile");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void getProfWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-         assertNull(api.getProfile("myprofile"));
-         assertSent(server, "GET", "/services/WATM/profiles/myprofile");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void checkDNSPrefixAvailability() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/checkdnsprefixavailability.xml"));
-
-      try {
-         final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-         assertTrue(api.checkDNSPrefixAvailability("jclouds.trafficmanager.net"));
-         assertSent(server, "GET", "/services/WATM/operations/isavailable/jclouds.trafficmanager.net");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void deleteWhenFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-         assertEquals(api.delete("myprofile"), "request-1");
-         assertSent(server, "DELETE", "/services/WATM/profiles/myprofile");
-
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void deleteWhenNotFound() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(new MockResponse().setResponseCode(404));
-
-      try {
-         final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-         assertNull(api.delete("myprofile"));
-         assertSent(server, "DELETE", "/services/WATM/profiles/myprofile");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void createProfile() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-
-         final CreateProfileParams params = CreateProfileParams.builder()
-                 .domain("jclouds.trafficmanager.net").name("jclouds").build();
-
-         assertEquals(api.createProfile(params), "request-1");
-         assertSent(server, "POST", "/services/WATM/profiles", "/createprofileparams.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void updateProfile() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-
-         final UpdateProfileParams params = UpdateProfileParams.builder()
-                 .status(ProfileDefinition.Status.ENABLED).build();
-
-         assertEquals(api.updateProfile("myprofile", params), "request-1");
-         assertSent(server, "PUT", "/services/WATM/profiles/myprofile", "/updateprofileparams.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void createDefinition() throws Exception {
-      final MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-
-         final ImmutableList.Builder<ProfileDefinitionEndpointParams> endpoints
-                 = ImmutableList.<ProfileDefinitionEndpointParams>builder();
-
-         endpoints.add(ProfileDefinitionEndpointParams.builder()
-                 .domain("jclouds1.cloudapp.net")
-                 .status(ProfileDefinition.Status.ENABLED)
-                 .type(ProfileDefinitionEndpoint.Type.CLOUDSERVICE)
-                 .weight(1).build());
-
-         endpoints.add(ProfileDefinitionEndpointParams.builder()
-                 .domain("jclouds2.cloudapp.net")
-                 .status(ProfileDefinition.Status.ENABLED)
-                 .type(ProfileDefinitionEndpoint.Type.CLOUDSERVICE)
-                 .weight(1).build());
-
-         final ProfileDefinitionParams params = ProfileDefinitionParams.builder()
-                 .ttl(300)
-                 .lb(ProfileDefinition.LBMethod.ROUNDROBIN)
-                 .path("/")
-                 .port(80)
-                 .protocol(ProfileDefinition.Protocol.HTTP)
-                 .endpoints(endpoints.build())
-                 .build();
-
-         assertEquals(api.createDefinition("myprofile", params), "request-1");
-         assertSent(server, "POST", "/services/WATM/profiles/myprofile/definitions", "/profiledefinitioncsparams.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VMImageApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/VMImageApiLiveTest.java
deleted file mode 100644
index b9afed0..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VMImageApiLiveTest.java
+++ /dev/null
@@ -1,218 +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.features;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.jclouds.azurecompute.domain.Deployment.InstanceStatus.READY_ROLE;
-import static org.jclouds.util.Predicates2.retry;
-import static org.testng.Assert.assertNotEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-import java.net.URI;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-
-import org.jclouds.azurecompute.compute.AzureComputeServiceAdapter;
-import org.jclouds.azurecompute.domain.CaptureVMImageParams;
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.domain.VMImage;
-import org.jclouds.azurecompute.domain.VMImageParams;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-
-@Test(groups = "live", testName = "VMImageApiLiveTest")
-public class VMImageApiLiveTest extends BaseAzureComputeApiLiveTest {
-
-    private static final String CLOUD_SERVICE = String.format("%s%d-%s",
-            System.getProperty("user.name"), RAND, VMImageApiLiveTest.class.getSimpleName()).toLowerCase();
-
-    private static final String DEPLOYMENT = String.format("%s%d-%s",
-            System.getProperty("user.name"), RAND, VMImageApiLiveTest.class.getSimpleName()).toLowerCase();
-
-    private static final String CAPTURED_IMAGE_NAME = "captured-image";
-
-    private static final String CREATE_IMAGE_NAME = "create-image";
-
-    private String roleName;
-
-    private String diskName;
-
-    private Predicate<String> roleInstanceReady;
-
-    private CloudService cloudService;
-
-    @BeforeClass(groups = {"integration", "live"})
-    @Override
-    public void setup() {
-        super.setup();
-        cloudService = getOrCreateCloudService(CLOUD_SERVICE, LOCATION);
-
-        roleInstanceReady = retry(new Predicate<String>() {
-
-            @Override
-            public boolean apply(String input) {
-                Deployment.RoleInstance roleInstance = getFirstRoleInstanceInDeployment(input);
-                return roleInstance != null && roleInstance.instanceStatus() == READY_ROLE;
-            }
-        }, 600, 5, 5, SECONDS);
-
-        final DeploymentParams params = DeploymentParams.builder()
-                .name(DEPLOYMENT)
-                .os(OSImage.Type.LINUX)
-                .sourceImageName(BaseAzureComputeApiLiveTest.IMAGE_NAME)
-                .mediaLink(AzureComputeServiceAdapter.createMediaLink(storageService.serviceName(), DEPLOYMENT))
-                .username("test")
-                .password("supersecurePassword1!")
-                .size(RoleSize.Type.BASIC_A2)
-                .externalEndpoints(ImmutableSet.of(DeploymentParams.ExternalEndpoint.inboundTcpToLocalPort(22, 22)))
-                .build();
-        Deployment deployment = getOrCreateDeployment(cloudService.name(), params);
-        Deployment.RoleInstance roleInstance = getFirstRoleInstanceInDeployment(DEPLOYMENT);
-        assertTrue(roleInstanceReady.apply(DEPLOYMENT), roleInstance.toString());
-        roleName = roleInstance.roleName();
-        diskName = deployment.roleList().get(0).osVirtualHardDisk().diskName();
-    }
-
-    @Test(dependsOnMethods = "testCaptureVMImage")
-    public void testCreate() {
-        Date date = new Date();
-        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
-        VMImage image = api().list().get(5);
-        VMImageParams.OSDiskConfigurationParams osParams = VMImageParams.OSDiskConfigurationParams
-                .OSDiskConfiguration(CREATE_IMAGE_NAME + "osdisk",
-                        VMImageParams.OSDiskConfigurationParams.Caching.READ_ONLY,
-                        VMImageParams.OSDiskConfigurationParams.OSState.SPECIALIZED,
-                        image.osDiskConfiguration().os(),
-                        URI.create(
-                                "https://" + storageService.serviceName()
-                                        + ".blob.core.windows.net/vhds/" + CAPTURED_IMAGE_NAME + "-os-" + dateFormat.format(date) + ".vhd"),
-                        30,
-                        "Standard");
-        VMImageParams params = VMImageParams.builder().name(CREATE_IMAGE_NAME).label(CREATE_IMAGE_NAME)
-                .description(image.description()).recommendedVMSize(image.recommendedVMSize())
-                .osDiskConfiguration(osParams).imageFamily(image.imageFamily())
-                .build();
-
-        String requestId = api().create(params);
-        assertNotNull(requestId);
-        operationSucceeded.apply(requestId);
-    }
-
-    @Test
-    public void testCaptureVMImage() {
-        String shutdownRequest = api.getVirtualMachineApiForDeploymentInService(DEPLOYMENT, CLOUD_SERVICE).shutdown(roleName);
-        assertTrue(operationSucceeded.apply(shutdownRequest), shutdownRequest);
-
-        CaptureVMImageParams captureParams = CaptureVMImageParams.builder()
-                .osState(VMImage.OSDiskConfiguration.OSState.GENERALIZED).name(CAPTURED_IMAGE_NAME)
-                .label(CAPTURED_IMAGE_NAME).recommendedVMSize(RoleSize.Type.MEDIUM).build();
-
-        String requestId = api.getVirtualMachineApiForDeploymentInService(DEPLOYMENT, CLOUD_SERVICE)
-                .capture(roleName, captureParams);
-        assertNotNull(requestId);
-        operationSucceeded.apply(requestId);
-    }
-
-    @Test(dependsOnMethods = "testCreate")
-    public void testUpdateVMImage() {
-        VMImage image = api().list().get(5);
-        VMImageParams params = VMImageParams.builder()
-                .label("UpdatedLabel")
-                .description(image.description()).recommendedVMSize(RoleSize.Type.A7)
-                .build();
-
-        String requestId = api().update(CAPTURED_IMAGE_NAME, params);
-        assertNotNull(requestId);
-        operationSucceeded.apply(requestId);
-    }
-
-    @Test
-    public void testList() {
-        List<VMImage> vmImageList = api().list();
-        assertTrue(vmImageList.size() > 0);
-        for (VMImage vmImage : vmImageList) {
-            checkVMImage(vmImage);
-        }
-    }
-
-    @Test(dependsOnMethods = {"testList", "testUpdateVMImage"})
-    public void testDelete() {
-        String requestId = api().delete(CAPTURED_IMAGE_NAME);
-        assertNotNull(requestId);
-        assertTrue(operationSucceeded.apply(requestId), requestId);
-    }
-
-    private void checkVMImage(VMImage image) {
-        assertNotNull(image.label(), "Label cannot be null for " + image);
-        assertNotNull(image.name(), "Name cannot be null for " + image);
-        assertNotNull(image.location(), "Location cannot be null for " + image);
-
-        //OSImage
-        VMImage.OSDiskConfiguration osDiskConfiguration = image.osDiskConfiguration();
-        assertNotNull(osDiskConfiguration);
-        assertNotNull(osDiskConfiguration.name());
-        assertTrue(osDiskConfiguration.logicalSizeInGB() > 0);
-
-        if (osDiskConfiguration.mediaLink() != null) {
-            assertTrue(ImmutableSet.of("http", "https").contains(osDiskConfiguration.mediaLink().getScheme()),
-                    "MediaLink should be an http(s) url" + image);
-        }
-
-        if (image.category() != null) {
-            assertNotEquals("", image.category().trim(), "Invalid Category for " + image);
-        }
-    }
-
-    @AfterClass
-    @Override
-    protected void tearDown() {
-        assertTrue(new ConflictManagementPredicate(api) {
-            @Override
-            protected String operation() {
-                return api.getDiskApi().delete(diskName);
-            }
-        }.apply(diskName));
-       assertTrue(new ConflictManagementPredicate(api) {
-          @Override
-          protected String operation() {
-             return api.getCloudServiceApi().delete(cloudService.name());
-          }
-       }.apply(cloudService.name()));
-        super.tearDown();
-    }
-
-    private VMImageApi api() {
-        return api.getVMImageApi();
-    }
-
-    private Deployment.RoleInstance getFirstRoleInstanceInDeployment(String deployment) {
-        return Iterables.getOnlyElement(api.getDeploymentApiForService(cloudService.name()).get(deployment).
-                roleInstanceList());
-    }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VMImageApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/VMImageApiMockTest.java
deleted file mode 100644
index 2396bb0..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VMImageApiMockTest.java
+++ /dev/null
@@ -1,198 +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.features;
-
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertEquals;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.domain.VMImageParams;
-import org.jclouds.azurecompute.domain.CaptureVMImageParams;
-import org.jclouds.azurecompute.domain.VMImage;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListVMImagesHandlerTest;
-import org.testng.annotations.Test;
-
-import java.net.URI;
-
-@Test(groups = "unit", testName = "VMImageApiMockTest")
-public class VMImageApiMockTest extends BaseAzureComputeApiMockTest {
-
-    public void listWhenFound() throws Exception {
-        MockWebServer server = mockAzureManagementServer();
-        server.enqueue(xmlResponse("/vmimages.xml"));
-
-        try {
-            VMImageApi api = api(server.getUrl("/")).getVMImageApi();
-
-            assertEquals(api.list(), ListVMImagesHandlerTest.expected());
-
-            assertSent(server, "GET", "/services/vmimages");
-        } finally {
-            server.shutdown();
-        }
-    }
-
-    public void listWhenNotFound() throws Exception {
-        MockWebServer server = mockAzureManagementServer();
-        server.enqueue(new MockResponse().setResponseCode(404));
-
-        try {
-            VMImageApi api = api(server.getUrl("/")).getVMImageApi();
-
-            assertTrue(api.list().isEmpty());
-
-            assertSent(server, "GET", "/services/vmimages");
-        } finally {
-            server.shutdown();
-        }
-    }
-
-    public void create() throws Exception {
-        MockWebServer server = mockAzureManagementServer();
-        server.enqueue(requestIdResponse("request-1"));
-
-        try {
-            VMImageApi api = api(server.getUrl("/")).getVMImageApi();
-
-            VMImageParams.OSDiskConfigurationParams osParams = VMImageParams.OSDiskConfigurationParams
-                    .OSDiskConfiguration("ClouderaGolden-os_disk",
-                            VMImageParams.OSDiskConfigurationParams.Caching.READ_ONLY,
-                            VMImageParams.OSDiskConfigurationParams.OSState.SPECIALIZED,
-                            OSImage.Type.LINUX,
-                            URI.create("http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd"),
-                            30,
-                            "Standard");
-            VMImageParams params = VMImageParams.builder()
-                    .name("ClouderaGolden")
-                    .label("CDH 5.1 Evaluation")
-                    .description("Single click deployment")
-                    .recommendedVMSize(RoleSize.Type.LARGE)
-                    .osDiskConfiguration(osParams)
-                    .imageFamily("Ubuntu")
-                    .language("en")
-                    .eula("http://www.gnu.org/copyleft/gpl.html")
-                    .iconUri(URI.create("http://www.cloudera.com/content/cloudera/en/privacy-policy.html"))
-                    .smallIconUri(URI.create("http://www.cloudera.com/content/cloudera/en/privacy-policy.html"))
-                    .privacyUri(URI.create("http://www.cloudera.com/content/cloudera/en/privacy-policy.html"))
-                    .showGui(Boolean.TRUE)
-                    .build();
-
-            assertEquals(api.create(params), "request-1");
-
-            assertSent(server, "POST", "/services/vmimages", "/vmimageparams.xml");
-        } finally {
-            server.shutdown();
-        }
-    }
-
-    public void testUpdate() throws Exception {
-        MockWebServer server = mockAzureManagementServer();
-        server.enqueue(requestIdResponse("request-1"));
-
-        try {
-            VMImageApi api = api(server.getUrl("/")).getVMImageApi();
-
-            VMImageParams.OSDiskConfigurationParams osParams = VMImageParams.OSDiskConfigurationParams
-                    .OSDiskConfiguration("ClouderaGolden-os_disk",
-                            VMImageParams.OSDiskConfigurationParams.Caching.READ_ONLY,
-                            VMImageParams.OSDiskConfigurationParams.OSState.SPECIALIZED,
-                            OSImage.Type.LINUX,
-                            URI.create("http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd"),
-                            30,
-                            "Standard");
-            VMImageParams params = VMImageParams.builder()
-                    .name("ClouderaGolden")
-                    .label("CDH 5.1 Evaluation")
-                    .description("Single click deployment")
-                    .recommendedVMSize(RoleSize.Type.LARGE)
-                    .osDiskConfiguration(osParams)
-                    .imageFamily("Ubuntu")
-                    .language("en")
-                    .eula("http://www.gnu.org/copyleft/gpl.html")
-                    .iconUri(URI.create("http://www.cloudera.com/content/cloudera/en/privacy-policy.html"))
-                    .smallIconUri(URI.create("http://www.cloudera.com/content/cloudera/en/privacy-policy.html"))
-                    .privacyUri(URI.create("http://www.cloudera.com/content/cloudera/en/privacy-policy.html"))
-                    .showGui(Boolean.TRUE)
-                    .build();
-
-            assertEquals(api.update("myvmimage", params), "request-1");
-
-            assertSent(server, "PUT", "/services/vmimages/myvmimage", "/vmimageparams.xml");
-        } finally {
-            server.shutdown();
-        }
-    }
-
-    public void deleteWhenFound() throws Exception {
-        MockWebServer server = mockAzureManagementServer();
-        server.enqueue(requestIdResponse("request-1"));
-
-        try {
-            VMImageApi api = api(server.getUrl("/")).getVMImageApi();
-
-            assertEquals(api.delete("myvmimage"), "request-1");
-
-            assertSent(server, "DELETE", "/services/vmimages/myvmimage");
-        } finally {
-            server.shutdown();
-        }
-    }
-
-    public void deleteWhenNotFound() throws Exception {
-        MockWebServer server = mockAzureManagementServer();
-        server.enqueue(new MockResponse().setResponseCode(404));
-
-        try {
-            VMImageApi api = api(server.getUrl("/")).getVMImageApi();
-
-            assertNull(api.delete("myvmimage"));
-
-            assertSent(server, "DELETE", "/services/vmimages/myvmimage");
-        } finally {
-            server.shutdown();
-        }
-    }
-
-    @Test
-    public void testCaptureVMImage() throws Exception {
-
-        MockWebServer server = mockAzureManagementServer();
-        server.enqueue(requestIdResponse("request-1"));
-
-        try {
-            CaptureVMImageParams captureParams = CaptureVMImageParams.builder()
-                    .osState(VMImage.OSDiskConfiguration.OSState.GENERALIZED).name("capturedimage")
-                    .label("CapturedImage").recommendedVMSize(RoleSize.Type.MEDIUM).build();
-
-            VirtualMachineApi api = api(server.getUrl("/")).
-                    getVirtualMachineApiForDeploymentInService("mydeployment", "myservice");
-
-            assertEquals(api.capture("myvirtualmachine", captureParams), "request-1");
-            assertSent(server, "POST",
-                    "/services/hostedservices/myservice/deployments/mydeployment/roleinstances/" +
-                            "myvirtualmachine/Operations",
-                    "/vmimageparams_mock.xml");
-        } finally {
-            server.shutdown();
-        }
-    }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiLiveTest.java
deleted file mode 100644
index 22d50e6..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiLiveTest.java
+++ /dev/null
@@ -1,222 +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.features;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.jclouds.azurecompute.domain.Deployment.InstanceStatus.READY_ROLE;
-import static org.jclouds.util.Predicates2.retry;
-import static org.testng.Assert.assertTrue;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.jclouds.azurecompute.compute.AzureComputeServiceAdapter;
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.Deployment.RoleInstance;
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-
-/*
- * Note: Live test for CaptureVMImage method is in VMImageApiLiveTest class
- */
-@Test(groups = "live", testName = "VirtualMachineApiLiveTest", singleThreaded = true)
-public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest {
-
-   private static final String CLOUD_SERVICE = String.format("%s%d-%s",
-           System.getProperty("user.name"), RAND, VirtualMachineApiLiveTest.class.getSimpleName()).toLowerCase();
-
-   private static final String DEPLOYMENT = String.format("%s%d-%s",
-           System.getProperty("user.name"), RAND, VirtualMachineApiLiveTest.class.getSimpleName()).toLowerCase();
-
-   private String roleName;
-
-   private Predicate<String> roleInstanceReady;
-
-   private Predicate<String> roleInstanceStopped;
-
-   private CloudService cloudService;
-
-   @BeforeClass(groups = {"integration", "live"})
-   @Override
-   public void setup() {
-      super.setup();
-      cloudService = getOrCreateCloudService(CLOUD_SERVICE, LOCATION);
-
-      roleInstanceReady = retry(new Predicate<String>() {
-
-         @Override
-         public boolean apply(String input) {
-            RoleInstance roleInstance = getFirstRoleInstanceInDeployment(input);
-            return roleInstance != null && roleInstance.instanceStatus() == READY_ROLE;
-         }
-      }, 600, 5, 15, SECONDS);
-
-      roleInstanceStopped = retry(new Predicate<String>() {
-
-         @Override
-         public boolean apply(String input) {
-            RoleInstance roleInstance = getFirstRoleInstanceInDeployment(input);
-            return roleInstance != null && roleInstance.instanceStatus() == Deployment.InstanceStatus.STOPPED_VM;
-         }
-      }, 600, 5, 15, SECONDS);
-
-      final DeploymentParams params = DeploymentParams.builder()
-              .name(DEPLOYMENT)
-              .os(OSImage.Type.LINUX)
-              .sourceImageName(BaseAzureComputeApiLiveTest.IMAGE_NAME)
-              .mediaLink(AzureComputeServiceAdapter.createMediaLink(storageService.serviceName(), DEPLOYMENT))
-              .username("test")
-              .password("supersecurePassword1!")
-              .size(RoleSize.Type.BASIC_A0)
-              .externalEndpoints(ImmutableSet.of(DeploymentParams.ExternalEndpoint.inboundTcpToLocalPort(22, 22)))
-              .build();
-      getOrCreateDeployment(cloudService.name(), params);
-      RoleInstance roleInstance = getFirstRoleInstanceInDeployment(DEPLOYMENT);
-      assertTrue(roleInstanceReady.apply(DEPLOYMENT), roleInstance.toString());
-      roleName = roleInstance.roleName();
-   }
-
-   public void testUpdate() {
-      final Role role = api().getRole(roleName);
-      assertTrue(new ConflictManagementPredicate(api) {
-
-         @Override
-         protected String operation() {
-            return api().updateRole(roleName,
-                    Role.create(
-                            role.roleName(),
-                            role.roleType(),
-                            role.vmImage(),
-                            role.mediaLocation(),
-                            role.configurationSets(),
-                            role.resourceExtensionReferences(),
-                            role.availabilitySetName(),
-                            role.dataVirtualHardDisks(),
-                            role.osVirtualHardDisk(),
-                            role.roleSize(),
-                            role.provisionGuestAgent(),
-                            role.defaultWinRmCertificateThumbprint()));
-         }
-      }.apply(role.roleName()));
-   }
-
-   @Test(dependsOnMethods = "testUpdate")
-   public void testShutdown() {
-      assertTrue(new ConflictManagementPredicate(api) {
-
-         @Override
-         protected String operation() {
-            return api().shutdown(roleName);
-         }
-      }.apply(roleName));
-
-      RoleInstance roleInstance = getFirstRoleInstanceInDeployment(DEPLOYMENT);
-      assertTrue(roleInstanceStopped.apply(DEPLOYMENT), roleInstance.toString());
-      Logger.getAnonymousLogger().log(Level.INFO, "roleInstance stopped: {0}", roleInstance);
-   }
-
-   @Test(dependsOnMethods = "testShutdown")
-   public void testStart() {
-      assertTrue(new ConflictManagementPredicate(api) {
-
-         @Override
-         protected String operation() {
-            return api().start(roleName);
-         }
-      }.apply(roleName));
-
-      RoleInstance roleInstance = getFirstRoleInstanceInDeployment(DEPLOYMENT);
-      assertTrue(roleInstanceReady.apply(DEPLOYMENT), roleInstance.toString());
-      Logger.getAnonymousLogger().log(Level.INFO, "roleInstance started: {0}", roleInstance);
-   }
-
-   @Test(dependsOnMethods = "testStart")
-   public void testRestart() {
-      assertTrue(new ConflictManagementPredicate(api) {
-
-         @Override
-         protected String operation() {
-            return api().restart(roleName);
-         }
-      }.apply(roleName));
-
-      final RoleInstance roleInstance = getFirstRoleInstanceInDeployment(DEPLOYMENT);
-      assertTrue(roleInstanceReady.apply(DEPLOYMENT), roleInstance.toString());
-      Logger.getAnonymousLogger().log(Level.INFO, "roleInstance restarted: {0}", roleInstance);
-   }
-
-   @AfterClass
-   @Override
-   protected void tearDown() {
-      if (cloudService != null && api.getDeploymentApiForService(cloudService.name()).get(DEPLOYMENT) != null) {
-         final List<Role> roles = api.getDeploymentApiForService(cloudService.name()).get(DEPLOYMENT).roleList();
-
-         assertTrue(new ConflictManagementPredicate(api) {
-
-            @Override
-            protected String operation() {
-               return api.getDeploymentApiForService(cloudService.name()).delete(DEPLOYMENT);
-            }
-         }.apply(DEPLOYMENT));
-
-         for (Role r : roles) {
-            final Role.OSVirtualHardDisk disk = r.osVirtualHardDisk();
-            if (disk != null) {
-               assertTrue(new ConflictManagementPredicate(api) {
-
-                  @Override
-                  protected String operation() {
-                     return api.getDiskApi().delete(disk.diskName());
-                  }
-               }.apply(disk.diskName()));
-            }
-         }
-
-         assertTrue(new ConflictManagementPredicate(api) {
-
-            @Override
-            protected String operation() {
-               return api.getCloudServiceApi().delete(cloudService.name());
-            }
-         }.apply(cloudService.name()));
-
-         super.tearDown();
-      }
-   }
-
-   private VirtualMachineApi api() {
-      return api.getVirtualMachineApiForDeploymentInService(DEPLOYMENT, cloudService.name());
-   }
-
-   private RoleInstance getFirstRoleInstanceInDeployment(String deployment) {
-      return Iterables.getOnlyElement(api.getDeploymentApiForService(cloudService.name()).get(deployment).
-              roleInstanceList());
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiMockTest.java
deleted file mode 100644
index 2272c70..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiMockTest.java
+++ /dev/null
@@ -1,133 +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.features;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.io.InputStream;
-import java.nio.charset.Charset;
-
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.RoleHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.io.ByteStreams;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import com.squareup.okhttp.mockwebserver.RecordedRequest;
-
-/*
- * Note: Mock test for CaptureVMImage method is in VMImageApiMockTest class
- */
-@Test(groups = "unit", testName = "VirtualMachineApiMockTest")
-public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void testStart() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         VirtualMachineApi api = vmApi(server);
-
-         assertThat(api.start("myvm")).isEqualTo("request-1");
-
-         assertSent(server, "POST",
-                 "/services/hostedservices/my-service/deployments/mydeployment/roleinstances/myvm/Operations",
-                 "/startrolepayload.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testRestart() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         VirtualMachineApi api = vmApi(server);
-
-         assertThat(api.restart("myvm")).isEqualTo("request-1");
-
-         assertSent(server, "POST",
-                 "/services/hostedservices/my-service/deployments/mydeployment/roleinstances/myvm/Operations",
-                 "/restartrolepayload.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testShutdown() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         VirtualMachineApi api = vmApi(server);
-
-         assertThat(api.shutdown("myvm")).isEqualTo("request-1");
-
-         assertSent(server, "POST",
-                 "/services/hostedservices/my-service/deployments/mydeployment/roleinstances/myvm/Operations",
-                 "/shutdownrolepayload.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testCapture() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         VirtualMachineApi api = vmApi(server);
-
-         assertThat(api.capture("myvm", "myImageName", "myImageLabel")).isEqualTo("request-1");
-
-         assertSent(server, "POST",
-                 "/services/hostedservices/my-service/deployments/mydeployment/roleinstances/myvm/Operations",
-                 "/capturerolepayload.xml");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testUpdate() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         VirtualMachineApi api = vmApi(server);
-
-         Role role = RoleHandlerTest.expected();
-         assertThat(api.updateRole("testvnetsg02", role)).isEqualTo("request-1");
-
-         RecordedRequest request = assertSent(server, "PUT", "/services/hostedservices/my-service/deployments/mydeployment/roles/testvnetsg02");
-         
-         final InputStream is = getClass().getResourceAsStream("/role-update-body.xml");
-         try {
-            assertThat(request.getUtf8Body()).isXmlEqualTo(new String(ByteStreams.toByteArray(is), Charset.forName("UTF-8")));
-         } finally {
-            is.close();
-         }
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   private VirtualMachineApi vmApi(MockWebServer server) {
-      return api(server.getUrl("/")).getVirtualMachineApiForDeploymentInService("mydeployment", "my-service");
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualNetworkApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualNetworkApiLiveTest.java
deleted file mode 100644
index 705a377..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualNetworkApiLiveTest.java
+++ /dev/null
@@ -1,114 +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.features;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-import java.util.List;
-
-import org.jclouds.azurecompute.AzureTestUtils;
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.testng.annotations.AfterSuite;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-
-@Test(groups = "live", testName = "VirtualNetworkApiLiveTest", singleThreaded = true)
-public class VirtualNetworkApiLiveTest extends BaseAzureComputeApiLiveTest {
-
-   private static final String DEFAULT_ADDRESS_SPACE = "10.0.0.0/20";
-   private static final String DEFAULT_SUBNET_ADDRESS_SPACE = "10.0.0.0/23";
-   private List<VirtualNetworkSite> initialVirtualNetworkSite;
-
-   @BeforeSuite
-   @Override
-   public void setup() {
-      super.setup();
-
-      initialVirtualNetworkSite = AzureTestUtils.getVirtualNetworkSite(api);
-
-      virtualNetworkSite = getOrCreateVirtualNetworkSite(VIRTUAL_NETWORK_NAME, LOCATION);
-
-      final List<VirtualNetworkSite> virtualNetworkSites = Lists.newArrayList(Iterables.filter(
-              AzureTestUtils.getVirtualNetworkSite(api),
-              new AzureTestUtils.SameVirtualNetworkSiteNamePredicate(VIRTUAL_NETWORK_NAME)));
-
-      final NetworkConfiguration.AddressSpace addressSpace = NetworkConfiguration.AddressSpace.create(
-              DEFAULT_ADDRESS_SPACE);
-
-      final ImmutableList<NetworkConfiguration.Subnet> subnets = ImmutableList.of(NetworkConfiguration.Subnet.create(
-              DEFAULT_SUBNET_NAME, DEFAULT_SUBNET_ADDRESS_SPACE, null));
-
-      final NetworkConfiguration networkConfiguration = api().getNetworkConfiguration();
-      assertThat(networkConfiguration.virtualNetworkConfiguration().dns()).isEqualTo(
-              networkConfiguration.virtualNetworkConfiguration().dns());
-
-      assertThat(virtualNetworkSites.size()).isEqualTo(1);
-      assertThat(virtualNetworkSites.get(0).name()).isEqualTo(VIRTUAL_NETWORK_NAME);
-      assertThat(virtualNetworkSites.get(0).location()).isEqualTo(LOCATION);
-      assertThat(virtualNetworkSites.get(0).addressSpace()).isEqualTo(addressSpace);
-      assertThat(virtualNetworkSites.get(0).subnets()).isEqualTo(subnets);
-   }
-
-   @AfterSuite
-   @Override
-   protected void tearDown() {
-      super.tearDown();
-
-      final NetworkConfiguration networkConfiguration = NetworkConfiguration.create(NetworkConfiguration.VirtualNetworkConfiguration.create(null, initialVirtualNetworkSite));
-      assertTrue(new ConflictManagementPredicate(api) {
-         @Override
-         protected String operation() {
-            return api.getVirtualNetworkApi().set(networkConfiguration);
-         }
-      }.apply("Revert VirtualNetworkConfiguration"));
-   }
-
-   @Test
-   public void testList() {
-      for (VirtualNetworkSite vns : api().list()) {
-         checkVirtualNetworkSite(vns);
-      }
-   }
-
-   private void checkVirtualNetworkSite(VirtualNetworkSite virtualNetworkSite) {
-      assertNotNull(virtualNetworkSite.name(), "Name cannot be null for a VirtualNetworkSite.");
-      assertNotNull(virtualNetworkSite.addressSpace(), "AddressSpace cannot be null for: " + virtualNetworkSite);
-      assertNotNull(virtualNetworkSite.subnets(), "Subnets cannot be null for: " + virtualNetworkSite);
-   }
-
-   @Test
-   public void testGetNetworkConfiguration() {
-      final NetworkConfiguration networkConfiguration = api().getNetworkConfiguration();
-      assertThat(networkConfiguration).isNotNull();
-      for (VirtualNetworkSite vns : networkConfiguration.virtualNetworkConfiguration().virtualNetworkSites()) {
-         assertThat(vns.name()).isNotEqualTo("not-existing");
-      }
-   }
-
-   private VirtualNetworkApi api() {
-      return api.getVirtualNetworkApi();
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualNetworkApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualNetworkApiMockTest.java
deleted file mode 100644
index 85f13af..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualNetworkApiMockTest.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.features;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.testng.Assert.assertEquals;
-import java.util.UUID;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkConfiguration;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListVirtualNetworkSitesHandlerTest;
-import org.jclouds.azurecompute.xml.NetworkConfigurationHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-@Test(groups = "unit", testName = "VirtualNetworkApiMockTest")
-public class VirtualNetworkApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void testGetNetworkConfiguration() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/networkconfiguration.xml"));
-
-      try {
-         VirtualNetworkApi api = virtualNetworkApi(server);
-
-         assertEquals(api.getNetworkConfiguration(), NetworkConfigurationHandlerTest.expected());
-
-         assertSent(server, "GET", "/services/networking/media");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testSet() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(requestIdResponse("request-1"));
-
-      try {
-         VirtualNetworkApi api = virtualNetworkApi(server);
-
-         assertThat(api.set(NetworkConfiguration.create(
-                 VirtualNetworkConfiguration.create(null,
-                         ImmutableList.of(NetworkConfiguration.VirtualNetworkSite.create(
-                                         UUID.randomUUID().toString(),
-                                         "jclouds-virtual-network",
-                                         "West Europe",
-                                         NetworkConfiguration.AddressSpace.create("10.0.0.0/20"),
-                                         ImmutableList.of(NetworkConfiguration.Subnet.create("jclouds-1", "10.0.0.0/23",
-                                                         null)))))))
-         ).isEqualTo("request-1");
-
-         assertSent(server, "PUT", "/services/networking/media");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testList() throws Exception {
-      MockWebServer server = mockAzureManagementServer();
-      server.enqueue(xmlResponse("/virtualnetworksites.xml"));
-
-      try {
-         VirtualNetworkApi api = virtualNetworkApi(server);
-
-         assertThat(api.list()).containsExactlyElementsOf(ListVirtualNetworkSitesHandlerTest.expected());
-
-         assertSent(server, "GET",
-                 "/services/networking/virtualnetwork");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   private VirtualNetworkApi virtualNetworkApi(MockWebServer server) {
-      return api(server.getUrl("/")).getVirtualNetworkApi();
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/internal/AbstractAzureComputeApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/internal/AbstractAzureComputeApiLiveTest.java
deleted file mode 100644
index 47bfb5a..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/internal/AbstractAzureComputeApiLiveTest.java
+++ /dev/null
@@ -1,64 +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.internal;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_INITIAL_PERIOD;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_MAX_PERIOD;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_TIMEOUT;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.TCP_RULE_FORMAT;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.TCP_RULE_REGEXP;
-import java.util.Properties;
-import java.util.Random;
-
-import org.jclouds.apis.BaseApiLiveTest;
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.jclouds.compute.config.ComputeServiceProperties;
-import org.testng.annotations.BeforeClass;
-
-import com.google.common.base.Predicate;
-
-public abstract class AbstractAzureComputeApiLiveTest extends BaseApiLiveTest<AzureComputeApi> {
-
-   protected static final int RAND = new Random().nextInt(999);
-
-   protected Predicate<String> operationSucceeded;
-
-   public AbstractAzureComputeApiLiveTest() {
-      provider = "azurecompute";
-   }
-
-   @Override protected Properties setupProperties() {
-      Properties properties = super.setupProperties();
-      properties.put(ComputeServiceProperties.POLL_INITIAL_PERIOD, 1000);
-      properties.put(ComputeServiceProperties.POLL_MAX_PERIOD, 10000);
-      properties.setProperty(OPERATION_TIMEOUT, "60000");
-      properties.setProperty(OPERATION_POLL_INITIAL_PERIOD, "5");
-      properties.setProperty(OPERATION_POLL_MAX_PERIOD, "15");
-      properties.setProperty(TCP_RULE_FORMAT, "tcp_%s-%s");
-      properties.setProperty(TCP_RULE_REGEXP, "tcp_\\d{1,5}-\\d{1,5}");
-      return properties;
-   }
-
-   @BeforeClass
-   @Override
-   public void setup() {
-      super.setup();
-      operationSucceeded = new ConflictManagementPredicate(api, 600, 5, 5, SECONDS);
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/internal/BaseAzureComputeApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/internal/BaseAzureComputeApiLiveTest.java
deleted file mode 100644
index 220b592..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/internal/BaseAzureComputeApiLiveTest.java
+++ /dev/null
@@ -1,203 +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.internal;
-
-import static com.google.common.collect.Iterables.find;
-import static com.google.common.collect.Iterables.tryFind;
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.testng.Assert.assertTrue;
-
-import java.util.List;
-import java.util.UUID;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.jclouds.azurecompute.AzureTestUtils;
-import org.jclouds.azurecompute.AzureTestUtils.SameVirtualNetworkSiteNamePredicate;
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.CreateStorageServiceParams;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.AddressSpace;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.Subnet;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableList;
-
-public class BaseAzureComputeApiLiveTest extends AbstractAzureComputeApiLiveTest {
-
-   public static final String DEFAULT_ADDRESS_SPACE = "10.0.0.0/20";
-
-   public static final String DEFAULT_SUBNET_ADDRESS_SPACE = "10.0.0.0/23";
-
-   public static final String VIRTUAL_NETWORK_NAME = "jclouds-virtual-network-live-test";
-
-   public static final String DEFAULT_SUBNET_NAME = "jclouds-1";
-
-   public static final String LOCATION = "West Europe";
-
-   public static final String IMAGE_NAME
-           = "b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04_1-LTS-amd64-server-20150123-en-us-30GB";
-
-   protected StorageService storageService;
-
-   protected VirtualNetworkSite virtualNetworkSite;
-
-   private String storageServiceName = null;
-
-   protected String getStorageServiceName() {
-      if (storageServiceName == null) {
-         storageServiceName = String.format("%3.24s",
-                 System.getProperty("user.name") + RAND + this.getClass().getSimpleName()).toLowerCase();
-      }
-      return storageServiceName;
-   }
-
-   @BeforeClass
-   @Override
-   public void setup() {
-      super.setup();
-
-      operationSucceeded = new ConflictManagementPredicate(api, 600, 5, 5, SECONDS);
-
-      final CreateStorageServiceParams params = CreateStorageServiceParams.builder().
-              serviceName(getStorageServiceName()).
-              label(getStorageServiceName()).
-              location(LOCATION).
-              accountType(StorageService.AccountType.Standard_LRS).
-              build();
-      storageService = getOrCreateStorageService(getStorageServiceName(), params);
-   }
-
-   @AfterClass(alwaysRun = true)
-   @Override
-   protected void tearDown() {
-      super.tearDown();
-
-      assertTrue(new ConflictManagementPredicate(api) {
-         @Override
-         protected String operation() {
-            return api.getStorageAccountApi().delete(getStorageServiceName());
-         }
-      }.apply(getStorageServiceName()));
-
-
-
-   }
-
-   protected CloudService getOrCreateCloudService(final String cloudServiceName, final String location) {
-      CloudService cloudService = api.getCloudServiceApi().get(cloudServiceName);
-      if (cloudService != null) {
-         return cloudService;
-      }
-
-      String requestId = api.getCloudServiceApi().createWithLabelInLocation(
-              cloudServiceName, cloudServiceName, location);
-
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-      Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-      cloudService = api.getCloudServiceApi().get(cloudServiceName);
-      Logger.getAnonymousLogger().log(Level.INFO, "created cloudService: {0}", cloudService);
-      return cloudService;
-   }
-
-   protected Deployment getOrCreateDeployment(final String serviceName, final DeploymentParams params) {
-      Deployment deployment = api.getDeploymentApiForService(serviceName).get(params.name());
-      if (deployment != null) {
-         return deployment;
-      }
-
-      assertTrue(new ConflictManagementPredicate(api) {
-
-         @Override
-         protected String operation() {
-            return api.getDeploymentApiForService(serviceName).create(params);
-         }
-      }.apply(getStorageServiceName()));
-
-      deployment = api.getDeploymentApiForService(serviceName).get(params.name());
-
-      Logger.getAnonymousLogger().log(Level.INFO, "created deployment: {0}", deployment);
-      return deployment;
-   }
-
-   protected StorageService getOrCreateStorageService(String storageServiceName, CreateStorageServiceParams params) {
-      StorageService ss = api.getStorageAccountApi().get(storageServiceName);
-      if (ss != null) {
-         return ss;
-      }
-      String requestId = api.getStorageAccountApi().create(params);
-      assertTrue(operationSucceeded.apply(requestId), requestId);
-      Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-      ss = api.getStorageAccountApi().get(storageServiceName);
-
-      Logger.getAnonymousLogger().log(Level.INFO, "created storageService: {0}", ss);
-      return ss;
-   }
-
-   protected VirtualNetworkSite getOrCreateVirtualNetworkSite(final String virtualNetworkSiteName, String location) {
-      final List<VirtualNetworkSite> current = AzureTestUtils.getVirtualNetworkSite(api);
-
-      final Optional<VirtualNetworkSite> optionalVirtualNetworkSite = tryFind(
-              current,
-              new SameVirtualNetworkSiteNamePredicate(virtualNetworkSiteName));
-
-      if (optionalVirtualNetworkSite.isPresent()) {
-         return optionalVirtualNetworkSite.get();
-      }
-
-      current.add(VirtualNetworkSite.create(UUID.randomUUID().toString(),
-              virtualNetworkSiteName,
-              location,
-              AddressSpace.create(DEFAULT_ADDRESS_SPACE),
-              ImmutableList.of(Subnet.create(DEFAULT_SUBNET_NAME, DEFAULT_SUBNET_ADDRESS_SPACE, null))));
-
-      final NetworkConfiguration networkConfiguration
-              = NetworkConfiguration.create(VirtualNetworkConfiguration.create(null, current));
-
-      VirtualNetworkSite vns;
-      try {
-         vns = find(
-                 api.getVirtualNetworkApi().getNetworkConfiguration().virtualNetworkConfiguration().
-                 virtualNetworkSites(),
-                 new SameVirtualNetworkSiteNamePredicate(virtualNetworkSiteName));
-      } catch (Exception e) {
-         assertTrue(new ConflictManagementPredicate(api) {
-
-            @Override
-            protected String operation() {
-               return api.getVirtualNetworkApi().set(networkConfiguration);
-            }
-         }.apply(virtualNetworkSiteName));
-
-         vns = find(
-                 api.getVirtualNetworkApi().getNetworkConfiguration().virtualNetworkConfiguration().
-                 virtualNetworkSites(),
-                 new SameVirtualNetworkSiteNamePredicate(virtualNetworkSiteName));
-
-         Logger.getAnonymousLogger().log(Level.INFO, "created virtualNetworkSite: {0}", vns);
-      }
-      return vns;
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/internal/BaseAzureComputeApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/internal/BaseAzureComputeApiMockTest.java
deleted file mode 100644
index ced04f8..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/internal/BaseAzureComputeApiMockTest.java
+++ /dev/null
@@ -1,102 +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.internal;
-
-import static com.google.common.base.Charsets.UTF_8;
-import static com.google.common.util.concurrent.MoreExecutors.newDirectExecutorService;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Properties;
-import java.util.Set;
-
-import org.jclouds.ContextBuilder;
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.concurrent.config.ExecutorServiceModule;
-import org.jclouds.util.Strings2;
-
-import com.google.common.base.Throwables;
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Module;
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import com.squareup.okhttp.mockwebserver.RecordedRequest;
-
-public class BaseAzureComputeApiMockTest {
-
-   private final Set<Module> modules = ImmutableSet.<Module>of(new ExecutorServiceModule(newDirectExecutorService()));
-
-   protected String provider;
-
-   private final String identity;
-
-   private final String credential;
-
-   public BaseAzureComputeApiMockTest() {
-      provider = "azurecompute";
-      // self-signed dummy cert:
-      // keytool -genkey -alias test -keyalg RSA -keysize 1024 -validity 5475 -dname "CN=localhost" -keystore azure-test.p12 -storepass azurepass -storetype pkcs12
-      identity = this.getClass().getResource("/azure-test.p12").getFile();
-      credential = "azurepass";
-   }
-
-   public AzureComputeApi api(URL url) {
-      Properties properties = new Properties();
-      //properties.setProperty(SUBSCRIPTION_ID, "1234-1234-1234");
-      return ContextBuilder.newBuilder(provider).credentials(identity, credential).endpoint(url.toString())
-              .modules(modules).overrides(properties).buildApi(AzureComputeApi.class);
-   }
-
-   protected static MockWebServer mockAzureManagementServer() throws IOException {
-      MockWebServer server = new MockWebServer();
-      server.play();
-      return server;
-   }
-
-   protected MockResponse xmlResponse(String resource) {
-      return new MockResponse().addHeader("Content-Type", "application/xml").setBody(stringFromResource(resource));
-   }
-
-   protected MockResponse requestIdResponse(String requestId) {
-      return new MockResponse().addHeader("x-ms-request-id", requestId);
-   }
-
-   protected String stringFromResource(String resourceName) {
-      try {
-         return Strings2.toStringAndClose(getClass().getResourceAsStream(resourceName));
-      } catch (IOException e) {
-         throw Throwables.propagate(e);
-      }
-   }
-
-   protected RecordedRequest assertSent(MockWebServer server, String method, String path) throws InterruptedException {
-      RecordedRequest request = server.takeRequest();
-      assertThat(request.getMethod()).isEqualTo(method);
-      assertThat(request.getPath()).isEqualTo(path);
-      assertThat(request.getHeader("x-ms-version")).isEqualTo("2014-10-01");
-      assertThat(request.getHeader("Accept")).isEqualTo("application/xml");
-      return request;
-   }
-
-   protected RecordedRequest assertSent(MockWebServer server, String method, String path, String resource)
-           throws InterruptedException {
-      RecordedRequest request = assertSent(server, method, path);
-      assertThat(new String(request.getBody(), UTF_8)).isEqualTo(stringFromResource(resource).trim());
-      return request;
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/CloudServiceHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/CloudServiceHandlerTest.java
deleted file mode 100644
index b11ae0e..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/CloudServiceHandlerTest.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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.Collections;
-
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.CloudService.Status;
-import org.jclouds.date.DateService;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "HostedServiceHandlerTest")
-public class CloudServiceHandlerTest extends BaseHandlerTest {
-
-   private static final DateService DATE_SERVICE = new SimpleDateFormatDateService();
-
-   public void test() {
-      InputStream is = getClass().getResourceAsStream("/hostedservice.xml");
-      CloudService result = factory.create(new CloudServiceHandler(DATE_SERVICE)).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static CloudService expected() {
-      return CloudService.create( //
-              "neotys", // name
-              "West Europe", // location
-              null, // affinityGroup
-              "neotys", // label
-              "Implicitly created cloud service2012-08-06 14:55", // description
-              Status.CREATED, // status
-              DATE_SERVICE.iso8601SecondsDateParse("2012-08-06T14:55:17Z"), // created
-              DATE_SERVICE.iso8601SecondsDateParse("2012-08-06T15:50:34Z"), // lastModified
-              Collections.<String, String>emptyMap() // extendedProperties
-      );
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/CloudServicePropertiesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/CloudServicePropertiesHandlerTest.java
deleted file mode 100644
index 6390442..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/CloudServicePropertiesHandlerTest.java
+++ /dev/null
@@ -1,147 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.CloudServiceProperties;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Deployment.InstanceStatus;
-import org.jclouds.azurecompute.domain.Deployment.Slot;
-import org.jclouds.azurecompute.domain.Deployment.Status;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet.InputEndpoint;
-import org.jclouds.azurecompute.domain.Role.OSVirtualHardDisk;
-import org.jclouds.date.DateService;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.util.List;
-
-@Test(groups = "unit", testName = "CloudServicePropertiesHandlerTest")
-public class CloudServicePropertiesHandlerTest extends BaseHandlerTest {
-
-    private static final DateService DATE_SERVICE = new SimpleDateFormatDateService();
-
-    public void test() {
-        InputStream is = getClass().getResourceAsStream("/cloudserviceproperties.xml");
-        CloudServiceProperties result = factory.create(
-                new CloudServicePropertiesHandler(DATE_SERVICE, new DeploymentHandler(
-                        new VirtualIPHandler(),
-                        new RoleInstanceHandler(),
-                        new RoleHandler(
-                                new ConfigurationSetHandler(new InputEndpointHandler(), new SubnetNameHandler()),
-                                new OSVirtualHardDiskHandler(),
-                                new DataVirtualHardDiskHandler(),
-                                new ResourceExtensionReferenceHandler(new ResourceExtensionParameterValueHandler())))))
-                .parse(is);
-        assertEquals(result, expected());
-    }
-
-    public static CloudServiceProperties expected() {
-        return CloudServiceProperties.create("neotys",
-                URI.create("https://api/services/hostedservices/neotys"),
-                "West Europe",
-                null,
-                "bmVvdHlz",
-                "Implicitly created cloud service2012-08-06 14:55",
-                CloudServiceProperties.Status.CREATED,
-                DATE_SERVICE.iso8601SecondsDateParse("2012-08-06T14:55:17Z"), // created
-                DATE_SERVICE.iso8601SecondsDateParse("2012-08-06T15:50:34Z"),
-                ImmutableMap.<String, String>builder().build(),
-                deploymentList()
-        );
-    }
-
-    private static List<Deployment> deploymentList() {
-        return ImmutableList.of(
-                Deployment.create( //
-                        "node1855162607153993262-b26", // name
-                        Slot.PRODUCTION, // slot
-                        Status.RUNNING, // status
-                        "node1855162607153993262-b26", // label
-                        null, // instanceStateDetails
-                        null, // instanceErrorCode
-                        ImmutableList.of(Deployment.VirtualIP.create("191.233.85.49", true,
-                                "node1855162607153993262-b26ContractContract")), //virtualIPs
-                        ImmutableList.of(Deployment.RoleInstance.create(
-                                "node1855162607153993262-b26", // roleName
-                                "node1855162607153993262-b26", // instanceName
-                                InstanceStatus.READY_ROLE, //instanceStatus
-                                Deployment.PowerState.STARTED,
-                                0,
-                                0,
-                                RoleSize.Type.BASIC_A0,
-                                "10.0.2.6",
-                                "node1855162607153993262-b26", // hostname
-                                ImmutableList.of(
-                                        Deployment.InstanceEndpoint.create(
-                                                "tcp_22-22", // name
-                                                "191.233.85.49", // vip
-                                                22, // publicPort
-                                                22, // localPort
-                                                "tcp" // protocol
-                                        )
-                                )
-                        )),
-                        ImmutableList.of(Role.create(
-                                "node1855162607153993262-b26",
-                                "PersistentVMRole",
-                                null,
-                                null,
-                                ImmutableList.of(ConfigurationSet.create(
-                                        "NetworkConfiguration",
-                                        ImmutableList.of(
-                                                InputEndpoint.create("tcp_22-22", "tcp", 22, 22, "191.233.85.49",
-                                                        false, null, null, null),
-                                                InputEndpoint.create("tcp_2375-2375", "tcp", 2375, 2375,
-                                                        "191.233.85.49", false, null, null, null)
-                                        ),
-                                        ImmutableList.of(ConfigurationSet.SubnetName.create("Subnet-1")),
-                                        null,
-                                        ImmutableList.<ConfigurationSet.PublicIP>of(),
-                                        null)),
-                                ImmutableList.<Role.ResourceExtensionReference>of(),
-                                null,
-                                ImmutableList.<DataVirtualHardDisk>of(),
-                                OSVirtualHardDisk.create(
-                                        "ReadWrite",
-                                        "node1855162607153993262-b26-node1855162607153993262-b26-0-201412221704390597",
-                                        null,
-                                        null,
-                                        URI.create(
-                                                "https://test.blob.core.windows.net/clockerblob/container-node1855162607153993262-b26.vhd"),
-                                        "b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu_DAILY_BUILD-trusty-14_04_1-LTS-amd64-server-20141212-en-us-30GB",
-                                        OSImage.Type.LINUX),
-                                RoleSize.Type.BASIC_A0,
-                                null,
-                                null
-                        )),
-                        "jclouds" // virtualNetworkName
-                )
-        );
-    }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/DeploymentHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/DeploymentHandlerTest.java
deleted file mode 100644
index 0b24069..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/DeploymentHandlerTest.java
+++ /dev/null
@@ -1,153 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.Deployment.InstanceStatus;
-import org.jclouds.azurecompute.domain.Deployment.Slot;
-import org.jclouds.azurecompute.domain.Deployment.Status;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet.InputEndpoint;
-import org.jclouds.azurecompute.domain.Role.OSVirtualHardDisk;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "DeploymentHandlerTest")
-public class DeploymentHandlerTest extends BaseHandlerTest {
-
-   private InstanceStatus parseInstanceStatus(final String instanceStatus) {
-      return InstanceStatus.fromString(instanceStatus);
-   }
-
-   /**
-    * Covers values listed
-    * <a href="http://msdn.microsoft.com/en-us/library/azure/ee460804.aspx#RoleInstanceList">here</a>.
-    */
-   public void parseInstanceStatus_Recognized() {
-      assertEquals(parseInstanceStatus("RoleStateUnknown"), InstanceStatus.ROLE_STATE_UNKNOWN);
-      assertEquals(parseInstanceStatus("CreatingVM"), InstanceStatus.CREATING_VM);
-      assertEquals(parseInstanceStatus("StartingVM"), InstanceStatus.STARTING_VM);
-      assertEquals(parseInstanceStatus("CreatingRole"), InstanceStatus.CREATING_ROLE);
-      assertEquals(parseInstanceStatus("StartingRole"), InstanceStatus.STARTING_ROLE);
-      assertEquals(parseInstanceStatus("ReadyRole"), InstanceStatus.READY_ROLE);
-      assertEquals(parseInstanceStatus("BusyRole"), InstanceStatus.BUSY_ROLE);
-      assertEquals(parseInstanceStatus("StoppingRole"), InstanceStatus.STOPPING_ROLE);
-      assertEquals(parseInstanceStatus("StoppingVM"), InstanceStatus.STOPPING_VM);
-      assertEquals(parseInstanceStatus("DeletingVM"), InstanceStatus.DELETING_VM);
-      assertEquals(parseInstanceStatus("StoppedVM"), InstanceStatus.STOPPED_VM);
-      assertEquals(parseInstanceStatus("RestartingRole"), InstanceStatus.RESTARTING_ROLE);
-      assertEquals(parseInstanceStatus("CyclingRole"), InstanceStatus.CYCLING_ROLE);
-      assertEquals(parseInstanceStatus("FailedStartingRole"), InstanceStatus.FAILED_STARTING_ROLE);
-      assertEquals(parseInstanceStatus("FailedStartingVM"), InstanceStatus.FAILED_STARTING_VM);
-      assertEquals(parseInstanceStatus("UnresponsiveRole"), InstanceStatus.UNRESPONSIVE_ROLE);
-      assertEquals(parseInstanceStatus("StoppedDeallocated"), InstanceStatus.STOPPED_DEALLOCATED);
-      assertEquals(parseInstanceStatus("Preparing"), InstanceStatus.PREPARING);
-   }
-
-   public void parseInstanceStatus_Unrecognized() {
-      assertEquals(parseInstanceStatus("FooAddedToday"), InstanceStatus.UNRECOGNIZED);
-   }
-
-   public void test() {
-      InputStream is = getClass().getResourceAsStream("/deployment.xml");
-      Deployment result = factory.create(new DeploymentHandler(
-              new VirtualIPHandler(),
-              new RoleInstanceHandler(),
-              new RoleHandler(
-                      new ConfigurationSetHandler(new InputEndpointHandler(), new SubnetNameHandler()),
-                      new OSVirtualHardDiskHandler(),
-                      new DataVirtualHardDiskHandler(),
-                      new ResourceExtensionReferenceHandler(new ResourceExtensionParameterValueHandler()))))
-              .parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static Deployment expected() {
-      return Deployment.create( //
-              "node1855162607153993262-b26", // name
-              Slot.PRODUCTION, // slot
-              Status.RUNNING, // status
-              "node1855162607153993262-b26", // label
-              null, // instanceStateDetails
-              null, // instanceErrorCode
-              ImmutableList.of(Deployment.VirtualIP.create("191.233.85.49", true, "node1855162607153993262-b26ContractContract")), //virtualIPs
-              ImmutableList.of(Deployment.RoleInstance.create(
-                              "node1855162607153993262-b26", // roleName
-                              "node1855162607153993262-b26", // instanceName
-                              InstanceStatus.READY_ROLE, //instanceStatus
-                              Deployment.PowerState.STARTED,
-                              0,
-                              0,
-                              RoleSize.Type.BASIC_A0,
-                              "10.0.2.6",
-                              "node1855162607153993262-b26", // hostname
-                              ImmutableList.of(
-                                      Deployment.InstanceEndpoint.create(
-                                              "tcp_22-22", // name
-                                              "191.233.85.49", // vip
-                                              22, // publicPort
-                                              22, // localPort
-                                              "tcp" // protocol
-                                      )
-                              )
-                      )),
-              ImmutableList.of(Role.create(
-                              "node1855162607153993262-b26",
-                              "PersistentVMRole",
-                              null,
-                              null,
-                              ImmutableList.of(ConfigurationSet.create(
-                                              "NetworkConfiguration",
-                                              ImmutableList.of(
-                                                      InputEndpoint.create("tcp_22-22", "tcp", 22, 22, "191.233.85.49", false, null, null, null),
-                                                      InputEndpoint.create("tcp_2375-2375", "tcp", 2375, 2375, "191.233.85.49", false, null, null, null)
-                                              ),
-                                              ImmutableList.of(ConfigurationSet.SubnetName.create("Subnet-1")),
-                                              null,
-                                              ImmutableList.<ConfigurationSet.PublicIP>of(),
-                                              null)),
-                              ImmutableList.<Role.ResourceExtensionReference>of(),
-                              null,
-                              ImmutableList.<DataVirtualHardDisk>of(),
-                              OSVirtualHardDisk.create(
-                                      "ReadWrite",
-                                      "node1855162607153993262-b26-node1855162607153993262-b26-0-201412221704390597",
-                                      null,
-                                      null,
-                                      URI.create("https://test.blob.core.windows.net/clockerblob/container-node1855162607153993262-b26.vhd"),
-                                      "b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu_DAILY_BUILD-trusty-14_04_1-LTS-amd64-server-20141212-en-us-30GB",
-                                      OSImage.Type.LINUX),
-                              RoleSize.Type.BASIC_A0,
-                              null,
-                              null
-                      )),
-              "jclouds" // virtualNetworkName
-      );
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ErrorHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ErrorHandlerTest.java
deleted file mode 100644
index d627c23..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ErrorHandlerTest.java
+++ /dev/null
@@ -1,42 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-
-import org.jclouds.azurecompute.domain.Error;
-import org.jclouds.azurecompute.domain.Error.Code;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "ErrorHandlerTest")
-public class ErrorHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      InputStream is = getClass().getResourceAsStream("/error.xml");
-      Error result = factory.create(new ErrorHandler()).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static Error expected() {
-      return Error.create(Code.MISSING_OR_INVALID_REQUIRED_QUERY_PARAMETER,
-              "A required query parameter was not specified for this request or was specified incorrectly.");
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListAffinityGroupsHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListAffinityGroupsHandlerTest.java
deleted file mode 100644
index 747b0d2..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListAffinityGroupsHandlerTest.java
+++ /dev/null
@@ -1,90 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.AffinityGroup;
-import org.jclouds.azurecompute.domain.ComputeCapabilities;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.BaseHandlerTest;
-
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "ListAffinityGroupsHandlerTest")
-public class ListAffinityGroupsHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      final InputStream input = getClass().getResourceAsStream("/affinityGroups.xml");
-      final List<AffinityGroup> result = factory.create(new ListAffinityGroupsHandler(
-              new AffinityGroupHandler(new ComputeCapabilitiesHandler()))).parse(input);
-
-      assertEquals(result, expected());
-   }
-
-   public static List<AffinityGroup> expected() {
-      return ImmutableList.of(
-              AffinityGroup.create(
-                      "Test1",
-                      "Test1",
-                      "Test 1 description",
-                      "West Europe",
-                      ImmutableList.of(
-                              AffinityGroup.Capability.PersistentVMRole,
-                              AffinityGroup.Capability.HighMemory
-                      ),
-                      new SimpleDateFormatDateService().iso8601DateOrSecondsDateParse("2015-03-09T15:15:29Z"),
-                      ComputeCapabilities.create(
-                              ImmutableList.of(
-                                      RoleSize.Type.A10,
-                                      RoleSize.Type.A11
-                              ),
-                              ImmutableList.of(
-                                      RoleSize.Type.A10,
-                                      RoleSize.Type.A11)
-                      )
-              ),
-              AffinityGroup.create(
-                      "Test2",
-                      "Test2",
-                      null,
-                      "Southeast Asia",
-                      ImmutableList.of(
-                              AffinityGroup.Capability.PersistentVMRole,
-                              AffinityGroup.Capability.HighMemory
-                      ),
-                      new SimpleDateFormatDateService().iso8601DateOrSecondsDateParse("2015-03-09T15:16:10Z"),
-                      ComputeCapabilities.create(
-                              ImmutableList.of(
-                                      RoleSize.Type.EXTRALARGE,
-                                      RoleSize.Type.EXTRASMALL
-                              ),
-                              ImmutableList.of(
-                                      RoleSize.Type.EXTRALARGE,
-                                      RoleSize.Type.EXTRASMALL
-                              )
-                      )
-              )
-      );
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListCloudServicesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListCloudServicesHandlerTest.java
deleted file mode 100644
index 7f98ca7..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListCloudServicesHandlerTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.Collections;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.CloudService.Status;
-import org.jclouds.date.DateService;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "ListHostedServicesHandlerTest")
-public class ListCloudServicesHandlerTest extends BaseHandlerTest {
-
-   private static final DateService DATE_SERVICE = new SimpleDateFormatDateService();
-
-   public void test() {
-      InputStream is = getClass().getResourceAsStream("/hostedservices.xml");
-      ListCloudServicesHandler handler = new ListCloudServicesHandler(new CloudServiceHandler(DATE_SERVICE));
-      List<CloudService> result = factory.create(handler).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static List<CloudService> expected() {
-      return ImmutableList.of( //
-              CloudService.create( //
-                      "neotys", // name
-                      "West Europe", // location
-                      null, // affinityGroup
-                      "neotys", // label
-                      "Implicitly created cloud service2012-08-06 14:55", // description
-                      Status.CREATED, // status
-                      DATE_SERVICE.iso8601SecondsDateParse("2012-08-06T14:55:17Z"), // created
-                      DATE_SERVICE.iso8601SecondsDateParse("2012-08-06T15:50:34Z"), // lastModified
-                      Collections.<String, String>emptyMap() // extendedProperties
-              ), //
-              CloudService.create( //
-                      "neotys3", // name
-                      "West Europe", // location
-                      null, // affinityGroup
-                      "neotys3", // label
-                      null, // description
-                      Status.CREATED, // status
-                      DATE_SERVICE.iso8601SecondsDateParse("2012-08-07T09:00:02Z"), // created
-                      DATE_SERVICE.iso8601SecondsDateParse("2012-08-07T09:00:02Z"), // lastModified
-                      Collections.<String, String>emptyMap() // extendedProperties
-              ));
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDataVirtualHardDisksHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDataVirtualHardDisksHandlerTest.java
deleted file mode 100644
index df7968a..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDataVirtualHardDisksHandlerTest.java
+++ /dev/null
@@ -1,60 +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.xml;
-
-import com.google.common.collect.ImmutableList;
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.util.List;
-
-import static org.testng.Assert.assertEquals;
-
-@Test(groups = "unit", testName = "ListDataVirtualHardDiskHandlerTest")
-public class ListDataVirtualHardDisksHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      InputStream is = getClass().getResourceAsStream("/datavirtualharddisk.xml");
-      List<DataVirtualHardDisk> result = factory
-              .create(new ListDataVirtualHardDisksHandler(new DataVirtualHardDiskHandler())).parse(is);
-      assertEquals(result, expected());
-   }
-
-   public static List<DataVirtualHardDisk> expected() {
-      return ImmutableList.of(
-              DataVirtualHardDisk.create(
-                      DataVirtualHardDisk.Caching.READ_ONLY,
-                      "testimage1-testimage1-0-20120817095145",
-                      10,
-                      30,
-                      URI.create("http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd"),
-                      "Standard"
-              ),
-              DataVirtualHardDisk.create(
-                      DataVirtualHardDisk.Caching.READ_WRITE,
-                      "testimage2-testimage2-0-20120817095145",
-                      10,
-                      30,
-                      URI.create("http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd"),
-                      "Standard"
-              )
-      );
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDisksHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDisksHandlerTest.java
deleted file mode 100644
index 8e80cea..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDisksHandlerTest.java
+++ /dev/null
@@ -1,67 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Disk;
-import org.jclouds.azurecompute.domain.Disk.Attachment;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "ListDisksHandlerTest")
-public class ListDisksHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      InputStream is = getClass().getResourceAsStream("/disks.xml");
-      List<Disk> result = factory.create(new ListDisksHandler(new DiskHandler())).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static List<Disk> expected() {
-      return ImmutableList.of( //
-              Disk.create( //
-                      "testimage2-testimage2-0-20120817095145", // name
-                      "West Europe", // location
-                      null, // affinityGroup
-                      null, //description
-                      OSImage.Type.LINUX, // os
-                      URI.create("http://blobs/vhds/testimage2-testimage2-2012-08-17.vhd"), // mediaLink
-                      30, // logicalSizeInGB
-                      null, // attachedTo
-                      "OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd" // sourceImage
-              ), Disk.create( //
-                      "neotysss-neotysss-0-20120824091357", // name
-                      "West Europe", // location
-                      null, // affinityGroup
-                      null, //description
-                      OSImage.Type.WINDOWS, // os
-                      URI.create("http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd"), // mediaLink
-                      30, // logicalSizeInGB
-                      Attachment.create("neotysss", "neotysss", "neotysss"), // attachedTo
-                      "MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd" // sourceImage
-              ));
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListLocationsHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListLocationsHandlerTest.java
deleted file mode 100644
index 9196ccd..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListLocationsHandlerTest.java
+++ /dev/null
@@ -1,53 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "ListLocationsHandlerTest")
-public class ListLocationsHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      InputStream is = getClass().getResourceAsStream("/locations.xml");
-      List<Location> result = factory.create(
-              new ListLocationsHandler(new LocationHandler(new ComputeCapabilitiesHandler()))).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static List<Location> expected() {
-      List<String> availableServices = ImmutableList.of("Compute", "Storage", "PersistentVMRole");
-      return ImmutableList.of(
-              Location.create("West US", "West US", availableServices, null),
-              Location.create("East US", "East US", availableServices, null),
-              Location.create("East Asia", "East Asia", availableServices, null),
-              Location.create("Southeast Asia", "Southeast Asia", availableServices, null),
-              Location.create("North Europe", "North Europe", availableServices, null),
-              Location.create("West Europe", "West Europe", availableServices, null)
-      );
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListNetworkSecurityGroupsHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListNetworkSecurityGroupsHandlerTest.java
deleted file mode 100644
index 30ef02a..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListNetworkSecurityGroupsHandlerTest.java
+++ /dev/null
@@ -1,47 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-
-@Test(groups = "unit", testName = "ListNetworkSecurityGroupsHandlerTest")
-public class ListNetworkSecurityGroupsHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      final InputStream is = getClass().getResourceAsStream("/networksecuritygroups.xml");
-      final List<NetworkSecurityGroup> result = factory.create(
-              new ListNetworkSecurityGroupsHandler(new NetworkSecurityGroupHandler())).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static List<NetworkSecurityGroup> expected() {
-      return ImmutableList.of(
-              NetworkSecurityGroup.create("group1", "sec group 1", "West Europe", null, null),
-              NetworkSecurityGroup.create("group2", "sec group 2", "North Europe", null, null));
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListOSImagesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListOSImagesHandlerTest.java
deleted file mode 100644
index 593da0c..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListOSImagesHandlerTest.java
+++ /dev/null
@@ -1,178 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "ListImagesHandlerTest")
-public class ListOSImagesHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      InputStream is = getClass().getResourceAsStream("/images.xml");
-      List<OSImage> result = factory.create(new ListOSImagesHandler(new OSImageHandler())).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static List<OSImage> expected() {
-      return ImmutableList.of( //
-              OSImage.create( //
-                      "CANONICAL__Canonical-Ubuntu-12-04-amd64-server-20120528.1.3-en-us-30GB.vhd", // name
-                      null, // locations
-                      null, // affinityGroup
-                      "Ubuntu Server 12.04 LTS", // label
-                      "Ubuntu Server 12.04 LTS amd64 20120528 Cloud Image", //description
-                      "Ubuntu Server 12.04 LTS", // imageFamily
-                      "Canonical", // category
-                      OSImage.Type.LINUX, // os
-                      "Canonical", //publisherName
-                      null, // mediaLink
-                      30, // logicalSizeInGB
-                      Arrays.asList("http://www.ubuntu.com/project/about-ubuntu/licensing") // eula
-              ),
-              OSImage.create( //
-                      "MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd", // name
-                      "North Europe", // locations
-                      null, // affinityGroup
-                      "Windows Server 2008 R2 SP1, June 2012", // label
-                      "Windows Server 2008 R2 is a multi-purpose server.", //description
-                      "Windows Server 2008 R2 SP1", // imageFamily
-                      "Microsoft", // category
-                      OSImage.Type.WINDOWS, // os
-                      "Microsoft", //publisherName
-                      URI.create("http://blobs/disks/mydeployment/"
-                              + "MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd"),
-                      // mediaLink
-                      30, // logicalSizeInGB
-                      Collections.<String>emptyList() // eula
-              ),
-              OSImage.create( //
-                      "MSFT__Sql-Server-11EVAL-11.0.2215.0-05152012-en-us-30GB.vhd", // name
-                      null, // locations
-                      null, // affinityGroup
-                      "Microsoft SQL Server 2012 Evaluation Edition", // label
-                      "SQL Server 2012 Evaluation Edition (64-bit).", //description
-                      null, // imageFamily
-                      "Microsoft", // category
-                      OSImage.Type.WINDOWS, // os
-                      "Microsoft", //publisherName
-                      null, // mediaLink
-                      30, // logicalSizeInGB
-                      Arrays.asList("http://go.microsoft.com/fwlink/?LinkID=251820",
-                              "http://go.microsoft.com/fwlink/?LinkID=131004") // eula
-              ),
-              OSImage.create( //
-                      "MSFT__Win2K12RC-Datacenter-201207.02-en.us-30GB.vhd", // name
-                      null, // locations
-                      null, // affinityGroup
-                      "Windows Server 2012 Release Candidate, July 2012", // label
-                      "Windows Server 2012 incorporates Microsoft's experience building.", //description
-                      null, // imageFamily
-                      "Microsoft", // category
-                      OSImage.Type.WINDOWS, // os
-                      "Microsoft", //publisherName
-                      null, // mediaLink
-                      30, // logicalSizeInGB
-                      Collections.<String>emptyList() // eula
-              ),
-              OSImage.create( //
-                      "MSFT__Win2K8R2SP1-Datacenter-201207.01-en.us-30GB.vhd", // name
-                      null, // locations
-                      null, // affinityGroup
-                      "Windows Server 2008 R2 SP1, July 2012", // label
-                      "Windows Server 2008 R2 is a multi-purpose server.", //description
-                      null, // imageFamily
-                      "Microsoft", // category
-                      OSImage.Type.WINDOWS, // os
-                      "Microsoft", //publisherName
-                      null, // mediaLink
-                      30, // logicalSizeInGB
-                      Collections.<String>emptyList() // eula
-              ),
-              OSImage.create( //
-                      "OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd", // name
-                      null, // locations
-                      null, // affinityGroup
-                      "OpenLogic CentOS 6.2", // label
-                      "This distribution of Linux is based on CentOS.", //description
-                      null, // imageFamily
-                      "OpenLogic", // category
-                      OSImage.Type.LINUX, // os
-                      "openLogic", //publisherName
-                      URI.create("http://blobs/disks/mydeployment/"
-                              + "OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd"),
-                      // mediaLink
-                      30, //logicalSizeInGB
-                      Arrays.asList("http://www.openlogic.com/azure/service-agreement/") // eula
-              ),
-              OSImage.create( //
-                      "SUSE__openSUSE-12-1-20120603-en-us-30GB.vhd", // name
-                      null, // locations
-                      null, // affinityGroup
-                      "openSUSE 12.1", // label
-                      "openSUSE is a free and Linux-based operating system!", //description
-                      null, // imageFamily
-                      "SUSE", // category
-                      OSImage.Type.LINUX, // os
-                      "SUSE", //publisherName
-                      null, // mediaLink
-                      30, // logicalSizeInGB
-                      Arrays.asList("http://opensuse.org/") // eula
-              ),
-              OSImage.create( //
-                      "SUSE__SUSE-Linux-Enterprise-Server-11SP2-20120601-en-us-30GB.vhd", // name
-                      null, // locations
-                      null, // affinityGroup
-                      "SUSE Linux Enterprise Server", // label
-                      "SUSE Linux Enterprise Server is a highly reliable value.", //description
-                      null, // imageFamily
-                      "SUSE", // category
-                      OSImage.Type.LINUX, // os
-                      "SUSE", //publisherName
-                      null, // mediaLink
-                      30, // logicalSizeInGB
-                      Arrays.asList("http://www.novell.com/licensing/eula/") // eula
-              ),
-              OSImage.create( //
-                      "0b11de9248dd4d87b18621318e037d37__RightImage-CentOS-6.4-x64-v13.4", // name
-                      null, // locations
-                      null, // affinityGroup
-                      "RightImage-CentOS-6.4-x64-v13.4", // label
-                      null, //description
-                      null, // imageFamily
-                      "RightScale with Linux", // category
-                      OSImage.Type.LINUX, // os
-                      "RightScale with Linux",
-                      null, // mediaLink
-                      10, // logicalSizeInGB
-                      Collections.<String>emptyList() // No EULA, as RightScale stuffed ';' into the field.
-              )
-      );
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListProfileDefinitionsHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListProfileDefinitionsHandlerTest.java
deleted file mode 100644
index c14c2ee..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListProfileDefinitionsHandlerTest.java
+++ /dev/null
@@ -1,75 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import java.util.ArrayList;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpoint;
-import org.jclouds.azurecompute.domain.ProfileDefinitionMonitor;
-
-@Test(groups = "unit", testName = "ListProfileDefinitionsHandlerTest")
-public class ListProfileDefinitionsHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      final InputStream is = getClass().getResourceAsStream("/listprofiledefinitions.xml");
-      final ListProfileDefinitionsHandler handler
-              = new ListProfileDefinitionsHandler(new ProfileDefinitionHandler(
-                              new ProfileDefinitionMonitorHandler(), new ProfileDefinitionEndpointHandler()));
-      final List<ProfileDefinition> result = factory.create(handler).parse(is);
-      assertEquals(result, expected());
-   }
-
-   public static List<ProfileDefinition> expected() {
-      final ArrayList<ProfileDefinitionMonitor> monitors = new ArrayList<ProfileDefinitionMonitor>();
-      monitors.add(ProfileDefinitionMonitor.create(
-              30, 10, 3, ProfileDefinition.Protocol.HTTP, 80, "GET", "/", 200));
-
-      final ArrayList<ProfileDefinitionEndpoint> endpoints = new ArrayList<ProfileDefinitionEndpoint>();
-      endpoints.add(ProfileDefinitionEndpoint.create("jclouds1.cloudapp.net",
-              ProfileDefinition.Status.ENABLED,
-              ProfileDefinition.HealthStatus.STOPPED,
-              ProfileDefinitionEndpoint.Type.CLOUDSERVICE,
-              null,
-              1,
-              null));
-
-      endpoints.add(ProfileDefinitionEndpoint.create("jclouds2.cloudapp.net",
-              ProfileDefinition.Status.ENABLED,
-              ProfileDefinition.HealthStatus.STOPPED,
-              ProfileDefinitionEndpoint.Type.CLOUDSERVICE,
-              null,
-              1,
-              null));
-
-      return ImmutableList.of(ProfileDefinition.create(300,
-              ProfileDefinition.Status.ENABLED,
-              "1",
-              monitors,
-              ProfileDefinition.LBMethod.ROUNDROBIN,
-              endpoints,
-              ProfileDefinition.HealthStatus.INACTIVE));
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListProfilesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListProfilesHandlerTest.java
deleted file mode 100644
index e062cd8..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListProfilesHandlerTest.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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-
-import org.jclouds.azurecompute.domain.Profile;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-
-@Test(groups = "unit", testName = "ListProfilesHandlerTest")
-public class ListProfilesHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      final InputStream is = getClass().getResourceAsStream("/listprofiles.xml");
-      final ListProfilesHandler handler = new ListProfilesHandler(new ProfileHandler());
-      final List<Profile> result = factory.create(handler).parse(is);
-      assertEquals(result, expected());
-   }
-
-   public static List<Profile> expected() {
-      return ImmutableList.of(
-              Profile.create("jclouds.trafficmanager.net",
-                      "jclouds",
-                      ProfileDefinition.Status.ENABLED,
-                      "1",
-                      ImmutableMap.<String, ProfileDefinition.Status>builder().put("1", ProfileDefinition.Status.ENABLED).build()
-              ),
-              Profile.create("jclouds2.trafficmanager.net",
-                      "jclouds2",
-                      ProfileDefinition.Status.DISABLED,
-                      null,
-                      ImmutableMap.<String, ProfileDefinition.Status>builder().build()
-              ));
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListReservedIPAddressHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListReservedIPAddressHandlerTest.java
deleted file mode 100644
index f39ac96..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListReservedIPAddressHandlerTest.java
+++ /dev/null
@@ -1,65 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import org.jclouds.azurecompute.domain.ReservedIPAddress;
-
-@Test(groups = "unit", testName = "ListReservedIPAddressHandlerTest")
-public class ListReservedIPAddressHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      final InputStream is = getClass().getResourceAsStream("/listreservedipaddress.xml");
-      final ListReservedIPAddressHandler handler
-              = new ListReservedIPAddressHandler(new ReservedIPAddressHandler());
-      final List<ReservedIPAddress> result = factory.create(handler).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static List<ReservedIPAddress> expected() {
-      return ImmutableList.of(
-              ReservedIPAddress.create(
-                      "jclouds_ip1",
-                      "23.101.78.155",
-                      "582c04d0-b169-4791-a706-f2b2bc36a742",
-                      null,
-                      ReservedIPAddress.State.CREATED,
-                      true,
-                      "jclouds_s",
-                      "jclouds_d",
-                      "West Europe"),
-              ReservedIPAddress.create(
-                      "jclouds_ip2",
-                      "23.101.69.44",
-                      "4e00454a-351a-4dae-aabd-c933b60e967c",
-                      "jclouds ip2 label",
-                      ReservedIPAddress.State.CREATED,
-                      null,
-                      null,
-                      null,
-                      "West Europe"));
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListRoleSizesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListRoleSizesHandlerTest.java
deleted file mode 100644
index d65df87..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListRoleSizesHandlerTest.java
+++ /dev/null
@@ -1,64 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import org.jclouds.azurecompute.domain.RoleSize;
-
-@Test(groups = "unit", testName = "ListRoleSizesHandlerTest")
-public class ListRoleSizesHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      final InputStream is = getClass().getResourceAsStream("/rolesizes.xml");
-      final List<RoleSize> result = factory.create(new ListRoleSizesHandler(new RoleSizeHandler())).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static List<RoleSize> expected() {
-      return ImmutableList.of(
-              RoleSize.create(
-                      RoleSize.Type.A10,
-                      "A10 (8 cores, 57344 MB)",
-                      8,
-                      57344,
-                      Boolean.TRUE,
-                      Boolean.TRUE,
-                      16,
-                      1861268,
-                      391828),
-              RoleSize.create(
-                      RoleSize.Type.A11,
-                      "A11 (16 cores, 114688 MB)",
-                      16,
-                      114688,
-                      Boolean.TRUE,
-                      Boolean.TRUE,
-                      16,
-                      1861268,
-                      391828)
-      );
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListServiceCertificatessHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListServiceCertificatessHandlerTest.java
deleted file mode 100644
index a7e59df..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListServiceCertificatessHandlerTest.java
+++ /dev/null
@@ -1,90 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import java.net.URI;
-import org.jclouds.azurecompute.domain.ServiceCertificate;
-
-@Test(groups = "unit", testName = "ListServiceCertificatessHandlerTest")
-public class ListServiceCertificatessHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      final InputStream is = getClass().getResourceAsStream("/servicecertificates.xml");
-      final ListServiceCertificatesHandler handler
-              = new ListServiceCertificatesHandler(new ServiceCertificateHandler());
-      final List<ServiceCertificate> result = factory.create(handler).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static List<ServiceCertificate> expected() {
-      return ImmutableList.of(
-              ServiceCertificate.create(
-                      URI.create("https://management.core.windows.net/d6769fbe-4649-453f-8435-c07f0cc0709d/services/"
-                              + "hostedservices/prova/certificates/sha1-8D6ED1395205C57D23E518672903FDAF144EE8AE"),
-                      "8D6ED1395205C57D23E518672903FDAF144EE8AE",
-                      "sha1",
-                      "MIIDyzCCArOgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQ"
-                      + "HDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJ"
-                      + "KoZIhvcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MzQwWhcNMTYwMzAzMTQ1MzQwWjBVMQswC"
-                      + "QYDVQQGEwJJVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQswCQYDVQQLDAJBTTEWMBQGA1"
-                      + "UEAwwNYW0udGlyYXNhLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMzqTZFbzahmEqp60tx"
-                      + "g8aUYw4Y7PL44A7rzHVnb5cb01/4VVjNeijmROOL8o5ZEbkNkQly43zjoZcrkw4bpvOz95OP8/NH/ZgyYKR42"
-                      + "VqcTlxcj/22iq2Ie1XhWsKARmObdnNUcFCsdqXWXBo0bLF+WuUYh4ZoMxFMlP7YYl7WOCCgekE8E9sL02RuLZ"
-                      + "gq7v2M6fsxhT5rEG81jzUlmY5c/jXZKbUIBaltKtzC3DnBpuk9u+S87WseqTeuhUzF6VvgwmiQ+zeHdr5Hjqx"
-                      + "rvmq445DPz+2U3PYN1vFoB/6QzjtZVakSfOSZ0YAtFhZFHmR11kJTNMfVQ5k5oIQPtHksCAwEAAaN7MHkwCQY"
-                      + "DVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE"
-                      + "FOIYM6WyNdc4odsThFVtOefT/xg1MB8GA1UdIwQYMBaAFDqheOl4dpXYelhPC/bM+VdN1AXpMA0GCSqGSIb3D"
-                      + "QEBCwUAA4IBAQB33qLYghIYa2j1ycHBpeZVadsb8xb4AnfnAW9g5dYfZP1eIvmKzOxN3CjpuCRKNI4vyKHiLb"
-                      + "ucfFDl5zi9BdYwwdduPbYTgE8F8Ilyit3irSRJFk1wHICX0sBPq5ulz39MPZsP2Fmzbrphr9BrRZOc1RJdHnj"
-                      + "8C7phrfBneGSfwoY+qH5H6/h5A5rS8oDAraeklR2RJK4ztK+yDvp8orRDJQq5LAALQtWDhdW8Qj7WoIbGUeB7"
-                      + "7aJLluLOgriJLK+kKaGoUuAaKFRJXPyTmtUC17CJUJbapmtDwivILhU/dSdz6+1YXTg0ddNNlug3I6L5VVRnl"
-                      + "wJJc/hIna1VjQJO"
-              ),
-              ServiceCertificate.create(
-                      URI.create("https://management.core.windows.net/d6769fbe-4649-453f-8435-c07f0cc0709d/services/"
-                              + "hostedservices/prova/certificates/sha1-CCA59C5AA24866BB292F01B81E6A77FAF8FCDC73"),
-                      "CCA59C5AA24866BB292F01B81E6A77FAF8FCDC73",
-                      "sha1",
-                      "MIIDzTCCArWgAwIBAgICEAYwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQ"
-                      + "QHDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAY"
-                      + "JKoZIhvcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MTI2WhcNMTYwMzAzMTQ1MTI2WjBXMQsw"
-                      + "CQYDVQQGEwJJVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQwwCgYDVQQLDANJZE0xFzAVB"
-                      + "gNVBAMMDmlkbS50aXJhc2EubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1G1ejg5eHZzhVc"
-                      + "a8OOD6pq0fj5VDEYIxG7CGDl4I8N3NE+svIGTYumdKUn1+FFyfgxsPCh7zfoSq0hnelRpBI3w9wfic1856/wN"
-                      + "z4ZsLQgcrm6wwwVXEfWGKYF1r8pTBzAYqNzQFqypSL9kU/YJfeY8XR3eJ3vQersAiKUQVQqk1H10R2aURqlCF"
-                      + "s1xc/ta9INNS+SLgWEBmQNnpwHfb7IsIYmPfqvbZsfAJ9KDqIdA5mjPz1elHNLLMi4phGPpbAH7AszZbrRaFt"
-                      + "bI0o5nAL6tS37f3iEV1L7cWo/am6MGg0PF4T9GRdL8D0gl9BDskMUHD+n8cJOEO2sQVJBKszwIDAQABo3sweT"
-                      + "AJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4"
-                      + "EFgQU4GbbmOK+5WNBil8edbwKYHIhCJMwHwYDVR0jBBgwFoAUOqF46Xh2ldh6WE8L9sz5V03UBekwDQYJKoZI"
-                      + "hvcNAQELBQADggEBAMqr+GoBBf7UPo4dBoQef4OhrNGCcYz6E0B8WID7ZG6KLv6TyTi5iEna/bbc60HisVqUo"
-                      + "FIMyMa+bHiLNwObNQ/+edklNyPe48OHYX2421x3H//M/n6SpRxP5i1NSlqtcw6WnXzaTHUwV8v+5ctG1QAKrJ"
-                      + "+nwwDRWzALxPJvw4TDeggRIkzAqIySrN+nRkVNliGlnZEI8NjJdelS/83E02LAxj3sPJp1yS5lWia88eNg6UX"
-                      + "Y2vQf9CwrXjOz0aOvVOwHJxXBxS0tqv+bg0D5B640WdcZOhgzDxte6DDkiSU+P7nZUW1Bwtk0WD9GKN2+YPg/"
-                      + "ElLLB5nSEGZSVN6Xfn8="
-              ));
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListStorageServiceHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListStorageServiceHandlerTest.java
deleted file mode 100644
index 4f9935a..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListStorageServiceHandlerTest.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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
-import org.assertj.core.util.Lists;
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.date.DateService;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "ListStorageServiceHandlerTest")
-public class ListStorageServiceHandlerTest extends BaseHandlerTest {
-
-   private static final DateService DATE_SERVICE = new SimpleDateFormatDateService();
-
-   public void list() throws MalformedURLException {
-      final InputStream input = getClass().getResourceAsStream("/storageservices.xml");
-      final List<StorageService> result = factory.create(
-              new ListStorageServicesHandler(new StorageServiceHandler(DATE_SERVICE))).
-              parse(input);
-      assertEquals(result, expected());
-   }
-
-   public static List<StorageService> expected() throws MalformedURLException {
-      final StorageService.StorageServiceProperties props = StorageService.StorageServiceProperties.create(
-              null,
-              null,
-              "West Europe",
-              "serviceName",
-              StorageService.Status.Created,
-              ImmutableList.of(
-                      new URL("https://serviceName.blob.core.windows.net/"),
-                      new URL("https://serviceName.queue.core.windows.net/"),
-                      new URL("https://serviceName.table.core.windows.net/")),
-              "West Europe",
-              StorageService.RegionStatus.Available,
-              null,
-              null,
-              null,
-              DATE_SERVICE.iso8601DateOrSecondsDateParse("2015-03-30T10:15:00Z"),
-              Lists.<String>emptyList(),
-              Lists.<URL>emptyList(),
-              StorageService.AccountType.Standard_LRS);
-      final Map<String, String> extProps = ImmutableMap.of(
-              "ResourceGroup", "Default-Storage-WestEurope",
-              "ResourceLocation", "West Europe");
-
-      return ImmutableList.of(StorageService.create(
-              new URL("https://management.core.windows.net/subscriptionid/services/storageservices/serviceName"),
-              "serviceName",
-              props,
-              extProps,
-              null));
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListVMImagesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListVMImagesHandlerTest.java
deleted file mode 100644
index 4befa28..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListVMImagesHandlerTest.java
+++ /dev/null
@@ -1,106 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import com.google.common.collect.ImmutableList;
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.VMImage;
-import org.jclouds.date.DateService;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.util.List;
-
-@Test(groups = "unit", testName = "ListVMImagesHandlerTest")
-public class ListVMImagesHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      InputStream is = getClass().getResourceAsStream("/vmimages.xml");
-      List<VMImage> result = factory.create(new ListVMImagesHandler(new VMImageHandler(
-            new DataVirtualHardDiskHandler(),
-            new OSConfigHandler()
-      ))).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static List<VMImage> expected() {
-      DateService dateService = new SimpleDateFormatDateService();
-      return ImmutableList.of(
-            VMImage.create("1acf693f34c74e86a50be61cb631ddfe__ClouderaGolden-202406-699696",
-                  "CDH 5.1 Evaluation",
-                  "Public",
-                  "Single click deployment of CDH 5.1 Evaluation for MR, HDFS and HIVE",
-                  OSDiskConfig(),
-                  dataDiskConfig(),
-                  null,
-                  null,
-                  null,
-                  "East Asia;Southeast Asia;Australia East;Australia Southeast;Brazil South;North Europe",
-                  null,
-                  dateService.iso8601DateOrSecondsDateParse("2014-07-05T14:55:17Z"),
-                  dateService.iso8601DateOrSecondsDateParse("2014-09-06T22:58:11Z"),
-                  null,
-                  "CDH 5.1 Evaluation",
-                  null,
-                  false,
-                  "http://www.gnu.org/copyleft/gpl.html",
-                  null,
-                  null,
-                  URI.create("http://www.cloudera.com/content/cloudera/en/privacy-policy.html"),
-                  dateService.iso8601DateOrSecondsDateParse("2012-07-05T14:55:17Z")
-            )
-      );
-   }
-
-   public static VMImage.OSDiskConfiguration OSDiskConfig() {
-      return VMImage.OSDiskConfiguration.create("ClouderaGolden-202406-699696-os-2014-10-06",
-            VMImage.OSDiskConfiguration.Caching.READ_WRITE,
-            VMImage.OSDiskConfiguration.OSState.SPECIALIZED,
-            OSImage.Type.LINUX,
-            null,
-            30,
-            null);
-   }
-
-   public static List<DataVirtualHardDisk> dataDiskConfig() {
-      return ImmutableList.of(
-            DataVirtualHardDisk.create(
-                  DataVirtualHardDisk.Caching.READ_ONLY,
-                  "testimage1-testimage1-0-20120817095145",
-                  10,
-                  30,
-                  URI.create("http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd"),
-                  "Standard"
-            ),
-            DataVirtualHardDisk.create(
-                  DataVirtualHardDisk.Caching.READ_WRITE,
-                  "testimage2-testimage2-0-20120817095145",
-                  20,
-                  30,
-                  URI.create("http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd"),
-                  "Standard"
-            )
-      );
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListVirtualNetworkSitesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListVirtualNetworkSitesHandlerTest.java
deleted file mode 100644
index ecbb663..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListVirtualNetworkSitesHandlerTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "ListVirtualNetworkSitesHandlerTest")
-public class ListVirtualNetworkSitesHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      InputStream is = getClass().getResourceAsStream("/virtualnetworksites.xml");
-      List<VirtualNetworkSite> result = factory.create(new ListVirtualNetworkSitesHandler(new VirtualNetworkSiteHandler())).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static List<VirtualNetworkSite> expected() {
-      return ImmutableList.of(
-              VirtualNetworkSite.create(
-                      "39d0d14b-fc1d-496f-8928-b5a13a6f4b64",
-                      "Group Group testDocker",
-                      "West Europe",
-                      NetworkConfiguration.AddressSpace.create("10.1.0.0/16"),
-                      ImmutableList.of(NetworkConfiguration.Subnet.create("Subnet-1", "10.1.0.0/24", null))
-              ),
-              VirtualNetworkSite.create(
-                      "12252126-cffc-4fac-8ba4-afa7150a8d4a",
-                      "Group Group-1 dockertest",
-                      "West Europe",
-                      NetworkConfiguration.AddressSpace.create("10.2.0.0/16"),
-                      ImmutableList.of(NetworkConfiguration.Subnet.create("Subnet-1", "10.2.0.0/24", null))
-              )
-      );
-   }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/NetworkConfigurationHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/NetworkConfigurationHandlerTest.java
deleted file mode 100644
index b6a7e65..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/NetworkConfigurationHandlerTest.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.xml;
-
-import static org.testng.Assert.assertEquals;
-import java.io.InputStream;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "NetworkConfigurationHandlerTest")
-public class NetworkConfigurationHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      InputStream is = getClass().getResourceAsStream("/networkconfiguration.xml");
-      NetworkConfiguration result = factory.create(new NetworkConfigurationHandler(new VirtualNetworkConfigurationHandler())).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static NetworkConfiguration expected() {
-      return NetworkConfiguration.create(
-              NetworkConfiguration.VirtualNetworkConfiguration.create(null,
-                      ImmutableList.of(NetworkConfiguration.VirtualNetworkSite.create(
-                                      null,
-                                      "jclouds-virtual-network",
-                                      "West Europe",
-                                      NetworkConfiguration.AddressSpace.create("10.0.0.0/20"),
-                                      ImmutableList.of(NetworkConfiguration.Subnet.create("jclouds-1", "10.0.0.0/23", null))))
-              )
-      );
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/NetworkSecurityGroupHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/NetworkSecurityGroupHandlerTest.java
deleted file mode 100644
index ccf6c82..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/NetworkSecurityGroupHandlerTest.java
+++ /dev/null
@@ -1,153 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "NetworkSecurityGroupHandlerTest")
-public class NetworkSecurityGroupHandlerTest extends BaseHandlerTest {
-
-   public void testFull() {
-      final InputStream is = getClass().getResourceAsStream("/networksecuritygroupfulldetails.xml");
-      final NetworkSecurityGroup result = factory.create(new NetworkSecurityGroupHandler()).parse(is);
-      assertEquals(result, expectedFull());
-   }
-
-   public void test() {
-      final InputStream is = getClass().getResourceAsStream("/networksecuritygroup.xml");
-      final NetworkSecurityGroup result = factory.create(new NetworkSecurityGroupHandler()).parse(is);
-      assertEquals(result, expected());
-   }
-
-   public void testForSubnet() {
-      final InputStream is = getClass().getResourceAsStream("/networksecuritygroupforsubnet.xml");
-      final NetworkSecurityGroup result = factory.create(new NetworkSecurityGroupHandler()).parse(is);
-      assertEquals(result, expectedForSubnet());
-   }
-
-   public static NetworkSecurityGroup expected() {
-      return NetworkSecurityGroup.create("group1", "sec group 1", "West Europe", null, null);
-   }
-
-   public static NetworkSecurityGroup expectedForSubnet() {
-      return NetworkSecurityGroup.create("group1", null, null, NetworkSecurityGroup.State.CREATED, null);
-   }
-
-   public static NetworkSecurityGroup expectedFull() {
-      return NetworkSecurityGroup.create( //
-              "jclouds-NSG", // name
-              "jclouds-NSG", // label
-              "West Europe", // location
-              null, // Network Security Group state
-              ImmutableList.of(
-                      Rule.create("tcp_10-20", // name
-                              Rule.Type.Inbound, // type
-                              "100", // priority
-                              Rule.Action.Allow, // action
-                              "INTERNET", // sourceAddressPrefix
-                              "*", // sourcePortRange
-                              "*", // destinationAddressPrefix
-                              "10-20", // destinationPortRange
-                              Rule.Protocol.TCP, // protocol
-                              "Active", // state
-                              null // isDefault
-                      ),
-                      Rule.create("ALLOW VNET INBOUND", // name
-                              Rule.Type.Inbound, // type
-                              "65000", // priority
-                              Rule.Action.Allow, // action
-                              "VIRTUAL_NETWORK", // sourceAddressPrefix
-                              "*", // sourcePortRange
-                              "VIRTUAL_NETWORK", // destinationAddressPrefix
-                              "*", // destinationPortRange
-                              Rule.Protocol.ALL, // protocol
-                              "Active", // state
-                              true // isDefault
-                      ),
-                      Rule.create("ALLOW VNET OUTBOUND", // name
-                              Rule.Type.Outbound, // type
-                              "65000", // priority
-                              Rule.Action.Allow, // action
-                              "VIRTUAL_NETWORK", // sourceAddressPrefix
-                              "*", // sourcePortRange
-                              "VIRTUAL_NETWORK", // destinationAddressPrefix
-                              "*", // destinationPortRange
-                              Rule.Protocol.ALL, // protocol
-                              "Active", // state
-                              true // isDefault
-                      ),
-                      Rule.create("ALLOW AZURE LOAD BALANCER INBOUND", // name
-                              Rule.Type.Inbound, // type
-                              "65001", // priority
-                              Rule.Action.Allow, // action
-                              "AZURE_LOADBALANCER", // sourceAddressPrefix
-                              "*", // sourcePortRange
-                              "*", // destinationAddressPrefix
-                              "*", // destinationPortRange
-                              Rule.Protocol.ALL, // protocol
-                              "Active", // state
-                              true // isDefault
-                      ),
-                      Rule.create("ALLOW INTERNET OUTBOUND", // name
-                              Rule.Type.Outbound, // type
-                              "65001", // priority
-                              Rule.Action.Allow, // action
-                              "*", // sourceAddressPrefix
-                              "*", // sourcePortRange
-                              "INTERNET", // destinationAddressPrefix
-                              "*", // destinationPortRange
-                              Rule.Protocol.ALL, // protocol
-                              "Active", // state
-                              true // isDefault
-                      ),
-                      Rule.create("DENY ALL OUTBOUND", // name
-                              Rule.Type.Outbound, // type
-                              "65500", // priority
-                              Rule.Action.Deny, // action
-                              "*", // sourceAddressPrefix
-                              "*", // sourcePortRange
-                              "*", // destinationAddressPrefix
-                              "*", // destinationPortRange
-                              Rule.Protocol.ALL, // protocol
-                              "Active", // state
-                              true // isDefault
-                      ),
-                      Rule.create("DENY ALL INBOUND", // name
-                              Rule.Type.Inbound, // type
-                              "65500", // priority
-                              Rule.Action.Deny, // action
-                              "*", // sourceAddressPrefix
-                              "*", // sourcePortRange
-                              "*", // destinationAddressPrefix
-                              "*", // destinationPortRange
-                              Rule.Protocol.ALL, // protocol
-                              "Active", // state
-                              true // isDefault
-                      )
-              ) // rules
-      );
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/OperationHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/OperationHandlerTest.java
deleted file mode 100644
index 635c5df..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/OperationHandlerTest.java
+++ /dev/null
@@ -1,41 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-
-import org.jclouds.azurecompute.domain.Operation;
-import org.jclouds.azurecompute.domain.Operation.Status;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "OperationHandlerTest")
-public class OperationHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      InputStream is = getClass().getResourceAsStream("/operation.xml");
-      Operation result = factory.create(new OperationHandler()).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static Operation expected() {
-      return Operation.create("request-id", Status.FAILED, 400, ErrorHandlerTest.expected());
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ProfileDefinitionHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ProfileDefinitionHandlerTest.java
deleted file mode 100644
index 292a46e..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ProfileDefinitionHandlerTest.java
+++ /dev/null
@@ -1,71 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinition.Status;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpoint;
-import org.jclouds.azurecompute.domain.ProfileDefinitionMonitor;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "ProfileDefinitionHandlerTest")
-public class ProfileDefinitionHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      final InputStream is = getClass().getResourceAsStream("/profiledefinition.xml");
-      final ProfileDefinition result = factory.create(new ProfileDefinitionHandler(
-              new ProfileDefinitionMonitorHandler(), new ProfileDefinitionEndpointHandler())).parse(is);
-      assertEquals(result, expected());
-   }
-
-   public static ProfileDefinition expected() {
-      final ArrayList<ProfileDefinitionMonitor> monitors = new ArrayList<ProfileDefinitionMonitor>();
-      monitors.add(ProfileDefinitionMonitor.create(
-              30, 10, 3, ProfileDefinition.Protocol.HTTP, 80, "GET", "/", 200));
-
-      final ArrayList<ProfileDefinitionEndpoint> endpoints = new ArrayList<ProfileDefinitionEndpoint>();
-      endpoints.add(ProfileDefinitionEndpoint.create("jclouds1.cloudapp.net",
-              Status.ENABLED,
-              ProfileDefinition.HealthStatus.STOPPED,
-              ProfileDefinitionEndpoint.Type.CLOUDSERVICE,
-              null,
-              1,
-              null));
-
-      endpoints.add(ProfileDefinitionEndpoint.create("jclouds2.cloudapp.net",
-              Status.ENABLED,
-              ProfileDefinition.HealthStatus.STOPPED,
-              ProfileDefinitionEndpoint.Type.CLOUDSERVICE,
-              null,
-              1,
-              null));
-
-      return ProfileDefinition.create(300,
-              Status.ENABLED,
-              "1",
-              monitors,
-              ProfileDefinition.LBMethod.ROUNDROBIN,
-              endpoints,
-              ProfileDefinition.HealthStatus.INACTIVE
-      );
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ProfileHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ProfileHandlerTest.java
deleted file mode 100644
index 173534b..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ProfileHandlerTest.java
+++ /dev/null
@@ -1,47 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-
-import org.jclouds.azurecompute.domain.Profile;
-import org.jclouds.azurecompute.domain.ProfileDefinition.Status;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableMap;
-
-@Test(groups = "unit", testName = "ProfileHandlerTest")
-public class ProfileHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      final InputStream is = getClass().getResourceAsStream("/profile.xml");
-      final Profile result = factory.create(new ProfileHandler()).parse(is);
-      assertEquals(result, expected());
-   }
-
-   public static Profile expected() {
-      return Profile.create("jclouds.trafficmanager.net",
-              "jclouds",
-              Status.ENABLED,
-              "1",
-              ImmutableMap.<String, Status>builder().put("1", Status.ENABLED).build()
-      );
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ReservedIPAddressHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ReservedIPAddressHandlerTest.java
deleted file mode 100644
index 8758254..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ReservedIPAddressHandlerTest.java
+++ /dev/null
@@ -1,47 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import org.jclouds.azurecompute.domain.ReservedIPAddress;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "ReservedIPAddressHandlerTest")
-public class ReservedIPAddressHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      final InputStream is = getClass().getResourceAsStream("/reservedipaddress.xml");
-      final ReservedIPAddress result = factory.create(new ReservedIPAddressHandler()).parse(is);
-      assertEquals(result, expected());
-   }
-
-   public static ReservedIPAddress expected() {
-      return ReservedIPAddress.create(
-              "jclouds_ip1",
-              "23.101.78.155",
-              "582c04d0-b169-4791-a706-f2b2bc36a742",
-              null,
-              ReservedIPAddress.State.CREATED,
-              true,
-              "jclouds_s",
-              "jclouds_d",
-              "West Europe");
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/RoleHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/RoleHandlerTest.java
deleted file mode 100644
index 7b2c5d6..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/RoleHandlerTest.java
+++ /dev/null
@@ -1,123 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-import java.io.InputStream;
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "RoleHandlerTest")
-public class RoleHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      InputStream is = getClass().getResourceAsStream("/role.xml");
-      Role result = factory.create(new RoleHandler(new ConfigurationSetHandler(new InputEndpointHandler(), new SubnetNameHandler()),
-              new OSVirtualHardDiskHandler(),
-              new DataVirtualHardDiskHandler(),
-              new ResourceExtensionReferenceHandler(new ResourceExtensionParameterValueHandler()))).parse(is);
-
-      assertEquals(result, expected());
-   }
-
-   public static Role expected() {
-      return Role.create(
-              "testvnetsg02",
-              "PersistentVMRole",
-              null,
-              null,
-              ImmutableList.of(Role.ConfigurationSet.create(
-                              "NetworkConfiguration",
-                              ImmutableList.of(
-                                      Role.ConfigurationSet.InputEndpoint.create("PowerShell", "tcp", 5986, 5986, "23.101.193.92", false, null, null, null),
-                                      Role.ConfigurationSet.InputEndpoint.create("Remote Desktop", "tcp", 3389, 59440, "23.101.193.92", false, null, null, null)
-                              ),
-                              ImmutableList.of(Role.ConfigurationSet.SubnetName.create("Subnet-1")),
-                              null,
-                              ImmutableList.<Role.ConfigurationSet.PublicIP>of(),
-                              "vnetnsgsg01")
-              ),
-              ImmutableList.of(
-                      Role.ResourceExtensionReference.create("BGInfo", "Microsoft.Compute", "BGInfo", "1.*", ImmutableList.<Role.ResourceExtensionReference.ResourceExtensionParameterValue>of(), "Enable")
-              ),
-              null,
-              ImmutableList.<DataVirtualHardDisk>of(),
-              Role.OSVirtualHardDisk.create(
-                      "ReadWrite",
-                      "testvnetsg02-testvnetsg02-0-201502180825130518",
-                      null,
-                      null,
-                      URI.create("https://portalvhdsxz8nc6chc32j1.blob.core.windows.net/vhds/testvnetsg02-testvnetsg02-2015-02-18.vhd"),
-                      "a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201412.01-en.us-127GB.vhd",
-                      OSImage.Type.WINDOWS),
-              RoleSize.Type.SMALL,
-              true,
-              null
-      );
-   }
-
-   public void test2() {
-      InputStream is = getClass().getResourceAsStream("/role2.xml");
-      Role result = factory.create(new RoleHandler(new ConfigurationSetHandler(new InputEndpointHandler(), new SubnetNameHandler()),
-              new OSVirtualHardDiskHandler(),
-              new DataVirtualHardDiskHandler(),
-              new ResourceExtensionReferenceHandler(new ResourceExtensionParameterValueHandler()))).parse(is);
-
-      assertEquals(result, expected2());
-   }
-
-   public static Role expected2() {
-      return Role.create(
-              "test",
-              "PersistentVMRole",
-              null,
-              null,
-              ImmutableList.of(Role.ConfigurationSet.create(
-                              "NetworkConfiguration",
-                              ImmutableList.of(
-                                      Role.ConfigurationSet.InputEndpoint.create("SSH", "tcp", 22, 22, "168.61.166.228", false, null, null, null)
-                              ),
-                              ImmutableList.of(Role.ConfigurationSet.SubnetName.create("Subnet-1")),
-                              null,
-                              ImmutableList.<Role.ConfigurationSet.PublicIP>of(),
-                              null)
-              ),
-              ImmutableList.<Role.ResourceExtensionReference>of(),
-              null,
-              ImmutableList.<DataVirtualHardDisk>of(),
-              Role.OSVirtualHardDisk.create(
-                      "ReadWrite",
-                      "test-1452267291453",
-                      null,
-                      null,
-                      URI.create("test"),
-                      null,
-                      OSImage.Type.LINUX),
-              RoleSize.Type.BASIC_A1,
-              true,
-              null
-      );
-   }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ServiceCertificateHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ServiceCertificateHandlerTest.java
deleted file mode 100644
index b98b2a3..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ServiceCertificateHandlerTest.java
+++ /dev/null
@@ -1,55 +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.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import org.jclouds.azurecompute.domain.ServiceCertificate;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "ServiceCertificateHandlerTest")
-public class ServiceCertificateHandlerTest extends BaseHandlerTest {
-
-   public void test() {
-      final InputStream is = getClass().getResourceAsStream("/servicecertificate.xml");
-      final ServiceCertificate result = factory.create(new ServiceCertificateHandler()).parse(is);
-      assertEquals(result, expected());
-   }
-
-   public static ServiceCertificate expected() {
-      return ServiceCertificate.create(
-              null,
-              null,
-              null,
-              "MIIDyzCCArOgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQHDAdQZXN"
-              + "jYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJKoZIhvcNAQkBFg9pbmZvQHRp"
-              + "cmFzYS5uZXQwHhcNMTUwMzA0MTQ1MzQwWhcNMTYwMzAzMTQ1MzQwWjBVMQswCQYDVQQGEwJJVDEQMA4GA1UECAwHUGVzY2FyYTEPM"
-              + "A0GA1UECgwGVGlyYXNhMQswCQYDVQQLDAJBTTEWMBQGA1UEAwwNYW0udGlyYXNhLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPAD"
-              + "CCAQoCggEBAMzqTZFbzahmEqp60txg8aUYw4Y7PL44A7rzHVnb5cb01/4VVjNeijmROOL8o5ZEbkNkQly43zjoZcrkw4bpvOz95OP"
-              + "8/NH/ZgyYKR42VqcTlxcj/22iq2Ie1XhWsKARmObdnNUcFCsdqXWXBo0bLF+WuUYh4ZoMxFMlP7YYl7WOCCgekE8E9sL02RuLZgq7"
-              + "v2M6fsxhT5rEG81jzUlmY5c/jXZKbUIBaltKtzC3DnBpuk9u+S87WseqTeuhUzF6VvgwmiQ+zeHdr5Hjqxrvmq445DPz+2U3PYN1v"
-              + "FoB/6QzjtZVakSfOSZ0YAtFhZFHmR11kJTNMfVQ5k5oIQPtHksCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3"
-              + "BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOIYM6WyNdc4odsThFVtOefT/xg1MB8GA1UdIwQYMBaAFDqheOl"
-              + "4dpXYelhPC/bM+VdN1AXpMA0GCSqGSIb3DQEBCwUAA4IBAQB33qLYghIYa2j1ycHBpeZVadsb8xb4AnfnAW9g5dYfZP1eIvmKzOxN"
-              + "3CjpuCRKNI4vyKHiLbucfFDl5zi9BdYwwdduPbYTgE8F8Ilyit3irSRJFk1wHICX0sBPq5ulz39MPZsP2Fmzbrphr9BrRZOc1RJdH"
-              + "nj8C7phrfBneGSfwoY+qH5H6/h5A5rS8oDAraeklR2RJK4ztK+yDvp8orRDJQq5LAALQtWDhdW8Qj7WoIbGUeB77aJLluLOgriJLK"
-              + "+kKaGoUuAaKFRJXPyTmtUC17CJUJbapmtDwivILhU/dSdz6+1YXTg0ddNNlug3I6L5VVRnlwJJc/hIna1VjQJO"
-      );
-   }
-}
diff --git a/azurecompute/src/test/resources/affinityGroup.xml b/azurecompute/src/test/resources/affinityGroup.xml
deleted file mode 100644
index 694cd98..0000000
--- a/azurecompute/src/test/resources/affinityGroup.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<AffinityGroup xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-   <Name>Test1</Name>
-   <Label>VGVzdDE=</Label>
-   <Description>Test 1 description</Description>
-   <Location>West Europe</Location>
-   <Capabilities>
-      <Capability>PersistentVMRole</Capability>
-      <Capability>HighMemory</Capability>
-   </Capabilities>
-   <CreatedTime>2015-03-09T15:15:29Z</CreatedTime>
-   <ComputeCapabilities>
-      <WebWorkerRoleSizes>
-         <RoleSize>A10</RoleSize>
-         <RoleSize>A11</RoleSize>
-      </WebWorkerRoleSizes>
-      <VirtualMachinesRoleSizes>
-         <RoleSize>A10</RoleSize>
-         <RoleSize>A11</RoleSize>
-      </VirtualMachinesRoleSizes>
-   </ComputeCapabilities>
-</AffinityGroup>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/affinityGroups.xml b/azurecompute/src/test/resources/affinityGroups.xml
deleted file mode 100644
index 75a1968..0000000
--- a/azurecompute/src/test/resources/affinityGroups.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0"?>
-<AffinityGroups xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <AffinityGroup>
-    <Name>Test1</Name>
-    <Label>VGVzdDE=</Label>
-    <Description>Test 1 description</Description>
-    <Location>West Europe</Location>
-    <Capabilities>
-      <Capability>PersistentVMRole</Capability>
-      <Capability>HighMemory</Capability>
-    </Capabilities>
-    <CreatedTime>2015-03-09T15:15:29Z</CreatedTime>
-    <ComputeCapabilities>
-      <WebWorkerRoleSizes>
-        <RoleSize>A10</RoleSize>
-        <RoleSize>A11</RoleSize>
-      </WebWorkerRoleSizes>
-      <VirtualMachinesRoleSizes>
-        <RoleSize>A10</RoleSize>
-        <RoleSize>A11</RoleSize>
-      </VirtualMachinesRoleSizes>
-    </ComputeCapabilities>
-  </AffinityGroup>
-  <AffinityGroup>
-    <Name>Test2</Name>
-    <Label>VGVzdDI=</Label>
-    <Description/>
-    <Location>Southeast Asia</Location>
-    <Capabilities>
-      <Capability>PersistentVMRole</Capability>
-      <Capability>HighMemory</Capability>
-    </Capabilities>
-    <CreatedTime>2015-03-09T15:16:10Z</CreatedTime>
-    <ComputeCapabilities>
-      <WebWorkerRoleSizes>
-        <RoleSize>ExtraLarge</RoleSize>
-        <RoleSize>ExtraSmall</RoleSize>
-      </WebWorkerRoleSizes>
-      <VirtualMachinesRoleSizes>
-        <RoleSize>ExtraLarge</RoleSize>
-        <RoleSize>ExtraSmall</RoleSize>
-      </VirtualMachinesRoleSizes>
-    </ComputeCapabilities>
-  </AffinityGroup>
-</AffinityGroups>
diff --git a/azurecompute/src/test/resources/azure-test.p12 b/azurecompute/src/test/resources/azure-test.p12
deleted file mode 100644
index 5250dd6..0000000
--- a/azurecompute/src/test/resources/azure-test.p12
+++ /dev/null
Binary files differ
diff --git a/azurecompute/src/test/resources/capturerolepayload.xml b/azurecompute/src/test/resources/capturerolepayload.xml
deleted file mode 100644
index 36396ff..0000000
--- a/azurecompute/src/test/resources/capturerolepayload.xml
+++ /dev/null
@@ -1 +0,0 @@
-<CaptureRoleOperation xmlns="http://schemas.microsoft.com/windowsazure"><OperationType>CaptureRoleOperation</OperationType><PostCaptureAction>Delete</PostCaptureAction><TargetImageLabel>myImageLabel</TargetImageLabel><TargetImageName>myImageName</TargetImageName></CaptureRoleOperation>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/checkdnsprefixavailability.xml b/azurecompute/src/test/resources/checkdnsprefixavailability.xml
deleted file mode 100644
index 1b525ad..0000000
--- a/azurecompute/src/test/resources/checkdnsprefixavailability.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0"?>
-<AvailabilityResponse xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <Result>true</Result>
-</AvailabilityResponse>
diff --git a/azurecompute/src/test/resources/cloudserviceproperties.xml b/azurecompute/src/test/resources/cloudserviceproperties.xml
deleted file mode 100644
index bd2d58f..0000000
--- a/azurecompute/src/test/resources/cloudserviceproperties.xml
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<HostedService xmlns="http://schemas.microsoft.com/windowsazure">
-    <Url>https://api/services/hostedservices/neotys</Url>
-    <ServiceName>neotys</ServiceName>
-    <HostedServiceProperties>
-        <Description>Implicitly created cloud service2012-08-06 14:55</Description>
-        <Location>West Europe</Location>
-        <Label>bmVvdHlz</Label>
-        <Status>Created</Status>
-        <DateCreated>2012-08-06T14:55:17Z</DateCreated>
-        <DateLastModified>2012-08-06T15:50:34Z</DateLastModified>
-        <ExtendedProperties/>
-    </HostedServiceProperties>
-    <Deployments>
-        <Deployment xmlns="http://schemas.microsoft.com/windowsazure">
-            <Name>node1855162607153993262-b26</Name>
-            <DeploymentSlot>Production</DeploymentSlot>
-            <PrivateID>706868c87c1847f28a47644b68f3babf</PrivateID>
-            <Status>Running</Status>
-            <Label>bm9kZTE4NTUxNjI2MDcxNTM5OTMyNjItYjI2</Label>
-            <Url>http://node1855162607153993262-b26.cloudapp.net/</Url>
-            <Configuration>
-                PFNlcnZpY2VDb25maWd1cmF0aW9uIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL1NlcnZpY2VIb3N0aW5nLzIwMDgvMTAvU2VydmljZUNvbmZpZ3VyYXRpb24iPg0KICA8Um9sZSBuYW1lPSJub2RlMTg1NTE2MjYwNzE1Mzk5MzI2Mi1iMjYiPg0KICAgIDxJbnN0YW5jZXMgY291bnQ9IjEiIC8+DQogIDwvUm9sZT4NCjwvU2VydmljZUNvbmZpZ3VyYXRpb24+
-            </Configuration>
-            <RoleInstanceList>
-                <RoleInstance>
-                    <RoleName>node1855162607153993262-b26</RoleName>
-                    <InstanceName>node1855162607153993262-b26</InstanceName>
-                    <InstanceStatus>ReadyRole</InstanceStatus>
-                    <InstanceUpgradeDomain>0</InstanceUpgradeDomain>
-                    <InstanceFaultDomain>0</InstanceFaultDomain>
-                    <InstanceSize>Basic_A0</InstanceSize>
-                    <InstanceStateDetails/>
-                    <IpAddress>10.0.2.6</IpAddress>
-                    <InstanceEndpoints>
-                        <InstanceEndpoint>
-                            <Name>tcp_22-22</Name>
-                            <Vip>191.233.85.49</Vip>
-                            <PublicPort>22</PublicPort>
-                            <LocalPort>22</LocalPort>
-                            <Protocol>tcp</Protocol>
-                        </InstanceEndpoint>
-                    </InstanceEndpoints>
-                    <PowerState>Started</PowerState>
-                    <HostName>node1855162607153993262-b26</HostName>
-                </RoleInstance>
-            </RoleInstanceList>
-            <UpgradeDomainCount>1</UpgradeDomainCount>
-            <RoleList>
-                <Role>
-                    <RoleName>node1855162607153993262-b26</RoleName>
-                    <OsVersion/>
-                    <RoleType>PersistentVMRole</RoleType>
-                    <ConfigurationSets>
-                        <ConfigurationSet>
-                            <ConfigurationSetType>NetworkConfiguration</ConfigurationSetType>
-                            <InputEndpoints>
-                                <InputEndpoint>
-                                    <LocalPort>22</LocalPort>
-                                    <Name>tcp_22-22</Name>
-                                    <Port>22</Port>
-                                    <Protocol>tcp</Protocol>
-                                    <Vip>191.233.85.49</Vip>
-                                    <EnableDirectServerReturn>false</EnableDirectServerReturn>
-                                </InputEndpoint>
-                                <InputEndpoint>
-                                    <LocalPort>2375</LocalPort>
-                                    <Name>tcp_2375-2375</Name>
-                                    <Port>2375</Port>
-                                    <Protocol>tcp</Protocol>
-                                    <Vip>191.233.85.49</Vip>
-                                    <EnableDirectServerReturn>false</EnableDirectServerReturn>
-                                </InputEndpoint>
-                            </InputEndpoints>
-                            <SubnetNames>
-                                <SubnetName>Subnet-1</SubnetName>
-                            </SubnetNames>
-                        </ConfigurationSet>
-                    </ConfigurationSets>
-                    <DataVirtualHardDisks/>
-                    <OSVirtualHardDisk>
-                        <HostCaching>ReadWrite</HostCaching>
-                        <DiskName>node1855162607153993262-b26-node1855162607153993262-b26-0-201412221704390597
-                        </DiskName>
-                        <MediaLink>
-                            https://test.blob.core.windows.net/clockerblob/container-node1855162607153993262-b26.vhd
-                        </MediaLink>
-                        <SourceImageName>
-                            b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu_DAILY_BUILD-trusty-14_04_1-LTS-amd64-server-20141212-en-us-30GB
-                        </SourceImageName>
-                        <OS>Linux</OS>
-                    </OSVirtualHardDisk>
-                    <RoleSize>Basic_A0</RoleSize>
-                </Role>
-            </RoleList>
-            <SdkVersion/>
-            <Locked>false</Locked>
-            <RollbackAllowed>false</RollbackAllowed>
-            <VirtualNetworkName>jclouds</VirtualNetworkName>
-            <CreatedTime>2014-12-22T17:04:35Z</CreatedTime>
-            <LastModifiedTime>2014-12-22T17:07:02Z</LastModifiedTime>
-            <ExtendedProperties/>
-            <PersistentVMDowntime>
-                <StartTime>2014-12-02T01:25:12Z</StartTime>
-                <EndTime>2014-12-04T01:25:12Z</EndTime>
-                <Status>PersistentVMUpdateScheduled</Status>
-            </PersistentVMDowntime>
-            <VirtualIPs>
-                <VirtualIP>
-                    <Address>191.233.85.49</Address>
-                    <IsDnsProgrammed>true</IsDnsProgrammed>
-                    <Name>node1855162607153993262-b26ContractContract</Name>
-                </VirtualIP>
-            </VirtualIPs>
-            <InternalDnsSuffix>node1855162607153993262-b26.a5.internal.cloudapp.net</InternalDnsSuffix>
-            <LoadBalancers/>
-        </Deployment>
-    </Deployments>
-    <DefaultWinRmCertificateThumbprint>thumbprint-of-winrm-certificate</DefaultWinRmCertificateThumbprint>
-</HostedService>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/create_hostedservice_location.xml b/azurecompute/src/test/resources/create_hostedservice_location.xml
deleted file mode 100644
index 076f562..0000000
--- a/azurecompute/src/test/resources/create_hostedservice_location.xml
+++ /dev/null
@@ -1 +0,0 @@
-<CreateHostedService xmlns="http://schemas.microsoft.com/windowsazure"><ServiceName>myservice</ServiceName><Label>c2VydmljZSBtaW5l</Label><Location>West US</Location></CreateHostedService>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/createaffinitygroupparams.xml b/azurecompute/src/test/resources/createaffinitygroupparams.xml
deleted file mode 100644
index 40969e2..0000000
--- a/azurecompute/src/test/resources/createaffinitygroupparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<CreateAffinityGroup xmlns="http://schemas.microsoft.com/windowsazure"><Name>mygroup</Name><Label>Zm9v</Label><Location>West Europe</Location></CreateAffinityGroup>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/createprofileparams.xml b/azurecompute/src/test/resources/createprofileparams.xml
deleted file mode 100644
index aa518b5..0000000
--- a/azurecompute/src/test/resources/createprofileparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<Profile xmlns="http://schemas.microsoft.com/windowsazure"><DomainName>jclouds.trafficmanager.net</DomainName><Name>jclouds</Name></Profile>
diff --git a/azurecompute/src/test/resources/createstorageserviceparams.xml b/azurecompute/src/test/resources/createstorageserviceparams.xml
deleted file mode 100644
index 566bd82..0000000
--- a/azurecompute/src/test/resources/createstorageserviceparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<CreateStorageServiceInput xmlns="http://schemas.microsoft.com/windowsazure"><ServiceName>name-of-storage-account</ServiceName><Description>description-of-storage-account</Description><Label>YmFzZTY0LWVuY29kZWQtbGFiZWw=</Label><Location>location-of-storage-account</Location><ExtendedProperties><ExtendedProperty><Name>property_name</Name><Value>property_value</Value></ExtendedProperty></ExtendedProperties><AccountType>Premium_LRS</AccountType></CreateStorageServiceInput>
diff --git a/azurecompute/src/test/resources/datavirtualharddisk.xml b/azurecompute/src/test/resources/datavirtualharddisk.xml
deleted file mode 100644
index c4bff06..0000000
--- a/azurecompute/src/test/resources/datavirtualharddisk.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<DataVirtualHardDisks xmlns="http://schemas.microsoft.com/windowsazure">
-    <DataVirtualHardDisk>
-        <HostCaching>ReadOnly</HostCaching>
-        <DiskName>testimage1-testimage1-0-20120817095145</DiskName>
-        <Lun>10</Lun>
-        <LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
-        <MediaLink>http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd</MediaLink>
-        <IOType>Standard</IOType>
-    </DataVirtualHardDisk>
-    <DataVirtualHardDisk>
-        <HostCaching>ReadWrite</HostCaching>
-        <DiskName>testimage2-testimage2-0-20120817095145</DiskName>
-        <Lun>10</Lun>
-        <LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
-        <MediaLink>http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd</MediaLink>
-        <IOType>Standard</IOType>
-    </DataVirtualHardDisk>
-</DataVirtualHardDisks>
diff --git a/azurecompute/src/test/resources/deployment.xml b/azurecompute/src/test/resources/deployment.xml
deleted file mode 100644
index c7db84d..0000000
--- a/azurecompute/src/test/resources/deployment.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Deployment xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <Name>node1855162607153993262-b26</Name>
-  <DeploymentSlot>Production</DeploymentSlot>
-  <PrivateID>706868c87c1847f28a47644b68f3babf</PrivateID>
-  <Status>Running</Status>
-  <Label>bm9kZTE4NTUxNjI2MDcxNTM5OTMyNjItYjI2</Label>
-  <Url>http://node1855162607153993262-b26.cloudapp.net/</Url>
-  <Configuration>PFNlcnZpY2VDb25maWd1cmF0aW9uIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL1NlcnZpY2VIb3N0aW5nLzIwMDgvMTAvU2VydmljZUNvbmZpZ3VyYXRpb24iPg0KICA8Um9sZSBuYW1lPSJub2RlMTg1NTE2MjYwNzE1Mzk5MzI2Mi1iMjYiPg0KICAgIDxJbnN0YW5jZXMgY291bnQ9IjEiIC8+DQogIDwvUm9sZT4NCjwvU2VydmljZUNvbmZpZ3VyYXRpb24+</Configuration>
-  <RoleInstanceList>
-    <RoleInstance>
-      <RoleName>node1855162607153993262-b26</RoleName>
-      <InstanceName>node1855162607153993262-b26</InstanceName>
-      <InstanceStatus>ReadyRole</InstanceStatus>
-      <InstanceUpgradeDomain>0</InstanceUpgradeDomain>
-      <InstanceFaultDomain>0</InstanceFaultDomain>
-      <InstanceSize>Basic_A0</InstanceSize>
-      <InstanceStateDetails />
-      <IpAddress>10.0.2.6</IpAddress>
-      <InstanceEndpoints>
-        <InstanceEndpoint>
-          <Name>tcp_22-22</Name>
-          <Vip>191.233.85.49</Vip>
-          <PublicPort>22</PublicPort>
-          <LocalPort>22</LocalPort>
-          <Protocol>tcp</Protocol>
-        </InstanceEndpoint>
-      </InstanceEndpoints>
-      <PowerState>Started</PowerState>
-      <HostName>node1855162607153993262-b26</HostName>
-    </RoleInstance>
-  </RoleInstanceList>
-  <UpgradeDomainCount>1</UpgradeDomainCount>
-  <RoleList>
-    <Role i:type="PersistentVMRole">
-      <RoleName>node1855162607153993262-b26</RoleName>
-      <OsVersion />
-      <RoleType>PersistentVMRole</RoleType>
-      <ConfigurationSets>
-        <ConfigurationSet i:type="NetworkConfigurationSet">
-          <ConfigurationSetType>NetworkConfiguration</ConfigurationSetType>
-          <InputEndpoints>
-            <InputEndpoint>
-            <LocalPort>22</LocalPort>
-            <Name>tcp_22-22</Name>
-            <Port>22</Port>
-            <Protocol>tcp</Protocol>
-            <Vip>191.233.85.49</Vip>
-            <EnableDirectServerReturn>false</EnableDirectServerReturn>
-            </InputEndpoint>
-            <InputEndpoint>
-              <LocalPort>2375</LocalPort>
-              <Name>tcp_2375-2375</Name>
-              <Port>2375</Port>
-              <Protocol>tcp</Protocol>
-              <Vip>191.233.85.49</Vip>
-              <EnableDirectServerReturn>false</EnableDirectServerReturn>
-            </InputEndpoint>
-          </InputEndpoints>
-          <SubnetNames>
-            <SubnetName>Subnet-1</SubnetName>
-          </SubnetNames>
-        </ConfigurationSet>
-      </ConfigurationSets>
-      <DataVirtualHardDisks />
-      <OSVirtualHardDisk>
-        <HostCaching>ReadWrite</HostCaching>
-        <DiskName>node1855162607153993262-b26-node1855162607153993262-b26-0-201412221704390597</DiskName>
-        <MediaLink>https://test.blob.core.windows.net/clockerblob/container-node1855162607153993262-b26.vhd</MediaLink>
-        <SourceImageName>b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu_DAILY_BUILD-trusty-14_04_1-LTS-amd64-server-20141212-en-us-30GB</SourceImageName>
-        <OS>Linux</OS>
-      </OSVirtualHardDisk>
-      <RoleSize>Basic_A0</RoleSize>
-    </Role>
-  </RoleList>
-  <SdkVersion />
-  <Locked>false</Locked>
-  <RollbackAllowed>false</RollbackAllowed>
-  <VirtualNetworkName>jclouds</VirtualNetworkName>
-  <CreatedTime>2014-12-22T17:04:35Z</CreatedTime>
-  <LastModifiedTime>2014-12-22T17:07:02Z</LastModifiedTime>
-  <ExtendedProperties />
-  <PersistentVMDowntime>
-    <StartTime>2014-12-02T01:25:12Z</StartTime>
-    <EndTime>2014-12-04T01:25:12Z</EndTime>
-    <Status>PersistentVMUpdateScheduled</Status>
-  </PersistentVMDowntime>
-  <VirtualIPs>
-    <VirtualIP>
-      <Address>191.233.85.49</Address>
-      <IsDnsProgrammed>true</IsDnsProgrammed>
-      <Name>node1855162607153993262-b26ContractContract</Name>
-    </VirtualIP>
-  </VirtualIPs>
-  <InternalDnsSuffix>node1855162607153993262-b26.a5.internal.cloudapp.net</InternalDnsSuffix>
-  <LoadBalancers />
-</Deployment>
diff --git a/azurecompute/src/test/resources/deploymentparams-windows.xml b/azurecompute/src/test/resources/deploymentparams-windows.xml
deleted file mode 100644
index a60c2e5..0000000
--- a/azurecompute/src/test/resources/deploymentparams-windows.xml
+++ /dev/null
@@ -1 +0,0 @@
-<Deployment xmlns="http://schemas.microsoft.com/windowsazure"><Name>mydeployment</Name><DeploymentSlot>Production</DeploymentSlot><Label>mydeployment</Label><RoleList><Role><RoleName>mydeployment</RoleName><RoleType>PersistentVMRole</RoleType><ConfigurationSets><ConfigurationSet><ConfigurationSetType>WindowsProvisioningConfiguration</ConfigurationSetType><ComputerName>mydeployment</ComputerName><AdminPassword>testpwd</AdminPassword><ResetPasswordOnFirstLogon>false</ResetPasswordOnFirstLogon><EnableAutomaticUpdate>false</EnableAutomaticUpdate><DomainJoin><Credentials><Domain>mydeployment</Domain><Username>username</Username><Password>testpwd</Password></Credentials><JoinDomain>mydeployment</JoinDomain></DomainJoin><StoredCertificateSettings/><WinRM><Listeners><Listener><Protocol>Http</Protocol></Listener></Listeners></WinRM><AdminUsername>username</AdminUsername><AdminPassword>username</AdminPassword></ConfigurationSet><ConfigurationSet><ConfigurationSetType>NetworkConfiguration</ConfigurationSetType><InputEndpoints><InputEndpoint><LocalPort>8080</LocalPort><Name>tcp_80-8080</Name><Port>80</Port><Protocol>tcp</Protocol></InputEndpoint><InputEndpoint><LocalPort>53</LocalPort><Name>udp_53-53</Name><Port>53</Port><Protocol>udp</Protocol></InputEndpoint></InputEndpoints><SubnetNames/></ConfigurationSet></ConfigurationSets><DataVirtualHardDisks/><OSVirtualHardDisk><HostCaching>ReadWrite</HostCaching><MediaLink>http://blobs/disks/mydeployment/MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd</MediaLink><SourceImageName>MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd</SourceImageName><OS>Windows</OS></OSVirtualHardDisk><RoleSize>Medium</RoleSize></Role></RoleList><VirtualNetworkName>my-virtualNetworkName</VirtualNetworkName></Deployment>
diff --git a/azurecompute/src/test/resources/deploymentparams.xml b/azurecompute/src/test/resources/deploymentparams.xml
deleted file mode 100644
index a2572ab..0000000
--- a/azurecompute/src/test/resources/deploymentparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<Deployment xmlns="http://schemas.microsoft.com/windowsazure"><Name>mydeployment</Name><DeploymentSlot>Production</DeploymentSlot><Label>mydeployment</Label><RoleList><Role><RoleName>mydeployment</RoleName><RoleType>PersistentVMRole</RoleType><ConfigurationSets><ConfigurationSet><ConfigurationSetType>LinuxProvisioningConfiguration</ConfigurationSetType><HostName>mydeployment</HostName><UserName>username</UserName><UserPassword>testpwd</UserPassword><DisableSshPasswordAuthentication>false</DisableSshPasswordAuthentication><SSH><PublicKeys/><KeyPairs/></SSH></ConfigurationSet><ConfigurationSet><ConfigurationSetType>NetworkConfiguration</ConfigurationSetType><InputEndpoints><InputEndpoint><LocalPort>8080</LocalPort><Name>tcp_80-8080</Name><Port>80</Port><Protocol>tcp</Protocol></InputEndpoint><InputEndpoint><LocalPort>53</LocalPort><Name>udp_53-53</Name><Port>53</Port><Protocol>udp</Protocol></InputEndpoint></InputEndpoints><SubnetNames/></ConfigurationSet></ConfigurationSets><DataVirtualHardDisks/><OSVirtualHardDisk><HostCaching>ReadWrite</HostCaching><MediaLink>https://mydeployment.blob.core.windows.net/vhds/disk-mydeployment.vhd</MediaLink><SourceImageName>OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd</SourceImageName><OS>Linux</OS></OSVirtualHardDisk><RoleSize>Medium</RoleSize></Role></RoleList><VirtualNetworkName>my-virtualNetworkName</VirtualNetworkName><ReservedIPName>myreservedip</ReservedIPName></Deployment>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/disks.xml b/azurecompute/src/test/resources/disks.xml
deleted file mode 100644
index 2e9b453..0000000
--- a/azurecompute/src/test/resources/disks.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<Disks xmlns="http://schemas.microsoft.com/windowsazure">
-    <Disk>
-        <OS>Linux</OS>
-        <Location>West Europe</Location>
-        <LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
-        <MediaLink>http://blobs/vhds/testimage2-testimage2-2012-08-17.vhd</MediaLink>
-        <Name>testimage2-testimage2-0-20120817095145</Name>
-        <SourceImageName>OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd</SourceImageName>
-    </Disk>
-    <Disk>
-        <AttachedTo>
-            <DeploymentName>neotysss</DeploymentName>
-            <HostedServiceName>neotysss</HostedServiceName>
-            <RoleName>neotysss</RoleName>
-        </AttachedTo>
-        <OS>Windows</OS>
-        <Location>West Europe</Location>
-        <LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
-        <MediaLink>http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd</MediaLink>
-        <Name>neotysss-neotysss-0-20120824091357</Name>
-        <SourceImageName>MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd</SourceImageName>
-    </Disk>
-</Disks>
diff --git a/azurecompute/src/test/resources/error.xml b/azurecompute/src/test/resources/error.xml
deleted file mode 100644
index a9f9b2f..0000000
--- a/azurecompute/src/test/resources/error.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Error>
-  <Code>MissingOrInvalidRequiredQueryParameter</Code>
-  <Message>A required query parameter was not specified for this request or was specified incorrectly.</Message>
-</Error>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/hostedservice.xml b/azurecompute/src/test/resources/hostedservice.xml
deleted file mode 100644
index f3619b8..0000000
--- a/azurecompute/src/test/resources/hostedservice.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<HostedService xmlns="http://schemas.microsoft.com/windowsazure">
-    <Url>https://api/services/hostedservices/neotys</Url>
-    <ServiceName>neotys</ServiceName>
-    <HostedServiceProperties>
-        <Description>Implicitly created cloud service2012-08-06 14:55</Description>
-        <Location>West Europe</Location>
-        <Label>bmVvdHlz</Label>
-        <Status>Created</Status>
-        <DateCreated>2012-08-06T14:55:17Z</DateCreated>
-        <DateLastModified>2012-08-06T15:50:34Z</DateLastModified>
-        <ExtendedProperties />
-    </HostedServiceProperties>
-</HostedService>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/hostedservices.xml b/azurecompute/src/test/resources/hostedservices.xml
deleted file mode 100644
index 817ab52..0000000
--- a/azurecompute/src/test/resources/hostedservices.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<HostedServices xmlns="http://schemas.microsoft.com/windowsazure"
-    xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-    <HostedService>
-        <Url>https://api/services/hostedservices/neotys</Url>
-        <ServiceName>neotys</ServiceName>
-        <HostedServiceProperties>
-            <Description>Implicitly created cloud service2012-08-06 14:55</Description>
-            <Location>West Europe</Location>
-            <Label>bmVvdHlz</Label>
-            <Status>Created</Status>
-            <DateCreated>2012-08-06T14:55:17Z</DateCreated>
-            <DateLastModified>2012-08-06T15:50:34Z</DateLastModified>
-            <ExtendedProperties />
-        </HostedServiceProperties>
-    </HostedService>
-    <HostedService>
-        <Url>https://api/services/hostedservices/neotys3</Url>
-        <ServiceName>neotys3</ServiceName>
-        <HostedServiceProperties>
-            <Description i:nil="true" />
-            <Location>West Europe</Location>
-            <Label>bmVvdHlzMw==</Label>
-            <Status>Created</Status>
-            <DateCreated>2012-08-07T09:00:02Z</DateCreated>
-            <DateLastModified>2012-08-07T09:00:02Z</DateLastModified>
-            <ExtendedProperties />
-        </HostedServiceProperties>
-    </HostedService>
-</HostedServices>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/imageparams.xml b/azurecompute/src/test/resources/imageparams.xml
deleted file mode 100644
index d3279ba..0000000
--- a/azurecompute/src/test/resources/imageparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<OSImage xmlns="http://schemas.microsoft.com/windowsazure"><Label>foo</Label><MediaLink>http://example.blob.core.windows.net/disks/mydisk.vhd</MediaLink><Name>myimage</Name><OS>Linux</OS></OSImage>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/images.xml b/azurecompute/src/test/resources/images.xml
deleted file mode 100644
index 24df711..0000000
--- a/azurecompute/src/test/resources/images.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<Images xmlns="http://schemas.microsoft.com/windowsazure">
-   <OSImage>
-      <Category>Canonical</Category>
-      <Label>Ubuntu Server 12.04 LTS</Label>
-      <LogicalSizeInGB>30</LogicalSizeInGB>
-      <Name>CANONICAL__Canonical-Ubuntu-12-04-amd64-server-20120528.1.3-en-us-30GB.vhd</Name>
-      <OS>Linux</OS>
-      <PublisherName>Canonical</PublisherName>
-      <Eula>http://www.ubuntu.com/project/about-ubuntu/licensing</Eula>
-      <Description>Ubuntu Server 12.04 LTS amd64 20120528 Cloud Image</Description>
-      <ImageFamily>Ubuntu Server 12.04 LTS</ImageFamily>
-   </OSImage>
-   <OSImage>
-      <Category>Microsoft</Category>
-      <Label>Windows Server 2008 R2 SP1, June 2012</Label>
-      <Location>North Europe</Location>
-      <LogicalSizeInGB>30</LogicalSizeInGB>
-      <Name>MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd</Name>
-      <MediaLink>http://blobs/disks/mydeployment/MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd</MediaLink>
-      <OS>Windows</OS>
-      <PublisherName>Microsoft</PublisherName>
-      <Eula />
-      <Description>Windows Server 2008 R2 is a multi-purpose server.</Description>
-      <ImageFamily>Windows Server 2008 R2 SP1</ImageFamily>
-   </OSImage>
-   <OSImage>
-      <Category>Microsoft</Category>
-      <Label>Microsoft SQL Server 2012 Evaluation Edition</Label>
-      <LogicalSizeInGB>30</LogicalSizeInGB>
-      <Name>MSFT__Sql-Server-11EVAL-11.0.2215.0-05152012-en-us-30GB.vhd</Name>
-      <OS>Windows</OS>
-      <PublisherName>Microsoft</PublisherName>
-      <Eula>http://go.microsoft.com/fwlink/?LinkID=251820;http://go.microsoft.com/fwlink/?LinkID=131004</Eula>
-      <Description>SQL Server 2012 Evaluation Edition (64-bit).</Description>
-   </OSImage>
-   <OSImage>
-      <Category>Microsoft</Category>
-      <Label>Windows Server 2012 Release Candidate, July 2012</Label>
-      <LogicalSizeInGB>30</LogicalSizeInGB>
-      <Name>MSFT__Win2K12RC-Datacenter-201207.02-en.us-30GB.vhd</Name>
-      <OS>Windows</OS>
-      <PublisherName>Microsoft</PublisherName>
-      <Eula />
-      <Description>Windows Server 2012 incorporates Microsoft's experience building.</Description>
-   </OSImage>
-   <OSImage>
-      <Category>Microsoft</Category>
-      <Label>Windows Server 2008 R2 SP1, July 2012</Label>
-      <LogicalSizeInGB>30</LogicalSizeInGB>
-      <Name>MSFT__Win2K8R2SP1-Datacenter-201207.01-en.us-30GB.vhd</Name>
-      <OS>Windows</OS>
-      <PublisherName>Microsoft</PublisherName>
-      <Eula />
-      <Description>Windows Server 2008 R2 is a multi-purpose server.</Description>
-   </OSImage>
-   <OSImage>
-      <Category>OpenLogic</Category>
-      <Label>OpenLogic CentOS 6.2</Label>
-      <LogicalSizeInGB>30</LogicalSizeInGB>
-      <Name>OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd</Name>
-      <MediaLink>http://blobs/disks/mydeployment/OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd</MediaLink>
-      <OS>Linux</OS>
-      <PublisherName>openLogic</PublisherName>
-      <Eula>http://www.openlogic.com/azure/service-agreement/</Eula>
-      <Description>This distribution of Linux is based on CentOS.</Description>
-   </OSImage>
-   <OSImage>
-      <Category>SUSE</Category>
-      <Label>openSUSE 12.1</Label>
-      <LogicalSizeInGB>30</LogicalSizeInGB>
-      <Name>SUSE__openSUSE-12-1-20120603-en-us-30GB.vhd</Name>
-      <OS>Linux</OS>
-      <PublisherName>SUSE</PublisherName>
-      <Eula>http://opensuse.org/</Eula>
-      <Description>openSUSE is a free and Linux-based operating system!</Description>
-   </OSImage>
-   <OSImage>
-      <Category>SUSE</Category>
-      <Label>SUSE Linux Enterprise Server</Label>
-      <LogicalSizeInGB>30</LogicalSizeInGB>
-      <Name>SUSE__SUSE-Linux-Enterprise-Server-11SP2-20120601-en-us-30GB.vhd</Name>
-      <OS>Linux</OS>
-      <PublisherName>SUSE</PublisherName>
-      <Eula>http://www.novell.com/licensing/eula/</Eula>
-      <Description>SUSE Linux Enterprise Server is a highly reliable value.</Description>
-   </OSImage>
-   <OSImage>
-      <Category>RightScale with Linux</Category>
-      <Label>RightImage-CentOS-6.4-x64-v13.4</Label>
-      <LogicalSizeInGB>10</LogicalSizeInGB>
-      <Name>0b11de9248dd4d87b18621318e037d37__RightImage-CentOS-6.4-x64-v13.4</Name>
-      <OS>Linux</OS>
-      <PublisherName>RightScale with Linux</PublisherName>
-      <Eula>;</Eula>
-      <Description/>
-   </OSImage>
-</Images>
-
diff --git a/azurecompute/src/test/resources/isavailablestorageservice.xml b/azurecompute/src/test/resources/isavailablestorageservice.xml
deleted file mode 100644
index 1c5a0e2..0000000
--- a/azurecompute/src/test/resources/isavailablestorageservice.xml
+++ /dev/null
@@ -1 +0,0 @@
-<AvailabilityResponse xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Result>false</Result><Reason>The storage account named 'serviceName' is already taken.</Reason></AvailabilityResponse>
diff --git a/azurecompute/src/test/resources/listprofiledefinitions.xml b/azurecompute/src/test/resources/listprofiledefinitions.xml
deleted file mode 100644
index eff1b51..0000000
--- a/azurecompute/src/test/resources/listprofiledefinitions.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Definitions xmlns="http://schemas.microsoft.com/windowsazure">
-  <Definition>
-    <DnsOptions>
-      <TimeToLiveInSeconds>300</TimeToLiveInSeconds>
-    </DnsOptions>
-    <Status>Enabled</Status>
-    <Version>1</Version>
-    <Monitors>
-      <Monitor>
-        <IntervalInSeconds>30</IntervalInSeconds>
-        <TimeoutInSeconds>10</TimeoutInSeconds>
-        <ToleratedNumberOfFailures>3</ToleratedNumberOfFailures>
-        <Protocol>HTTP</Protocol>
-        <Port>80</Port>
-        <HttpOptions>
-          <Verb>GET</Verb>
-          <RelativePath>/</RelativePath>
-          <ExpectedStatusCode>200</ExpectedStatusCode>
-        </HttpOptions>
-      </Monitor>
-    </Monitors>
-    <Policy>
-      <LoadBalancingMethod>RoundRobin</LoadBalancingMethod>
-      <Endpoints>
-        <Endpoint>
-          <DomainName>jclouds1.cloudapp.net</DomainName>
-          <Status>Enabled</Status>
-          <Type>CloudService</Type>
-          <MonitorStatus>Stopped</MonitorStatus>
-          <Weight>1</Weight>
-        </Endpoint>
-        <Endpoint>
-          <DomainName>jclouds2.cloudapp.net</DomainName>
-          <Status>Enabled</Status>
-          <Type>CloudService</Type>
-          <MonitorStatus>Stopped</MonitorStatus>
-          <Weight>1</Weight>
-        </Endpoint>
-      </Endpoints>
-      <MonitorStatus>Inactive</MonitorStatus>
-    </Policy>
-  </Definition>
-</Definitions>
diff --git a/azurecompute/src/test/resources/listprofiles.xml b/azurecompute/src/test/resources/listprofiles.xml
deleted file mode 100644
index 5ffa7cd..0000000
--- a/azurecompute/src/test/resources/listprofiles.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<Profiles xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <Profile>
-    <DomainName>jclouds.trafficmanager.net</DomainName>
-    <Name>jclouds</Name>
-    <Status>Enabled</Status>
-    <StatusDetails>
-      <EnabledVersion>1</EnabledVersion>
-    </StatusDetails>
-    <Definitions>
-      <Definition>
-        <Status>Enabled</Status>
-        <Version>1</Version>
-      </Definition>
-    </Definitions>
-  </Profile>
-  <Profile>
-    <DomainName>jclouds2.trafficmanager.net</DomainName>
-    <Name>jclouds2</Name>
-    <Status>Disabled</Status>
-    <Definitions/>
-  </Profile>
-</Profiles>
diff --git a/azurecompute/src/test/resources/listreservedipaddress.xml b/azurecompute/src/test/resources/listreservedipaddress.xml
deleted file mode 100644
index bdcdafd..0000000
--- a/azurecompute/src/test/resources/listreservedipaddress.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<ReservedIPs xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <ReservedIP>
-    <Name>jclouds_ip1</Name>
-    <Address>23.101.78.155</Address>
-    <Id>582c04d0-b169-4791-a706-f2b2bc36a742</Id>
-    <State>Created</State>
-    <Location>West Europe</Location>
-    <InUse>true</InUse>
-    <ServiceName>jclouds_s</ServiceName>
-    <DeploymentName>jclouds_d</DeploymentName>
-  </ReservedIP>
-  <ReservedIP>
-    <Name>jclouds_ip2</Name>
-    <Address>23.101.69.44</Address>
-    <Id>4e00454a-351a-4dae-aabd-c933b60e967c</Id>
-    <Label>jclouds ip2 label</Label>
-    <State>Created</State>
-    <Location>West Europe</Location>
-  </ReservedIP>
-</ReservedIPs>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/locations.xml b/azurecompute/src/test/resources/locations.xml
deleted file mode 100644
index 5937871..0000000
--- a/azurecompute/src/test/resources/locations.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0"?>
-<Locations xmlns="http://schemas.microsoft.com/windowsazure">
-  <Location>
-    <Name>West US</Name>
-    <DisplayName>West US</DisplayName>
-    <AvailableServices>
-      <AvailableService>Compute</AvailableService>
-      <AvailableService>Storage</AvailableService>
-      <AvailableService>PersistentVMRole</AvailableService>
-    </AvailableServices>
-  </Location>
-  <Location>
-    <Name>East US</Name>
-    <DisplayName>East US</DisplayName>
-    <AvailableServices>
-      <AvailableService>Compute</AvailableService>
-      <AvailableService>Storage</AvailableService>
-      <AvailableService>PersistentVMRole</AvailableService>
-    </AvailableServices>
-  </Location>
-  <Location>
-    <Name>East Asia</Name>
-    <DisplayName>East Asia</DisplayName>
-    <AvailableServices>
-      <AvailableService>Compute</AvailableService>
-      <AvailableService>Storage</AvailableService>
-      <AvailableService>PersistentVMRole</AvailableService>
-    </AvailableServices>
-  </Location>
-  <Location>
-    <Name>Southeast Asia</Name>
-    <DisplayName>Southeast Asia</DisplayName>
-    <AvailableServices>
-      <AvailableService>Compute</AvailableService>
-      <AvailableService>Storage</AvailableService>
-      <AvailableService>PersistentVMRole</AvailableService>
-    </AvailableServices>
-  </Location>
-  <Location>
-    <Name>North Europe</Name>
-    <DisplayName>North Europe</DisplayName>
-    <AvailableServices>
-      <AvailableService>Compute</AvailableService>
-      <AvailableService>Storage</AvailableService>
-      <AvailableService>PersistentVMRole</AvailableService>
-    </AvailableServices>
-  </Location>
-  <Location>
-    <Name>West Europe</Name>
-    <DisplayName>West Europe</DisplayName>
-    <AvailableServices>
-      <AvailableService>Compute</AvailableService>
-      <AvailableService>Storage</AvailableService>
-      <AvailableService>PersistentVMRole</AvailableService>
-    </AvailableServices>
-  </Location>
-</Locations>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/logback-test.xml b/azurecompute/src/test/resources/logback-test.xml
deleted file mode 100644
index c823913..0000000
--- a/azurecompute/src/test/resources/logback-test.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.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.
-
--->
-<configuration>
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder>
-            <pattern>-  %msg%n</pattern>
-        </encoder>
-    </appender>
-    <root level="info">
-        <appender-ref ref="STDOUT"/>
-    </root>
-    <logger name="jclouds.compute" level="debug"/>
-    <logger name="net.schmizz" level="warn"/>
-    <logger name="jclouds.wire" level="debug"/>
-    <logger name="jclouds.headers" level="debug"/>
-    <logger name="jclouds.ssh" level="debug"/>
-</configuration>
diff --git a/azurecompute/src/test/resources/networkconfiguration.xml b/azurecompute/src/test/resources/networkconfiguration.xml
deleted file mode 100644
index f20c7df..0000000
--- a/azurecompute/src/test/resources/networkconfiguration.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<NetworkConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                      xmlns="http://schemas.microsoft.com/ServiceHosting/2011/07/NetworkConfiguration">
-  <VirtualNetworkConfiguration>
-    <Dns/>
-    <VirtualNetworkSites>
-      <VirtualNetworkSite name="jclouds-virtual-network" Location="West Europe">
-        <AddressSpace>
-          <AddressPrefix>10.0.0.0/20</AddressPrefix>
-        </AddressSpace>
-        <Subnets>
-          <Subnet name="jclouds-1">
-            <AddressPrefix>10.0.0.0/23</AddressPrefix>
-          </Subnet>
-        </Subnets>
-      </VirtualNetworkSite>
-    </VirtualNetworkSites>
-  </VirtualNetworkConfiguration>
-</NetworkConfiguration>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/networksecuritygroup.xml b/azurecompute/src/test/resources/networksecuritygroup.xml
deleted file mode 100644
index f37b191..0000000
--- a/azurecompute/src/test/resources/networksecuritygroup.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<NetworkSecurityGroup xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <Name>group1</Name>
-  <Label>sec group 1</Label>
-  <Location>West Europe</Location>
-</NetworkSecurityGroup>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/networksecuritygroupforsubnet.xml b/azurecompute/src/test/resources/networksecuritygroupforsubnet.xml
deleted file mode 100644
index 0ed3a67..0000000
--- a/azurecompute/src/test/resources/networksecuritygroupforsubnet.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<NetworkSecurityGroup xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <Name>group1</Name>
-  <State>Created</State>
-</NetworkSecurityGroup>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/networksecuritygroupfulldetails.xml b/azurecompute/src/test/resources/networksecuritygroupfulldetails.xml
deleted file mode 100644
index 35d9b84..0000000
--- a/azurecompute/src/test/resources/networksecuritygroupfulldetails.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<NetworkSecurityGroup xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <Name>jclouds-NSG</Name>
-  <Label>jclouds-NSG</Label>
-  <Location>West Europe</Location>
-  <Rules>
-    <Rule>
-      <Name>tcp_10-20</Name>
-      <Type>Inbound</Type>
-      <Priority>100</Priority>
-      <Action>Allow</Action>
-      <SourceAddressPrefix>INTERNET</SourceAddressPrefix>
-      <SourcePortRange>*</SourcePortRange>
-      <DestinationAddressPrefix>*</DestinationAddressPrefix>
-      <DestinationPortRange>10-20</DestinationPortRange>
-      <Protocol>TCP</Protocol>
-      <State>Active</State>
-    </Rule>
-    <Rule>
-      <Name>ALLOW VNET INBOUND</Name>
-      <Type>Inbound</Type>
-      <Priority>65000</Priority>
-      <Action>Allow</Action>
-      <SourceAddressPrefix>VIRTUAL_NETWORK</SourceAddressPrefix>
-      <SourcePortRange>*</SourcePortRange>
-      <DestinationAddressPrefix>VIRTUAL_NETWORK</DestinationAddressPrefix>
-      <DestinationPortRange>*</DestinationPortRange>
-      <Protocol>*</Protocol>
-      <State>Active</State>
-      <IsDefault>true</IsDefault>
-    </Rule>
-    <Rule>
-      <Name>ALLOW VNET OUTBOUND</Name>
-      <Type>Outbound</Type>
-      <Priority>65000</Priority>
-      <Action>Allow</Action>
-      <SourceAddressPrefix>VIRTUAL_NETWORK</SourceAddressPrefix>
-      <SourcePortRange>*</SourcePortRange>
-      <DestinationAddressPrefix>VIRTUAL_NETWORK</DestinationAddressPrefix>
-      <DestinationPortRange>*</DestinationPortRange>
-      <Protocol>*</Protocol>
-      <State>Active</State>
-      <IsDefault>true</IsDefault>
-    </Rule>
-    <Rule>
-      <Name>ALLOW AZURE LOAD BALANCER INBOUND</Name>
-      <Type>Inbound</Type>
-      <Priority>65001</Priority>
-      <Action>Allow</Action>
-      <SourceAddressPrefix>AZURE_LOADBALANCER</SourceAddressPrefix>
-      <SourcePortRange>*</SourcePortRange>
-      <DestinationAddressPrefix>*</DestinationAddressPrefix>
-      <DestinationPortRange>*</DestinationPortRange>
-      <Protocol>*</Protocol>
-      <State>Active</State>
-      <IsDefault>true</IsDefault>
-    </Rule>
-    <Rule>
-      <Name>ALLOW INTERNET OUTBOUND</Name>
-      <Type>Outbound</Type>
-      <Priority>65001</Priority>
-      <Action>Allow</Action>
-      <SourceAddressPrefix>*</SourceAddressPrefix>
-      <SourcePortRange>*</SourcePortRange>
-      <DestinationAddressPrefix>INTERNET</DestinationAddressPrefix>
-      <DestinationPortRange>*</DestinationPortRange>
-      <Protocol>*</Protocol>
-      <State>Active</State>
-      <IsDefault>true</IsDefault>
-    </Rule>
-    <Rule>
-      <Name>DENY ALL OUTBOUND</Name>
-      <Type>Outbound</Type>
-      <Priority>65500</Priority>
-      <Action>Deny</Action>
-      <SourceAddressPrefix>*</SourceAddressPrefix>
-      <SourcePortRange>*</SourcePortRange>
-      <DestinationAddressPrefix>*</DestinationAddressPrefix>
-      <DestinationPortRange>*</DestinationPortRange>
-      <Protocol>*</Protocol>
-      <State>Active</State>
-      <IsDefault>true</IsDefault>
-    </Rule>
-    <Rule>
-      <Name>DENY ALL INBOUND</Name>
-      <Type>Inbound</Type>
-      <Priority>65500</Priority>
-      <Action>Deny</Action>
-      <SourceAddressPrefix>*</SourceAddressPrefix>
-      <SourcePortRange>*</SourcePortRange>
-      <DestinationAddressPrefix>*</DestinationAddressPrefix>
-      <DestinationPortRange>*</DestinationPortRange>
-      <Protocol>*</Protocol>
-      <State>Active</State>
-      <IsDefault>true</IsDefault>
-    </Rule>
-  </Rules>
-</NetworkSecurityGroup>
diff --git a/azurecompute/src/test/resources/networksecuritygroups.xml b/azurecompute/src/test/resources/networksecuritygroups.xml
deleted file mode 100644
index e81bdd5..0000000
--- a/azurecompute/src/test/resources/networksecuritygroups.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<NetworkSecurityGroups xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <NetworkSecurityGroup>
-    <Name>group1</Name>
-    <Label>sec group 1</Label>
-    <Location>West Europe</Location>
-  </NetworkSecurityGroup>
-  <NetworkSecurityGroup>
-    <Name>group2</Name>
-    <Label>sec group 2</Label>
-    <Location>North Europe</Location>
-  </NetworkSecurityGroup>
-</NetworkSecurityGroups>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/operation.xml b/azurecompute/src/test/resources/operation.xml
deleted file mode 100644
index 498d1f0..0000000
--- a/azurecompute/src/test/resources/operation.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Operation xmlns="http://schemas.microsoft.com/windowsazure">
-    <ID>request-id</ID>
-    <Status>Failed</Status>
-    <HttpStatusCode>400</HttpStatusCode>
-    <Error>
-        <Code>MissingOrInvalidRequiredQueryParameter</Code>
-        <Message>A required query parameter was not specified for this request or was specified incorrectly.</Message>
-    </Error>
-</Operation>
diff --git a/azurecompute/src/test/resources/profile.xml b/azurecompute/src/test/resources/profile.xml
deleted file mode 100644
index f69931f..0000000
--- a/azurecompute/src/test/resources/profile.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0"?>
-<Profile xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <DomainName>jclouds.trafficmanager.net</DomainName>
-  <Name>jclouds</Name>
-  <Status>Enabled</Status>
-  <StatusDetails>
-    <EnabledVersion>1</EnabledVersion>
-  </StatusDetails>
-  <Definitions>
-    <Definition>
-      <Status>Enabled</Status>
-      <Version>1</Version>
-    </Definition>
-  </Definitions>
-</Profile>
diff --git a/azurecompute/src/test/resources/profiledefinition.xml b/azurecompute/src/test/resources/profiledefinition.xml
deleted file mode 100644
index f272e00..0000000
--- a/azurecompute/src/test/resources/profiledefinition.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<Definition xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <DnsOptions>
-    <TimeToLiveInSeconds>300</TimeToLiveInSeconds>
-  </DnsOptions>
-  <Status>Enabled</Status>
-  <Version>1</Version>
-  <Monitors>
-    <Monitor>
-      <IntervalInSeconds>30</IntervalInSeconds>
-      <TimeoutInSeconds>10</TimeoutInSeconds>
-      <ToleratedNumberOfFailures>3</ToleratedNumberOfFailures>
-      <Protocol>HTTP</Protocol>
-      <Port>80</Port>
-      <HttpOptions>
-        <Verb>GET</Verb>
-        <RelativePath>/</RelativePath>
-        <ExpectedStatusCode>200</ExpectedStatusCode>
-      </HttpOptions>
-    </Monitor>
-  </Monitors>
-  <Policy>
-    <LoadBalancingMethod>RoundRobin</LoadBalancingMethod>
-    <Endpoints>
-      <Endpoint>
-        <DomainName>jclouds1.cloudapp.net</DomainName>
-        <Status>Enabled</Status>
-        <Type>CloudService</Type>
-        <MonitorStatus>Stopped</MonitorStatus>
-        <Weight>1</Weight>
-      </Endpoint>
-      <Endpoint>
-        <DomainName>jclouds2.cloudapp.net</DomainName>
-        <Status>Enabled</Status>
-        <Type>CloudService</Type>
-        <MonitorStatus>Stopped</MonitorStatus>
-        <Weight>1</Weight>
-      </Endpoint>
-    </Endpoints>
-    <MonitorStatus>Inactive</MonitorStatus>
-  </Policy>
-</Definition>
diff --git a/azurecompute/src/test/resources/profiledefinitioncsparams.xml b/azurecompute/src/test/resources/profiledefinitioncsparams.xml
deleted file mode 100644
index 42bbdcf..0000000
--- a/azurecompute/src/test/resources/profiledefinitioncsparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<Definition xmlns="http://schemas.microsoft.com/windowsazure"><DnsOptions><TimeToLiveInSeconds>300</TimeToLiveInSeconds></DnsOptions><Monitors><Monitor><IntervalInSeconds>30</IntervalInSeconds><TimeoutInSeconds>10</TimeoutInSeconds><ToleratedNumberOfFailures>3</ToleratedNumberOfFailures><Protocol>HTTP</Protocol><Port>80</Port><HttpOptions><Verb>GET</Verb><RelativePath>/</RelativePath><ExpectedStatusCode>200</ExpectedStatusCode></HttpOptions></Monitor></Monitors><Policy><LoadBalancingMethod>RoundRobin</LoadBalancingMethod><Endpoints><Endpoint><DomainName>jclouds1.cloudapp.net</DomainName><Status>Enabled</Status><Type>CloudService</Type><Weight>1</Weight></Endpoint><Endpoint><DomainName>jclouds2.cloudapp.net</DomainName><Status>Enabled</Status><Type>CloudService</Type><Weight>1</Weight></Endpoint></Endpoints></Policy></Definition>
diff --git a/azurecompute/src/test/resources/profiledefinitiontmparams.xml b/azurecompute/src/test/resources/profiledefinitiontmparams.xml
deleted file mode 100644
index 312f4be..0000000
--- a/azurecompute/src/test/resources/profiledefinitiontmparams.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<Definition xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <DnsOptions>
-    <TimeToLiveInSeconds>300</TimeToLiveInSeconds>
-  </DnsOptions>
-  <Monitors>
-    <Monitor>
-      <IntervalInSeconds>30</IntervalInSeconds>
-      <TimeoutInSeconds>10</TimeoutInSeconds>
-      <ToleratedNumberOfFailures>3</ToleratedNumberOfFailures>
-      <Protocol>HTTP</Protocol>
-      <Port>80</Port>
-      <HttpOptions>
-	<Verb>GET</Verb>
-	<RelativePath>/</RelativePath>
-	<ExpectedStatusCode>200</ExpectedStatusCode>
-      </HttpOptions>
-    </Monitor>
-  </Monitors>
-  
-  <Policy>
-    <LoadBalancingMethod>RoundRobin</LoadBalancingMethod>
-    
-    <Endpoints>
-      <Endpoint>
-        <DomainName>jcloudsprova.cloudapp.net</DomainName>
-        <Status>Enabled</Status>
-        <Type>TrafficManager</Type>
-        <Location>West Europe</Location>
-        <MinChildEndpoints>1</MinChildEndpoints>
-        <Weight>1</Weight>
-      </Endpoint>
-    </Endpoints>
-    
-  </Policy>
-</Definition>
diff --git a/azurecompute/src/test/resources/reservedipaddress.xml b/azurecompute/src/test/resources/reservedipaddress.xml
deleted file mode 100644
index a1a4a7d..0000000
--- a/azurecompute/src/test/resources/reservedipaddress.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<ReservedIP xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <Name>jclouds_ip1</Name>
-  <Address>23.101.78.155</Address>
-  <Id>582c04d0-b169-4791-a706-f2b2bc36a742</Id>
-  <State>Created</State>
-  <Location>West Europe</Location>
-  <InUse>true</InUse>
-  <ServiceName>jclouds_s</ServiceName>
-  <DeploymentName>jclouds_d</DeploymentName>
-</ReservedIP>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/reservedipaddressparams.xml b/azurecompute/src/test/resources/reservedipaddressparams.xml
deleted file mode 100644
index 55aab93..0000000
--- a/azurecompute/src/test/resources/reservedipaddressparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<ReservedIP xmlns="http://schemas.microsoft.com/windowsazure"><Name>myreservedip</Name><Label>myreservedip label</Label><Location>West Europe</Location></ReservedIP>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/restartrolepayload.xml b/azurecompute/src/test/resources/restartrolepayload.xml
deleted file mode 100644
index 54ccf84..0000000
--- a/azurecompute/src/test/resources/restartrolepayload.xml
+++ /dev/null
@@ -1 +0,0 @@
-<RestartRoleOperation xmlns="http://schemas.microsoft.com/windowsazure"><OperationType>RestartRoleOperation</OperationType></RestartRoleOperation>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/role-update-body.xml b/azurecompute/src/test/resources/role-update-body.xml
deleted file mode 100644
index 841ffb5..0000000
--- a/azurecompute/src/test/resources/role-update-body.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<PersistentVMRole xmlns="http://schemas.microsoft.com/windowsazure">
-  <RoleName>testvnetsg02</RoleName>
-  <RoleType>PersistentVMRole</RoleType>
-  <ConfigurationSets>
-    <ConfigurationSet>
-      <ConfigurationSetType>NetworkConfiguration</ConfigurationSetType>
-      <InputEndpoints>
-        <InputEndpoint>
-          <LocalPort>5986</LocalPort>
-          <Name>PowerShell</Name>
-          <Port>5986</Port>
-          <Protocol>tcp</Protocol>
-        </InputEndpoint>
-        <InputEndpoint>
-          <LocalPort>3389</LocalPort>
-          <Name>Remote Desktop</Name>
-          <Port>59440</Port>
-          <Protocol>tcp</Protocol>
-        </InputEndpoint>
-      </InputEndpoints>
-      <SubnetNames>
-        <SubnetName>Subnet-1</SubnetName>
-      </SubnetNames>
-      <NetworkSecurityGroup>vnetnsgsg01</NetworkSecurityGroup>
-    </ConfigurationSet>
-  </ConfigurationSets>
-  <DataVirtualHardDisks />
-  <OSVirtualHardDisk>
-    <HostCaching>ReadWrite</HostCaching>
-    <DiskName>testvnetsg02-testvnetsg02-0-201502180825130518</DiskName>
-    <MediaLink>https://portalvhdsxz8nc6chc32j1.blob.core.windows.net/vhds/testvnetsg02-testvnetsg02-2015-02-18.vhd</MediaLink>
-    <SourceImageName>a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201412.01-en.us-127GB.vhd</SourceImageName>
-    <OS>WINDOWS</OS>
-  </OSVirtualHardDisk>
-  <RoleSize>Small</RoleSize>
-  <ProvisionGuestAgent>true</ProvisionGuestAgent>
-</PersistentVMRole>
diff --git a/azurecompute/src/test/resources/role.xml b/azurecompute/src/test/resources/role.xml
deleted file mode 100644
index 5417791..0000000
--- a/azurecompute/src/test/resources/role.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<PersistentVMRole xmlns="http://schemas.microsoft.com/windowsazure">
-  <RoleName>testvnetsg02</RoleName>
-  <RoleType>PersistentVMRole</RoleType>
-  <ConfigurationSets>
-    <ConfigurationSet>
-      <ConfigurationSetType>NetworkConfiguration</ConfigurationSetType>
-      <InputEndpoints>
-        <InputEndpoint>
-          <LocalPort>5986</LocalPort>
-          <Name>PowerShell</Name>
-          <Port>5986</Port>
-          <Protocol>tcp</Protocol>
-          <Vip>23.101.193.92</Vip>
-          <EnableDirectServerReturn>false</EnableDirectServerReturn>
-        </InputEndpoint>
-        <InputEndpoint>
-          <LocalPort>3389</LocalPort>
-          <Name>Remote Desktop</Name>
-          <Port>59440</Port>
-          <Protocol>tcp</Protocol>
-          <Vip>23.101.193.92</Vip>
-          <EnableDirectServerReturn>false</EnableDirectServerReturn>
-        </InputEndpoint>
-      </InputEndpoints>
-      <SubnetNames>
-        <SubnetName>Subnet-1</SubnetName>
-      </SubnetNames>
-      <PublicIPs/>
-      <NetworkInterfaces/>
-      <NetworkSecurityGroup>vnetnsgsg01</NetworkSecurityGroup>
-      <StoredCertificateSettings/>
-    </ConfigurationSet>
-  </ConfigurationSets>
-  <ResourceExtensionReferences>
-    <ResourceExtensionReference>
-      <ReferenceName>BGInfo</ReferenceName>
-      <Publisher>Microsoft.Compute</Publisher>
-      <Name>BGInfo</Name>
-      <Version>1.*</Version>
-      <ResourceExtensionParameterValues/>
-      <State>Enable</State>
-    </ResourceExtensionReference>
-  </ResourceExtensionReferences>
-  <DataVirtualHardDisks/>
-  <OSVirtualHardDisk>
-    <HostCaching>ReadWrite</HostCaching>
-    <DiskName>testvnetsg02-testvnetsg02-0-201502180825130518</DiskName>
-    <MediaLink>https://portalvhdsxz8nc6chc32j1.blob.core.windows.net/vhds/testvnetsg02-testvnetsg02-2015-02-18.vhd
-    </MediaLink>
-    <SourceImageName>a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201412.01-en.us-127GB.vhd
-    </SourceImageName>
-    <OS>Windows</OS>
-  </OSVirtualHardDisk>
-  <RoleSize>Small</RoleSize>
-  <ProvisionGuestAgent>true</ProvisionGuestAgent>
-</PersistentVMRole>
diff --git a/azurecompute/src/test/resources/role2.xml b/azurecompute/src/test/resources/role2.xml
deleted file mode 100644
index da89dae..0000000
--- a/azurecompute/src/test/resources/role2.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<PersistentVMRole xmlns="http://schemas.microsoft.com/windowsazure">
-    <RoleName>test</RoleName>
-    <OsVersion/>
-    <RoleType>PersistentVMRole</RoleType>
-    <ConfigurationSets>
-        <ConfigurationSet>
-            <ConfigurationSetType>NetworkConfiguration</ConfigurationSetType>
-            <InputEndpoints>
-                <InputEndpoint>
-                    <LocalPort>22</LocalPort>
-                    <Name>SSH</Name>
-                    <Port>22</Port>
-                    <Protocol>tcp</Protocol>
-                    <Vip>168.61.166.228</Vip>
-                    <EnableDirectServerReturn>false</EnableDirectServerReturn>
-                </InputEndpoint>
-            </InputEndpoints>
-            <SubnetNames>
-                <SubnetName>Subnet-1</SubnetName>
-            </SubnetNames>
-        </ConfigurationSet>
-    </ConfigurationSets>
-    <DataVirtualHardDisks/>
-    <OSVirtualHardDisk>
-        <HostCaching>ReadWrite</HostCaching>
-        <DiskName>test-1452267291453</DiskName>
-        <MediaLink>test</MediaLink>
-        <OS>Linux</OS>
-        <RemoteSourceImageLink>test</RemoteSourceImageLink>
-        <IOType>Standard</IOType>
-    </OSVirtualHardDisk>
-    <RoleSize>Basic_A1</RoleSize>
-    <ProvisionGuestAgent>true</ProvisionGuestAgent>
-</PersistentVMRole>
diff --git a/azurecompute/src/test/resources/rolesizes.xml b/azurecompute/src/test/resources/rolesizes.xml
deleted file mode 100644
index 47c6394..0000000
--- a/azurecompute/src/test/resources/rolesizes.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<RoleSizes xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-   <RoleSize>
-      <Name>A10</Name>
-      <Label>A10 (8 cores, 57344 MB)</Label>
-      <Cores>8</Cores>
-      <MemoryInMb>57344</MemoryInMb>
-      <SupportedByWebWorkerRoles>true</SupportedByWebWorkerRoles>
-      <SupportedByVirtualMachines>true</SupportedByVirtualMachines>
-      <MaxDataDiskCount>16</MaxDataDiskCount>
-      <WebWorkerResourceDiskSizeInMb>1861268</WebWorkerResourceDiskSizeInMb>
-      <VirtualMachineResourceDiskSizeInMb>391828</VirtualMachineResourceDiskSizeInMb>
-   </RoleSize>
-   <RoleSize>
-      <Name>A11</Name>
-      <Label>A11 (16 cores, 114688 MB)</Label>
-      <Cores>16</Cores>
-      <MemoryInMb>114688</MemoryInMb>
-      <SupportedByWebWorkerRoles>true</SupportedByWebWorkerRoles>
-      <SupportedByVirtualMachines>true</SupportedByVirtualMachines>
-      <MaxDataDiskCount>16</MaxDataDiskCount>
-      <WebWorkerResourceDiskSizeInMb>1861268</WebWorkerResourceDiskSizeInMb>
-      <VirtualMachineResourceDiskSizeInMb>391828</VirtualMachineResourceDiskSizeInMb>
-   </RoleSize>
-</RoleSizes>
diff --git a/azurecompute/src/test/resources/servicecertificate.xml b/azurecompute/src/test/resources/servicecertificate.xml
deleted file mode 100644
index 82b28e4..0000000
--- a/azurecompute/src/test/resources/servicecertificate.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<Certificate xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <Data>MIIDyzCCArOgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQHDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJKoZIhvcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MzQwWhcNMTYwMzAzMTQ1MzQwWjBVMQswCQYDVQQGEwJJVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQswCQYDVQQLDAJBTTEWMBQGA1UEAwwNYW0udGlyYXNhLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMzqTZFbzahmEqp60txg8aUYw4Y7PL44A7rzHVnb5cb01/4VVjNeijmROOL8o5ZEbkNkQly43zjoZcrkw4bpvOz95OP8/NH/ZgyYKR42VqcTlxcj/22iq2Ie1XhWsKARmObdnNUcFCsdqXWXBo0bLF+WuUYh4ZoMxFMlP7YYl7WOCCgekE8E9sL02RuLZgq7v2M6fsxhT5rEG81jzUlmY5c/jXZKbUIBaltKtzC3DnBpuk9u+S87WseqTeuhUzF6VvgwmiQ+zeHdr5Hjqxrvmq445DPz+2U3PYN1vFoB/6QzjtZVakSfOSZ0YAtFhZFHmR11kJTNMfVQ5k5oIQPtHksCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOIYM6WyNdc4odsThFVtOefT/xg1MB8GA1UdIwQYMBaAFDqheOl4dpXYelhPC/bM+VdN1AXpMA0GCSqGSIb3DQEBCwUAA4IBAQB33qLYghIYa2j1ycHBpeZVadsb8xb4AnfnAW9g5dYfZP1eIvmKzOxN3CjpuCRKNI4vyKHiLbucfFDl5zi9BdYwwdduPbYTgE8F8Ilyit3irSRJFk1wHICX0sBPq5ulz39MPZsP2Fmzbrphr9BrRZOc1RJdHnj8C7phrfBneGSfwoY+qH5H6/h5A5rS8oDAraeklR2RJK4ztK+yDvp8orRDJQq5LAALQtWDhdW8Qj7WoIbGUeB77aJLluLOgriJLK+kKaGoUuAaKFRJXPyTmtUC17CJUJbapmtDwivILhU/dSdz6+1YXTg0ddNNlug3I6L5VVRnlwJJc/hIna1VjQJO</Data>
-</Certificate>
-
diff --git a/azurecompute/src/test/resources/servicecertificateparams.xml b/azurecompute/src/test/resources/servicecertificateparams.xml
deleted file mode 100644
index aed8229..0000000
--- a/azurecompute/src/test/resources/servicecertificateparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<CertificateFile xmlns="http://schemas.microsoft.com/windowsazure"><Data>MIIDyzCCArOgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQHDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJKoZIhvcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MzQwWhcNMTYwMzAzMTQ1MzQwWjBVMQswCQYDVQQGEwJJVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQswCQYDVQQLDAJBTTEWMBQGA1UEAwwNYW0udGlyYXNhLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMzqTZFbzahmEqp60txg8aUYw4Y7PL44A7rzHVnb5cb01/4VVjNeijmROOL8o5ZEbkNkQly43zjoZcrkw4bpvOz95OP8/NH/ZgyYKR42VqcTlxcj/22iq2Ie1XhWsKARmObdnNUcFCsdqXWXBo0bLF+WuUYh4ZoMxFMlP7YYl7WOCCgekE8E9sL02RuLZgq7v2M6fsxhT5rEG81jzUlmY5c/jXZKbUIBaltKtzC3DnBpuk9u+S87WseqTeuhUzF6VvgwmiQ+zeHdr5Hjqxrvmq445DPz+2U3PYN1vFoB/6QzjtZVakSfOSZ0YAtFhZFHmR11kJTNMfVQ5k5oIQPtHksCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOIYM6WyNdc4odsThFVtOefT/xg1MB8GA1UdIwQYMBaAFDqheOl4dpXYelhPC/bM+VdN1AXpMA0GCSqGSIb3DQEBCwUAA4IBAQB33qLYghIYa2j1ycHBpeZVadsb8xb4AnfnAW9g5dYfZP1eIvmKzOxN3CjpuCRKNI4vyKHiLbucfFDl5zi9BdYwwdduPbYTgE8F8Ilyit3irSRJFk1wHICX0sBPq5ulz39MPZsP2Fmzbrphr9BrRZOc1RJdHnj8C7phrfBneGSfwoY+qH5H6/h5A5rS8oDAraeklR2RJK4ztK+yDvp8orRDJQq5LAALQtWDhdW8Qj7WoIbGUeB77aJLluLOgriJLK+kKaGoUuAaKFRJXPyTmtUC17CJUJbapmtDwivILhU/dSdz6+1YXTg0ddNNlug3I6L5VVRnlwJJc/hIna1VjQJO</Data><CertificateFormat>pfx</CertificateFormat><Password>password</Password></CertificateFile>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/servicecertificates.xml b/azurecompute/src/test/resources/servicecertificates.xml
deleted file mode 100644
index ca47e6e..0000000
--- a/azurecompute/src/test/resources/servicecertificates.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<Certificates xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <Certificate>
-    <CertificateUrl>https://management.core.windows.net/d6769fbe-4649-453f-8435-c07f0cc0709d/services/hostedservices/prova/certificates/sha1-8D6ED1395205C57D23E518672903FDAF144EE8AE</CertificateUrl>
-    <Thumbprint>8D6ED1395205C57D23E518672903FDAF144EE8AE</Thumbprint>
-    <ThumbprintAlgorithm>sha1</ThumbprintAlgorithm>
-    <Data>MIIDyzCCArOgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQHDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJKoZIhvcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MzQwWhcNMTYwMzAzMTQ1MzQwWjBVMQswCQYDVQQGEwJJVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQswCQYDVQQLDAJBTTEWMBQGA1UEAwwNYW0udGlyYXNhLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMzqTZFbzahmEqp60txg8aUYw4Y7PL44A7rzHVnb5cb01/4VVjNeijmROOL8o5ZEbkNkQly43zjoZcrkw4bpvOz95OP8/NH/ZgyYKR42VqcTlxcj/22iq2Ie1XhWsKARmObdnNUcFCsdqXWXBo0bLF+WuUYh4ZoMxFMlP7YYl7WOCCgekE8E9sL02RuLZgq7v2M6fsxhT5rEG81jzUlmY5c/jXZKbUIBaltKtzC3DnBpuk9u+S87WseqTeuhUzF6VvgwmiQ+zeHdr5Hjqxrvmq445DPz+2U3PYN1vFoB/6QzjtZVakSfOSZ0YAtFhZFHmR11kJTNMfVQ5k5oIQPtHksCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOIYM6WyNdc4odsThFVtOefT/xg1MB8GA1UdIwQYMBaAFDqheOl4dpXYelhPC/bM+VdN1AXpMA0GCSqGSIb3DQEBCwUAA4IBAQB33qLYghIYa2j1ycHBpeZVadsb8xb4AnfnAW9g5dYfZP1eIvmKzOxN3CjpuCRKNI4vyKHiLbucfFDl5zi9BdYwwdduPbYTgE8F8Ilyit3irSRJFk1wHICX0sBPq5ulz39MPZsP2Fmzbrphr9BrRZOc1RJdHnj8C7phrfBneGSfwoY+qH5H6/h5A5rS8oDAraeklR2RJK4ztK+yDvp8orRDJQq5LAALQtWDhdW8Qj7WoIbGUeB77aJLluLOgriJLK+kKaGoUuAaKFRJXPyTmtUC17CJUJbapmtDwivILhU/dSdz6+1YXTg0ddNNlug3I6L5VVRnlwJJc/hIna1VjQJO</Data>
-  </Certificate>
-  <Certificate>
-    <CertificateUrl>https://management.core.windows.net/d6769fbe-4649-453f-8435-c07f0cc0709d/services/hostedservices/prova/certificates/sha1-CCA59C5AA24866BB292F01B81E6A77FAF8FCDC73</CertificateUrl>
-    <Thumbprint>CCA59C5AA24866BB292F01B81E6A77FAF8FCDC73</Thumbprint>
-    <ThumbprintAlgorithm>sha1</ThumbprintAlgorithm>
-    <Data>MIIDzTCCArWgAwIBAgICEAYwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQHDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJKoZIhvcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MTI2WhcNMTYwMzAzMTQ1MTI2WjBXMQswCQYDVQQGEwJJVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQwwCgYDVQQLDANJZE0xFzAVBgNVBAMMDmlkbS50aXJhc2EubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1G1ejg5eHZzhVca8OOD6pq0fj5VDEYIxG7CGDl4I8N3NE+svIGTYumdKUn1+FFyfgxsPCh7zfoSq0hnelRpBI3w9wfic1856/wNz4ZsLQgcrm6wwwVXEfWGKYF1r8pTBzAYqNzQFqypSL9kU/YJfeY8XR3eJ3vQersAiKUQVQqk1H10R2aURqlCFs1xc/ta9INNS+SLgWEBmQNnpwHfb7IsIYmPfqvbZsfAJ9KDqIdA5mjPz1elHNLLMi4phGPpbAH7AszZbrRaFtbI0o5nAL6tS37f3iEV1L7cWo/am6MGg0PF4T9GRdL8D0gl9BDskMUHD+n8cJOEO2sQVJBKszwIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU4GbbmOK+5WNBil8edbwKYHIhCJMwHwYDVR0jBBgwFoAUOqF46Xh2ldh6WE8L9sz5V03UBekwDQYJKoZIhvcNAQELBQADggEBAMqr+GoBBf7UPo4dBoQef4OhrNGCcYz6E0B8WID7ZG6KLv6TyTi5iEna/bbc60HisVqUoFIMyMa+bHiLNwObNQ/+edklNyPe48OHYX2421x3H//M/n6SpRxP5i1NSlqtcw6WnXzaTHUwV8v+5ctG1QAKrJ+nwwDRWzALxPJvw4TDeggRIkzAqIySrN+nRkVNliGlnZEI8NjJdelS/83E02LAxj3sPJp1yS5lWia88eNg6UXY2vQf9CwrXjOz0aOvVOwHJxXBxS0tqv+bg0D5B640WdcZOhgzDxte6DDkiSU+P7nZUW1Bwtk0WD9GKN2+YPg/ElLLB5nSEGZSVN6Xfn8=</Data>
-  </Certificate>
-</Certificates>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/shutdownrolepayload.xml b/azurecompute/src/test/resources/shutdownrolepayload.xml
deleted file mode 100644
index 5048ca3..0000000
--- a/azurecompute/src/test/resources/shutdownrolepayload.xml
+++ /dev/null
@@ -1 +0,0 @@
-<ShutdownRoleOperation xmlns="http://schemas.microsoft.com/windowsazure"><OperationType>ShutdownRoleOperation</OperationType></ShutdownRoleOperation>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/startrolepayload.xml b/azurecompute/src/test/resources/startrolepayload.xml
deleted file mode 100644
index 6b6d7a3..0000000
--- a/azurecompute/src/test/resources/startrolepayload.xml
+++ /dev/null
@@ -1 +0,0 @@
-<StartRoleOperation xmlns="http://schemas.microsoft.com/windowsazure"><OperationType>StartRoleOperation</OperationType></StartRoleOperation>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/storageaccountkeys.xml b/azurecompute/src/test/resources/storageaccountkeys.xml
deleted file mode 100644
index eace1f5..0000000
--- a/azurecompute/src/test/resources/storageaccountkeys.xml
+++ /dev/null
@@ -1 +0,0 @@
-<StorageService xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Url>https://management.core.windows.net/subscriptionid/services/storageservices/serviceName</Url><StorageServiceKeys><Primary>bndO7lydwDkMo4Y0mFvmfLyi2f9aZY7bwfAVWoJWv4mOVK6E9c/exLnFsSm/NMWgifLCfxC/c6QBTbdEvWUA7w==</Primary><Secondary>/jMLLT3kKqY4K+cUtJTbh7pCBdvG9EMKJxUvaJJAf6W6aUiZe1A1ulXHcibrqRVA2RJE0oUeXQGXLYJ2l85L7A==</Secondary></StorageServiceKeys></StorageService>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/storageaccountregeneratekeys.xml b/azurecompute/src/test/resources/storageaccountregeneratekeys.xml
deleted file mode 100644
index 01f2a40..0000000
--- a/azurecompute/src/test/resources/storageaccountregeneratekeys.xml
+++ /dev/null
@@ -1 +0,0 @@
-<RegenerateKeys xmlns="http://schemas.microsoft.com/windowsazure"><KeyType>Primary</KeyType></RegenerateKeys>
diff --git a/azurecompute/src/test/resources/storageservices.xml b/azurecompute/src/test/resources/storageservices.xml
deleted file mode 100644
index 6935444..0000000
--- a/azurecompute/src/test/resources/storageservices.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<StorageServices xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-   <StorageService>
-      <Url>https://management.core.windows.net/subscriptionid/services/storageservices/serviceName</Url>
-      <ServiceName>serviceName</ServiceName>
-      <StorageServiceProperties>
-         <Description i:nil="true"/>
-         <Location>West Europe</Location>
-         <Label>c2VydmljZU5hbWU=</Label>
-         <Status>Created</Status>
-         <Endpoints>
-            <Endpoint>https://serviceName.blob.core.windows.net/</Endpoint>
-            <Endpoint>https://serviceName.queue.core.windows.net/</Endpoint>
-            <Endpoint>https://serviceName.table.core.windows.net/</Endpoint>
-         </Endpoints>
-         <GeoPrimaryRegion>West Europe</GeoPrimaryRegion>
-         <StatusOfPrimary>Available</StatusOfPrimary>
-         <GeoSecondaryRegion/>
-         <StatusOfSecondary/>
-         <CreationTime>2015-03-30T10:15:00Z</CreationTime>
-         <CustomDomains/>
-         <AccountType>Standard_LRS</AccountType>
-      </StorageServiceProperties>
-      <ExtendedProperties>
-         <ExtendedProperty>
-            <Name>ResourceGroup</Name>
-            <Value>Default-Storage-WestEurope</Value>
-         </ExtendedProperty>
-         <ExtendedProperty>
-            <Name>ResourceLocation</Name>
-            <Value>West Europe</Value>
-         </ExtendedProperty>
-      </ExtendedProperties>
-   </StorageService>
-</StorageServices>
diff --git a/azurecompute/src/test/resources/updateaffinitygroupparams.xml b/azurecompute/src/test/resources/updateaffinitygroupparams.xml
deleted file mode 100644
index f49a6b9..0000000
--- a/azurecompute/src/test/resources/updateaffinitygroupparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<UpdateAffinityGroup xmlns="http://schemas.microsoft.com/windowsazure"><Label>Zm9v</Label><Description>mygroup description</Description></UpdateAffinityGroup>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/updateprofileparams.xml b/azurecompute/src/test/resources/updateprofileparams.xml
deleted file mode 100644
index ee61d13..0000000
--- a/azurecompute/src/test/resources/updateprofileparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<Profile xmlns="http://schemas.microsoft.com/windowsazure"><Status>Enabled</Status><StatusDetails><EnabledVersion>1</EnabledVersion></StatusDetails></Profile>
diff --git a/azurecompute/src/test/resources/updatestorageserviceparams.xml b/azurecompute/src/test/resources/updatestorageserviceparams.xml
deleted file mode 100644
index a401936..0000000
--- a/azurecompute/src/test/resources/updatestorageserviceparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<UpdateStorageServiceInput xmlns="http://schemas.microsoft.com/windowsazure"><Description>description-of-storage-account</Description><Label>YmFzZTY0LWVuY29kZWQtbGFiZWw=</Label><ExtendedProperties><ExtendedProperty><Name>property_name</Name><Value>property_value</Value></ExtendedProperty></ExtendedProperties><CustomDomains><CustomDomain><Name>name-of-custom-domain</Name><UseSubDomainName>false</UseSubDomainName></CustomDomain></CustomDomains><AccountType>Standard_GRS</AccountType></UpdateStorageServiceInput>
diff --git a/azurecompute/src/test/resources/virtualIPs.xml b/azurecompute/src/test/resources/virtualIPs.xml
deleted file mode 100644
index c684d75..0000000
--- a/azurecompute/src/test/resources/virtualIPs.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<VirtualIPs>
-  <VirtualIP>
-    <Address>104.40.193.219</Address>
-    <IsDnsProgrammed>true</IsDnsProgrammed>
-    <Name>__PseudoBackEndContractVip</Name>
-  </VirtualIP>
-</VirtualIPs>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/virtualnetworksites.xml b/azurecompute/src/test/resources/virtualnetworksites.xml
deleted file mode 100644
index 5f62b11..0000000
--- a/azurecompute/src/test/resources/virtualnetworksites.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<VirtualNetworkSites xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-  <VirtualNetworkSite>
-    <Name>Group Group testDocker</Name>
-    <Id>39d0d14b-fc1d-496f-8928-b5a13a6f4b64</Id>
-    <State>Created</State>
-    <AddressSpace>
-      <AddressPrefixes>
-        <AddressPrefix>10.1.0.0/16</AddressPrefix>
-      </AddressPrefixes>
-    </AddressSpace>
-    <Subnets>
-      <Subnet>
-        <Name>Subnet-1</Name>
-        <AddressPrefix>10.1.0.0/24</AddressPrefix>
-      </Subnet>
-    </Subnets>
-    <Location>West Europe</Location>
-  </VirtualNetworkSite>
-  <VirtualNetworkSite>
-    <Name>Group Group-1 dockertest</Name>
-    <Id>12252126-cffc-4fac-8ba4-afa7150a8d4a</Id>
-    <State>Created</State>
-    <AddressSpace>
-      <AddressPrefixes>
-        <AddressPrefix>10.2.0.0/16</AddressPrefix>
-      </AddressPrefixes>
-    </AddressSpace>
-    <Subnets>
-      <Subnet>
-        <Name>Subnet-1</Name>
-        <AddressPrefix>10.2.0.0/24</AddressPrefix>
-      </Subnet>
-    </Subnets>
-    <Location>West Europe</Location>
-  </VirtualNetworkSite>
-</VirtualNetworkSites>
diff --git a/azurecompute/src/test/resources/vmimageparams.xml b/azurecompute/src/test/resources/vmimageparams.xml
deleted file mode 100644
index 43a54bf..0000000
--- a/azurecompute/src/test/resources/vmimageparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<VMImage xmlns="http://schemas.microsoft.com/windowsazure"><Name>ClouderaGolden</Name><Label>CDH 5.1 Evaluation</Label><Description>Single click deployment</Description><OSDiskConfiguration><HostCaching>ReadOnly</HostCaching><OSState>SPECIALIZED</OSState><OS>LINUX</OS><MediaLink>http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd</MediaLink></OSDiskConfiguration><DataDiskConfigurations/><Language>en</Language><ImageFamily>Ubuntu</ImageFamily><RecommendedVMSize>Large</RecommendedVMSize><Eula>http://www.gnu.org/copyleft/gpl.html</Eula><IconUri>http://www.cloudera.com/content/cloudera/en/privacy-policy.html</IconUri><SmallIconUri>http://www.cloudera.com/content/cloudera/en/privacy-policy.html</SmallIconUri><PrivacyUri>http://www.cloudera.com/content/cloudera/en/privacy-policy.html</PrivacyUri><ShowGui>true</ShowGui></VMImage>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/vmimageparams_mock.xml b/azurecompute/src/test/resources/vmimageparams_mock.xml
deleted file mode 100644
index bd62d9c..0000000
--- a/azurecompute/src/test/resources/vmimageparams_mock.xml
+++ /dev/null
@@ -1 +0,0 @@
-<CaptureRoleAsVMImageOperation xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><OperationType>CaptureRoleAsVMImageOperation</OperationType><OSState>Generalized</OSState><VMImageName>capturedimage</VMImageName><VMImageLabel>CapturedImage</VMImageLabel><Description/><Language/><ImageFamily/><RecommendedVMSize>Medium</RecommendedVMSize></CaptureRoleAsVMImageOperation>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/vmimages.xml b/azurecompute/src/test/resources/vmimages.xml
deleted file mode 100644
index f92e74b..0000000
--- a/azurecompute/src/test/resources/vmimages.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<VMImages xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
-    <VMImage>
-        <Name>1acf693f34c74e86a50be61cb631ddfe__ClouderaGolden-202406-699696</Name>
-        <Label>CDH 5.1 Evaluation</Label>
-        <Category>Public</Category>
-        <Description>Single click deployment of CDH 5.1 Evaluation for MR, HDFS and HIVE</Description>
-        <OSDiskConfiguration>
-            <Name>ClouderaGolden-202406-699696-os-2014-10-06</Name>
-            <HostCaching>ReadWrite</HostCaching>
-            <OSState>SPECIALIZED</OSState>
-            <OS>Linux</OS>
-            <MediaLink/>
-            <LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
-            <IOType/>
-        </OSDiskConfiguration>
-        <DataDiskConfigurations>
-            <DataDiskConfiguration>
-                <Name>testimage1-testimage1-0-20120817095145</Name>
-                <HostCaching>ReadOnly</HostCaching>
-                <Lun>10</Lun>
-                <MediaLink>http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd</MediaLink>
-                <LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
-                <IOType>Standard</IOType>
-            </DataDiskConfiguration>
-            <DataDiskConfiguration>
-                <Name>testimage2-testimage2-0-20120817095145</Name>
-                <HostCaching>ReadWrite</HostCaching>
-                <Lun>20</Lun>
-                <MediaLink>http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd</MediaLink>
-                <LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
-                <IOType>Standard</IOType>
-            </DataDiskConfiguration>
-        </DataDiskConfigurations>
-        <ServiceName/>
-        <DeploymentName/>
-        <RoleName/>
-        <Location>
-            East Asia;Southeast Asia;Australia East;Australia Southeast;Brazil South;North Europe
-        </Location>
-        <AffinityGroup/>
-        <CreatedTime>2014-07-05T14:55:17Z</CreatedTime>
-        <ModifiedTime>2014-09-06T22:58:11Z</ModifiedTime>
-        <Language/>
-        <ImageFamily>CDH 5.1 Evaluation</ImageFamily>
-        <RecommendedVMSize/>
-        <IsPremium>False</IsPremium>
-        <Eula>http://www.gnu.org/copyleft/gpl.html</Eula>
-        <IconUri/>
-        <SmallIconUri></SmallIconUri>
-        <PrivacyUri>http://www.cloudera.com/content/cloudera/en/privacy-policy.html</PrivacyUri>
-        <PublisherName>publisher-identifier</PublisherName>
-        <PublishedDate>2012-07-05T14:55:17Z</PublishedDate>
-        <ShowInGui>indicator-of-availability</ShowInGui>
-        <PricingDetailLink>pricing-details</PricingDetailLink>
-    </VMImage>
-</VMImages>
diff --git a/pom.xml b/pom.xml
index cddd17e..278dc40 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,7 +54,6 @@
   </repositories>
 
   <modules>
-    <module>azurecompute</module>
     <module>cdmi</module>
     <module>cloudsigma2</module>
     <module>cloudsigma2-hnl</module>