diff --git a/sdk/avs/mgmt-v2020_07_17_preview/pom.xml b/sdk/avs/mgmt-v2020_07_17_preview/pom.xml
new file mode 100644
index 0000000000000..7419f6a2b47ec
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/pom.xml
@@ -0,0 +1,115 @@
+
+
+ 4.0.0
+ com.microsoft.azure
+ azure-avs
+ 1.7.1-SNAPSHOT
+ jar
+ Microsoft Azure SDK for AVS
+ This package contains Microsoft AVS SDK.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+ 1.5.3
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ 1.5.3
+ test
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ */
+ ]]>
+
+
+
+
+
+
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/Authorizations.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/Authorizations.java
new file mode 100644
index 0000000000000..1d19a0078455c
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/Authorizations.java
@@ -0,0 +1,344 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.avs.v2020_07_17_preview;
+
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.avs.v20200717preview.models.ExpressRouteAuthorization;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Authorizations.
+ */
+public interface Authorizations {
+ /**
+ * List ExpressRoute Circuit Authorizations in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<ExpressRouteAuthorization> object if successful.
+ */
+ PagedList list(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * List ExpressRoute Circuit Authorizations in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listAsync(final String resourceGroupName, final String privateCloudName, final ListOperationCallback serviceCallback);
+
+ /**
+ * List ExpressRoute Circuit Authorizations in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ExpressRouteAuthorization> object
+ */
+ Observable> listAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * List ExpressRoute Circuit Authorizations in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ExpressRouteAuthorization> object
+ */
+ Observable>> listWithServiceResponseAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * Get an ExpressRoute Circuit Authorization by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ExpressRouteAuthorization object if successful.
+ */
+ ExpressRouteAuthorization get(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * Get an ExpressRoute Circuit Authorization by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture getAsync(String resourceGroupName, String privateCloudName, String authorizationName, final ServiceCallback serviceCallback);
+
+ /**
+ * Get an ExpressRoute Circuit Authorization by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ExpressRouteAuthorization object
+ */
+ Observable getAsync(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * Get an ExpressRoute Circuit Authorization by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ExpressRouteAuthorization object
+ */
+ Observable> getWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * Create or update an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ExpressRouteAuthorization object if successful.
+ */
+ ExpressRouteAuthorization createOrUpdate(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * Create or update an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture createOrUpdateAsync(String resourceGroupName, String privateCloudName, String authorizationName, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ExpressRouteAuthorization object
+ */
+ Observable createOrUpdateAsync(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * Create or update an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ExpressRouteAuthorization object
+ */
+ Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * Create or update an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ExpressRouteAuthorization object if successful.
+ */
+ ExpressRouteAuthorization beginCreateOrUpdate(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * Create or update an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginCreateOrUpdateAsync(String resourceGroupName, String privateCloudName, String authorizationName, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ExpressRouteAuthorization object
+ */
+ Observable beginCreateOrUpdateAsync(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * Create or update an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ExpressRouteAuthorization object
+ */
+ Observable> beginCreateOrUpdateWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * Delete an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ void delete(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * Delete an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture deleteAsync(String resourceGroupName, String privateCloudName, String authorizationName, final ServiceCallback serviceCallback);
+
+ /**
+ * Delete an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable deleteAsync(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * Delete an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable> deleteWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * Delete an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ void beginDelete(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * Delete an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginDeleteAsync(String resourceGroupName, String privateCloudName, String authorizationName, final ServiceCallback serviceCallback);
+
+ /**
+ * Delete an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable beginDeleteAsync(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * Delete an ExpressRoute Circuit Authorization in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param authorizationName Name of the ExpressRoute Circuit Authorization in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable> beginDeleteWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * List ExpressRoute Circuit Authorizations in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<ExpressRouteAuthorization> object if successful.
+ */
+ PagedList listNext(final String nextPageLink);
+
+ /**
+ * List ExpressRoute Circuit Authorizations in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback);
+
+ /**
+ * List ExpressRoute Circuit Authorizations in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ExpressRouteAuthorization> object
+ */
+ Observable> listNextAsync(final String nextPageLink);
+
+ /**
+ * List ExpressRoute Circuit Authorizations in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ExpressRouteAuthorization> object
+ */
+ Observable>> listNextWithServiceResponseAsync(final String nextPageLink);
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/AvsClient.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/AvsClient.java
new file mode 100644
index 0000000000000..a4bd4c7622d22
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/AvsClient.java
@@ -0,0 +1,153 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.avs.v2020_07_17_preview;
+
+import com.microsoft.azure.AzureClient;
+import com.microsoft.rest.RestClient;
+
+/**
+ * The interface for AvsClient class.
+ */
+public interface AvsClient {
+ /**
+ * Gets the REST client.
+ *
+ * @return the {@link RestClient} object.
+ */
+ RestClient restClient();
+
+ /**
+ * Gets the {@link AzureClient} used for long running operations.
+ * @return the azure client;
+ */
+ AzureClient getAzureClient();
+
+ /**
+ * Gets the User-Agent header for the client.
+ *
+ * @return the user agent string.
+ */
+ String userAgent();
+
+ /**
+ * Gets The API version to use for this operation..
+ *
+ * @return the apiVersion value.
+ */
+ String apiVersion();
+
+ /**
+ * Gets The ID of the target subscription..
+ *
+ * @return the subscriptionId value.
+ */
+ String subscriptionId();
+
+ /**
+ * Sets The ID of the target subscription..
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the service client itself
+ */
+ AvsClient withSubscriptionId(String subscriptionId);
+
+ /**
+ * Gets The preferred language for the response..
+ *
+ * @return the acceptLanguage value.
+ */
+ String acceptLanguage();
+
+ /**
+ * Sets The preferred language for the response..
+ *
+ * @param acceptLanguage the acceptLanguage value.
+ * @return the service client itself
+ */
+ AvsClient withAcceptLanguage(String acceptLanguage);
+
+ /**
+ * Gets The retry timeout in seconds for Long Running Operations. Default value is 30..
+ *
+ * @return the longRunningOperationRetryTimeout value.
+ */
+ int longRunningOperationRetryTimeout();
+
+ /**
+ * Sets The retry timeout in seconds for Long Running Operations. Default value is 30..
+ *
+ * @param longRunningOperationRetryTimeout the longRunningOperationRetryTimeout value.
+ * @return the service client itself
+ */
+ AvsClient withLongRunningOperationRetryTimeout(int longRunningOperationRetryTimeout);
+
+ /**
+ * Gets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true..
+ *
+ * @return the generateClientRequestId value.
+ */
+ boolean generateClientRequestId();
+
+ /**
+ * Sets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true..
+ *
+ * @param generateClientRequestId the generateClientRequestId value.
+ * @return the service client itself
+ */
+ AvsClient withGenerateClientRequestId(boolean generateClientRequestId);
+
+ /**
+ * Gets the Operations object to access its operations.
+ * @return the Operations object.
+ */
+ Operations operations();
+
+ /**
+ * Gets the Locations object to access its operations.
+ * @return the Locations object.
+ */
+ Locations locations();
+
+ /**
+ * Gets the PrivateClouds object to access its operations.
+ * @return the PrivateClouds object.
+ */
+ PrivateClouds privateClouds();
+
+ /**
+ * Gets the Clusters object to access its operations.
+ * @return the Clusters object.
+ */
+ Clusters clusters();
+
+ /**
+ * Gets the HcxEnterpriseSites object to access its operations.
+ * @return the HcxEnterpriseSites object.
+ */
+ HcxEnterpriseSites hcxEnterpriseSites();
+
+ /**
+ * Gets the Authorizations object to access its operations.
+ * @return the Authorizations object.
+ */
+ Authorizations authorizations();
+
+ /**
+ * Gets the GlobalReachConnections object to access its operations.
+ * @return the GlobalReachConnections object.
+ */
+ GlobalReachConnections globalReachConnections();
+
+ /**
+ * Gets the WorkloadNetworks object to access its operations.
+ * @return the WorkloadNetworks object.
+ */
+ WorkloadNetworks workloadNetworks();
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/Clusters.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/Clusters.java
new file mode 100644
index 0000000000000..0953ea564eaec
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/Clusters.java
@@ -0,0 +1,455 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.avs.v2020_07_17_preview;
+
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.avs.v20200717preview.models.Cluster;
+import com.microsoft.azure.management.avs.v20200717preview.models.ClusterUpdate;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Clusters.
+ */
+public interface Clusters {
+ /**
+ * List clusters in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<Cluster> object if successful.
+ */
+ PagedList list(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * List clusters in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listAsync(final String resourceGroupName, final String privateCloudName, final ListOperationCallback serviceCallback);
+
+ /**
+ * List clusters in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Cluster> object
+ */
+ Observable> listAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * List clusters in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Cluster> object
+ */
+ Observable>> listWithServiceResponseAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * Get a cluster by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the Cluster object if successful.
+ */
+ Cluster get(String resourceGroupName, String privateCloudName, String clusterName);
+
+ /**
+ * Get a cluster by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture getAsync(String resourceGroupName, String privateCloudName, String clusterName, final ServiceCallback serviceCallback);
+
+ /**
+ * Get a cluster by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Cluster object
+ */
+ Observable getAsync(String resourceGroupName, String privateCloudName, String clusterName);
+
+ /**
+ * Get a cluster by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Cluster object
+ */
+ Observable> getWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String clusterName);
+
+ /**
+ * Create or update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud
+ * @param cluster A cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the Cluster object if successful.
+ */
+ Cluster createOrUpdate(String resourceGroupName, String privateCloudName, String clusterName, Cluster cluster);
+
+ /**
+ * Create or update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud
+ * @param cluster A cluster in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture createOrUpdateAsync(String resourceGroupName, String privateCloudName, String clusterName, Cluster cluster, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud
+ * @param cluster A cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Cluster object
+ */
+ Observable createOrUpdateAsync(String resourceGroupName, String privateCloudName, String clusterName, Cluster cluster);
+
+ /**
+ * Create or update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud
+ * @param cluster A cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Cluster object
+ */
+ Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String clusterName, Cluster cluster);
+
+ /**
+ * Create or update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud
+ * @param cluster A cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the Cluster object if successful.
+ */
+ Cluster beginCreateOrUpdate(String resourceGroupName, String privateCloudName, String clusterName, Cluster cluster);
+
+ /**
+ * Create or update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud
+ * @param cluster A cluster in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginCreateOrUpdateAsync(String resourceGroupName, String privateCloudName, String clusterName, Cluster cluster, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud
+ * @param cluster A cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Cluster object
+ */
+ Observable beginCreateOrUpdateAsync(String resourceGroupName, String privateCloudName, String clusterName, Cluster cluster);
+
+ /**
+ * Create or update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param clusterName Name of the cluster in the private cloud
+ * @param cluster A cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Cluster object
+ */
+ Observable> beginCreateOrUpdateWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String clusterName, Cluster cluster);
+
+ /**
+ * Update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param clusterUpdate The cluster properties to be updated
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the Cluster object if successful.
+ */
+ Cluster update(String resourceGroupName, String privateCloudName, String clusterName, ClusterUpdate clusterUpdate);
+
+ /**
+ * Update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param clusterUpdate The cluster properties to be updated
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture updateAsync(String resourceGroupName, String privateCloudName, String clusterName, ClusterUpdate clusterUpdate, final ServiceCallback serviceCallback);
+
+ /**
+ * Update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param clusterUpdate The cluster properties to be updated
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Cluster object
+ */
+ Observable updateAsync(String resourceGroupName, String privateCloudName, String clusterName, ClusterUpdate clusterUpdate);
+
+ /**
+ * Update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param clusterUpdate The cluster properties to be updated
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Cluster object
+ */
+ Observable> updateWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String clusterName, ClusterUpdate clusterUpdate);
+
+ /**
+ * Update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param clusterUpdate The cluster properties to be updated
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the Cluster object if successful.
+ */
+ Cluster beginUpdate(String resourceGroupName, String privateCloudName, String clusterName, ClusterUpdate clusterUpdate);
+
+ /**
+ * Update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param clusterUpdate The cluster properties to be updated
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginUpdateAsync(String resourceGroupName, String privateCloudName, String clusterName, ClusterUpdate clusterUpdate, final ServiceCallback serviceCallback);
+
+ /**
+ * Update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param clusterUpdate The cluster properties to be updated
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Cluster object
+ */
+ Observable beginUpdateAsync(String resourceGroupName, String privateCloudName, String clusterName, ClusterUpdate clusterUpdate);
+
+ /**
+ * Update a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param clusterUpdate The cluster properties to be updated
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Cluster object
+ */
+ Observable> beginUpdateWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String clusterName, ClusterUpdate clusterUpdate);
+
+ /**
+ * Delete a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ void delete(String resourceGroupName, String privateCloudName, String clusterName);
+
+ /**
+ * Delete a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture deleteAsync(String resourceGroupName, String privateCloudName, String clusterName, final ServiceCallback serviceCallback);
+
+ /**
+ * Delete a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable deleteAsync(String resourceGroupName, String privateCloudName, String clusterName);
+
+ /**
+ * Delete a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable> deleteWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String clusterName);
+
+ /**
+ * Delete a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ void beginDelete(String resourceGroupName, String privateCloudName, String clusterName);
+
+ /**
+ * Delete a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginDeleteAsync(String resourceGroupName, String privateCloudName, String clusterName, final ServiceCallback serviceCallback);
+
+ /**
+ * Delete a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable beginDeleteAsync(String resourceGroupName, String privateCloudName, String clusterName);
+
+ /**
+ * Delete a cluster in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param clusterName Name of the cluster in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable> beginDeleteWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String clusterName);
+
+ /**
+ * List clusters in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<Cluster> object if successful.
+ */
+ PagedList listNext(final String nextPageLink);
+
+ /**
+ * List clusters in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback);
+
+ /**
+ * List clusters in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Cluster> object
+ */
+ Observable> listNextAsync(final String nextPageLink);
+
+ /**
+ * List clusters in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Cluster> object
+ */
+ Observable>> listNextWithServiceResponseAsync(final String nextPageLink);
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/GlobalReachConnections.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/GlobalReachConnections.java
new file mode 100644
index 0000000000000..970d6c8dbc64b
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/GlobalReachConnections.java
@@ -0,0 +1,352 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.avs.v2020_07_17_preview;
+
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.avs.v20200717preview.models.GlobalReachConnection;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in GlobalReachConnections.
+ */
+public interface GlobalReachConnections {
+ /**
+ * List global reach connections in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<GlobalReachConnection> object if successful.
+ */
+ PagedList list(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * List global reach connections in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listAsync(final String resourceGroupName, final String privateCloudName, final ListOperationCallback serviceCallback);
+
+ /**
+ * List global reach connections in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<GlobalReachConnection> object
+ */
+ Observable> listAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * List global reach connections in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<GlobalReachConnection> object
+ */
+ Observable>> listWithServiceResponseAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * Get a global reach connection by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the GlobalReachConnection object if successful.
+ */
+ GlobalReachConnection get(String resourceGroupName, String privateCloudName, String globalReachConnectionName);
+
+ /**
+ * Get a global reach connection by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture getAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName, final ServiceCallback serviceCallback);
+
+ /**
+ * Get a global reach connection by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the GlobalReachConnection object
+ */
+ Observable getAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName);
+
+ /**
+ * Get a global reach connection by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the GlobalReachConnection object
+ */
+ Observable> getWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName);
+
+ /**
+ * Create or update a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @param globalReachConnection A global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the GlobalReachConnection object if successful.
+ */
+ GlobalReachConnection createOrUpdate(String resourceGroupName, String privateCloudName, String globalReachConnectionName, GlobalReachConnection globalReachConnection);
+
+ /**
+ * Create or update a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @param globalReachConnection A global reach connection in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture createOrUpdateAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName, GlobalReachConnection globalReachConnection, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @param globalReachConnection A global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the GlobalReachConnection object
+ */
+ Observable createOrUpdateAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName, GlobalReachConnection globalReachConnection);
+
+ /**
+ * Create or update a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @param globalReachConnection A global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the GlobalReachConnection object
+ */
+ Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName, GlobalReachConnection globalReachConnection);
+
+ /**
+ * Create or update a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @param globalReachConnection A global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the GlobalReachConnection object if successful.
+ */
+ GlobalReachConnection beginCreateOrUpdate(String resourceGroupName, String privateCloudName, String globalReachConnectionName, GlobalReachConnection globalReachConnection);
+
+ /**
+ * Create or update a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @param globalReachConnection A global reach connection in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginCreateOrUpdateAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName, GlobalReachConnection globalReachConnection, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @param globalReachConnection A global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the GlobalReachConnection object
+ */
+ Observable beginCreateOrUpdateAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName, GlobalReachConnection globalReachConnection);
+
+ /**
+ * Create or update a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @param globalReachConnection A global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the GlobalReachConnection object
+ */
+ Observable> beginCreateOrUpdateWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName, GlobalReachConnection globalReachConnection);
+
+ /**
+ * Delete a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ void delete(String resourceGroupName, String privateCloudName, String globalReachConnectionName);
+
+ /**
+ * Delete a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture deleteAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName, final ServiceCallback serviceCallback);
+
+ /**
+ * Delete a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable deleteAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName);
+
+ /**
+ * Delete a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable> deleteWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName);
+
+ /**
+ * Delete a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ void beginDelete(String resourceGroupName, String privateCloudName, String globalReachConnectionName);
+
+ /**
+ * Delete a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginDeleteAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName, final ServiceCallback serviceCallback);
+
+ /**
+ * Delete a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable beginDeleteAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName);
+
+ /**
+ * Delete a global reach connection in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param globalReachConnectionName Name of the global reach connection in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable> beginDeleteWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName);
+
+ /**
+ * List global reach connections in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<GlobalReachConnection> object if successful.
+ */
+ PagedList listNext(final String nextPageLink);
+
+ /**
+ * List global reach connections in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback);
+
+ /**
+ * List global reach connections in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<GlobalReachConnection> object
+ */
+ Observable> listNextAsync(final String nextPageLink);
+
+ /**
+ * List global reach connections in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<GlobalReachConnection> object
+ */
+ Observable>> listNextWithServiceResponseAsync(final String nextPageLink);
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/HcxEnterpriseSites.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/HcxEnterpriseSites.java
new file mode 100644
index 0000000000000..d595fdd4fb7e9
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/HcxEnterpriseSites.java
@@ -0,0 +1,251 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.avs.v2020_07_17_preview;
+
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.avs.v20200717preview.models.HcxEnterpriseSite;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in HcxEnterpriseSites.
+ */
+public interface HcxEnterpriseSites {
+ /**
+ * List HCX Enterprise Sites in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<HcxEnterpriseSite> object if successful.
+ */
+ PagedList list(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * List HCX Enterprise Sites in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listAsync(final String resourceGroupName, final String privateCloudName, final ListOperationCallback serviceCallback);
+
+ /**
+ * List HCX Enterprise Sites in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<HcxEnterpriseSite> object
+ */
+ Observable> listAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * List HCX Enterprise Sites in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<HcxEnterpriseSite> object
+ */
+ Observable>> listWithServiceResponseAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * Get an HCX Enterprise Site by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param hcxEnterpriseSiteName Name of the HCX Enterprise Site in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the HcxEnterpriseSite object if successful.
+ */
+ HcxEnterpriseSite get(String resourceGroupName, String privateCloudName, String hcxEnterpriseSiteName);
+
+ /**
+ * Get an HCX Enterprise Site by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param hcxEnterpriseSiteName Name of the HCX Enterprise Site in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture getAsync(String resourceGroupName, String privateCloudName, String hcxEnterpriseSiteName, final ServiceCallback serviceCallback);
+
+ /**
+ * Get an HCX Enterprise Site by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param hcxEnterpriseSiteName Name of the HCX Enterprise Site in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the HcxEnterpriseSite object
+ */
+ Observable getAsync(String resourceGroupName, String privateCloudName, String hcxEnterpriseSiteName);
+
+ /**
+ * Get an HCX Enterprise Site by name in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param hcxEnterpriseSiteName Name of the HCX Enterprise Site in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the HcxEnterpriseSite object
+ */
+ Observable> getWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String hcxEnterpriseSiteName);
+
+ /**
+ * Create or update an HCX Enterprise Site in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param hcxEnterpriseSiteName Name of the HCX Enterprise Site in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the HcxEnterpriseSite object if successful.
+ */
+ HcxEnterpriseSite createOrUpdate(String resourceGroupName, String privateCloudName, String hcxEnterpriseSiteName);
+
+ /**
+ * Create or update an HCX Enterprise Site in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param hcxEnterpriseSiteName Name of the HCX Enterprise Site in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture createOrUpdateAsync(String resourceGroupName, String privateCloudName, String hcxEnterpriseSiteName, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update an HCX Enterprise Site in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param hcxEnterpriseSiteName Name of the HCX Enterprise Site in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the HcxEnterpriseSite object
+ */
+ Observable createOrUpdateAsync(String resourceGroupName, String privateCloudName, String hcxEnterpriseSiteName);
+
+ /**
+ * Create or update an HCX Enterprise Site in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName The name of the private cloud.
+ * @param hcxEnterpriseSiteName Name of the HCX Enterprise Site in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the HcxEnterpriseSite object
+ */
+ Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String hcxEnterpriseSiteName);
+
+ /**
+ * Delete an HCX Enterprise Site in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param hcxEnterpriseSiteName Name of the HCX Enterprise Site in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ void delete(String resourceGroupName, String privateCloudName, String hcxEnterpriseSiteName);
+
+ /**
+ * Delete an HCX Enterprise Site in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param hcxEnterpriseSiteName Name of the HCX Enterprise Site in the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture deleteAsync(String resourceGroupName, String privateCloudName, String hcxEnterpriseSiteName, final ServiceCallback serviceCallback);
+
+ /**
+ * Delete an HCX Enterprise Site in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param hcxEnterpriseSiteName Name of the HCX Enterprise Site in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable deleteAsync(String resourceGroupName, String privateCloudName, String hcxEnterpriseSiteName);
+
+ /**
+ * Delete an HCX Enterprise Site in a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param hcxEnterpriseSiteName Name of the HCX Enterprise Site in the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable> deleteWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String hcxEnterpriseSiteName);
+
+ /**
+ * List HCX Enterprise Sites in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<HcxEnterpriseSite> object if successful.
+ */
+ PagedList listNext(final String nextPageLink);
+
+ /**
+ * List HCX Enterprise Sites in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback);
+
+ /**
+ * List HCX Enterprise Sites in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<HcxEnterpriseSite> object
+ */
+ Observable> listNextAsync(final String nextPageLink);
+
+ /**
+ * List HCX Enterprise Sites in a private cloud.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<HcxEnterpriseSite> object
+ */
+ Observable>> listNextWithServiceResponseAsync(final String nextPageLink);
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/Locations.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/Locations.java
new file mode 100644
index 0000000000000..8d74c3923ab16
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/Locations.java
@@ -0,0 +1,103 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.avs.v2020_07_17_preview;
+
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.management.avs.v20200717preview.models.Quota;
+import com.microsoft.azure.management.avs.v20200717preview.models.Trial;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Locations.
+ */
+public interface Locations {
+ /**
+ * Return trial status for subscription by region.
+ *
+ * @param location Azure region
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the Trial object if successful.
+ */
+ Trial checkTrialAvailability(String location);
+
+ /**
+ * Return trial status for subscription by region.
+ *
+ * @param location Azure region
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture checkTrialAvailabilityAsync(String location, final ServiceCallback serviceCallback);
+
+ /**
+ * Return trial status for subscription by region.
+ *
+ * @param location Azure region
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Trial object
+ */
+ Observable checkTrialAvailabilityAsync(String location);
+
+ /**
+ * Return trial status for subscription by region.
+ *
+ * @param location Azure region
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Trial object
+ */
+ Observable> checkTrialAvailabilityWithServiceResponseAsync(String location);
+
+ /**
+ * Return quota for subscription by region.
+ *
+ * @param location Azure region
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the Quota object if successful.
+ */
+ Quota checkQuotaAvailability(String location);
+
+ /**
+ * Return quota for subscription by region.
+ *
+ * @param location Azure region
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture checkQuotaAvailabilityAsync(String location, final ServiceCallback serviceCallback);
+
+ /**
+ * Return quota for subscription by region.
+ *
+ * @param location Azure region
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Quota object
+ */
+ Observable checkQuotaAvailabilityAsync(String location);
+
+ /**
+ * Return quota for subscription by region.
+ *
+ * @param location Azure region
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Quota object
+ */
+ Observable> checkQuotaAvailabilityWithServiceResponseAsync(String location);
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/Operations.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/Operations.java
new file mode 100644
index 0000000000000..71adcc15b8e0d
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/Operations.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.avs.v2020_07_17_preview;
+
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.avs.v20200717preview.models.Operation;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Operations.
+ */
+public interface Operations {
+ /**
+ * Lists all of the available operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<Operation> object if successful.
+ */
+ PagedList list();
+
+ /**
+ * Lists all of the available operations.
+ *
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listAsync(final ListOperationCallback serviceCallback);
+
+ /**
+ * Lists all of the available operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Operation> object
+ */
+ Observable> listAsync();
+
+ /**
+ * Lists all of the available operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Operation> object
+ */
+ Observable>> listWithServiceResponseAsync();
+
+ /**
+ * Lists all of the available operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<Operation> object if successful.
+ */
+ PagedList listNext(final String nextPageLink);
+
+ /**
+ * Lists all of the available operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback);
+
+ /**
+ * Lists all of the available operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Operation> object
+ */
+ Observable> listNextAsync(final String nextPageLink);
+
+ /**
+ * Lists all of the available operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Operation> object
+ */
+ Observable>> listNextWithServiceResponseAsync(final String nextPageLink);
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/PrivateClouds.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/PrivateClouds.java
new file mode 100644
index 0000000000000..c01595c0457e0
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/PrivateClouds.java
@@ -0,0 +1,542 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.avs.v2020_07_17_preview;
+
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.avs.v20200717preview.models.AdminCredentials;
+import com.microsoft.azure.management.avs.v20200717preview.models.PrivateCloud;
+import com.microsoft.azure.management.avs.v20200717preview.models.PrivateCloudUpdate;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in PrivateClouds.
+ */
+public interface PrivateClouds {
+ /**
+ * List private clouds in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<PrivateCloud> object if successful.
+ */
+ PagedList list(final String resourceGroupName);
+
+ /**
+ * List private clouds in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listAsync(final String resourceGroupName, final ListOperationCallback serviceCallback);
+
+ /**
+ * List private clouds in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<PrivateCloud> object
+ */
+ Observable> listAsync(final String resourceGroupName);
+
+ /**
+ * List private clouds in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<PrivateCloud> object
+ */
+ Observable>> listWithServiceResponseAsync(final String resourceGroupName);
+
+ /**
+ * List private clouds in a subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<PrivateCloud> object if successful.
+ */
+ PagedList listInSubscription();
+
+ /**
+ * List private clouds in a subscription.
+ *
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listInSubscriptionAsync(final ListOperationCallback serviceCallback);
+
+ /**
+ * List private clouds in a subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<PrivateCloud> object
+ */
+ Observable> listInSubscriptionAsync();
+
+ /**
+ * List private clouds in a subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<PrivateCloud> object
+ */
+ Observable>> listInSubscriptionWithServiceResponseAsync();
+
+ /**
+ * Get a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PrivateCloud object if successful.
+ */
+ PrivateCloud get(String resourceGroupName, String privateCloudName);
+
+ /**
+ * Get a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture getAsync(String resourceGroupName, String privateCloudName, final ServiceCallback serviceCallback);
+
+ /**
+ * Get a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PrivateCloud object
+ */
+ Observable getAsync(String resourceGroupName, String privateCloudName);
+
+ /**
+ * Get a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PrivateCloud object
+ */
+ Observable> getWithServiceResponseAsync(String resourceGroupName, String privateCloudName);
+
+ /**
+ * Create or update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloud The private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PrivateCloud object if successful.
+ */
+ PrivateCloud createOrUpdate(String resourceGroupName, String privateCloudName, PrivateCloud privateCloud);
+
+ /**
+ * Create or update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloud The private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture createOrUpdateAsync(String resourceGroupName, String privateCloudName, PrivateCloud privateCloud, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloud The private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PrivateCloud object
+ */
+ Observable createOrUpdateAsync(String resourceGroupName, String privateCloudName, PrivateCloud privateCloud);
+
+ /**
+ * Create or update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloud The private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PrivateCloud object
+ */
+ Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String privateCloudName, PrivateCloud privateCloud);
+
+ /**
+ * Create or update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloud The private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PrivateCloud object if successful.
+ */
+ PrivateCloud beginCreateOrUpdate(String resourceGroupName, String privateCloudName, PrivateCloud privateCloud);
+
+ /**
+ * Create or update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloud The private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginCreateOrUpdateAsync(String resourceGroupName, String privateCloudName, PrivateCloud privateCloud, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloud The private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PrivateCloud object
+ */
+ Observable beginCreateOrUpdateAsync(String resourceGroupName, String privateCloudName, PrivateCloud privateCloud);
+
+ /**
+ * Create or update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloud The private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PrivateCloud object
+ */
+ Observable> beginCreateOrUpdateWithServiceResponseAsync(String resourceGroupName, String privateCloudName, PrivateCloud privateCloud);
+
+ /**
+ * Update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloudUpdate The private cloud properties to be updated
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PrivateCloud object if successful.
+ */
+ PrivateCloud update(String resourceGroupName, String privateCloudName, PrivateCloudUpdate privateCloudUpdate);
+
+ /**
+ * Update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloudUpdate The private cloud properties to be updated
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture updateAsync(String resourceGroupName, String privateCloudName, PrivateCloudUpdate privateCloudUpdate, final ServiceCallback serviceCallback);
+
+ /**
+ * Update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloudUpdate The private cloud properties to be updated
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PrivateCloud object
+ */
+ Observable updateAsync(String resourceGroupName, String privateCloudName, PrivateCloudUpdate privateCloudUpdate);
+
+ /**
+ * Update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloudUpdate The private cloud properties to be updated
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PrivateCloud object
+ */
+ Observable> updateWithServiceResponseAsync(String resourceGroupName, String privateCloudName, PrivateCloudUpdate privateCloudUpdate);
+
+ /**
+ * Update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloudUpdate The private cloud properties to be updated
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PrivateCloud object if successful.
+ */
+ PrivateCloud beginUpdate(String resourceGroupName, String privateCloudName, PrivateCloudUpdate privateCloudUpdate);
+
+ /**
+ * Update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloudUpdate The private cloud properties to be updated
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginUpdateAsync(String resourceGroupName, String privateCloudName, PrivateCloudUpdate privateCloudUpdate, final ServiceCallback serviceCallback);
+
+ /**
+ * Update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloudUpdate The private cloud properties to be updated
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PrivateCloud object
+ */
+ Observable beginUpdateAsync(String resourceGroupName, String privateCloudName, PrivateCloudUpdate privateCloudUpdate);
+
+ /**
+ * Update a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param privateCloudUpdate The private cloud properties to be updated
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PrivateCloud object
+ */
+ Observable> beginUpdateWithServiceResponseAsync(String resourceGroupName, String privateCloudName, PrivateCloudUpdate privateCloudUpdate);
+
+ /**
+ * Delete a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ void delete(String resourceGroupName, String privateCloudName);
+
+ /**
+ * Delete a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture deleteAsync(String resourceGroupName, String privateCloudName, final ServiceCallback serviceCallback);
+
+ /**
+ * Delete a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable deleteAsync(String resourceGroupName, String privateCloudName);
+
+ /**
+ * Delete a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable> deleteWithServiceResponseAsync(String resourceGroupName, String privateCloudName);
+
+ /**
+ * Delete a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ void beginDelete(String resourceGroupName, String privateCloudName);
+
+ /**
+ * Delete a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginDeleteAsync(String resourceGroupName, String privateCloudName, final ServiceCallback serviceCallback);
+
+ /**
+ * Delete a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable beginDeleteAsync(String resourceGroupName, String privateCloudName);
+
+ /**
+ * Delete a private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable> beginDeleteWithServiceResponseAsync(String resourceGroupName, String privateCloudName);
+
+ /**
+ * List the admin credentials for the private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the AdminCredentials object if successful.
+ */
+ AdminCredentials listAdminCredentials(String resourceGroupName, String privateCloudName);
+
+ /**
+ * List the admin credentials for the private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture listAdminCredentialsAsync(String resourceGroupName, String privateCloudName, final ServiceCallback serviceCallback);
+
+ /**
+ * List the admin credentials for the private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the AdminCredentials object
+ */
+ Observable listAdminCredentialsAsync(String resourceGroupName, String privateCloudName);
+
+ /**
+ * List the admin credentials for the private cloud.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the AdminCredentials object
+ */
+ Observable> listAdminCredentialsWithServiceResponseAsync(String resourceGroupName, String privateCloudName);
+
+ /**
+ * List private clouds in a resource group.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<PrivateCloud> object if successful.
+ */
+ PagedList listNext(final String nextPageLink);
+
+ /**
+ * List private clouds in a resource group.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback);
+
+ /**
+ * List private clouds in a resource group.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<PrivateCloud> object
+ */
+ Observable> listNextAsync(final String nextPageLink);
+
+ /**
+ * List private clouds in a resource group.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<PrivateCloud> object
+ */
+ Observable>> listNextWithServiceResponseAsync(final String nextPageLink);
+
+ /**
+ * List private clouds in a subscription.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<PrivateCloud> object if successful.
+ */
+ PagedList listInSubscriptionNext(final String nextPageLink);
+
+ /**
+ * List private clouds in a subscription.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listInSubscriptionNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback);
+
+ /**
+ * List private clouds in a subscription.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<PrivateCloud> object
+ */
+ Observable> listInSubscriptionNextAsync(final String nextPageLink);
+
+ /**
+ * List private clouds in a subscription.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<PrivateCloud> object
+ */
+ Observable>> listInSubscriptionNextWithServiceResponseAsync(final String nextPageLink);
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/WorkloadNetworks.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/WorkloadNetworks.java
new file mode 100644
index 0000000000000..11f5a9852bddf
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v20200717preview/WorkloadNetworks.java
@@ -0,0 +1,1997 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.avs.v2020_07_17_preview;
+
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.avs.v20200717preview.models.WorkloadNetworkDhcp;
+import com.microsoft.azure.management.avs.v20200717preview.models.WorkloadNetworkGateway;
+import com.microsoft.azure.management.avs.v20200717preview.models.WorkloadNetworkPortMirroring;
+import com.microsoft.azure.management.avs.v20200717preview.models.WorkloadNetworkSegment;
+import com.microsoft.azure.management.avs.v20200717preview.models.WorkloadNetworkVirtualMachine;
+import com.microsoft.azure.management.avs.v20200717preview.models.WorkloadNetworkVMGroup;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in WorkloadNetworks.
+ */
+public interface WorkloadNetworks {
+ /**
+ * List of segments in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<WorkloadNetworkSegment> object if successful.
+ */
+ PagedList listSegments(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * List of segments in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listSegmentsAsync(final String resourceGroupName, final String privateCloudName, final ListOperationCallback serviceCallback);
+
+ /**
+ * List of segments in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<WorkloadNetworkSegment> object
+ */
+ Observable> listSegmentsAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * List of segments in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<WorkloadNetworkSegment> object
+ */
+ Observable>> listSegmentsWithServiceResponseAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * Get a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the WorkloadNetworkSegment object if successful.
+ */
+ WorkloadNetworkSegment getSegment(String resourceGroupName, String privateCloudName, String segmentId);
+
+ /**
+ * Get a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture getSegmentAsync(String resourceGroupName, String privateCloudName, String segmentId, final ServiceCallback serviceCallback);
+
+ /**
+ * Get a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkSegment object
+ */
+ Observable getSegmentAsync(String resourceGroupName, String privateCloudName, String segmentId);
+
+ /**
+ * Get a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkSegment object
+ */
+ Observable> getSegmentWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String segmentId);
+
+ /**
+ * Create a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the WorkloadNetworkSegment object if successful.
+ */
+ WorkloadNetworkSegment createSegments(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment);
+
+ /**
+ * Create a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture createSegmentsAsync(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment, final ServiceCallback serviceCallback);
+
+ /**
+ * Create a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkSegment object
+ */
+ Observable createSegmentsAsync(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment);
+
+ /**
+ * Create a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkSegment object
+ */
+ Observable> createSegmentsWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment);
+
+ /**
+ * Create a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the WorkloadNetworkSegment object if successful.
+ */
+ WorkloadNetworkSegment beginCreateSegments(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment);
+
+ /**
+ * Create a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginCreateSegmentsAsync(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment, final ServiceCallback serviceCallback);
+
+ /**
+ * Create a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkSegment object
+ */
+ Observable beginCreateSegmentsAsync(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment);
+
+ /**
+ * Create a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkSegment object
+ */
+ Observable> beginCreateSegmentsWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment);
+
+ /**
+ * Create or update a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the WorkloadNetworkSegment object if successful.
+ */
+ WorkloadNetworkSegment updateSegments(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment);
+
+ /**
+ * Create or update a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture updateSegmentsAsync(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkSegment object
+ */
+ Observable updateSegmentsAsync(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment);
+
+ /**
+ * Create or update a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkSegment object
+ */
+ Observable> updateSegmentsWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment);
+
+ /**
+ * Create or update a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the WorkloadNetworkSegment object if successful.
+ */
+ WorkloadNetworkSegment beginUpdateSegments(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment);
+
+ /**
+ * Create or update a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginUpdateSegmentsAsync(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkSegment object
+ */
+ Observable beginUpdateSegmentsAsync(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment);
+
+ /**
+ * Create or update a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param workloadNetworkSegment NSX Segment
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkSegment object
+ */
+ Observable> beginUpdateSegmentsWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String segmentId, WorkloadNetworkSegment workloadNetworkSegment);
+
+ /**
+ * Delete a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ void deleteSegment(String resourceGroupName, String privateCloudName, String segmentId);
+
+ /**
+ * Delete a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture deleteSegmentAsync(String resourceGroupName, String privateCloudName, String segmentId, final ServiceCallback serviceCallback);
+
+ /**
+ * Delete a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable deleteSegmentAsync(String resourceGroupName, String privateCloudName, String segmentId);
+
+ /**
+ * Delete a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable> deleteSegmentWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String segmentId);
+
+ /**
+ * Delete a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ void beginDeleteSegment(String resourceGroupName, String privateCloudName, String segmentId);
+
+ /**
+ * Delete a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginDeleteSegmentAsync(String resourceGroupName, String privateCloudName, String segmentId, final ServiceCallback serviceCallback);
+
+ /**
+ * Delete a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable beginDeleteSegmentAsync(String resourceGroupName, String privateCloudName, String segmentId);
+
+ /**
+ * Delete a segment by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param segmentId NSX Segment identifier. Generally the same as the Segment's display name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable> beginDeleteSegmentWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String segmentId);
+
+ /**
+ * List dhcp in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<WorkloadNetworkDhcp> object if successful.
+ */
+ PagedList listDhcp(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * List dhcp in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listDhcpAsync(final String resourceGroupName, final String privateCloudName, final ListOperationCallback serviceCallback);
+
+ /**
+ * List dhcp in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<WorkloadNetworkDhcp> object
+ */
+ Observable> listDhcpAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * List dhcp in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<WorkloadNetworkDhcp> object
+ */
+ Observable>> listDhcpWithServiceResponseAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * Get dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the WorkloadNetworkDhcp object if successful.
+ */
+ WorkloadNetworkDhcp getDhcp(String resourceGroupName, String dhcpId, String privateCloudName);
+
+ /**
+ * Get dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param privateCloudName Name of the private cloud
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture getDhcpAsync(String resourceGroupName, String dhcpId, String privateCloudName, final ServiceCallback serviceCallback);
+
+ /**
+ * Get dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkDhcp object
+ */
+ Observable getDhcpAsync(String resourceGroupName, String dhcpId, String privateCloudName);
+
+ /**
+ * Get dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkDhcp object
+ */
+ Observable> getDhcpWithServiceResponseAsync(String resourceGroupName, String dhcpId, String privateCloudName);
+
+ /**
+ * Create dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the WorkloadNetworkDhcp object if successful.
+ */
+ WorkloadNetworkDhcp createDhcp(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp);
+
+ /**
+ * Create dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture createDhcpAsync(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp, final ServiceCallback serviceCallback);
+
+ /**
+ * Create dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkDhcp object
+ */
+ Observable createDhcpAsync(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp);
+
+ /**
+ * Create dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkDhcp object
+ */
+ Observable> createDhcpWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp);
+
+ /**
+ * Create dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the WorkloadNetworkDhcp object if successful.
+ */
+ WorkloadNetworkDhcp beginCreateDhcp(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp);
+
+ /**
+ * Create dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginCreateDhcpAsync(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp, final ServiceCallback serviceCallback);
+
+ /**
+ * Create dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkDhcp object
+ */
+ Observable beginCreateDhcpAsync(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp);
+
+ /**
+ * Create dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkDhcp object
+ */
+ Observable> beginCreateDhcpWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp);
+
+ /**
+ * Create or update dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the WorkloadNetworkDhcp object if successful.
+ */
+ WorkloadNetworkDhcp updateDhcp(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp);
+
+ /**
+ * Create or update dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture updateDhcpAsync(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkDhcp object
+ */
+ Observable updateDhcpAsync(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp);
+
+ /**
+ * Create or update dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkDhcp object
+ */
+ Observable> updateDhcpWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp);
+
+ /**
+ * Create or update dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the WorkloadNetworkDhcp object if successful.
+ */
+ WorkloadNetworkDhcp beginUpdateDhcp(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp);
+
+ /**
+ * Create or update dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginUpdateDhcpAsync(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkDhcp object
+ */
+ Observable beginUpdateDhcpAsync(String resourceGroupName, String privateCloudName, String dhcpId, WorkloadNetworkDhcp workloadNetworkDhcp);
+
+ /**
+ * Create or update dhcp by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param privateCloudName Name of the private cloud
+ * @param dhcpId NSX DHCP identifier. Generally the same as the DHCP display name
+ * @param workloadNetworkDhcp NSX DHCP
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the WorkloadNetworkDhcp object
+ */
+ Observable