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 000000000000..d18210d089cc
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.avs.v2020_07_17_preview
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-avs
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for AVS Management
+ This package contains Microsoft AVS Management 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
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+ 1.6.5
+
+
+
+
+
+ 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
+ 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/v2020_07_17_preview/AdminCredentials.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/AdminCredentials.java
new file mode 100644
index 000000000000..b51caac9bcc8
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/AdminCredentials.java
@@ -0,0 +1,40 @@
+/**
+ * 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.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AdminCredentialsInner;
+
+/**
+ * Type representing AdminCredentials.
+ */
+public interface AdminCredentials extends HasInner, HasManager {
+ /**
+ * @return the nsxtPassword value.
+ */
+ String nsxtPassword();
+
+ /**
+ * @return the nsxtUsername value.
+ */
+ String nsxtUsername();
+
+ /**
+ * @return the vcenterPassword value.
+ */
+ String vcenterPassword();
+
+ /**
+ * @return the vcenterUsername value.
+ */
+ String vcenterUsername();
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Authorizations.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Authorizations.java
new file mode 100644
index 000000000000..65504ca340ce
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Authorizations.java
@@ -0,0 +1,53 @@
+/**
+ * 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.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AuthorizationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Authorizations.
+ */
+public interface Authorizations extends SupportsCreating, HasInner {
+ /**
+ * 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 for the request
+ */
+ Observable getAsync(String resourceGroupName, String privateCloudName, String authorizationName);
+
+ /**
+ * 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 for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * 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 observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String privateCloudName, String authorizationName);
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Circuit.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Circuit.java
new file mode 100644
index 000000000000..cc11f1264767
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Circuit.java
@@ -0,0 +1,77 @@
+/**
+ * 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.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * An ExpressRoute Circuit.
+ */
+public class Circuit {
+ /**
+ * CIDR of primary subnet.
+ */
+ @JsonProperty(value = "primarySubnet", access = JsonProperty.Access.WRITE_ONLY)
+ private String primarySubnet;
+
+ /**
+ * CIDR of secondary subnet.
+ */
+ @JsonProperty(value = "secondarySubnet", access = JsonProperty.Access.WRITE_ONLY)
+ private String secondarySubnet;
+
+ /**
+ * Identifier of the ExpressRoute Circuit (Microsoft Colo only).
+ */
+ @JsonProperty(value = "expressRouteID", access = JsonProperty.Access.WRITE_ONLY)
+ private String expressRouteID;
+
+ /**
+ * ExpressRoute Circuit private peering identifier.
+ */
+ @JsonProperty(value = "expressRoutePrivatePeeringID", access = JsonProperty.Access.WRITE_ONLY)
+ private String expressRoutePrivatePeeringID;
+
+ /**
+ * Get cIDR of primary subnet.
+ *
+ * @return the primarySubnet value
+ */
+ public String primarySubnet() {
+ return this.primarySubnet;
+ }
+
+ /**
+ * Get cIDR of secondary subnet.
+ *
+ * @return the secondarySubnet value
+ */
+ public String secondarySubnet() {
+ return this.secondarySubnet;
+ }
+
+ /**
+ * Get identifier of the ExpressRoute Circuit (Microsoft Colo only).
+ *
+ * @return the expressRouteID value
+ */
+ public String expressRouteID() {
+ return this.expressRouteID;
+ }
+
+ /**
+ * Get expressRoute Circuit private peering identifier.
+ *
+ * @return the expressRoutePrivatePeeringID value
+ */
+ public String expressRoutePrivatePeeringID() {
+ return this.expressRoutePrivatePeeringID;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Cluster.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Cluster.java
new file mode 100644
index 000000000000..4f891c87d775
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Cluster.java
@@ -0,0 +1,150 @@
+/**
+ * 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.arm.model.HasInner;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.ClusterInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+import java.util.List;
+
+/**
+ * Type representing Cluster.
+ */
+public interface Cluster extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the clusterId value.
+ */
+ Integer clusterId();
+
+ /**
+ * @return the clusterSize value.
+ */
+ Integer clusterSize();
+
+ /**
+ * @return the hosts value.
+ */
+ List hosts();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ClusterProvisioningState provisioningState();
+
+ /**
+ * @return the sku value.
+ */
+ Sku sku();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Cluster definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithPrivateCloud, DefinitionStages.WithSku, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Cluster definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Cluster definition.
+ */
+ interface Blank extends WithPrivateCloud {
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify PrivateCloud.
+ */
+ interface WithPrivateCloud {
+ /**
+ * Specifies resourceGroupName, privateCloudName.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive
+ * @param privateCloudName The name of the private cloud
+ * @return the next definition stage
+ */
+ WithSku withExistingPrivateCloud(String resourceGroupName, String privateCloudName);
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The cluster SKU
+ * @return the next definition stage
+ */
+ WithCreate withSku(Sku sku);
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify ClusterSize.
+ */
+ interface WithClusterSize {
+ /**
+ * Specifies clusterSize.
+ * @param clusterSize The cluster size
+ * @return the next definition stage
+ */
+ WithCreate withClusterSize(Integer clusterSize);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithClusterSize {
+ }
+ }
+ /**
+ * The template for a Cluster update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithClusterSize {
+ }
+
+ /**
+ * Grouping of Cluster update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the cluster update allowing to specify ClusterSize.
+ */
+ interface WithClusterSize {
+ /**
+ * Specifies clusterSize.
+ * @param clusterSize The cluster size
+ * @return the next update stage
+ */
+ Update withClusterSize(Integer clusterSize);
+ }
+
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ClusterProvisioningState.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ClusterProvisioningState.java
new file mode 100644
index 000000000000..0fcf6b074c3a
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ClusterProvisioningState.java
@@ -0,0 +1,50 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ClusterProvisioningState.
+ */
+public final class ClusterProvisioningState extends ExpandableStringEnum {
+ /** Static value Succeeded for ClusterProvisioningState. */
+ public static final ClusterProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Failed for ClusterProvisioningState. */
+ public static final ClusterProvisioningState FAILED = fromString("Failed");
+
+ /** Static value Cancelled for ClusterProvisioningState. */
+ public static final ClusterProvisioningState CANCELLED = fromString("Cancelled");
+
+ /** Static value Deleting for ClusterProvisioningState. */
+ public static final ClusterProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Updating for ClusterProvisioningState. */
+ public static final ClusterProvisioningState UPDATING = fromString("Updating");
+
+ /**
+ * Creates or finds a ClusterProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ClusterProvisioningState
+ */
+ @JsonCreator
+ public static ClusterProvisioningState fromString(String name) {
+ return fromString(name, ClusterProvisioningState.class);
+ }
+
+ /**
+ * @return known ClusterProvisioningState values
+ */
+ public static Collection values() {
+ return values(ClusterProvisioningState.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ClusterUpdate.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ClusterUpdate.java
new file mode 100644
index 000000000000..e1179e0db075
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ClusterUpdate.java
@@ -0,0 +1,45 @@
+/**
+ * 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.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * An update of a cluster resource.
+ */
+@JsonFlatten
+public class ClusterUpdate {
+ /**
+ * The cluster size.
+ */
+ @JsonProperty(value = "properties.clusterSize")
+ private Integer clusterSize;
+
+ /**
+ * Get the cluster size.
+ *
+ * @return the clusterSize value
+ */
+ public Integer clusterSize() {
+ return this.clusterSize;
+ }
+
+ /**
+ * Set the cluster size.
+ *
+ * @param clusterSize the clusterSize value to set
+ * @return the ClusterUpdate object itself.
+ */
+ public ClusterUpdate withClusterSize(Integer clusterSize) {
+ this.clusterSize = clusterSize;
+ return this;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Clusters.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Clusters.java
new file mode 100644
index 000000000000..b98694f062d6
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Clusters.java
@@ -0,0 +1,53 @@
+/**
+ * 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.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.ClustersInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Clusters.
+ */
+public interface Clusters extends SupportsCreating, HasInner {
+ /**
+ * 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 for the request
+ */
+ Observable getAsync(String resourceGroupName, String privateCloudName, String clusterName);
+
+ /**
+ * 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 for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * 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 observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String privateCloudName, String clusterName);
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/CommonClusterProperties.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/CommonClusterProperties.java
new file mode 100644
index 000000000000..9eb6f5dc770c
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/CommonClusterProperties.java
@@ -0,0 +1,90 @@
+/**
+ * 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 java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The common properties of a cluster.
+ */
+public class CommonClusterProperties {
+ /**
+ * The state of the cluster provisioning. Possible values include:
+ * 'Succeeded', 'Failed', 'Cancelled', 'Deleting', 'Updating'.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ClusterProvisioningState provisioningState;
+
+ /**
+ * The cluster size.
+ */
+ @JsonProperty(value = "clusterSize")
+ private Integer clusterSize;
+
+ /**
+ * The identity.
+ */
+ @JsonProperty(value = "clusterId", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer clusterId;
+
+ /**
+ * The hosts.
+ */
+ @JsonProperty(value = "hosts", access = JsonProperty.Access.WRITE_ONLY)
+ private List hosts;
+
+ /**
+ * Get the state of the cluster provisioning. Possible values include: 'Succeeded', 'Failed', 'Cancelled', 'Deleting', 'Updating'.
+ *
+ * @return the provisioningState value
+ */
+ public ClusterProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the cluster size.
+ *
+ * @return the clusterSize value
+ */
+ public Integer clusterSize() {
+ return this.clusterSize;
+ }
+
+ /**
+ * Set the cluster size.
+ *
+ * @param clusterSize the clusterSize value to set
+ * @return the CommonClusterProperties object itself.
+ */
+ public CommonClusterProperties withClusterSize(Integer clusterSize) {
+ this.clusterSize = clusterSize;
+ return this;
+ }
+
+ /**
+ * Get the identity.
+ *
+ * @return the clusterId value
+ */
+ public Integer clusterId() {
+ return this.clusterId;
+ }
+
+ /**
+ * Get the hosts.
+ *
+ * @return the hosts value
+ */
+ public List hosts() {
+ return this.hosts;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Endpoints.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Endpoints.java
new file mode 100644
index 000000000000..c8b2a7633944
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Endpoints.java
@@ -0,0 +1,62 @@
+/**
+ * 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.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Endpoint addresses.
+ */
+public class Endpoints {
+ /**
+ * Endpoint for the NSX-T Data Center manager.
+ */
+ @JsonProperty(value = "nsxtManager", access = JsonProperty.Access.WRITE_ONLY)
+ private String nsxtManager;
+
+ /**
+ * Endpoint for Virtual Center Server Appliance.
+ */
+ @JsonProperty(value = "vcsa", access = JsonProperty.Access.WRITE_ONLY)
+ private String vcsa;
+
+ /**
+ * Endpoint for the HCX Cloud Manager.
+ */
+ @JsonProperty(value = "hcxCloudManager", access = JsonProperty.Access.WRITE_ONLY)
+ private String hcxCloudManager;
+
+ /**
+ * Get endpoint for the NSX-T Data Center manager.
+ *
+ * @return the nsxtManager value
+ */
+ public String nsxtManager() {
+ return this.nsxtManager;
+ }
+
+ /**
+ * Get endpoint for Virtual Center Server Appliance.
+ *
+ * @return the vcsa value
+ */
+ public String vcsa() {
+ return this.vcsa;
+ }
+
+ /**
+ * Get endpoint for the HCX Cloud Manager.
+ *
+ * @return the hcxCloudManager value
+ */
+ public String hcxCloudManager() {
+ return this.hcxCloudManager;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ErrorAdditionalInfo.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ErrorAdditionalInfo.java
new file mode 100644
index 000000000000..ac43668bb999
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ErrorAdditionalInfo.java
@@ -0,0 +1,47 @@
+/**
+ * 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.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The resource management error additional info.
+ */
+public class ErrorAdditionalInfo {
+ /**
+ * The additional info type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /**
+ * The additional info.
+ */
+ @JsonProperty(value = "info", access = JsonProperty.Access.WRITE_ONLY)
+ private Object info;
+
+ /**
+ * Get the additional info type.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the additional info.
+ *
+ * @return the info value
+ */
+ public Object info() {
+ return this.info;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ErrorResponse.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ErrorResponse.java
new file mode 100644
index 000000000000..d27f27290e07
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ErrorResponse.java
@@ -0,0 +1,96 @@
+/**
+ * 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 java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Error Response.
+ * Common error response for all Azure Resource Manager APIs to return error
+ * details for failed operations. (This also follows the OData error response
+ * format.).
+ */
+public class ErrorResponse {
+ /**
+ * The error code.
+ */
+ @JsonProperty(value = "code", access = JsonProperty.Access.WRITE_ONLY)
+ private String code;
+
+ /**
+ * The error message.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * The error target.
+ */
+ @JsonProperty(value = "target", access = JsonProperty.Access.WRITE_ONLY)
+ private String target;
+
+ /**
+ * The error details.
+ */
+ @JsonProperty(value = "details", access = JsonProperty.Access.WRITE_ONLY)
+ private List details;
+
+ /**
+ * The error additional info.
+ */
+ @JsonProperty(value = "additionalInfo", access = JsonProperty.Access.WRITE_ONLY)
+ private List additionalInfo;
+
+ /**
+ * Get the error code.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Get the error message.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Get the error target.
+ *
+ * @return the target value
+ */
+ public String target() {
+ return this.target;
+ }
+
+ /**
+ * Get the error details.
+ *
+ * @return the details value
+ */
+ public List details() {
+ return this.details;
+ }
+
+ /**
+ * Get the error additional info.
+ *
+ * @return the additionalInfo value
+ */
+ public List additionalInfo() {
+ return this.additionalInfo;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ExpressRouteAuthorization.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ExpressRouteAuthorization.java
new file mode 100644
index 000000000000..8e72cc0509fc
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ExpressRouteAuthorization.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.arm.model.HasInner;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.ExpressRouteAuthorizationInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+
+/**
+ * Type representing ExpressRouteAuthorization.
+ */
+public interface ExpressRouteAuthorization extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the expressRouteAuthorizationId value.
+ */
+ String expressRouteAuthorizationId();
+
+ /**
+ * @return the expressRouteAuthorizationKey value.
+ */
+ String expressRouteAuthorizationKey();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ExpressRouteAuthorizationProvisioningState provisioningState();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the ExpressRouteAuthorization definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithPrivateCloud, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ExpressRouteAuthorization definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ExpressRouteAuthorization definition.
+ */
+ interface Blank extends WithPrivateCloud {
+ }
+
+ /**
+ * The stage of the expressrouteauthorization definition allowing to specify PrivateCloud.
+ */
+ interface WithPrivateCloud {
+ /**
+ * Specifies resourceGroupName, privateCloudName.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive
+ * @param privateCloudName The name of the private cloud
+ * @return the next definition stage
+ */
+ WithCreate withExistingPrivateCloud(String resourceGroupName, String privateCloudName);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable {
+ }
+ }
+ /**
+ * The template for a ExpressRouteAuthorization update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable {
+ }
+
+ /**
+ * Grouping of ExpressRouteAuthorization update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ExpressRouteAuthorizationProvisioningState.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ExpressRouteAuthorizationProvisioningState.java
new file mode 100644
index 000000000000..fd70f16d9395
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ExpressRouteAuthorizationProvisioningState.java
@@ -0,0 +1,44 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ExpressRouteAuthorizationProvisioningState.
+ */
+public final class ExpressRouteAuthorizationProvisioningState extends ExpandableStringEnum {
+ /** Static value Succeeded for ExpressRouteAuthorizationProvisioningState. */
+ public static final ExpressRouteAuthorizationProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Failed for ExpressRouteAuthorizationProvisioningState. */
+ public static final ExpressRouteAuthorizationProvisioningState FAILED = fromString("Failed");
+
+ /** Static value Updating for ExpressRouteAuthorizationProvisioningState. */
+ public static final ExpressRouteAuthorizationProvisioningState UPDATING = fromString("Updating");
+
+ /**
+ * Creates or finds a ExpressRouteAuthorizationProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ExpressRouteAuthorizationProvisioningState
+ */
+ @JsonCreator
+ public static ExpressRouteAuthorizationProvisioningState fromString(String name) {
+ return fromString(name, ExpressRouteAuthorizationProvisioningState.class);
+ }
+
+ /**
+ * @return known ExpressRouteAuthorizationProvisioningState values
+ */
+ public static Collection values() {
+ return values(ExpressRouteAuthorizationProvisioningState.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/GlobalReachConnection.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/GlobalReachConnection.java
new file mode 100644
index 000000000000..2b9bcd7a09f0
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/GlobalReachConnection.java
@@ -0,0 +1,161 @@
+/**
+ * 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.arm.model.HasInner;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.GlobalReachConnectionInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+
+/**
+ * Type representing GlobalReachConnection.
+ */
+public interface GlobalReachConnection extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the addressPrefix value.
+ */
+ String addressPrefix();
+
+ /**
+ * @return the authorizationKey value.
+ */
+ String authorizationKey();
+
+ /**
+ * @return the circuitConnectionStatus value.
+ */
+ GlobalReachConnectionStatus circuitConnectionStatus();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the peerExpressRouteCircuit value.
+ */
+ String peerExpressRouteCircuit();
+
+ /**
+ * @return the provisioningState value.
+ */
+ GlobalReachConnectionProvisioningState provisioningState();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the GlobalReachConnection definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithPrivateCloud, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of GlobalReachConnection definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a GlobalReachConnection definition.
+ */
+ interface Blank extends WithPrivateCloud {
+ }
+
+ /**
+ * The stage of the globalreachconnection definition allowing to specify PrivateCloud.
+ */
+ interface WithPrivateCloud {
+ /**
+ * Specifies resourceGroupName, privateCloudName.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive
+ * @param privateCloudName The name of the private cloud
+ * @return the next definition stage
+ */
+ WithCreate withExistingPrivateCloud(String resourceGroupName, String privateCloudName);
+ }
+
+ /**
+ * The stage of the globalreachconnection definition allowing to specify AuthorizationKey.
+ */
+ interface WithAuthorizationKey {
+ /**
+ * Specifies authorizationKey.
+ * @param authorizationKey Authorization key from the peer express route used for the global reach connection
+ * @return the next definition stage
+ */
+ WithCreate withAuthorizationKey(String authorizationKey);
+ }
+
+ /**
+ * The stage of the globalreachconnection definition allowing to specify PeerExpressRouteCircuit.
+ */
+ interface WithPeerExpressRouteCircuit {
+ /**
+ * Specifies peerExpressRouteCircuit.
+ * @param peerExpressRouteCircuit Identifier of the ExpressRoute Circuit to peer with in the global reach connection
+ * @return the next definition stage
+ */
+ WithCreate withPeerExpressRouteCircuit(String peerExpressRouteCircuit);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithAuthorizationKey, DefinitionStages.WithPeerExpressRouteCircuit {
+ }
+ }
+ /**
+ * The template for a GlobalReachConnection update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAuthorizationKey, UpdateStages.WithPeerExpressRouteCircuit {
+ }
+
+ /**
+ * Grouping of GlobalReachConnection update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the globalreachconnection update allowing to specify AuthorizationKey.
+ */
+ interface WithAuthorizationKey {
+ /**
+ * Specifies authorizationKey.
+ * @param authorizationKey Authorization key from the peer express route used for the global reach connection
+ * @return the next update stage
+ */
+ Update withAuthorizationKey(String authorizationKey);
+ }
+
+ /**
+ * The stage of the globalreachconnection update allowing to specify PeerExpressRouteCircuit.
+ */
+ interface WithPeerExpressRouteCircuit {
+ /**
+ * Specifies peerExpressRouteCircuit.
+ * @param peerExpressRouteCircuit Identifier of the ExpressRoute Circuit to peer with in the global reach connection
+ * @return the next update stage
+ */
+ Update withPeerExpressRouteCircuit(String peerExpressRouteCircuit);
+ }
+
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/GlobalReachConnectionProvisioningState.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/GlobalReachConnectionProvisioningState.java
new file mode 100644
index 000000000000..70068ddfe0c1
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/GlobalReachConnectionProvisioningState.java
@@ -0,0 +1,44 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for GlobalReachConnectionProvisioningState.
+ */
+public final class GlobalReachConnectionProvisioningState extends ExpandableStringEnum {
+ /** Static value Succeeded for GlobalReachConnectionProvisioningState. */
+ public static final GlobalReachConnectionProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Failed for GlobalReachConnectionProvisioningState. */
+ public static final GlobalReachConnectionProvisioningState FAILED = fromString("Failed");
+
+ /** Static value Updating for GlobalReachConnectionProvisioningState. */
+ public static final GlobalReachConnectionProvisioningState UPDATING = fromString("Updating");
+
+ /**
+ * Creates or finds a GlobalReachConnectionProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding GlobalReachConnectionProvisioningState
+ */
+ @JsonCreator
+ public static GlobalReachConnectionProvisioningState fromString(String name) {
+ return fromString(name, GlobalReachConnectionProvisioningState.class);
+ }
+
+ /**
+ * @return known GlobalReachConnectionProvisioningState values
+ */
+ public static Collection values() {
+ return values(GlobalReachConnectionProvisioningState.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/GlobalReachConnectionStatus.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/GlobalReachConnectionStatus.java
new file mode 100644
index 000000000000..1fee2e920c87
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/GlobalReachConnectionStatus.java
@@ -0,0 +1,44 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for GlobalReachConnectionStatus.
+ */
+public final class GlobalReachConnectionStatus extends ExpandableStringEnum {
+ /** Static value Connected for GlobalReachConnectionStatus. */
+ public static final GlobalReachConnectionStatus CONNECTED = fromString("Connected");
+
+ /** Static value Connecting for GlobalReachConnectionStatus. */
+ public static final GlobalReachConnectionStatus CONNECTING = fromString("Connecting");
+
+ /** Static value Disconnected for GlobalReachConnectionStatus. */
+ public static final GlobalReachConnectionStatus DISCONNECTED = fromString("Disconnected");
+
+ /**
+ * Creates or finds a GlobalReachConnectionStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding GlobalReachConnectionStatus
+ */
+ @JsonCreator
+ public static GlobalReachConnectionStatus fromString(String name) {
+ return fromString(name, GlobalReachConnectionStatus.class);
+ }
+
+ /**
+ * @return known GlobalReachConnectionStatus values
+ */
+ public static Collection values() {
+ return values(GlobalReachConnectionStatus.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/GlobalReachConnections.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/GlobalReachConnections.java
new file mode 100644
index 000000000000..235bdf01eb33
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/GlobalReachConnections.java
@@ -0,0 +1,53 @@
+/**
+ * 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.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.GlobalReachConnectionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing GlobalReachConnections.
+ */
+public interface GlobalReachConnections extends SupportsCreating, HasInner {
+ /**
+ * 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 for the request
+ */
+ Observable getAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName);
+
+ /**
+ * 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 for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * 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 observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String privateCloudName, String globalReachConnectionName);
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/HcxEnterpriseSite.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/HcxEnterpriseSite.java
new file mode 100644
index 000000000000..fb86c70e7495
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/HcxEnterpriseSite.java
@@ -0,0 +1,98 @@
+/**
+ * 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.arm.model.HasInner;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.HcxEnterpriseSiteInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+
+/**
+ * Type representing HcxEnterpriseSite.
+ */
+public interface HcxEnterpriseSite extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the activationKey value.
+ */
+ String activationKey();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the status value.
+ */
+ HcxEnterpriseSiteStatus status();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the HcxEnterpriseSite definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithPrivateCloud, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of HcxEnterpriseSite definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a HcxEnterpriseSite definition.
+ */
+ interface Blank extends WithPrivateCloud {
+ }
+
+ /**
+ * The stage of the hcxenterprisesite definition allowing to specify PrivateCloud.
+ */
+ interface WithPrivateCloud {
+ /**
+ * Specifies resourceGroupName, privateCloudName.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive
+ * @param privateCloudName The name of the private cloud
+ * @return the next definition stage
+ */
+ WithCreate withExistingPrivateCloud(String resourceGroupName, String privateCloudName);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable {
+ }
+ }
+ /**
+ * The template for a HcxEnterpriseSite update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable {
+ }
+
+ /**
+ * Grouping of HcxEnterpriseSite update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/HcxEnterpriseSiteStatus.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/HcxEnterpriseSiteStatus.java
new file mode 100644
index 000000000000..d4b1d12a08ee
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/HcxEnterpriseSiteStatus.java
@@ -0,0 +1,47 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for HcxEnterpriseSiteStatus.
+ */
+public final class HcxEnterpriseSiteStatus extends ExpandableStringEnum {
+ /** Static value Available for HcxEnterpriseSiteStatus. */
+ public static final HcxEnterpriseSiteStatus AVAILABLE = fromString("Available");
+
+ /** Static value Consumed for HcxEnterpriseSiteStatus. */
+ public static final HcxEnterpriseSiteStatus CONSUMED = fromString("Consumed");
+
+ /** Static value Deactivated for HcxEnterpriseSiteStatus. */
+ public static final HcxEnterpriseSiteStatus DEACTIVATED = fromString("Deactivated");
+
+ /** Static value Deleted for HcxEnterpriseSiteStatus. */
+ public static final HcxEnterpriseSiteStatus DELETED = fromString("Deleted");
+
+ /**
+ * Creates or finds a HcxEnterpriseSiteStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding HcxEnterpriseSiteStatus
+ */
+ @JsonCreator
+ public static HcxEnterpriseSiteStatus fromString(String name) {
+ return fromString(name, HcxEnterpriseSiteStatus.class);
+ }
+
+ /**
+ * @return known HcxEnterpriseSiteStatus values
+ */
+ public static Collection values() {
+ return values(HcxEnterpriseSiteStatus.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/HcxEnterpriseSites.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/HcxEnterpriseSites.java
new file mode 100644
index 000000000000..d46eb11136de
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/HcxEnterpriseSites.java
@@ -0,0 +1,53 @@
+/**
+ * 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.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.HcxEnterpriseSitesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing HcxEnterpriseSites.
+ */
+public interface HcxEnterpriseSites extends SupportsCreating, HasInner {
+ /**
+ * 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 for the request
+ */
+ Observable getAsync(String resourceGroupName, String privateCloudName, String hcxEnterpriseSiteName);
+
+ /**
+ * 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 for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * 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 observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String privateCloudName, String hcxEnterpriseSiteName);
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/IdentitySource.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/IdentitySource.java
new file mode 100644
index 000000000000..4c6799e30a2b
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/IdentitySource.java
@@ -0,0 +1,280 @@
+/**
+ * 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.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * vCenter Single Sign On Identity Source.
+ */
+public class IdentitySource {
+ /**
+ * The name of the identity source.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The domain's NetBIOS name.
+ */
+ @JsonProperty(value = "alias")
+ private String alias;
+
+ /**
+ * The domain's dns name.
+ */
+ @JsonProperty(value = "domain")
+ private String domain;
+
+ /**
+ * The base distinguished name for users.
+ */
+ @JsonProperty(value = "baseUserDN")
+ private String baseUserDN;
+
+ /**
+ * The base distinguished name for groups.
+ */
+ @JsonProperty(value = "baseGroupDN")
+ private String baseGroupDN;
+
+ /**
+ * Primary server URL.
+ */
+ @JsonProperty(value = "primaryServer")
+ private String primaryServer;
+
+ /**
+ * Secondary server URL.
+ */
+ @JsonProperty(value = "secondaryServer")
+ private String secondaryServer;
+
+ /**
+ * Protect LDAP communication using SSL certificate (LDAPS). Possible
+ * values include: 'Enabled', 'Disabled'.
+ */
+ @JsonProperty(value = "ssl")
+ private SslEnum ssl;
+
+ /**
+ * The ID of an Active Directory user with a minimum of read-only access to
+ * Base DN for users and group.
+ */
+ @JsonProperty(value = "username")
+ private String username;
+
+ /**
+ * The password of the Active Directory user with a minimum of read-only
+ * access to Base DN for users and groups.
+ */
+ @JsonProperty(value = "password")
+ private String password;
+
+ /**
+ * Get the name of the identity source.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the identity source.
+ *
+ * @param name the name value to set
+ * @return the IdentitySource object itself.
+ */
+ public IdentitySource withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the domain's NetBIOS name.
+ *
+ * @return the alias value
+ */
+ public String alias() {
+ return this.alias;
+ }
+
+ /**
+ * Set the domain's NetBIOS name.
+ *
+ * @param alias the alias value to set
+ * @return the IdentitySource object itself.
+ */
+ public IdentitySource withAlias(String alias) {
+ this.alias = alias;
+ return this;
+ }
+
+ /**
+ * Get the domain's dns name.
+ *
+ * @return the domain value
+ */
+ public String domain() {
+ return this.domain;
+ }
+
+ /**
+ * Set the domain's dns name.
+ *
+ * @param domain the domain value to set
+ * @return the IdentitySource object itself.
+ */
+ public IdentitySource withDomain(String domain) {
+ this.domain = domain;
+ return this;
+ }
+
+ /**
+ * Get the base distinguished name for users.
+ *
+ * @return the baseUserDN value
+ */
+ public String baseUserDN() {
+ return this.baseUserDN;
+ }
+
+ /**
+ * Set the base distinguished name for users.
+ *
+ * @param baseUserDN the baseUserDN value to set
+ * @return the IdentitySource object itself.
+ */
+ public IdentitySource withBaseUserDN(String baseUserDN) {
+ this.baseUserDN = baseUserDN;
+ return this;
+ }
+
+ /**
+ * Get the base distinguished name for groups.
+ *
+ * @return the baseGroupDN value
+ */
+ public String baseGroupDN() {
+ return this.baseGroupDN;
+ }
+
+ /**
+ * Set the base distinguished name for groups.
+ *
+ * @param baseGroupDN the baseGroupDN value to set
+ * @return the IdentitySource object itself.
+ */
+ public IdentitySource withBaseGroupDN(String baseGroupDN) {
+ this.baseGroupDN = baseGroupDN;
+ return this;
+ }
+
+ /**
+ * Get primary server URL.
+ *
+ * @return the primaryServer value
+ */
+ public String primaryServer() {
+ return this.primaryServer;
+ }
+
+ /**
+ * Set primary server URL.
+ *
+ * @param primaryServer the primaryServer value to set
+ * @return the IdentitySource object itself.
+ */
+ public IdentitySource withPrimaryServer(String primaryServer) {
+ this.primaryServer = primaryServer;
+ return this;
+ }
+
+ /**
+ * Get secondary server URL.
+ *
+ * @return the secondaryServer value
+ */
+ public String secondaryServer() {
+ return this.secondaryServer;
+ }
+
+ /**
+ * Set secondary server URL.
+ *
+ * @param secondaryServer the secondaryServer value to set
+ * @return the IdentitySource object itself.
+ */
+ public IdentitySource withSecondaryServer(String secondaryServer) {
+ this.secondaryServer = secondaryServer;
+ return this;
+ }
+
+ /**
+ * Get protect LDAP communication using SSL certificate (LDAPS). Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @return the ssl value
+ */
+ public SslEnum ssl() {
+ return this.ssl;
+ }
+
+ /**
+ * Set protect LDAP communication using SSL certificate (LDAPS). Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @param ssl the ssl value to set
+ * @return the IdentitySource object itself.
+ */
+ public IdentitySource withSsl(SslEnum ssl) {
+ this.ssl = ssl;
+ return this;
+ }
+
+ /**
+ * Get the ID of an Active Directory user with a minimum of read-only access to Base DN for users and group.
+ *
+ * @return the username value
+ */
+ public String username() {
+ return this.username;
+ }
+
+ /**
+ * Set the ID of an Active Directory user with a minimum of read-only access to Base DN for users and group.
+ *
+ * @param username the username value to set
+ * @return the IdentitySource object itself.
+ */
+ public IdentitySource withUsername(String username) {
+ this.username = username;
+ return this;
+ }
+
+ /**
+ * Get the password of the Active Directory user with a minimum of read-only access to Base DN for users and groups.
+ *
+ * @return the password value
+ */
+ public String password() {
+ return this.password;
+ }
+
+ /**
+ * Set the password of the Active Directory user with a minimum of read-only access to Base DN for users and groups.
+ *
+ * @param password the password value to set
+ * @return the IdentitySource object itself.
+ */
+ public IdentitySource withPassword(String password) {
+ this.password = password;
+ return this;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/InternetEnum.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/InternetEnum.java
new file mode 100644
index 000000000000..b22d9dad157f
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/InternetEnum.java
@@ -0,0 +1,41 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for InternetEnum.
+ */
+public final class InternetEnum extends ExpandableStringEnum {
+ /** Static value Enabled for InternetEnum. */
+ public static final InternetEnum ENABLED = fromString("Enabled");
+
+ /** Static value Disabled for InternetEnum. */
+ public static final InternetEnum DISABLED = fromString("Disabled");
+
+ /**
+ * Creates or finds a InternetEnum from its string representation.
+ * @param name a name to look for
+ * @return the corresponding InternetEnum
+ */
+ @JsonCreator
+ public static InternetEnum fromString(String name) {
+ return fromString(name, InternetEnum.class);
+ }
+
+ /**
+ * @return known InternetEnum values
+ */
+ public static Collection values() {
+ return values(InternetEnum.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Locations.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Locations.java
new file mode 100644
index 000000000000..41079a055bf1
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Locations.java
@@ -0,0 +1,37 @@
+/**
+ * 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 rx.Observable;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.LocationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Locations.
+ */
+public interface Locations extends HasInner {
+ /**
+ * Return trial status for subscription by region.
+ *
+ * @param location Azure region
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkTrialAvailabilityAsync(String location);
+
+ /**
+ * Return quota for subscription by region.
+ *
+ * @param location Azure region
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkQuotaAvailabilityAsync(String location);
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/LogSpecification.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/LogSpecification.java
new file mode 100644
index 000000000000..09745f547dab
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/LogSpecification.java
@@ -0,0 +1,95 @@
+/**
+ * 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.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Specifications of the Log for Azure Monitoring.
+ */
+public class LogSpecification {
+ /**
+ * Name of the log.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Localized friendly display name of the log.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Blob duration of the log.
+ */
+ @JsonProperty(value = "blobDuration")
+ private String blobDuration;
+
+ /**
+ * Get name of the log.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the log.
+ *
+ * @param name the name value to set
+ * @return the LogSpecification object itself.
+ */
+ public LogSpecification withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get localized friendly display name of the log.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set localized friendly display name of the log.
+ *
+ * @param displayName the displayName value to set
+ * @return the LogSpecification object itself.
+ */
+ public LogSpecification withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get blob duration of the log.
+ *
+ * @return the blobDuration value
+ */
+ public String blobDuration() {
+ return this.blobDuration;
+ }
+
+ /**
+ * Set blob duration of the log.
+ *
+ * @param blobDuration the blobDuration value to set
+ * @return the LogSpecification object itself.
+ */
+ public LogSpecification withBlobDuration(String blobDuration) {
+ this.blobDuration = blobDuration;
+ return this;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ManagementCluster.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ManagementCluster.java
new file mode 100644
index 000000000000..d3dd5f0700dd
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ManagementCluster.java
@@ -0,0 +1,16 @@
+/**
+ * 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;
+
+
+/**
+ * The properties of a management cluster.
+ */
+public class ManagementCluster extends CommonClusterProperties {
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/MetricDimension.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/MetricDimension.java
new file mode 100644
index 000000000000..56e0c8f9e33a
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/MetricDimension.java
@@ -0,0 +1,69 @@
+/**
+ * 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.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Specifications of the Dimension of metrics.
+ */
+public class MetricDimension {
+ /**
+ * Name of the dimension.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Localized friendly display name of the dimension.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Get name of the dimension.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the dimension.
+ *
+ * @param name the name value to set
+ * @return the MetricDimension object itself.
+ */
+ public MetricDimension withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get localized friendly display name of the dimension.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set localized friendly display name of the dimension.
+ *
+ * @param displayName the displayName value to set
+ * @return the MetricDimension object itself.
+ */
+ public MetricDimension withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/MetricSpecification.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/MetricSpecification.java
new file mode 100644
index 000000000000..cc0efef6efc1
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/MetricSpecification.java
@@ -0,0 +1,359 @@
+/**
+ * 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 java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Specifications of the Metrics for Azure Monitoring.
+ */
+public class MetricSpecification {
+ /**
+ * Name of the metric.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Localized friendly display name of the metric.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Localized friendly description of the metric.
+ */
+ @JsonProperty(value = "displayDescription")
+ private String displayDescription;
+
+ /**
+ * Unit that makes sense for the metric.
+ */
+ @JsonProperty(value = "unit")
+ private String unit;
+
+ /**
+ * Name of the metric category that the metric belongs to. A metric can
+ * only belong to a single category.
+ */
+ @JsonProperty(value = "category")
+ private String category;
+
+ /**
+ * Only provide one value for this field. Valid values: Average, Minimum,
+ * Maximum, Total, Count.
+ */
+ @JsonProperty(value = "aggregationType")
+ private String aggregationType;
+
+ /**
+ * Supported aggregation types.
+ */
+ @JsonProperty(value = "supportedAggregationTypes")
+ private List supportedAggregationTypes;
+
+ /**
+ * Supported time grain types.
+ */
+ @JsonProperty(value = "supportedTimeGrainTypes")
+ private List supportedTimeGrainTypes;
+
+ /**
+ * Optional. If set to true, then zero will be returned for time duration
+ * where no metric is emitted/published.
+ */
+ @JsonProperty(value = "fillGapWithZero")
+ private Boolean fillGapWithZero;
+
+ /**
+ * Dimensions of the metric.
+ */
+ @JsonProperty(value = "dimensions")
+ private List dimensions;
+
+ /**
+ * Whether or not the service is using regional MDM accounts.
+ */
+ @JsonProperty(value = "enableRegionalMdmAccount")
+ private String enableRegionalMdmAccount;
+
+ /**
+ * The name of the MDM account.
+ */
+ @JsonProperty(value = "sourceMdmAccount")
+ private String sourceMdmAccount;
+
+ /**
+ * The name of the MDM namespace.
+ */
+ @JsonProperty(value = "sourceMdmNamespace")
+ private String sourceMdmNamespace;
+
+ /**
+ * Get name of the metric.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the metric.
+ *
+ * @param name the name value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get localized friendly display name of the metric.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set localized friendly display name of the metric.
+ *
+ * @param displayName the displayName value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get localized friendly description of the metric.
+ *
+ * @return the displayDescription value
+ */
+ public String displayDescription() {
+ return this.displayDescription;
+ }
+
+ /**
+ * Set localized friendly description of the metric.
+ *
+ * @param displayDescription the displayDescription value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withDisplayDescription(String displayDescription) {
+ this.displayDescription = displayDescription;
+ return this;
+ }
+
+ /**
+ * Get unit that makes sense for the metric.
+ *
+ * @return the unit value
+ */
+ public String unit() {
+ return this.unit;
+ }
+
+ /**
+ * Set unit that makes sense for the metric.
+ *
+ * @param unit the unit value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withUnit(String unit) {
+ this.unit = unit;
+ return this;
+ }
+
+ /**
+ * Get name of the metric category that the metric belongs to. A metric can only belong to a single category.
+ *
+ * @return the category value
+ */
+ public String category() {
+ return this.category;
+ }
+
+ /**
+ * Set name of the metric category that the metric belongs to. A metric can only belong to a single category.
+ *
+ * @param category the category value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withCategory(String category) {
+ this.category = category;
+ return this;
+ }
+
+ /**
+ * Get only provide one value for this field. Valid values: Average, Minimum, Maximum, Total, Count.
+ *
+ * @return the aggregationType value
+ */
+ public String aggregationType() {
+ return this.aggregationType;
+ }
+
+ /**
+ * Set only provide one value for this field. Valid values: Average, Minimum, Maximum, Total, Count.
+ *
+ * @param aggregationType the aggregationType value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withAggregationType(String aggregationType) {
+ this.aggregationType = aggregationType;
+ return this;
+ }
+
+ /**
+ * Get supported aggregation types.
+ *
+ * @return the supportedAggregationTypes value
+ */
+ public List supportedAggregationTypes() {
+ return this.supportedAggregationTypes;
+ }
+
+ /**
+ * Set supported aggregation types.
+ *
+ * @param supportedAggregationTypes the supportedAggregationTypes value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withSupportedAggregationTypes(List supportedAggregationTypes) {
+ this.supportedAggregationTypes = supportedAggregationTypes;
+ return this;
+ }
+
+ /**
+ * Get supported time grain types.
+ *
+ * @return the supportedTimeGrainTypes value
+ */
+ public List supportedTimeGrainTypes() {
+ return this.supportedTimeGrainTypes;
+ }
+
+ /**
+ * Set supported time grain types.
+ *
+ * @param supportedTimeGrainTypes the supportedTimeGrainTypes value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withSupportedTimeGrainTypes(List supportedTimeGrainTypes) {
+ this.supportedTimeGrainTypes = supportedTimeGrainTypes;
+ return this;
+ }
+
+ /**
+ * Get optional. If set to true, then zero will be returned for time duration where no metric is emitted/published.
+ *
+ * @return the fillGapWithZero value
+ */
+ public Boolean fillGapWithZero() {
+ return this.fillGapWithZero;
+ }
+
+ /**
+ * Set optional. If set to true, then zero will be returned for time duration where no metric is emitted/published.
+ *
+ * @param fillGapWithZero the fillGapWithZero value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withFillGapWithZero(Boolean fillGapWithZero) {
+ this.fillGapWithZero = fillGapWithZero;
+ return this;
+ }
+
+ /**
+ * Get dimensions of the metric.
+ *
+ * @return the dimensions value
+ */
+ public List dimensions() {
+ return this.dimensions;
+ }
+
+ /**
+ * Set dimensions of the metric.
+ *
+ * @param dimensions the dimensions value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withDimensions(List dimensions) {
+ this.dimensions = dimensions;
+ return this;
+ }
+
+ /**
+ * Get whether or not the service is using regional MDM accounts.
+ *
+ * @return the enableRegionalMdmAccount value
+ */
+ public String enableRegionalMdmAccount() {
+ return this.enableRegionalMdmAccount;
+ }
+
+ /**
+ * Set whether or not the service is using regional MDM accounts.
+ *
+ * @param enableRegionalMdmAccount the enableRegionalMdmAccount value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withEnableRegionalMdmAccount(String enableRegionalMdmAccount) {
+ this.enableRegionalMdmAccount = enableRegionalMdmAccount;
+ return this;
+ }
+
+ /**
+ * Get the name of the MDM account.
+ *
+ * @return the sourceMdmAccount value
+ */
+ public String sourceMdmAccount() {
+ return this.sourceMdmAccount;
+ }
+
+ /**
+ * Set the name of the MDM account.
+ *
+ * @param sourceMdmAccount the sourceMdmAccount value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withSourceMdmAccount(String sourceMdmAccount) {
+ this.sourceMdmAccount = sourceMdmAccount;
+ return this;
+ }
+
+ /**
+ * Get the name of the MDM namespace.
+ *
+ * @return the sourceMdmNamespace value
+ */
+ public String sourceMdmNamespace() {
+ return this.sourceMdmNamespace;
+ }
+
+ /**
+ * Set the name of the MDM namespace.
+ *
+ * @param sourceMdmNamespace the sourceMdmNamespace value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withSourceMdmNamespace(String sourceMdmNamespace) {
+ this.sourceMdmNamespace = sourceMdmNamespace;
+ return this;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/NsxtAdminRotateEnum.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/NsxtAdminRotateEnum.java
new file mode 100644
index 000000000000..3a5a45a42fd4
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/NsxtAdminRotateEnum.java
@@ -0,0 +1,38 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for NsxtAdminRotateEnum.
+ */
+public final class NsxtAdminRotateEnum extends ExpandableStringEnum {
+ /** Static value OnetimeRotate for NsxtAdminRotateEnum. */
+ public static final NsxtAdminRotateEnum ONETIME_ROTATE = fromString("OnetimeRotate");
+
+ /**
+ * Creates or finds a NsxtAdminRotateEnum from its string representation.
+ * @param name a name to look for
+ * @return the corresponding NsxtAdminRotateEnum
+ */
+ @JsonCreator
+ public static NsxtAdminRotateEnum fromString(String name) {
+ return fromString(name, NsxtAdminRotateEnum.class);
+ }
+
+ /**
+ * @return known NsxtAdminRotateEnum values
+ */
+ public static Collection values() {
+ return values(NsxtAdminRotateEnum.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Operation.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Operation.java
new file mode 100644
index 000000000000..2f200800bc70
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Operation.java
@@ -0,0 +1,45 @@
+/**
+ * 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.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.OperationInner;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDisplay display();
+
+ /**
+ * @return the isDataAction value.
+ */
+ Boolean isDataAction();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the origin value.
+ */
+ String origin();
+
+ /**
+ * @return the properties value.
+ */
+ OperationProperties properties();
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/OperationDisplay.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/OperationDisplay.java
new file mode 100644
index 000000000000..0645e69a58e3
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/OperationDisplay.java
@@ -0,0 +1,77 @@
+/**
+ * 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.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Contains the localized display information for this operation.
+ */
+public class OperationDisplay {
+ /**
+ * Localized friendly form of the resource provider name.
+ */
+ @JsonProperty(value = "provider", access = JsonProperty.Access.WRITE_ONLY)
+ private String provider;
+
+ /**
+ * Localized friendly form of the resource type related to this operation.
+ */
+ @JsonProperty(value = "resource", access = JsonProperty.Access.WRITE_ONLY)
+ private String resource;
+
+ /**
+ * Localized friendly name for the operation.
+ */
+ @JsonProperty(value = "operation", access = JsonProperty.Access.WRITE_ONLY)
+ private String operation;
+
+ /**
+ * Localized friendly description for the operation.
+ */
+ @JsonProperty(value = "description", access = JsonProperty.Access.WRITE_ONLY)
+ private String description;
+
+ /**
+ * Get localized friendly form of the resource provider name.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Get localized friendly form of the resource type related to this operation.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Get localized friendly name for the operation.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Get localized friendly description for the operation.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/OperationProperties.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/OperationProperties.java
new file mode 100644
index 000000000000..a5cdbd8b4633
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/OperationProperties.java
@@ -0,0 +1,43 @@
+/**
+ * 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.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Extra Operation properties.
+ */
+public class OperationProperties {
+ /**
+ * Service specifications of the operation.
+ */
+ @JsonProperty(value = "serviceSpecification")
+ private ServiceSpecification serviceSpecification;
+
+ /**
+ * Get service specifications of the operation.
+ *
+ * @return the serviceSpecification value
+ */
+ public ServiceSpecification serviceSpecification() {
+ return this.serviceSpecification;
+ }
+
+ /**
+ * Set service specifications of the operation.
+ *
+ * @param serviceSpecification the serviceSpecification value to set
+ * @return the OperationProperties object itself.
+ */
+ public OperationProperties withServiceSpecification(ServiceSpecification serviceSpecification) {
+ this.serviceSpecification = serviceSpecification;
+ return this;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Operations.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Operations.java
new file mode 100644
index 000000000000..0779a2e23797
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Operations.java
@@ -0,0 +1,27 @@
+/**
+ * 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 rx.Observable;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Lists all of the available operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PortMirroringDirectionEnum.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PortMirroringDirectionEnum.java
new file mode 100644
index 000000000000..8e60b5b5904e
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PortMirroringDirectionEnum.java
@@ -0,0 +1,38 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PortMirroringDirectionEnum.
+ */
+public final class PortMirroringDirectionEnum extends ExpandableStringEnum {
+ /** Static value INGRESS, EGRESS, BIDIRECTIONAL for PortMirroringDirectionEnum. */
+ public static final PortMirroringDirectionEnum INGRESS_EGRESS_BIDIRECTIONAL = fromString("INGRESS, EGRESS, BIDIRECTIONAL");
+
+ /**
+ * Creates or finds a PortMirroringDirectionEnum from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PortMirroringDirectionEnum
+ */
+ @JsonCreator
+ public static PortMirroringDirectionEnum fromString(String name) {
+ return fromString(name, PortMirroringDirectionEnum.class);
+ }
+
+ /**
+ * @return known PortMirroringDirectionEnum values
+ */
+ public static Collection values() {
+ return values(PortMirroringDirectionEnum.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PortMirroringStatusEnum.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PortMirroringStatusEnum.java
new file mode 100644
index 000000000000..e93bc0ddda4d
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PortMirroringStatusEnum.java
@@ -0,0 +1,38 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PortMirroringStatusEnum.
+ */
+public final class PortMirroringStatusEnum extends ExpandableStringEnum {
+ /** Static value SUCCESS, FAILURE for PortMirroringStatusEnum. */
+ public static final PortMirroringStatusEnum SUCCESS_FAILURE = fromString("SUCCESS, FAILURE");
+
+ /**
+ * Creates or finds a PortMirroringStatusEnum from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PortMirroringStatusEnum
+ */
+ @JsonCreator
+ public static PortMirroringStatusEnum fromString(String name) {
+ return fromString(name, PortMirroringStatusEnum.class);
+ }
+
+ /**
+ * @return known PortMirroringStatusEnum values
+ */
+ public static Collection values() {
+ return values(PortMirroringStatusEnum.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PrivateCloud.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PrivateCloud.java
new file mode 100644
index 000000000000..917ac52cfc12
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PrivateCloud.java
@@ -0,0 +1,300 @@
+/**
+ * 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.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+import java.util.List;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.PrivateCloudInner;
+
+/**
+ * Type representing PrivateCloud.
+ */
+public interface PrivateCloud extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the circuit value.
+ */
+ Circuit circuit();
+
+ /**
+ * @return the endpoints value.
+ */
+ Endpoints endpoints();
+
+ /**
+ * @return the identitySources value.
+ */
+ List identitySources();
+
+ /**
+ * @return the internet value.
+ */
+ InternetEnum internet();
+
+ /**
+ * @return the managementCluster value.
+ */
+ ManagementCluster managementCluster();
+
+ /**
+ * @return the managementNetwork value.
+ */
+ String managementNetwork();
+
+ /**
+ * @return the networkBlock value.
+ */
+ String networkBlock();
+
+ /**
+ * @return the nsxtCertificateThumbprint value.
+ */
+ String nsxtCertificateThumbprint();
+
+ /**
+ * @return the nsxtPassword value.
+ */
+ NsxtAdminRotateEnum nsxtPassword();
+
+ /**
+ * @return the provisioningNetwork value.
+ */
+ String provisioningNetwork();
+
+ /**
+ * @return the provisioningState value.
+ */
+ PrivateCloudProvisioningState provisioningState();
+
+ /**
+ * @return the sku value.
+ */
+ Sku sku();
+
+ /**
+ * @return the vcenterCertificateThumbprint value.
+ */
+ String vcenterCertificateThumbprint();
+
+ /**
+ * @return the vcenterPassword value.
+ */
+ VcsaAdminRotateEnum vcenterPassword();
+
+ /**
+ * @return the vmotionNetwork value.
+ */
+ String vmotionNetwork();
+
+ /**
+ * The entirety of the PrivateCloud definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithNetworkBlock, DefinitionStages.WithSku, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of PrivateCloud definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a PrivateCloud definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the PrivateCloud definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the privatecloud definition allowing to specify NetworkBlock.
+ */
+ interface WithNetworkBlock {
+ /**
+ * Specifies networkBlock.
+ * @param networkBlock The block of addresses should be unique across VNet in your subscription as well as on-premise. Make sure the CIDR format is conformed to (A.B.C.D/X) where A,B,C,D are between 0 and 255, and X is between 0 and 22
+ * @return the next definition stage
+*/
+ WithSku withNetworkBlock(String networkBlock);
+ }
+
+ /**
+ * The stage of the privatecloud definition allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The private cloud SKU
+ * @return the next definition stage
+*/
+ WithCreate withSku(Sku sku);
+ }
+
+ /**
+ * The stage of the privatecloud definition allowing to specify Circuit.
+ */
+ interface WithCircuit {
+ /**
+ * Specifies circuit.
+ * @param circuit An ExpressRoute Circuit
+ * @return the next definition stage
+ */
+ WithCreate withCircuit(Circuit circuit);
+ }
+
+ /**
+ * The stage of the privatecloud definition allowing to specify IdentitySources.
+ */
+ interface WithIdentitySources {
+ /**
+ * Specifies identitySources.
+ * @param identitySources vCenter Single Sign On Identity Sources
+ * @return the next definition stage
+ */
+ WithCreate withIdentitySources(List identitySources);
+ }
+
+ /**
+ * The stage of the privatecloud definition allowing to specify Internet.
+ */
+ interface WithInternet {
+ /**
+ * Specifies internet.
+ * @param internet Connectivity to internet is enabled or disabled. Possible values include: 'Enabled', 'Disabled'
+ * @return the next definition stage
+ */
+ WithCreate withInternet(InternetEnum internet);
+ }
+
+ /**
+ * The stage of the privatecloud definition allowing to specify ManagementCluster.
+ */
+ interface WithManagementCluster {
+ /**
+ * Specifies managementCluster.
+ * @param managementCluster The default cluster used for management
+ * @return the next definition stage
+ */
+ WithCreate withManagementCluster(ManagementCluster managementCluster);
+ }
+
+ /**
+ * The stage of the privatecloud definition allowing to specify NsxtPassword.
+ */
+ interface WithNsxtPassword {
+ /**
+ * Specifies nsxtPassword.
+ * @param nsxtPassword Indicate to rotate the NSX-T Manager password for the private cloud. Possible values include: 'OnetimeRotate'
+ * @return the next definition stage
+ */
+ WithCreate withNsxtPassword(NsxtAdminRotateEnum nsxtPassword);
+ }
+
+ /**
+ * The stage of the privatecloud definition allowing to specify VcenterPassword.
+ */
+ interface WithVcenterPassword {
+ /**
+ * Specifies vcenterPassword.
+ * @param vcenterPassword Indicate to rotate the vCenter admin password for the private cloud. Possible values include: 'OnetimeRotate'
+ * @return the next definition stage
+ */
+ WithCreate withVcenterPassword(VcsaAdminRotateEnum vcenterPassword);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, Resource.DefinitionWithTags, DefinitionStages.WithCircuit, DefinitionStages.WithIdentitySources, DefinitionStages.WithInternet, DefinitionStages.WithManagementCluster, DefinitionStages.WithNsxtPassword, DefinitionStages.WithVcenterPassword {
+ }
+ }
+ /**
+ * The template for a PrivateCloud update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithIdentitySources, UpdateStages.WithInternet, UpdateStages.WithManagementCluster, UpdateStages.WithNsxtPassword, UpdateStages.WithVcenterPassword {
+ }
+
+ /**
+ * Grouping of PrivateCloud update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the privatecloud update allowing to specify IdentitySources.
+ */
+ interface WithIdentitySources {
+ /**
+ * Specifies identitySources.
+ * @param identitySources vCenter Single Sign On Identity Sources
+ * @return the next update stage
+ */
+ Update withIdentitySources(List identitySources);
+ }
+
+ /**
+ * The stage of the privatecloud update allowing to specify Internet.
+ */
+ interface WithInternet {
+ /**
+ * Specifies internet.
+ * @param internet Connectivity to internet is enabled or disabled. Possible values include: 'Enabled', 'Disabled'
+ * @return the next update stage
+ */
+ Update withInternet(InternetEnum internet);
+ }
+
+ /**
+ * The stage of the privatecloud update allowing to specify ManagementCluster.
+ */
+ interface WithManagementCluster {
+ /**
+ * Specifies managementCluster.
+ * @param managementCluster The default cluster used for management
+ * @return the next update stage
+ */
+ Update withManagementCluster(ManagementCluster managementCluster);
+ }
+
+ /**
+ * The stage of the privatecloud update allowing to specify NsxtPassword.
+ */
+ interface WithNsxtPassword {
+ /**
+ * Specifies nsxtPassword.
+ * @param nsxtPassword Indicate to rotate the NSX-T Manager password for the private cloud. Possible values include: 'OnetimeRotate'
+ * @return the next update stage
+ */
+ Update withNsxtPassword(NsxtAdminRotateEnum nsxtPassword);
+ }
+
+ /**
+ * The stage of the privatecloud update allowing to specify VcenterPassword.
+ */
+ interface WithVcenterPassword {
+ /**
+ * Specifies vcenterPassword.
+ * @param vcenterPassword Indicate to rotate the vCenter admin password for the private cloud. Possible values include: 'OnetimeRotate'
+ * @return the next update stage
+ */
+ Update withVcenterPassword(VcsaAdminRotateEnum vcenterPassword);
+ }
+
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PrivateCloudProvisioningState.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PrivateCloudProvisioningState.java
new file mode 100644
index 000000000000..7fad84256296
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PrivateCloudProvisioningState.java
@@ -0,0 +1,56 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PrivateCloudProvisioningState.
+ */
+public final class PrivateCloudProvisioningState extends ExpandableStringEnum {
+ /** Static value Succeeded for PrivateCloudProvisioningState. */
+ public static final PrivateCloudProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Failed for PrivateCloudProvisioningState. */
+ public static final PrivateCloudProvisioningState FAILED = fromString("Failed");
+
+ /** Static value Cancelled for PrivateCloudProvisioningState. */
+ public static final PrivateCloudProvisioningState CANCELLED = fromString("Cancelled");
+
+ /** Static value Pending for PrivateCloudProvisioningState. */
+ public static final PrivateCloudProvisioningState PENDING = fromString("Pending");
+
+ /** Static value Building for PrivateCloudProvisioningState. */
+ public static final PrivateCloudProvisioningState BUILDING = fromString("Building");
+
+ /** Static value Deleting for PrivateCloudProvisioningState. */
+ public static final PrivateCloudProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Updating for PrivateCloudProvisioningState. */
+ public static final PrivateCloudProvisioningState UPDATING = fromString("Updating");
+
+ /**
+ * Creates or finds a PrivateCloudProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PrivateCloudProvisioningState
+ */
+ @JsonCreator
+ public static PrivateCloudProvisioningState fromString(String name) {
+ return fromString(name, PrivateCloudProvisioningState.class);
+ }
+
+ /**
+ * @return known PrivateCloudProvisioningState values
+ */
+ public static Collection values() {
+ return values(PrivateCloudProvisioningState.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PrivateCloudUpdate.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PrivateCloudUpdate.java
new file mode 100644
index 000000000000..5fdc92422cee
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PrivateCloudUpdate.java
@@ -0,0 +1,180 @@
+/**
+ * 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 java.util.Map;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * An update to a private cloud resource.
+ */
+@JsonFlatten
+public class PrivateCloudUpdate {
+ /**
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * The default cluster used for management.
+ */
+ @JsonProperty(value = "properties.managementCluster")
+ private ManagementCluster managementCluster;
+
+ /**
+ * Connectivity to internet is enabled or disabled. Possible values
+ * include: 'Enabled', 'Disabled'.
+ */
+ @JsonProperty(value = "properties.internet")
+ private InternetEnum internet;
+
+ /**
+ * vCenter Single Sign On Identity Sources.
+ */
+ @JsonProperty(value = "properties.identitySources")
+ private List identitySources;
+
+ /**
+ * Indicate to rotate the vCenter admin password for the private cloud.
+ * Possible values include: 'OnetimeRotate'.
+ */
+ @JsonProperty(value = "properties.vcenterPassword")
+ private VcsaAdminRotateEnum vcenterPassword;
+
+ /**
+ * Indicate to rotate the NSX-T Manager password for the private cloud.
+ * Possible values include: 'OnetimeRotate'.
+ */
+ @JsonProperty(value = "properties.nsxtPassword")
+ private NsxtAdminRotateEnum nsxtPassword;
+
+ /**
+ * Get resource tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set resource tags.
+ *
+ * @param tags the tags value to set
+ * @return the PrivateCloudUpdate object itself.
+ */
+ public PrivateCloudUpdate withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the default cluster used for management.
+ *
+ * @return the managementCluster value
+ */
+ public ManagementCluster managementCluster() {
+ return this.managementCluster;
+ }
+
+ /**
+ * Set the default cluster used for management.
+ *
+ * @param managementCluster the managementCluster value to set
+ * @return the PrivateCloudUpdate object itself.
+ */
+ public PrivateCloudUpdate withManagementCluster(ManagementCluster managementCluster) {
+ this.managementCluster = managementCluster;
+ return this;
+ }
+
+ /**
+ * Get connectivity to internet is enabled or disabled. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @return the internet value
+ */
+ public InternetEnum internet() {
+ return this.internet;
+ }
+
+ /**
+ * Set connectivity to internet is enabled or disabled. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @param internet the internet value to set
+ * @return the PrivateCloudUpdate object itself.
+ */
+ public PrivateCloudUpdate withInternet(InternetEnum internet) {
+ this.internet = internet;
+ return this;
+ }
+
+ /**
+ * Get vCenter Single Sign On Identity Sources.
+ *
+ * @return the identitySources value
+ */
+ public List identitySources() {
+ return this.identitySources;
+ }
+
+ /**
+ * Set vCenter Single Sign On Identity Sources.
+ *
+ * @param identitySources the identitySources value to set
+ * @return the PrivateCloudUpdate object itself.
+ */
+ public PrivateCloudUpdate withIdentitySources(List identitySources) {
+ this.identitySources = identitySources;
+ return this;
+ }
+
+ /**
+ * Get indicate to rotate the vCenter admin password for the private cloud. Possible values include: 'OnetimeRotate'.
+ *
+ * @return the vcenterPassword value
+ */
+ public VcsaAdminRotateEnum vcenterPassword() {
+ return this.vcenterPassword;
+ }
+
+ /**
+ * Set indicate to rotate the vCenter admin password for the private cloud. Possible values include: 'OnetimeRotate'.
+ *
+ * @param vcenterPassword the vcenterPassword value to set
+ * @return the PrivateCloudUpdate object itself.
+ */
+ public PrivateCloudUpdate withVcenterPassword(VcsaAdminRotateEnum vcenterPassword) {
+ this.vcenterPassword = vcenterPassword;
+ return this;
+ }
+
+ /**
+ * Get indicate to rotate the NSX-T Manager password for the private cloud. Possible values include: 'OnetimeRotate'.
+ *
+ * @return the nsxtPassword value
+ */
+ public NsxtAdminRotateEnum nsxtPassword() {
+ return this.nsxtPassword;
+ }
+
+ /**
+ * Set indicate to rotate the NSX-T Manager password for the private cloud. Possible values include: 'OnetimeRotate'.
+ *
+ * @param nsxtPassword the nsxtPassword value to set
+ * @return the PrivateCloudUpdate object itself.
+ */
+ public PrivateCloudUpdate withNsxtPassword(NsxtAdminRotateEnum nsxtPassword) {
+ this.nsxtPassword = nsxtPassword;
+ return this;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PrivateClouds.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PrivateClouds.java
new file mode 100644
index 000000000000..e0f6683aa725
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/PrivateClouds.java
@@ -0,0 +1,35 @@
+/**
+ * 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.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.PrivateCloudsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PrivateClouds.
+ */
+public interface PrivateClouds extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * 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 for the request
+ */
+ Observable listAdminCredentialsAsync(String resourceGroupName, String privateCloudName);
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Quota.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Quota.java
new file mode 100644
index 000000000000..10c672804f0d
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Quota.java
@@ -0,0 +1,31 @@
+/**
+ * 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.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.QuotaInner;
+import java.util.Map;
+
+/**
+ * Type representing Quota.
+ */
+public interface Quota extends HasInner, HasManager {
+ /**
+ * @return the hostsRemaining value.
+ */
+ Map hostsRemaining();
+
+ /**
+ * @return the quotaEnabled value.
+ */
+ QuotaEnabled quotaEnabled();
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/QuotaEnabled.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/QuotaEnabled.java
new file mode 100644
index 000000000000..e3f0313f187f
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/QuotaEnabled.java
@@ -0,0 +1,41 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for QuotaEnabled.
+ */
+public final class QuotaEnabled extends ExpandableStringEnum {
+ /** Static value Enabled for QuotaEnabled. */
+ public static final QuotaEnabled ENABLED = fromString("Enabled");
+
+ /** Static value Disabled for QuotaEnabled. */
+ public static final QuotaEnabled DISABLED = fromString("Disabled");
+
+ /**
+ * Creates or finds a QuotaEnabled from its string representation.
+ * @param name a name to look for
+ * @return the corresponding QuotaEnabled
+ */
+ @JsonCreator
+ public static QuotaEnabled fromString(String name) {
+ return fromString(name, QuotaEnabled.class);
+ }
+
+ /**
+ * @return known QuotaEnabled values
+ */
+ public static Collection values() {
+ return values(QuotaEnabled.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/SegmentStatusEnum.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/SegmentStatusEnum.java
new file mode 100644
index 000000000000..cce73724232d
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/SegmentStatusEnum.java
@@ -0,0 +1,38 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SegmentStatusEnum.
+ */
+public final class SegmentStatusEnum extends ExpandableStringEnum {
+ /** Static value SUCCESS, FAILURE for SegmentStatusEnum. */
+ public static final SegmentStatusEnum SUCCESS_FAILURE = fromString("SUCCESS, FAILURE");
+
+ /**
+ * Creates or finds a SegmentStatusEnum from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SegmentStatusEnum
+ */
+ @JsonCreator
+ public static SegmentStatusEnum fromString(String name) {
+ return fromString(name, SegmentStatusEnum.class);
+ }
+
+ /**
+ * @return known SegmentStatusEnum values
+ */
+ public static Collection values() {
+ return values(SegmentStatusEnum.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ServiceSpecification.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ServiceSpecification.java
new file mode 100644
index 000000000000..250b9545c1f9
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/ServiceSpecification.java
@@ -0,0 +1,70 @@
+/**
+ * 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 java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Service specification payload.
+ */
+public class ServiceSpecification {
+ /**
+ * Specifications of the Log for Azure Monitoring.
+ */
+ @JsonProperty(value = "logSpecifications")
+ private List logSpecifications;
+
+ /**
+ * Specifications of the Metrics for Azure Monitoring.
+ */
+ @JsonProperty(value = "metricSpecifications")
+ private List metricSpecifications;
+
+ /**
+ * Get specifications of the Log for Azure Monitoring.
+ *
+ * @return the logSpecifications value
+ */
+ public List logSpecifications() {
+ return this.logSpecifications;
+ }
+
+ /**
+ * Set specifications of the Log for Azure Monitoring.
+ *
+ * @param logSpecifications the logSpecifications value to set
+ * @return the ServiceSpecification object itself.
+ */
+ public ServiceSpecification withLogSpecifications(List logSpecifications) {
+ this.logSpecifications = logSpecifications;
+ return this;
+ }
+
+ /**
+ * Get specifications of the Metrics for Azure Monitoring.
+ *
+ * @return the metricSpecifications value
+ */
+ public List metricSpecifications() {
+ return this.metricSpecifications;
+ }
+
+ /**
+ * Set specifications of the Metrics for Azure Monitoring.
+ *
+ * @param metricSpecifications the metricSpecifications value to set
+ * @return the ServiceSpecification object itself.
+ */
+ public ServiceSpecification withMetricSpecifications(List metricSpecifications) {
+ this.metricSpecifications = metricSpecifications;
+ return this;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Sku.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Sku.java
new file mode 100644
index 000000000000..4f60ec1cb2fc
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Sku.java
@@ -0,0 +1,43 @@
+/**
+ * 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.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The resource model definition representing SKU.
+ */
+public class Sku {
+ /**
+ * The name of the SKU.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Get the name of the SKU.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the SKU.
+ *
+ * @param name the name value to set
+ * @return the Sku object itself.
+ */
+ public Sku withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/SslEnum.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/SslEnum.java
new file mode 100644
index 000000000000..1fddb5ac2f89
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/SslEnum.java
@@ -0,0 +1,41 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SslEnum.
+ */
+public final class SslEnum extends ExpandableStringEnum {
+ /** Static value Enabled for SslEnum. */
+ public static final SslEnum ENABLED = fromString("Enabled");
+
+ /** Static value Disabled for SslEnum. */
+ public static final SslEnum DISABLED = fromString("Disabled");
+
+ /**
+ * Creates or finds a SslEnum from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SslEnum
+ */
+ @JsonCreator
+ public static SslEnum fromString(String name) {
+ return fromString(name, SslEnum.class);
+ }
+
+ /**
+ * @return known SslEnum values
+ */
+ public static Collection values() {
+ return values(SslEnum.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Trial.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Trial.java
new file mode 100644
index 000000000000..0c0fec6aefef
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/Trial.java
@@ -0,0 +1,30 @@
+/**
+ * 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.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.TrialInner;
+
+/**
+ * Type representing Trial.
+ */
+public interface Trial extends HasInner, HasManager {
+ /**
+ * @return the availableHosts value.
+ */
+ Integer availableHosts();
+
+ /**
+ * @return the status value.
+ */
+ TrialStatus status();
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/TrialStatus.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/TrialStatus.java
new file mode 100644
index 000000000000..e0ed0daec13c
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/TrialStatus.java
@@ -0,0 +1,44 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for TrialStatus.
+ */
+public final class TrialStatus extends ExpandableStringEnum {
+ /** Static value TrialAvailable for TrialStatus. */
+ public static final TrialStatus TRIAL_AVAILABLE = fromString("TrialAvailable");
+
+ /** Static value TrialUsed for TrialStatus. */
+ public static final TrialStatus TRIAL_USED = fromString("TrialUsed");
+
+ /** Static value TrialDisabled for TrialStatus. */
+ public static final TrialStatus TRIAL_DISABLED = fromString("TrialDisabled");
+
+ /**
+ * Creates or finds a TrialStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding TrialStatus
+ */
+ @JsonCreator
+ public static TrialStatus fromString(String name) {
+ return fromString(name, TrialStatus.class);
+ }
+
+ /**
+ * @return known TrialStatus values
+ */
+ public static Collection values() {
+ return values(TrialStatus.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/VMGroupStatusEnum.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/VMGroupStatusEnum.java
new file mode 100644
index 000000000000..7228ad7f9d37
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/VMGroupStatusEnum.java
@@ -0,0 +1,38 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for VMGroupStatusEnum.
+ */
+public final class VMGroupStatusEnum extends ExpandableStringEnum {
+ /** Static value SUCCESS, FAILURE for VMGroupStatusEnum. */
+ public static final VMGroupStatusEnum SUCCESS_FAILURE = fromString("SUCCESS, FAILURE");
+
+ /**
+ * Creates or finds a VMGroupStatusEnum from its string representation.
+ * @param name a name to look for
+ * @return the corresponding VMGroupStatusEnum
+ */
+ @JsonCreator
+ public static VMGroupStatusEnum fromString(String name) {
+ return fromString(name, VMGroupStatusEnum.class);
+ }
+
+ /**
+ * @return known VMGroupStatusEnum values
+ */
+ public static Collection values() {
+ return values(VMGroupStatusEnum.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/VMTypeEnum.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/VMTypeEnum.java
new file mode 100644
index 000000000000..5e60ae292826
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/VMTypeEnum.java
@@ -0,0 +1,38 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for VMTypeEnum.
+ */
+public final class VMTypeEnum extends ExpandableStringEnum {
+ /** Static value REGULAR, EDGE, SERVICE for VMTypeEnum. */
+ public static final VMTypeEnum REGULAR_EDGE_SERVICE = fromString("REGULAR, EDGE, SERVICE");
+
+ /**
+ * Creates or finds a VMTypeEnum from its string representation.
+ * @param name a name to look for
+ * @return the corresponding VMTypeEnum
+ */
+ @JsonCreator
+ public static VMTypeEnum fromString(String name) {
+ return fromString(name, VMTypeEnum.class);
+ }
+
+ /**
+ * @return known VMTypeEnum values
+ */
+ public static Collection values() {
+ return values(VMTypeEnum.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/VcsaAdminRotateEnum.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/VcsaAdminRotateEnum.java
new file mode 100644
index 000000000000..e7a292ed80bf
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/VcsaAdminRotateEnum.java
@@ -0,0 +1,38 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for VcsaAdminRotateEnum.
+ */
+public final class VcsaAdminRotateEnum extends ExpandableStringEnum {
+ /** Static value OnetimeRotate for VcsaAdminRotateEnum. */
+ public static final VcsaAdminRotateEnum ONETIME_ROTATE = fromString("OnetimeRotate");
+
+ /**
+ * Creates or finds a VcsaAdminRotateEnum from its string representation.
+ * @param name a name to look for
+ * @return the corresponding VcsaAdminRotateEnum
+ */
+ @JsonCreator
+ public static VcsaAdminRotateEnum fromString(String name) {
+ return fromString(name, VcsaAdminRotateEnum.class);
+ }
+
+ /**
+ * @return known VcsaAdminRotateEnum values
+ */
+ public static Collection values() {
+ return values(VcsaAdminRotateEnum.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcp.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcp.java
new file mode 100644
index 000000000000..ce6c9fbc3ad9
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcp.java
@@ -0,0 +1,156 @@
+/**
+ * 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.arm.model.HasInner;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.WorkloadNetworkDhcpInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+import java.util.List;
+
+/**
+ * Type representing WorkloadNetworkDhcp.
+ */
+public interface WorkloadNetworkDhcp extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ WorkloadNetworkDhcpProvisioningState provisioningState();
+
+ /**
+ * @return the revision value.
+ */
+ Long revision();
+
+ /**
+ * @return the segments value.
+ */
+ List segments();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the WorkloadNetworkDhcp definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithWorkloadNetwork, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of WorkloadNetworkDhcp definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a WorkloadNetworkDhcp definition.
+ */
+ interface Blank extends WithWorkloadNetwork {
+ }
+
+ /**
+ * The stage of the workloadnetworkdhcp definition allowing to specify WorkloadNetwork.
+ */
+ interface WithWorkloadNetwork {
+ /**
+ * Specifies resourceGroupName, privateCloudName.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive
+ * @param privateCloudName Name of the private cloud
+ * @return the next definition stage
+ */
+ WithCreate withExistingWorkloadNetwork(String resourceGroupName, String privateCloudName);
+ }
+
+ /**
+ * The stage of the workloadnetworkdhcp definition allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName Display name of the DHCP entity
+ * @return the next definition stage
+ */
+ WithCreate withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the workloadnetworkdhcp definition allowing to specify Revision.
+ */
+ interface WithRevision {
+ /**
+ * Specifies revision.
+ * @param revision NSX revision number
+ * @return the next definition stage
+ */
+ WithCreate withRevision(Long revision);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithDisplayName, DefinitionStages.WithRevision {
+ }
+ }
+ /**
+ * The template for a WorkloadNetworkDhcp update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithDisplayName, UpdateStages.WithRevision {
+ }
+
+ /**
+ * Grouping of WorkloadNetworkDhcp update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the workloadnetworkdhcp update allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName Display name of the DHCP entity
+ * @return the next update stage
+ */
+ Update withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the workloadnetworkdhcp update allowing to specify Revision.
+ */
+ interface WithRevision {
+ /**
+ * Specifies revision.
+ * @param revision NSX revision number
+ * @return the next update stage
+ */
+ Update withRevision(Long revision);
+ }
+
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcpEntity.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcpEntity.java
new file mode 100644
index 000000000000..6e3fd4d29a7e
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcpEntity.java
@@ -0,0 +1,111 @@
+/**
+ * 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 java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Base class for WorkloadNetworkDhcpServer and WorkloadNetworkDhcpRelay to
+ * inherit from.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "dhcpType", defaultImpl = WorkloadNetworkDhcpEntity.class)
+@JsonTypeName("WorkloadNetworkDhcpEntity")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "SERVER", value = WorkloadNetworkDhcpServer.class),
+ @JsonSubTypes.Type(name = "RELAY", value = WorkloadNetworkDhcpRelay.class)
+})
+public class WorkloadNetworkDhcpEntity {
+ /**
+ * Display name of the DHCP entity.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * NSX Segments consuming DHCP.
+ */
+ @JsonProperty(value = "segments", access = JsonProperty.Access.WRITE_ONLY)
+ private List segments;
+
+ /**
+ * The provisioning state. Possible values include: 'Succeeded', 'Failed',
+ * 'Building', 'Deleting', 'Updating'.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private WorkloadNetworkDhcpProvisioningState provisioningState;
+
+ /**
+ * NSX revision number.
+ */
+ @JsonProperty(value = "revision")
+ private Long revision;
+
+ /**
+ * Get display name of the DHCP entity.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set display name of the DHCP entity.
+ *
+ * @param displayName the displayName value to set
+ * @return the WorkloadNetworkDhcpEntity object itself.
+ */
+ public WorkloadNetworkDhcpEntity withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get nSX Segments consuming DHCP.
+ *
+ * @return the segments value
+ */
+ public List segments() {
+ return this.segments;
+ }
+
+ /**
+ * Get the provisioning state. Possible values include: 'Succeeded', 'Failed', 'Building', 'Deleting', 'Updating'.
+ *
+ * @return the provisioningState value
+ */
+ public WorkloadNetworkDhcpProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get nSX revision number.
+ *
+ * @return the revision value
+ */
+ public Long revision() {
+ return this.revision;
+ }
+
+ /**
+ * Set nSX revision number.
+ *
+ * @param revision the revision value to set
+ * @return the WorkloadNetworkDhcpEntity object itself.
+ */
+ public WorkloadNetworkDhcpEntity withRevision(Long revision) {
+ this.revision = revision;
+ return this;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcpProvisioningState.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcpProvisioningState.java
new file mode 100644
index 000000000000..cf5dd23a7396
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcpProvisioningState.java
@@ -0,0 +1,50 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for WorkloadNetworkDhcpProvisioningState.
+ */
+public final class WorkloadNetworkDhcpProvisioningState extends ExpandableStringEnum {
+ /** Static value Succeeded for WorkloadNetworkDhcpProvisioningState. */
+ public static final WorkloadNetworkDhcpProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Failed for WorkloadNetworkDhcpProvisioningState. */
+ public static final WorkloadNetworkDhcpProvisioningState FAILED = fromString("Failed");
+
+ /** Static value Building for WorkloadNetworkDhcpProvisioningState. */
+ public static final WorkloadNetworkDhcpProvisioningState BUILDING = fromString("Building");
+
+ /** Static value Deleting for WorkloadNetworkDhcpProvisioningState. */
+ public static final WorkloadNetworkDhcpProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Updating for WorkloadNetworkDhcpProvisioningState. */
+ public static final WorkloadNetworkDhcpProvisioningState UPDATING = fromString("Updating");
+
+ /**
+ * Creates or finds a WorkloadNetworkDhcpProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding WorkloadNetworkDhcpProvisioningState
+ */
+ @JsonCreator
+ public static WorkloadNetworkDhcpProvisioningState fromString(String name) {
+ return fromString(name, WorkloadNetworkDhcpProvisioningState.class);
+ }
+
+ /**
+ * @return known WorkloadNetworkDhcpProvisioningState values
+ */
+ public static Collection values() {
+ return values(WorkloadNetworkDhcpProvisioningState.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcpRelay.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcpRelay.java
new file mode 100644
index 000000000000..302a5c953249
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcpRelay.java
@@ -0,0 +1,48 @@
+/**
+ * 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 java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * NSX DHCP Relay.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "dhcpType", defaultImpl = WorkloadNetworkDhcpRelay.class)
+@JsonTypeName("RELAY")
+public class WorkloadNetworkDhcpRelay extends WorkloadNetworkDhcpEntity {
+ /**
+ * DHCP Relay Addresses. Max 3.
+ */
+ @JsonProperty(value = "serverAddresses")
+ private List serverAddresses;
+
+ /**
+ * Get dHCP Relay Addresses. Max 3.
+ *
+ * @return the serverAddresses value
+ */
+ public List serverAddresses() {
+ return this.serverAddresses;
+ }
+
+ /**
+ * Set dHCP Relay Addresses. Max 3.
+ *
+ * @param serverAddresses the serverAddresses value to set
+ * @return the WorkloadNetworkDhcpRelay object itself.
+ */
+ public WorkloadNetworkDhcpRelay withServerAddresses(List serverAddresses) {
+ this.serverAddresses = serverAddresses;
+ return this;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcpServer.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcpServer.java
new file mode 100644
index 000000000000..b7bf411cc9b2
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkDhcpServer.java
@@ -0,0 +1,73 @@
+/**
+ * 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.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * NSX DHCP Server.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "dhcpType", defaultImpl = WorkloadNetworkDhcpServer.class)
+@JsonTypeName("SERVER")
+public class WorkloadNetworkDhcpServer extends WorkloadNetworkDhcpEntity {
+ /**
+ * DHCP Server Address.
+ */
+ @JsonProperty(value = "serverAddress")
+ private String serverAddress;
+
+ /**
+ * DHCP Server Lease Time.
+ */
+ @JsonProperty(value = "leaseTime")
+ private Long leaseTime;
+
+ /**
+ * Get dHCP Server Address.
+ *
+ * @return the serverAddress value
+ */
+ public String serverAddress() {
+ return this.serverAddress;
+ }
+
+ /**
+ * Set dHCP Server Address.
+ *
+ * @param serverAddress the serverAddress value to set
+ * @return the WorkloadNetworkDhcpServer object itself.
+ */
+ public WorkloadNetworkDhcpServer withServerAddress(String serverAddress) {
+ this.serverAddress = serverAddress;
+ return this;
+ }
+
+ /**
+ * Get dHCP Server Lease Time.
+ *
+ * @return the leaseTime value
+ */
+ public Long leaseTime() {
+ return this.leaseTime;
+ }
+
+ /**
+ * Set dHCP Server Lease Time.
+ *
+ * @param leaseTime the leaseTime value to set
+ * @return the WorkloadNetworkDhcpServer object itself.
+ */
+ public WorkloadNetworkDhcpServer withLeaseTime(Long leaseTime) {
+ this.leaseTime = leaseTime;
+ return this;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkGateway.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkGateway.java
new file mode 100644
index 000000000000..d340543cbd07
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkGateway.java
@@ -0,0 +1,45 @@
+/**
+ * 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.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.WorkloadNetworkGatewayInner;
+
+/**
+ * Type representing WorkloadNetworkGateway.
+ */
+public interface WorkloadNetworkGateway extends HasInner, HasManager {
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the path value.
+ */
+ String path();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkPortMirroring.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkPortMirroring.java
new file mode 100644
index 000000000000..6e2f2f492e8e
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkPortMirroring.java
@@ -0,0 +1,242 @@
+/**
+ * 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.arm.model.HasInner;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.WorkloadNetworkPortMirroringInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+
+/**
+ * Type representing WorkloadNetworkPortMirroring.
+ */
+public interface WorkloadNetworkPortMirroring extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the destination value.
+ */
+ String destination();
+
+ /**
+ * @return the direction value.
+ */
+ PortMirroringDirectionEnum direction();
+
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ WorkloadNetworkPortMirroringProvisioningState provisioningState();
+
+ /**
+ * @return the revision value.
+ */
+ Long revision();
+
+ /**
+ * @return the source value.
+ */
+ String source();
+
+ /**
+ * @return the status value.
+ */
+ PortMirroringStatusEnum status();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the WorkloadNetworkPortMirroring definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithWorkloadNetwork, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of WorkloadNetworkPortMirroring definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a WorkloadNetworkPortMirroring definition.
+ */
+ interface Blank extends WithWorkloadNetwork {
+ }
+
+ /**
+ * The stage of the workloadnetworkportmirroring definition allowing to specify WorkloadNetwork.
+ */
+ interface WithWorkloadNetwork {
+ /**
+ * Specifies resourceGroupName, privateCloudName.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive
+ * @param privateCloudName Name of the private cloud
+ * @return the next definition stage
+ */
+ WithCreate withExistingWorkloadNetwork(String resourceGroupName, String privateCloudName);
+ }
+
+ /**
+ * The stage of the workloadnetworkportmirroring definition allowing to specify Destination.
+ */
+ interface WithDestination {
+ /**
+ * Specifies destination.
+ * @param destination Destination VM Group
+ * @return the next definition stage
+ */
+ WithCreate withDestination(String destination);
+ }
+
+ /**
+ * The stage of the workloadnetworkportmirroring definition allowing to specify Direction.
+ */
+ interface WithDirection {
+ /**
+ * Specifies direction.
+ * @param direction Direction of port mirroring profile. Possible values include: 'INGRESS, EGRESS, BIDIRECTIONAL'
+ * @return the next definition stage
+ */
+ WithCreate withDirection(PortMirroringDirectionEnum direction);
+ }
+
+ /**
+ * The stage of the workloadnetworkportmirroring definition allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName Display name of the port mirroring profile
+ * @return the next definition stage
+ */
+ WithCreate withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the workloadnetworkportmirroring definition allowing to specify Revision.
+ */
+ interface WithRevision {
+ /**
+ * Specifies revision.
+ * @param revision NSX revision number
+ * @return the next definition stage
+ */
+ WithCreate withRevision(Long revision);
+ }
+
+ /**
+ * The stage of the workloadnetworkportmirroring definition allowing to specify Source.
+ */
+ interface WithSource {
+ /**
+ * Specifies source.
+ * @param source Source VM Group
+ * @return the next definition stage
+ */
+ WithCreate withSource(String source);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithDestination, DefinitionStages.WithDirection, DefinitionStages.WithDisplayName, DefinitionStages.WithRevision, DefinitionStages.WithSource {
+ }
+ }
+ /**
+ * The template for a WorkloadNetworkPortMirroring update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithDestination, UpdateStages.WithDirection, UpdateStages.WithDisplayName, UpdateStages.WithRevision, UpdateStages.WithSource {
+ }
+
+ /**
+ * Grouping of WorkloadNetworkPortMirroring update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the workloadnetworkportmirroring update allowing to specify Destination.
+ */
+ interface WithDestination {
+ /**
+ * Specifies destination.
+ * @param destination Destination VM Group
+ * @return the next update stage
+ */
+ Update withDestination(String destination);
+ }
+
+ /**
+ * The stage of the workloadnetworkportmirroring update allowing to specify Direction.
+ */
+ interface WithDirection {
+ /**
+ * Specifies direction.
+ * @param direction Direction of port mirroring profile. Possible values include: 'INGRESS, EGRESS, BIDIRECTIONAL'
+ * @return the next update stage
+ */
+ Update withDirection(PortMirroringDirectionEnum direction);
+ }
+
+ /**
+ * The stage of the workloadnetworkportmirroring update allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName Display name of the port mirroring profile
+ * @return the next update stage
+ */
+ Update withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the workloadnetworkportmirroring update allowing to specify Revision.
+ */
+ interface WithRevision {
+ /**
+ * Specifies revision.
+ * @param revision NSX revision number
+ * @return the next update stage
+ */
+ Update withRevision(Long revision);
+ }
+
+ /**
+ * The stage of the workloadnetworkportmirroring update allowing to specify Source.
+ */
+ interface WithSource {
+ /**
+ * Specifies source.
+ * @param source Source VM Group
+ * @return the next update stage
+ */
+ Update withSource(String source);
+ }
+
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkPortMirroringProvisioningState.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkPortMirroringProvisioningState.java
new file mode 100644
index 000000000000..e534e6a19419
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkPortMirroringProvisioningState.java
@@ -0,0 +1,50 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for WorkloadNetworkPortMirroringProvisioningState.
+ */
+public final class WorkloadNetworkPortMirroringProvisioningState extends ExpandableStringEnum {
+ /** Static value Succeeded for WorkloadNetworkPortMirroringProvisioningState. */
+ public static final WorkloadNetworkPortMirroringProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Failed for WorkloadNetworkPortMirroringProvisioningState. */
+ public static final WorkloadNetworkPortMirroringProvisioningState FAILED = fromString("Failed");
+
+ /** Static value Building for WorkloadNetworkPortMirroringProvisioningState. */
+ public static final WorkloadNetworkPortMirroringProvisioningState BUILDING = fromString("Building");
+
+ /** Static value Deleting for WorkloadNetworkPortMirroringProvisioningState. */
+ public static final WorkloadNetworkPortMirroringProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Updating for WorkloadNetworkPortMirroringProvisioningState. */
+ public static final WorkloadNetworkPortMirroringProvisioningState UPDATING = fromString("Updating");
+
+ /**
+ * Creates or finds a WorkloadNetworkPortMirroringProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding WorkloadNetworkPortMirroringProvisioningState
+ */
+ @JsonCreator
+ public static WorkloadNetworkPortMirroringProvisioningState fromString(String name) {
+ return fromString(name, WorkloadNetworkPortMirroringProvisioningState.class);
+ }
+
+ /**
+ * @return known WorkloadNetworkPortMirroringProvisioningState values
+ */
+ public static Collection values() {
+ return values(WorkloadNetworkPortMirroringProvisioningState.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkSegment.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkSegment.java
new file mode 100644
index 000000000000..11ce86500630
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkSegment.java
@@ -0,0 +1,219 @@
+/**
+ * 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.arm.model.HasInner;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.WorkloadNetworkSegmentInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+import java.util.List;
+
+/**
+ * Type representing WorkloadNetworkSegment.
+ */
+public interface WorkloadNetworkSegment extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the connectedGateway value.
+ */
+ String connectedGateway();
+
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the portVif value.
+ */
+ List portVif();
+
+ /**
+ * @return the provisioningState value.
+ */
+ WorkloadNetworkSegmentProvisioningState provisioningState();
+
+ /**
+ * @return the revision value.
+ */
+ Long revision();
+
+ /**
+ * @return the status value.
+ */
+ SegmentStatusEnum status();
+
+ /**
+ * @return the subnet value.
+ */
+ WorkloadNetworkSegmentSubnet subnet();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the WorkloadNetworkSegment definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithWorkloadNetwork, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of WorkloadNetworkSegment definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a WorkloadNetworkSegment definition.
+ */
+ interface Blank extends WithWorkloadNetwork {
+ }
+
+ /**
+ * The stage of the workloadnetworksegment definition allowing to specify WorkloadNetwork.
+ */
+ interface WithWorkloadNetwork {
+ /**
+ * Specifies resourceGroupName, privateCloudName.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive
+ * @param privateCloudName Name of the private cloud
+ * @return the next definition stage
+ */
+ WithCreate withExistingWorkloadNetwork(String resourceGroupName, String privateCloudName);
+ }
+
+ /**
+ * The stage of the workloadnetworksegment definition allowing to specify ConnectedGateway.
+ */
+ interface WithConnectedGateway {
+ /**
+ * Specifies connectedGateway.
+ * @param connectedGateway Gateway which to connect segment to
+ * @return the next definition stage
+ */
+ WithCreate withConnectedGateway(String connectedGateway);
+ }
+
+ /**
+ * The stage of the workloadnetworksegment definition allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName Display name of the segment
+ * @return the next definition stage
+ */
+ WithCreate withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the workloadnetworksegment definition allowing to specify Revision.
+ */
+ interface WithRevision {
+ /**
+ * Specifies revision.
+ * @param revision NSX revision number
+ * @return the next definition stage
+ */
+ WithCreate withRevision(Long revision);
+ }
+
+ /**
+ * The stage of the workloadnetworksegment definition allowing to specify Subnet.
+ */
+ interface WithSubnet {
+ /**
+ * Specifies subnet.
+ * @param subnet Subnet which to connect segment to
+ * @return the next definition stage
+ */
+ WithCreate withSubnet(WorkloadNetworkSegmentSubnet subnet);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithConnectedGateway, DefinitionStages.WithDisplayName, DefinitionStages.WithRevision, DefinitionStages.WithSubnet {
+ }
+ }
+ /**
+ * The template for a WorkloadNetworkSegment update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithConnectedGateway, UpdateStages.WithDisplayName, UpdateStages.WithRevision, UpdateStages.WithSubnet {
+ }
+
+ /**
+ * Grouping of WorkloadNetworkSegment update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the workloadnetworksegment update allowing to specify ConnectedGateway.
+ */
+ interface WithConnectedGateway {
+ /**
+ * Specifies connectedGateway.
+ * @param connectedGateway Gateway which to connect segment to
+ * @return the next update stage
+ */
+ Update withConnectedGateway(String connectedGateway);
+ }
+
+ /**
+ * The stage of the workloadnetworksegment update allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName Display name of the segment
+ * @return the next update stage
+ */
+ Update withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the workloadnetworksegment update allowing to specify Revision.
+ */
+ interface WithRevision {
+ /**
+ * Specifies revision.
+ * @param revision NSX revision number
+ * @return the next update stage
+ */
+ Update withRevision(Long revision);
+ }
+
+ /**
+ * The stage of the workloadnetworksegment update allowing to specify Subnet.
+ */
+ interface WithSubnet {
+ /**
+ * Specifies subnet.
+ * @param subnet Subnet which to connect segment to
+ * @return the next update stage
+ */
+ Update withSubnet(WorkloadNetworkSegmentSubnet subnet);
+ }
+
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkSegmentPortVif.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkSegmentPortVif.java
new file mode 100644
index 000000000000..f2b16dff4808
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkSegmentPortVif.java
@@ -0,0 +1,43 @@
+/**
+ * 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.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Ports and any VIF attached to segment.
+ */
+public class WorkloadNetworkSegmentPortVif {
+ /**
+ * Name of port or VIF attached to segment.
+ */
+ @JsonProperty(value = "portName")
+ private String portName;
+
+ /**
+ * Get name of port or VIF attached to segment.
+ *
+ * @return the portName value
+ */
+ public String portName() {
+ return this.portName;
+ }
+
+ /**
+ * Set name of port or VIF attached to segment.
+ *
+ * @param portName the portName value to set
+ * @return the WorkloadNetworkSegmentPortVif object itself.
+ */
+ public WorkloadNetworkSegmentPortVif withPortName(String portName) {
+ this.portName = portName;
+ return this;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkSegmentProvisioningState.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkSegmentProvisioningState.java
new file mode 100644
index 000000000000..5953711fc190
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkSegmentProvisioningState.java
@@ -0,0 +1,50 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for WorkloadNetworkSegmentProvisioningState.
+ */
+public final class WorkloadNetworkSegmentProvisioningState extends ExpandableStringEnum {
+ /** Static value Succeeded for WorkloadNetworkSegmentProvisioningState. */
+ public static final WorkloadNetworkSegmentProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Failed for WorkloadNetworkSegmentProvisioningState. */
+ public static final WorkloadNetworkSegmentProvisioningState FAILED = fromString("Failed");
+
+ /** Static value Building for WorkloadNetworkSegmentProvisioningState. */
+ public static final WorkloadNetworkSegmentProvisioningState BUILDING = fromString("Building");
+
+ /** Static value Deleting for WorkloadNetworkSegmentProvisioningState. */
+ public static final WorkloadNetworkSegmentProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Updating for WorkloadNetworkSegmentProvisioningState. */
+ public static final WorkloadNetworkSegmentProvisioningState UPDATING = fromString("Updating");
+
+ /**
+ * Creates or finds a WorkloadNetworkSegmentProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding WorkloadNetworkSegmentProvisioningState
+ */
+ @JsonCreator
+ public static WorkloadNetworkSegmentProvisioningState fromString(String name) {
+ return fromString(name, WorkloadNetworkSegmentProvisioningState.class);
+ }
+
+ /**
+ * @return known WorkloadNetworkSegmentProvisioningState values
+ */
+ public static Collection values() {
+ return values(WorkloadNetworkSegmentProvisioningState.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkSegmentSubnet.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkSegmentSubnet.java
new file mode 100644
index 000000000000..af8e4b2ea397
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkSegmentSubnet.java
@@ -0,0 +1,70 @@
+/**
+ * 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 java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Subnet configuration for segment.
+ */
+public class WorkloadNetworkSegmentSubnet {
+ /**
+ * DHCP Range assigned for subnet.
+ */
+ @JsonProperty(value = "dhcpRanges")
+ private List dhcpRanges;
+
+ /**
+ * Gateway address.
+ */
+ @JsonProperty(value = "gatewayAddress")
+ private String gatewayAddress;
+
+ /**
+ * Get dHCP Range assigned for subnet.
+ *
+ * @return the dhcpRanges value
+ */
+ public List dhcpRanges() {
+ return this.dhcpRanges;
+ }
+
+ /**
+ * Set dHCP Range assigned for subnet.
+ *
+ * @param dhcpRanges the dhcpRanges value to set
+ * @return the WorkloadNetworkSegmentSubnet object itself.
+ */
+ public WorkloadNetworkSegmentSubnet withDhcpRanges(List dhcpRanges) {
+ this.dhcpRanges = dhcpRanges;
+ return this;
+ }
+
+ /**
+ * Get gateway address.
+ *
+ * @return the gatewayAddress value
+ */
+ public String gatewayAddress() {
+ return this.gatewayAddress;
+ }
+
+ /**
+ * Set gateway address.
+ *
+ * @param gatewayAddress the gatewayAddress value to set
+ * @return the WorkloadNetworkSegmentSubnet object itself.
+ */
+ public WorkloadNetworkSegmentSubnet withGatewayAddress(String gatewayAddress) {
+ this.gatewayAddress = gatewayAddress;
+ return this;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkVMGroup.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkVMGroup.java
new file mode 100644
index 000000000000..7c4014b44db9
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkVMGroup.java
@@ -0,0 +1,185 @@
+/**
+ * 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.arm.model.HasInner;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.WorkloadNetworkVMGroupInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+import java.util.List;
+
+/**
+ * Type representing WorkloadNetworkVMGroup.
+ */
+public interface WorkloadNetworkVMGroup extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the members value.
+ */
+ List members();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ WorkloadNetworkVMGroupProvisioningState provisioningState();
+
+ /**
+ * @return the revision value.
+ */
+ Long revision();
+
+ /**
+ * @return the status value.
+ */
+ VMGroupStatusEnum status();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the WorkloadNetworkVMGroup definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithWorkloadNetwork, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of WorkloadNetworkVMGroup definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a WorkloadNetworkVMGroup definition.
+ */
+ interface Blank extends WithWorkloadNetwork {
+ }
+
+ /**
+ * The stage of the workloadnetworkvmgroup definition allowing to specify WorkloadNetwork.
+ */
+ interface WithWorkloadNetwork {
+ /**
+ * Specifies resourceGroupName, privateCloudName.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive
+ * @param privateCloudName Name of the private cloud
+ * @return the next definition stage
+ */
+ WithCreate withExistingWorkloadNetwork(String resourceGroupName, String privateCloudName);
+ }
+
+ /**
+ * The stage of the workloadnetworkvmgroup definition allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName Display name of the VM group
+ * @return the next definition stage
+ */
+ WithCreate withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the workloadnetworkvmgroup definition allowing to specify Members.
+ */
+ interface WithMembers {
+ /**
+ * Specifies members.
+ * @param members Virtual machine members of this group
+ * @return the next definition stage
+ */
+ WithCreate withMembers(List members);
+ }
+
+ /**
+ * The stage of the workloadnetworkvmgroup definition allowing to specify Revision.
+ */
+ interface WithRevision {
+ /**
+ * Specifies revision.
+ * @param revision NSX revision number
+ * @return the next definition stage
+ */
+ WithCreate withRevision(Long revision);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithDisplayName, DefinitionStages.WithMembers, DefinitionStages.WithRevision {
+ }
+ }
+ /**
+ * The template for a WorkloadNetworkVMGroup update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithDisplayName, UpdateStages.WithMembers, UpdateStages.WithRevision {
+ }
+
+ /**
+ * Grouping of WorkloadNetworkVMGroup update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the workloadnetworkvmgroup update allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName Display name of the VM group
+ * @return the next update stage
+ */
+ Update withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the workloadnetworkvmgroup update allowing to specify Members.
+ */
+ interface WithMembers {
+ /**
+ * Specifies members.
+ * @param members Virtual machine members of this group
+ * @return the next update stage
+ */
+ Update withMembers(List members);
+ }
+
+ /**
+ * The stage of the workloadnetworkvmgroup update allowing to specify Revision.
+ */
+ interface WithRevision {
+ /**
+ * Specifies revision.
+ * @param revision NSX revision number
+ * @return the next update stage
+ */
+ Update withRevision(Long revision);
+ }
+
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkVMGroupProvisioningState.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkVMGroupProvisioningState.java
new file mode 100644
index 000000000000..8cc1e9784044
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkVMGroupProvisioningState.java
@@ -0,0 +1,50 @@
+/**
+ * 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 java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for WorkloadNetworkVMGroupProvisioningState.
+ */
+public final class WorkloadNetworkVMGroupProvisioningState extends ExpandableStringEnum {
+ /** Static value Succeeded for WorkloadNetworkVMGroupProvisioningState. */
+ public static final WorkloadNetworkVMGroupProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Failed for WorkloadNetworkVMGroupProvisioningState. */
+ public static final WorkloadNetworkVMGroupProvisioningState FAILED = fromString("Failed");
+
+ /** Static value Building for WorkloadNetworkVMGroupProvisioningState. */
+ public static final WorkloadNetworkVMGroupProvisioningState BUILDING = fromString("Building");
+
+ /** Static value Deleting for WorkloadNetworkVMGroupProvisioningState. */
+ public static final WorkloadNetworkVMGroupProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Updating for WorkloadNetworkVMGroupProvisioningState. */
+ public static final WorkloadNetworkVMGroupProvisioningState UPDATING = fromString("Updating");
+
+ /**
+ * Creates or finds a WorkloadNetworkVMGroupProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding WorkloadNetworkVMGroupProvisioningState
+ */
+ @JsonCreator
+ public static WorkloadNetworkVMGroupProvisioningState fromString(String name) {
+ return fromString(name, WorkloadNetworkVMGroupProvisioningState.class);
+ }
+
+ /**
+ * @return known WorkloadNetworkVMGroupProvisioningState values
+ */
+ public static Collection values() {
+ return values(WorkloadNetworkVMGroupProvisioningState.class);
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkVirtualMachine.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkVirtualMachine.java
new file mode 100644
index 000000000000..5cc37a9504e4
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworkVirtualMachine.java
@@ -0,0 +1,45 @@
+/**
+ * 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.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.AVSManager;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.implementation.WorkloadNetworkVirtualMachineInner;
+
+/**
+ * Type representing WorkloadNetworkVirtualMachine.
+ */
+public interface WorkloadNetworkVirtualMachine extends HasInner, HasManager {
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the vmType value.
+ */
+ VMTypeEnum vmType();
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworks.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworks.java
new file mode 100644
index 000000000000..0b2e54c61270
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/WorkloadNetworks.java
@@ -0,0 +1,216 @@
+/**
+ * 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 rx.Completable;
+import rx.Observable;
+
+/**
+ * Type representing WorkloadNetworks.
+ */
+public interface WorkloadNetworks {
+ /**
+ * Begins definition for a new Segment resource.
+ * @param name resource name.
+ * @return the first stage of the new Segment definition.
+ */
+ WorkloadNetworkSegment.DefinitionStages.Blank defineSegment(String name);
+
+ /**
+ * Begins definition for a new DhcpConfiguration resource.
+ * @param name resource name.
+ * @return the first stage of the new DhcpConfiguration definition.
+ */
+ WorkloadNetworkDhcp.DefinitionStages.Blank defineDhcpConfiguration(String name);
+
+ /**
+ * Begins definition for a new PortMirroringProfile resource.
+ * @param name resource name.
+ * @return the first stage of the new PortMirroringProfile definition.
+ */
+ WorkloadNetworkPortMirroring.DefinitionStages.Blank definePortMirroringProfile(String name);
+
+ /**
+ * Begins definition for a new VmGroup resource.
+ * @param name resource name.
+ * @return the first stage of the new VmGroup definition.
+ */
+ WorkloadNetworkVMGroup.DefinitionStages.Blank defineVmGroup(String name);
+
+ /**
+ * 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 for the request
+ */
+ Observable listSegmentsAsync(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
+ * @return the observable for the request
+ */
+ Observable getSegmentAsync(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 observable for the request
+ */
+ Completable deleteSegmentAsync(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
+ * @return the observable for the request
+ */
+ Observable listDhcpAsync(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
+ * @return the observable for the request
+ */
+ Observable getDhcpAsync(String resourceGroupName, String dhcpId, String privateCloudName);
+
+ /**
+ * Delete 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
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteDhcpAsync(String resourceGroupName, String privateCloudName, String dhcpId);
+
+ /**
+ * List of gateways 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 for the request
+ */
+ Observable listGatewaysAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * Get a gateway 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 gatewayId NSX Gateway identifier. Generally the same as the Gateway's display name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getGatewayAsync(String resourceGroupName, String privateCloudName, String gatewayId);
+
+ /**
+ * List of port mirroring profiles 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 for the request
+ */
+ Observable listPortMirroringAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * Get a port mirroring profile 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 portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getPortMirroringAsync(String resourceGroupName, String privateCloudName, String portMirroringId);
+
+ /**
+ * Delete a port mirroring profile by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param portMirroringId NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deletePortMirroringAsync(String resourceGroupName, String portMirroringId, String privateCloudName);
+
+ /**
+ * List of vm groups 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 for the request
+ */
+ Observable listVMGroupsAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * Get a vm group 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 vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getVMGroupAsync(String resourceGroupName, String privateCloudName, String vmGroupId);
+
+ /**
+ * Delete a vm group by id in a private cloud workload network.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vmGroupId NSX VM Group identifier. Generally the same as the VM Group's display name
+ * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteVMGroupAsync(String resourceGroupName, String vmGroupId, String privateCloudName);
+
+ /**
+ * List of virtual machines 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 for the request
+ */
+ Observable listVirtualMachinesAsync(final String resourceGroupName, final String privateCloudName);
+
+ /**
+ * Get a virtual machine 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 virtualMachineId NSX Virtual Machine identifier.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getVirtualMachineAsync(String resourceGroupName, String privateCloudName, String virtualMachineId);
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AVSManager.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AVSManager.java
new file mode 100644
index 000000000000..7638777649d0
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AVSManager.java
@@ -0,0 +1,183 @@
+/**
+ * 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.implementation;
+
+import com.microsoft.azure.AzureEnvironment;
+import com.microsoft.azure.AzureResponseBuilder;
+import com.microsoft.azure.credentials.AzureTokenCredentials;
+import com.microsoft.azure.management.apigeneration.Beta;
+import com.microsoft.azure.management.apigeneration.Beta.SinceVersion;
+import com.microsoft.azure.arm.resources.AzureConfigurable;
+import com.microsoft.azure.serializer.AzureJacksonAdapter;
+import com.microsoft.rest.RestClient;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.Operations;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.Locations;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.PrivateClouds;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.Clusters;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.HcxEnterpriseSites;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.Authorizations;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.GlobalReachConnections;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.WorkloadNetworks;
+import com.microsoft.azure.arm.resources.implementation.AzureConfigurableCoreImpl;
+import com.microsoft.azure.arm.resources.implementation.ManagerCore;
+
+/**
+ * Entry point to Azure AVS resource management.
+ */
+public final class AVSManager extends ManagerCore {
+ private Operations operations;
+ private Locations locations;
+ private PrivateClouds privateClouds;
+ private Clusters clusters;
+ private HcxEnterpriseSites hcxEnterpriseSites;
+ private Authorizations authorizations;
+ private GlobalReachConnections globalReachConnections;
+ private WorkloadNetworks workloadNetworks;
+ /**
+ * Get a Configurable instance that can be used to create AVSManager with optional configuration.
+ *
+ * @return the instance allowing configurations
+ */
+ public static Configurable configure() {
+ return new AVSManager.ConfigurableImpl();
+ }
+ /**
+ * Creates an instance of AVSManager that exposes AVS resource management API entry points.
+ *
+ * @param credentials the credentials to use
+ * @param subscriptionId the subscription UUID
+ * @return the AVSManager
+ */
+ public static AVSManager authenticate(AzureTokenCredentials credentials, String subscriptionId) {
+ return new AVSManager(new RestClient.Builder()
+ .withBaseUrl(credentials.environment(), AzureEnvironment.Endpoint.RESOURCE_MANAGER)
+ .withCredentials(credentials)
+ .withSerializerAdapter(new AzureJacksonAdapter())
+ .withResponseBuilderFactory(new AzureResponseBuilder.Factory())
+ .build(), subscriptionId);
+ }
+ /**
+ * Creates an instance of AVSManager that exposes AVS resource management API entry points.
+ *
+ * @param restClient the RestClient to be used for API calls.
+ * @param subscriptionId the subscription UUID
+ * @return the AVSManager
+ */
+ public static AVSManager authenticate(RestClient restClient, String subscriptionId) {
+ return new AVSManager(restClient, subscriptionId);
+ }
+ /**
+ * The interface allowing configurations to be set.
+ */
+ public interface Configurable extends AzureConfigurable {
+ /**
+ * Creates an instance of AVSManager that exposes AVS management API entry points.
+ *
+ * @param credentials the credentials to use
+ * @param subscriptionId the subscription UUID
+ * @return the interface exposing AVS management API entry points that work across subscriptions
+ */
+ AVSManager authenticate(AzureTokenCredentials credentials, String subscriptionId);
+ }
+
+ /**
+ * @return Entry point to manage Operations.
+ */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(this);
+ }
+ return this.operations;
+ }
+
+ /**
+ * @return Entry point to manage Locations.
+ */
+ public Locations locations() {
+ if (this.locations == null) {
+ this.locations = new LocationsImpl(this);
+ }
+ return this.locations;
+ }
+
+ /**
+ * @return Entry point to manage PrivateClouds.
+ */
+ public PrivateClouds privateClouds() {
+ if (this.privateClouds == null) {
+ this.privateClouds = new PrivateCloudsImpl(this);
+ }
+ return this.privateClouds;
+ }
+
+ /**
+ * @return Entry point to manage Clusters.
+ */
+ public Clusters clusters() {
+ if (this.clusters == null) {
+ this.clusters = new ClustersImpl(this);
+ }
+ return this.clusters;
+ }
+
+ /**
+ * @return Entry point to manage HcxEnterpriseSites.
+ */
+ public HcxEnterpriseSites hcxEnterpriseSites() {
+ if (this.hcxEnterpriseSites == null) {
+ this.hcxEnterpriseSites = new HcxEnterpriseSitesImpl(this);
+ }
+ return this.hcxEnterpriseSites;
+ }
+
+ /**
+ * @return Entry point to manage Authorizations.
+ */
+ public Authorizations authorizations() {
+ if (this.authorizations == null) {
+ this.authorizations = new AuthorizationsImpl(this);
+ }
+ return this.authorizations;
+ }
+
+ /**
+ * @return Entry point to manage GlobalReachConnections.
+ */
+ public GlobalReachConnections globalReachConnections() {
+ if (this.globalReachConnections == null) {
+ this.globalReachConnections = new GlobalReachConnectionsImpl(this);
+ }
+ return this.globalReachConnections;
+ }
+
+ /**
+ * @return Entry point to manage WorkloadNetworks.
+ */
+ public WorkloadNetworks workloadNetworks() {
+ if (this.workloadNetworks == null) {
+ this.workloadNetworks = new WorkloadNetworksImpl(this);
+ }
+ return this.workloadNetworks;
+ }
+
+ /**
+ * The implementation for Configurable interface.
+ */
+ private static final class ConfigurableImpl extends AzureConfigurableCoreImpl implements Configurable {
+ public AVSManager authenticate(AzureTokenCredentials credentials, String subscriptionId) {
+ return AVSManager.authenticate(buildRestClient(credentials), subscriptionId);
+ }
+ }
+ private AVSManager(RestClient restClient, String subscriptionId) {
+ super(
+ restClient,
+ subscriptionId,
+ new AvsClientImpl(restClient).withSubscriptionId(subscriptionId));
+ }
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AdminCredentialsImpl.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AdminCredentialsImpl.java
new file mode 100644
index 000000000000..80fb483696e9
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AdminCredentialsImpl.java
@@ -0,0 +1,46 @@
+/**
+ * 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.implementation;
+
+import com.microsoft.azure.management.avs.v2020_07_17_preview.AdminCredentials;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+
+class AdminCredentialsImpl extends WrapperImpl implements AdminCredentials {
+ private final AVSManager manager;
+ AdminCredentialsImpl(AdminCredentialsInner inner, AVSManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public AVSManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public String nsxtPassword() {
+ return this.inner().nsxtPassword();
+ }
+
+ @Override
+ public String nsxtUsername() {
+ return this.inner().nsxtUsername();
+ }
+
+ @Override
+ public String vcenterPassword() {
+ return this.inner().vcenterPassword();
+ }
+
+ @Override
+ public String vcenterUsername() {
+ return this.inner().vcenterUsername();
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AdminCredentialsInner.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AdminCredentialsInner.java
new file mode 100644
index 000000000000..d91974de0207
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AdminCredentialsInner.java
@@ -0,0 +1,77 @@
+/**
+ * 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.implementation;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Administrative credentials for accessing vCenter and NSX-T.
+ */
+public class AdminCredentialsInner {
+ /**
+ * NSX-T Manager username.
+ */
+ @JsonProperty(value = "nsxtUsername", access = JsonProperty.Access.WRITE_ONLY)
+ private String nsxtUsername;
+
+ /**
+ * NSX-T Manager password.
+ */
+ @JsonProperty(value = "nsxtPassword", access = JsonProperty.Access.WRITE_ONLY)
+ private String nsxtPassword;
+
+ /**
+ * vCenter admin username.
+ */
+ @JsonProperty(value = "vcenterUsername", access = JsonProperty.Access.WRITE_ONLY)
+ private String vcenterUsername;
+
+ /**
+ * vCenter admin password.
+ */
+ @JsonProperty(value = "vcenterPassword", access = JsonProperty.Access.WRITE_ONLY)
+ private String vcenterPassword;
+
+ /**
+ * Get nSX-T Manager username.
+ *
+ * @return the nsxtUsername value
+ */
+ public String nsxtUsername() {
+ return this.nsxtUsername;
+ }
+
+ /**
+ * Get nSX-T Manager password.
+ *
+ * @return the nsxtPassword value
+ */
+ public String nsxtPassword() {
+ return this.nsxtPassword;
+ }
+
+ /**
+ * Get vCenter admin username.
+ *
+ * @return the vcenterUsername value
+ */
+ public String vcenterUsername() {
+ return this.vcenterUsername;
+ }
+
+ /**
+ * Get vCenter admin password.
+ *
+ * @return the vcenterPassword value
+ */
+ public String vcenterPassword() {
+ return this.vcenterPassword;
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AuthorizationsImpl.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AuthorizationsImpl.java
new file mode 100644
index 000000000000..afc4790a9bf8
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AuthorizationsImpl.java
@@ -0,0 +1,85 @@
+/**
+ * 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.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.Authorizations;
+import rx.Completable;
+import rx.Observable;
+import rx.functions.Func1;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.avs.v2020_07_17_preview.ExpressRouteAuthorization;
+
+class AuthorizationsImpl extends WrapperImpl implements Authorizations {
+ private final AVSManager manager;
+
+ AuthorizationsImpl(AVSManager manager) {
+ super(manager.inner().authorizations());
+ this.manager = manager;
+ }
+
+ public AVSManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public ExpressRouteAuthorizationImpl define(String name) {
+ return wrapModel(name);
+ }
+
+ private ExpressRouteAuthorizationImpl wrapModel(ExpressRouteAuthorizationInner inner) {
+ return new ExpressRouteAuthorizationImpl(inner, manager());
+ }
+
+ private ExpressRouteAuthorizationImpl wrapModel(String name) {
+ return new ExpressRouteAuthorizationImpl(name, this.manager());
+ }
+
+ @Override
+ public Observable listAsync(final String resourceGroupName, final String privateCloudName) {
+ AuthorizationsInner client = this.inner();
+ return client.listAsync(resourceGroupName, privateCloudName)
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public ExpressRouteAuthorization call(ExpressRouteAuthorizationInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public Observable getAsync(String resourceGroupName, String privateCloudName, String authorizationName) {
+ AuthorizationsInner client = this.inner();
+ return client.getAsync(resourceGroupName, privateCloudName, authorizationName)
+ .flatMap(new Func1>() {
+ @Override
+ public Observable call(ExpressRouteAuthorizationInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((ExpressRouteAuthorization)wrapModel(inner));
+ }
+ }
+ });
+ }
+
+ @Override
+ public Completable deleteAsync(String resourceGroupName, String privateCloudName, String authorizationName) {
+ AuthorizationsInner client = this.inner();
+ return client.deleteAsync(resourceGroupName, privateCloudName, authorizationName).toCompletable();
+ }
+
+}
diff --git a/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AuthorizationsInner.java b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AuthorizationsInner.java
new file mode 100644
index 000000000000..e8c9288b2ec9
--- /dev/null
+++ b/sdk/avs/mgmt-v2020_07_17_preview/src/main/java/com/microsoft/azure/management/avs/v2020_07_17_preview/implementation/AuthorizationsInner.java
@@ -0,0 +1,759 @@
+/**
+ * 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.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.AzureServiceFuture;
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+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 okhttp3.ResponseBody;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.HTTP;
+import retrofit2.http.Path;
+import retrofit2.http.PUT;
+import retrofit2.http.Query;
+import retrofit2.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Authorizations.
+ */
+public class AuthorizationsInner {
+ /** The Retrofit service to perform REST calls. */
+ private AuthorizationsService service;
+ /** The service client containing this operation class. */
+ private AvsClientImpl client;
+
+ /**
+ * Initializes an instance of AuthorizationsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public AuthorizationsInner(Retrofit retrofit, AvsClientImpl client) {
+ this.service = retrofit.create(AuthorizationsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Authorizations to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface AuthorizationsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.avs.v2020_07_17_preview.Authorizations list" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/authorizations")
+ Observable> list(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("privateCloudName") String privateCloudName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.avs.v2020_07_17_preview.Authorizations get" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/authorizations/{authorizationName}")
+ Observable> get(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("privateCloudName") String privateCloudName, @Path("authorizationName") String authorizationName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.avs.v2020_07_17_preview.Authorizations createOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/authorizations/{authorizationName}")
+ Observable> createOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("privateCloudName") String privateCloudName, @Path("authorizationName") String authorizationName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Body ExpressRouteAuthorizationInner authorization, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.avs.v2020_07_17_preview.Authorizations beginCreateOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/authorizations/{authorizationName}")
+ Observable> beginCreateOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("privateCloudName") String privateCloudName, @Path("authorizationName") String authorizationName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Body ExpressRouteAuthorizationInner authorization, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.avs.v2020_07_17_preview.Authorizations delete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/authorizations/{authorizationName}", method = "DELETE", hasBody = true)
+ Observable> delete(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("privateCloudName") String privateCloudName, @Path("authorizationName") String authorizationName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.avs.v2020_07_17_preview.Authorizations beginDelete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/authorizations/{authorizationName}", method = "DELETE", hasBody = true)
+ Observable> beginDelete(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("privateCloudName") String privateCloudName, @Path("authorizationName") String authorizationName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.avs.v2020_07_17_preview.Authorizations listNext" })
+ @GET
+ Observable> listNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * 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<ExpressRouteAuthorizationInner> object if successful.
+ */
+ public PagedList list(final String resourceGroupName, final String privateCloudName) {
+ ServiceResponse> response = listSinglePageAsync(resourceGroupName, privateCloudName).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * 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
+ */
+ public ServiceFuture> listAsync(final String resourceGroupName, final String privateCloudName, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listSinglePageAsync(resourceGroupName, privateCloudName),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ 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<ExpressRouteAuthorizationInner> object
+ */
+ public Observable> listAsync(final String resourceGroupName, final String privateCloudName) {
+ return listWithServiceResponseAsync(resourceGroupName, privateCloudName)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * 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<ExpressRouteAuthorizationInner> object
+ */
+ public Observable>> listWithServiceResponseAsync(final String resourceGroupName, final String privateCloudName) {
+ return listSinglePageAsync(resourceGroupName, privateCloudName)
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * List ExpressRoute Circuit Authorizations in a private cloud.
+ *
+ ServiceResponse> * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ ServiceResponse> * @param privateCloudName Name of the private cloud
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<ExpressRouteAuthorizationInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listSinglePageAsync(final String resourceGroupName, final String privateCloudName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (privateCloudName == null) {
+ throw new IllegalArgumentException("Parameter privateCloudName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.list(this.client.subscriptionId(), resourceGroupName, privateCloudName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., CloudException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * 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 ExpressRouteAuthorizationInner object if successful.
+ */
+ public ExpressRouteAuthorizationInner get(String resourceGroupName, String privateCloudName, String authorizationName) {
+ return getWithServiceResponseAsync(resourceGroupName, privateCloudName, authorizationName).toBlocking().single().body();
+ }
+
+ /**
+ * 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
+ */
+ public ServiceFuture getAsync(String resourceGroupName, String privateCloudName, String authorizationName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getWithServiceResponseAsync(resourceGroupName, privateCloudName, authorizationName), 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 ExpressRouteAuthorizationInner object
+ */
+ public Observable getAsync(String resourceGroupName, String privateCloudName, String authorizationName) {
+ return getWithServiceResponseAsync(resourceGroupName, privateCloudName, authorizationName).map(new Func1, ExpressRouteAuthorizationInner>() {
+ @Override
+ public ExpressRouteAuthorizationInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * 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 ExpressRouteAuthorizationInner object
+ */
+ public Observable> getWithServiceResponseAsync(String resourceGroupName, String privateCloudName, String authorizationName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (privateCloudName == null) {
+ throw new IllegalArgumentException("Parameter privateCloudName is required and cannot be null.");
+ }
+ if (authorizationName == null) {
+ throw new IllegalArgumentException("Parameter authorizationName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.get(this.client.subscriptionId(), resourceGroupName, privateCloudName, authorizationName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response