diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/pom.xml b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/pom.xml
new file mode 100644
index 000000000000..b3af00adacb9
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.desktopvirtualization.v2019_12_10_preview
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-desktopvirtualization
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for DesktopVirtualization Management
+ This package contains Microsoft DesktopVirtualization 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/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ActiveApplications.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ActiveApplications.java
new file mode 100644
index 000000000000..0b0d21cd0539
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ActiveApplications.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.desktopvirtualization.v2019_12_10_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.ActiveApplicationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ActiveApplications.
+ */
+public interface ActiveApplications extends HasInner {
+ /**
+ * List applications for the given session host.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listBySessionHostAsync(final String resourceGroupName, final String hostPoolName, final String sessionHostName);
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroup.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroup.java
new file mode 100644
index 000000000000..4f1792c3f381
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroup.java
@@ -0,0 +1,165 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_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.desktopvirtualization.v2019_12_10_preview.implementation.DesktopVirtualizationManager;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.ApplicationGroupInner;
+
+/**
+ * Type representing ApplicationGroup.
+ */
+public interface ApplicationGroup extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the applicationGroupType value.
+ */
+ ApplicationGroupType applicationGroupType();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the friendlyName value.
+ */
+ String friendlyName();
+
+ /**
+ * @return the hostPoolArmPath value.
+ */
+ String hostPoolArmPath();
+
+ /**
+ * @return the workspaceArmPath value.
+ */
+ String workspaceArmPath();
+
+ /**
+ * The entirety of the ApplicationGroup definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithApplicationGroupType, DefinitionStages.WithHostPoolArmPath, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ApplicationGroup definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ApplicationGroup definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the ApplicationGroup definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the applicationgroup definition allowing to specify ApplicationGroupType.
+ */
+ interface WithApplicationGroupType {
+ /**
+ * Specifies applicationGroupType.
+ * @param applicationGroupType Resource Type of ApplicationGroup. Possible values include: 'RemoteApp', 'Desktop'
+ * @return the next definition stage
+*/
+ WithHostPoolArmPath withApplicationGroupType(ApplicationGroupType applicationGroupType);
+ }
+
+ /**
+ * The stage of the applicationgroup definition allowing to specify HostPoolArmPath.
+ */
+ interface WithHostPoolArmPath {
+ /**
+ * Specifies hostPoolArmPath.
+ * @param hostPoolArmPath HostPool arm path of ApplicationGroup
+ * @return the next definition stage
+*/
+ WithCreate withHostPoolArmPath(String hostPoolArmPath);
+ }
+
+ /**
+ * The stage of the applicationgroup definition allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of ApplicationGroup
+ * @return the next definition stage
+ */
+ WithCreate withDescription(String description);
+ }
+
+ /**
+ * The stage of the applicationgroup definition allowing to specify FriendlyName.
+ */
+ interface WithFriendlyName {
+ /**
+ * Specifies friendlyName.
+ * @param friendlyName Friendly name of ApplicationGroup
+ * @return the next definition stage
+ */
+ WithCreate withFriendlyName(String friendlyName);
+ }
+
+ /**
+ * 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.WithDescription, DefinitionStages.WithFriendlyName {
+ }
+ }
+ /**
+ * The template for a ApplicationGroup update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithDescription, UpdateStages.WithFriendlyName {
+ }
+
+ /**
+ * Grouping of ApplicationGroup update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the applicationgroup update allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of ApplicationGroup
+ * @return the next update stage
+ */
+ Update withDescription(String description);
+ }
+
+ /**
+ * The stage of the applicationgroup update allowing to specify FriendlyName.
+ */
+ interface WithFriendlyName {
+ /**
+ * Specifies friendlyName.
+ * @param friendlyName Friendly name of ApplicationGroup
+ * @return the next update stage
+ */
+ Update withFriendlyName(String friendlyName);
+ }
+
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroupApplication.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroupApplication.java
new file mode 100644
index 000000000000..0236675cbb41
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroupApplication.java
@@ -0,0 +1,342 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.ApplicationInner;
+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.desktopvirtualization.v2019_12_10_preview.implementation.DesktopVirtualizationManager;
+
+/**
+ * Type representing ApplicationGroupApplication.
+ */
+public interface ApplicationGroupApplication extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the commandLineArguments value.
+ */
+ String commandLineArguments();
+
+ /**
+ * @return the commandLineSetting value.
+ */
+ CommandLineSetting commandLineSetting();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the filePath value.
+ */
+ String filePath();
+
+ /**
+ * @return the friendlyName value.
+ */
+ String friendlyName();
+
+ /**
+ * @return the iconContent value.
+ */
+ byte[] iconContent();
+
+ /**
+ * @return the iconHash value.
+ */
+ String iconHash();
+
+ /**
+ * @return the iconIndex value.
+ */
+ Integer iconIndex();
+
+ /**
+ * @return the iconPath value.
+ */
+ String iconPath();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the showInPortal value.
+ */
+ Boolean showInPortal();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the ApplicationGroupApplication definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithApplicationGroup, DefinitionStages.WithCommandLineSetting, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ApplicationGroupApplication definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ApplicationGroupApplication definition.
+ */
+ interface Blank extends WithApplicationGroup {
+ }
+
+ /**
+ * The stage of the applicationgroupapplication definition allowing to specify ApplicationGroup.
+ */
+ interface WithApplicationGroup {
+ /**
+ * Specifies resourceGroupName, applicationGroupName.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive
+ * @param applicationGroupName The name of the application group
+ * @return the next definition stage
+ */
+ WithCommandLineSetting withExistingApplicationGroup(String resourceGroupName, String applicationGroupName);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication definition allowing to specify CommandLineSetting.
+ */
+ interface WithCommandLineSetting {
+ /**
+ * Specifies commandLineSetting.
+ * @param commandLineSetting Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. Possible values include: 'DoNotAllow', 'Allow', 'Require'
+ * @return the next definition stage
+ */
+ WithCreate withCommandLineSetting(CommandLineSetting commandLineSetting);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication definition allowing to specify CommandLineArguments.
+ */
+ interface WithCommandLineArguments {
+ /**
+ * Specifies commandLineArguments.
+ * @param commandLineArguments Command Line Arguments for Application
+ * @return the next definition stage
+ */
+ WithCreate withCommandLineArguments(String commandLineArguments);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication definition allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of Application
+ * @return the next definition stage
+ */
+ WithCreate withDescription(String description);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication definition allowing to specify FilePath.
+ */
+ interface WithFilePath {
+ /**
+ * Specifies filePath.
+ * @param filePath Specifies a path for the executable file for the application
+ * @return the next definition stage
+ */
+ WithCreate withFilePath(String filePath);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication definition allowing to specify FriendlyName.
+ */
+ interface WithFriendlyName {
+ /**
+ * Specifies friendlyName.
+ * @param friendlyName Friendly name of Application
+ * @return the next definition stage
+ */
+ WithCreate withFriendlyName(String friendlyName);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication definition allowing to specify IconIndex.
+ */
+ interface WithIconIndex {
+ /**
+ * Specifies iconIndex.
+ * @param iconIndex Index of the icon
+ * @return the next definition stage
+ */
+ WithCreate withIconIndex(Integer iconIndex);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication definition allowing to specify IconPath.
+ */
+ interface WithIconPath {
+ /**
+ * Specifies iconPath.
+ * @param iconPath Path to icon
+ * @return the next definition stage
+ */
+ WithCreate withIconPath(String iconPath);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication definition allowing to specify ShowInPortal.
+ */
+ interface WithShowInPortal {
+ /**
+ * Specifies showInPortal.
+ * @param showInPortal Specifies whether to show the RemoteApp program in the RD Web Access server
+ * @return the next definition stage
+ */
+ WithCreate withShowInPortal(Boolean showInPortal);
+ }
+
+ /**
+ * 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.WithCommandLineArguments, DefinitionStages.WithDescription, DefinitionStages.WithFilePath, DefinitionStages.WithFriendlyName, DefinitionStages.WithIconIndex, DefinitionStages.WithIconPath, DefinitionStages.WithShowInPortal {
+ }
+ }
+ /**
+ * The template for a ApplicationGroupApplication update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithCommandLineArguments, UpdateStages.WithCommandLineSetting, UpdateStages.WithDescription, UpdateStages.WithFilePath, UpdateStages.WithFriendlyName, UpdateStages.WithIconIndex, UpdateStages.WithIconPath, UpdateStages.WithShowInPortal, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of ApplicationGroupApplication update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the applicationgroupapplication update allowing to specify CommandLineArguments.
+ */
+ interface WithCommandLineArguments {
+ /**
+ * Specifies commandLineArguments.
+ * @param commandLineArguments Command Line Arguments for Application
+ * @return the next update stage
+ */
+ Update withCommandLineArguments(String commandLineArguments);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication update allowing to specify CommandLineSetting.
+ */
+ interface WithCommandLineSetting {
+ /**
+ * Specifies commandLineSetting.
+ * @param commandLineSetting Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. Possible values include: 'DoNotAllow', 'Allow', 'Require'
+ * @return the next update stage
+ */
+ Update withCommandLineSetting(CommandLineSetting commandLineSetting);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication update allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of Application
+ * @return the next update stage
+ */
+ Update withDescription(String description);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication update allowing to specify FilePath.
+ */
+ interface WithFilePath {
+ /**
+ * Specifies filePath.
+ * @param filePath Specifies a path for the executable file for the application
+ * @return the next update stage
+ */
+ Update withFilePath(String filePath);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication update allowing to specify FriendlyName.
+ */
+ interface WithFriendlyName {
+ /**
+ * Specifies friendlyName.
+ * @param friendlyName Friendly name of Application
+ * @return the next update stage
+ */
+ Update withFriendlyName(String friendlyName);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication update allowing to specify IconIndex.
+ */
+ interface WithIconIndex {
+ /**
+ * Specifies iconIndex.
+ * @param iconIndex Index of the icon
+ * @return the next update stage
+ */
+ Update withIconIndex(Integer iconIndex);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication update allowing to specify IconPath.
+ */
+ interface WithIconPath {
+ /**
+ * Specifies iconPath.
+ * @param iconPath Path to icon
+ * @return the next update stage
+ */
+ Update withIconPath(String iconPath);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication update allowing to specify ShowInPortal.
+ */
+ interface WithShowInPortal {
+ /**
+ * Specifies showInPortal.
+ * @param showInPortal Specifies whether to show the RemoteApp program in the RD Web Access server
+ * @return the next update stage
+ */
+ Update withShowInPortal(Boolean showInPortal);
+ }
+
+ /**
+ * The stage of the applicationgroupapplication update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags tags to be updated
+ * @return the next update stage
+ */
+ Update withTags(Object tags);
+ }
+
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroupAssignments.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroupAssignments.java
new file mode 100644
index 000000000000..b2b74b4679eb
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroupAssignments.java
@@ -0,0 +1,29 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.ApplicationGroupAssignmentsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApplicationGroupAssignments.
+ */
+public interface ApplicationGroupAssignments extends HasInner {
+ /**
+ * List application group that user can use.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param workspaceName The name of the workspace
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable workspaceLevelListAsync(final String resourceGroupName, final String workspaceName);
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroupPatch.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroupPatch.java
new file mode 100644
index 000000000000..d8dd676ae4f9
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroupPatch.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.desktopvirtualization.v2019_12_10_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * ApplicationGroup properties that can be patched.
+ */
+@JsonFlatten
+public class ApplicationGroupPatch extends ProxyResource {
+ /**
+ * tags to be updated.
+ */
+ @JsonProperty(value = "tags")
+ private Object tags;
+
+ /**
+ * Description of ApplicationGroup.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /**
+ * Friendly name of ApplicationGroup.
+ */
+ @JsonProperty(value = "properties.friendlyName")
+ private String friendlyName;
+
+ /**
+ * Get tags to be updated.
+ *
+ * @return the tags value
+ */
+ public Object tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set tags to be updated.
+ *
+ * @param tags the tags value to set
+ * @return the ApplicationGroupPatch object itself.
+ */
+ public ApplicationGroupPatch withTags(Object tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get description of ApplicationGroup.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of ApplicationGroup.
+ *
+ * @param description the description value to set
+ * @return the ApplicationGroupPatch object itself.
+ */
+ public ApplicationGroupPatch withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get friendly name of ApplicationGroup.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of ApplicationGroup.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the ApplicationGroupPatch object itself.
+ */
+ public ApplicationGroupPatch withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroupType.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroupType.java
new file mode 100644
index 000000000000..88d8d19b0910
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroupType.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.desktopvirtualization.v2019_12_10_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationGroupType.
+ */
+public final class ApplicationGroupType extends ExpandableStringEnum {
+ /** Static value RemoteApp for ApplicationGroupType. */
+ public static final ApplicationGroupType REMOTE_APP = fromString("RemoteApp");
+
+ /** Static value Desktop for ApplicationGroupType. */
+ public static final ApplicationGroupType DESKTOP = fromString("Desktop");
+
+ /**
+ * Creates or finds a ApplicationGroupType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationGroupType
+ */
+ @JsonCreator
+ public static ApplicationGroupType fromString(String name) {
+ return fromString(name, ApplicationGroupType.class);
+ }
+
+ /**
+ * @return known ApplicationGroupType values
+ */
+ public static Collection values() {
+ return values(ApplicationGroupType.class);
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroups.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroups.java
new file mode 100644
index 000000000000..bcc2facc1899
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationGroups.java
@@ -0,0 +1,25 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_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.desktopvirtualization.v2019_12_10_preview.implementation.ApplicationGroupsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApplicationGroups.
+ */
+public interface ApplicationGroups extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationPatch.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationPatch.java
new file mode 100644
index 000000000000..95a98114e503
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationPatch.java
@@ -0,0 +1,257 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Application properties that can be patched.
+ */
+@JsonFlatten
+public class ApplicationPatch {
+ /**
+ * tags to be updated.
+ */
+ @JsonProperty(value = "tags")
+ private Object tags;
+
+ /**
+ * Description of Application.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /**
+ * Friendly name of Application.
+ */
+ @JsonProperty(value = "properties.friendlyName")
+ private String friendlyName;
+
+ /**
+ * Specifies a path for the executable file for the application.
+ */
+ @JsonProperty(value = "properties.filePath")
+ private String filePath;
+
+ /**
+ * Specifies whether this published application can be launched with
+ * command line arguments provided by the client, command line arguments
+ * specified at publish time, or no command line arguments at all. Possible
+ * values include: 'DoNotAllow', 'Allow', 'Require'.
+ */
+ @JsonProperty(value = "properties.commandLineSetting")
+ private CommandLineSetting commandLineSetting;
+
+ /**
+ * Command Line Arguments for Application.
+ */
+ @JsonProperty(value = "properties.commandLineArguments")
+ private String commandLineArguments;
+
+ /**
+ * Specifies whether to show the RemoteApp program in the RD Web Access
+ * server.
+ */
+ @JsonProperty(value = "properties.showInPortal")
+ private Boolean showInPortal;
+
+ /**
+ * Path to icon.
+ */
+ @JsonProperty(value = "properties.iconPath")
+ private String iconPath;
+
+ /**
+ * Index of the icon.
+ */
+ @JsonProperty(value = "properties.iconIndex")
+ private Integer iconIndex;
+
+ /**
+ * Get tags to be updated.
+ *
+ * @return the tags value
+ */
+ public Object tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set tags to be updated.
+ *
+ * @param tags the tags value to set
+ * @return the ApplicationPatch object itself.
+ */
+ public ApplicationPatch withTags(Object tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get description of Application.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of Application.
+ *
+ * @param description the description value to set
+ * @return the ApplicationPatch object itself.
+ */
+ public ApplicationPatch withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get friendly name of Application.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of Application.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the ApplicationPatch object itself.
+ */
+ public ApplicationPatch withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get specifies a path for the executable file for the application.
+ *
+ * @return the filePath value
+ */
+ public String filePath() {
+ return this.filePath;
+ }
+
+ /**
+ * Set specifies a path for the executable file for the application.
+ *
+ * @param filePath the filePath value to set
+ * @return the ApplicationPatch object itself.
+ */
+ public ApplicationPatch withFilePath(String filePath) {
+ this.filePath = filePath;
+ return this;
+ }
+
+ /**
+ * Get specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. Possible values include: 'DoNotAllow', 'Allow', 'Require'.
+ *
+ * @return the commandLineSetting value
+ */
+ public CommandLineSetting commandLineSetting() {
+ return this.commandLineSetting;
+ }
+
+ /**
+ * Set specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. Possible values include: 'DoNotAllow', 'Allow', 'Require'.
+ *
+ * @param commandLineSetting the commandLineSetting value to set
+ * @return the ApplicationPatch object itself.
+ */
+ public ApplicationPatch withCommandLineSetting(CommandLineSetting commandLineSetting) {
+ this.commandLineSetting = commandLineSetting;
+ return this;
+ }
+
+ /**
+ * Get command Line Arguments for Application.
+ *
+ * @return the commandLineArguments value
+ */
+ public String commandLineArguments() {
+ return this.commandLineArguments;
+ }
+
+ /**
+ * Set command Line Arguments for Application.
+ *
+ * @param commandLineArguments the commandLineArguments value to set
+ * @return the ApplicationPatch object itself.
+ */
+ public ApplicationPatch withCommandLineArguments(String commandLineArguments) {
+ this.commandLineArguments = commandLineArguments;
+ return this;
+ }
+
+ /**
+ * Get specifies whether to show the RemoteApp program in the RD Web Access server.
+ *
+ * @return the showInPortal value
+ */
+ public Boolean showInPortal() {
+ return this.showInPortal;
+ }
+
+ /**
+ * Set specifies whether to show the RemoteApp program in the RD Web Access server.
+ *
+ * @param showInPortal the showInPortal value to set
+ * @return the ApplicationPatch object itself.
+ */
+ public ApplicationPatch withShowInPortal(Boolean showInPortal) {
+ this.showInPortal = showInPortal;
+ return this;
+ }
+
+ /**
+ * Get path to icon.
+ *
+ * @return the iconPath value
+ */
+ public String iconPath() {
+ return this.iconPath;
+ }
+
+ /**
+ * Set path to icon.
+ *
+ * @param iconPath the iconPath value to set
+ * @return the ApplicationPatch object itself.
+ */
+ public ApplicationPatch withIconPath(String iconPath) {
+ this.iconPath = iconPath;
+ return this;
+ }
+
+ /**
+ * Get index of the icon.
+ *
+ * @return the iconIndex value
+ */
+ public Integer iconIndex() {
+ return this.iconIndex;
+ }
+
+ /**
+ * Set index of the icon.
+ *
+ * @param iconIndex the iconIndex value to set
+ * @return the ApplicationPatch object itself.
+ */
+ public ApplicationPatch withIconIndex(Integer iconIndex) {
+ this.iconIndex = iconIndex;
+ return this;
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationType.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationType.java
new file mode 100644
index 000000000000..3056d8720631
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ApplicationType.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.desktopvirtualization.v2019_12_10_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationType.
+ */
+public final class ApplicationType extends ExpandableStringEnum {
+ /** Static value RemoteApp for ApplicationType. */
+ public static final ApplicationType REMOTE_APP = fromString("RemoteApp");
+
+ /** Static value Desktop for ApplicationType. */
+ public static final ApplicationType DESKTOP = fromString("Desktop");
+
+ /**
+ * Creates or finds a ApplicationType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationType
+ */
+ @JsonCreator
+ public static ApplicationType fromString(String name) {
+ return fromString(name, ApplicationType.class);
+ }
+
+ /**
+ * @return known ApplicationType values
+ */
+ public static Collection values() {
+ return values(ApplicationType.class);
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Applications.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Applications.java
new file mode 100644
index 000000000000..0a574eaac480
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Applications.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.desktopvirtualization.v2019_12_10_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.ApplicationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Applications.
+ */
+public interface Applications extends SupportsCreating, HasInner {
+ /**
+ * Get an application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationGroupName The name of the application group
+ * @param applicationName The name of the application within the specified application group
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String applicationGroupName, String applicationName);
+
+ /**
+ * List applications.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationGroupName The name of the application group
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String applicationGroupName);
+
+ /**
+ * Remove an application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationGroupName The name of the application group
+ * @param applicationName The name of the application within the specified application group
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String applicationGroupName, String applicationName);
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/AzureEntityResource.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/AzureEntityResource.java
new file mode 100644
index 000000000000..fe7eacd7c044
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/AzureEntityResource.java
@@ -0,0 +1,34 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * The resource model definition for a Azure Resource Manager resource with an
+ * etag.
+ */
+public class AzureEntityResource extends ProxyResource {
+ /**
+ * Resource Etag.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /**
+ * Get resource Etag.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/CloudError.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/CloudError.java
new file mode 100644
index 000000000000..7262f8fbe0e8
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/CloudError.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.desktopvirtualization.v2019_12_10_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Error response of an operation failure.
+ */
+public class CloudError {
+ /**
+ * Error code.
+ */
+ @JsonProperty(value = "code")
+ private String code;
+
+ /**
+ * Error message indicating why the operation failed.
+ */
+ @JsonProperty(value = "message")
+ private String message;
+
+ /**
+ * Get error code.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Set error code.
+ *
+ * @param code the code value to set
+ * @return the CloudError object itself.
+ */
+ public CloudError withCode(String code) {
+ this.code = code;
+ return this;
+ }
+
+ /**
+ * Get error message indicating why the operation failed.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set error message indicating why the operation failed.
+ *
+ * @param message the message value to set
+ * @return the CloudError object itself.
+ */
+ public CloudError withMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/CommandLineSetting.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/CommandLineSetting.java
new file mode 100644
index 000000000000..a8766b7e8560
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/CommandLineSetting.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.desktopvirtualization.v2019_12_10_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for CommandLineSetting.
+ */
+public final class CommandLineSetting extends ExpandableStringEnum {
+ /** Static value DoNotAllow for CommandLineSetting. */
+ public static final CommandLineSetting DO_NOT_ALLOW = fromString("DoNotAllow");
+
+ /** Static value Allow for CommandLineSetting. */
+ public static final CommandLineSetting ALLOW = fromString("Allow");
+
+ /** Static value Require for CommandLineSetting. */
+ public static final CommandLineSetting REQUIRE = fromString("Require");
+
+ /**
+ * Creates or finds a CommandLineSetting from its string representation.
+ * @param name a name to look for
+ * @return the corresponding CommandLineSetting
+ */
+ @JsonCreator
+ public static CommandLineSetting fromString(String name) {
+ return fromString(name, CommandLineSetting.class);
+ }
+
+ /**
+ * @return known CommandLineSetting values
+ */
+ public static Collection values() {
+ return values(CommandLineSetting.class);
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Desktop.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Desktop.java
new file mode 100644
index 000000000000..a8804e572b3a
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Desktop.java
@@ -0,0 +1,106 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.DesktopInner;
+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.resources.models.HasManager;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.DesktopVirtualizationManager;
+
+/**
+ * Type representing Desktop.
+ */
+public interface Desktop extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the friendlyName value.
+ */
+ String friendlyName();
+
+ /**
+ * @return the iconContent value.
+ */
+ byte[] iconContent();
+
+ /**
+ * @return the iconHash value.
+ */
+ String iconHash();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The template for a Desktop update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithDescription, UpdateStages.WithFriendlyName, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of Desktop update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the desktop update allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of Desktop
+ * @return the next update stage
+ */
+ Update withDescription(String description);
+ }
+
+ /**
+ * The stage of the desktop update allowing to specify FriendlyName.
+ */
+ interface WithFriendlyName {
+ /**
+ * Specifies friendlyName.
+ * @param friendlyName Friendly name of Desktop
+ * @return the next update stage
+ */
+ Update withFriendlyName(String friendlyName);
+ }
+
+ /**
+ * The stage of the desktop update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags tags to be updated
+ * @return the next update stage
+ */
+ Update withTags(Object tags);
+ }
+
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/DesktopList.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/DesktopList.java
new file mode 100644
index 000000000000..19a45c76eb8f
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/DesktopList.java
@@ -0,0 +1,32 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.DesktopVirtualizationManager;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.DesktopListInner;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.DesktopInner;
+import java.util.List;
+
+/**
+ * Type representing DesktopList.
+ */
+public interface DesktopList extends HasInner, HasManager {
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/DesktopPatch.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/DesktopPatch.java
new file mode 100644
index 000000000000..0eef4ebb2abe
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/DesktopPatch.java
@@ -0,0 +1,97 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Desktop properties that can be patched.
+ */
+@JsonFlatten
+public class DesktopPatch {
+ /**
+ * tags to be updated.
+ */
+ @JsonProperty(value = "tags")
+ private Object tags;
+
+ /**
+ * Description of Desktop.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /**
+ * Friendly name of Desktop.
+ */
+ @JsonProperty(value = "properties.friendlyName")
+ private String friendlyName;
+
+ /**
+ * Get tags to be updated.
+ *
+ * @return the tags value
+ */
+ public Object tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set tags to be updated.
+ *
+ * @param tags the tags value to set
+ * @return the DesktopPatch object itself.
+ */
+ public DesktopPatch withTags(Object tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get description of Desktop.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of Desktop.
+ *
+ * @param description the description value to set
+ * @return the DesktopPatch object itself.
+ */
+ public DesktopPatch withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get friendly name of Desktop.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of Desktop.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the DesktopPatch object itself.
+ */
+ public DesktopPatch withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Desktops.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Desktops.java
new file mode 100644
index 000000000000..0ddd3418881f
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Desktops.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.desktopvirtualization.v2019_12_10_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.DesktopsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Desktops.
+ */
+public interface Desktops extends HasInner {
+ /**
+ * List desktops.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationGroupName The name of the application group
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String applicationGroupName);
+
+ /**
+ * Get a desktop.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationGroupName The name of the application group
+ * @param desktopName The name of the desktop within the specified desktop group
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String applicationGroupName, String desktopName);
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPool.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPool.java
new file mode 100644
index 000000000000..8e1a21d4cde8
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPool.java
@@ -0,0 +1,398 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_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.desktopvirtualization.v2019_12_10_preview.implementation.DesktopVirtualizationManager;
+import java.util.List;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.HostPoolInner;
+
+/**
+ * Type representing HostPool.
+ */
+public interface HostPool extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the applicationGroupReferences value.
+ */
+ List applicationGroupReferences();
+
+ /**
+ * @return the customRdpProperty value.
+ */
+ String customRdpProperty();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the friendlyName value.
+ */
+ String friendlyName();
+
+ /**
+ * @return the hostPoolType value.
+ */
+ HostPoolType hostPoolType();
+
+ /**
+ * @return the loadBalancerType value.
+ */
+ LoadBalancerType loadBalancerType();
+
+ /**
+ * @return the maxSessionLimit value.
+ */
+ Integer maxSessionLimit();
+
+ /**
+ * @return the personalDesktopAssignmentType value.
+ */
+ PersonalDesktopAssignmentType personalDesktopAssignmentType();
+
+ /**
+ * @return the registrationInfo value.
+ */
+ RegistrationInfo registrationInfo();
+
+ /**
+ * @return the ring value.
+ */
+ Integer ring();
+
+ /**
+ * @return the ssoContext value.
+ */
+ String ssoContext();
+
+ /**
+ * @return the validationEnvironment value.
+ */
+ Boolean validationEnvironment();
+
+ /**
+ * @return the vmTemplate value.
+ */
+ String vmTemplate();
+
+ /**
+ * The entirety of the HostPool definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithHostPoolType, DefinitionStages.WithLoadBalancerType, DefinitionStages.WithPersonalDesktopAssignmentType, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of HostPool definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a HostPool definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the HostPool definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the hostpool definition allowing to specify HostPoolType.
+ */
+ interface WithHostPoolType {
+ /**
+ * Specifies hostPoolType.
+ * @param hostPoolType HostPool type for desktop. Possible values include: 'Personal', 'Pooled'
+ * @return the next definition stage
+*/
+ WithLoadBalancerType withHostPoolType(HostPoolType hostPoolType);
+ }
+
+ /**
+ * The stage of the hostpool definition allowing to specify LoadBalancerType.
+ */
+ interface WithLoadBalancerType {
+ /**
+ * Specifies loadBalancerType.
+ * @param loadBalancerType The type of the load balancer. Possible values include: 'BreadthFirst', 'DepthFirst', 'Persistent'
+ * @return the next definition stage
+*/
+ WithPersonalDesktopAssignmentType withLoadBalancerType(LoadBalancerType loadBalancerType);
+ }
+
+ /**
+ * The stage of the hostpool definition allowing to specify PersonalDesktopAssignmentType.
+ */
+ interface WithPersonalDesktopAssignmentType {
+ /**
+ * Specifies personalDesktopAssignmentType.
+ * @param personalDesktopAssignmentType PersonalDesktopAssignment type for HostPool. Possible values include: 'Automatic', 'Direct'
+ * @return the next definition stage
+*/
+ WithCreate withPersonalDesktopAssignmentType(PersonalDesktopAssignmentType personalDesktopAssignmentType);
+ }
+
+ /**
+ * The stage of the hostpool definition allowing to specify CustomRdpProperty.
+ */
+ interface WithCustomRdpProperty {
+ /**
+ * Specifies customRdpProperty.
+ * @param customRdpProperty Custom rdp property of HostPool
+ * @return the next definition stage
+ */
+ WithCreate withCustomRdpProperty(String customRdpProperty);
+ }
+
+ /**
+ * The stage of the hostpool definition allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of HostPool
+ * @return the next definition stage
+ */
+ WithCreate withDescription(String description);
+ }
+
+ /**
+ * The stage of the hostpool definition allowing to specify FriendlyName.
+ */
+ interface WithFriendlyName {
+ /**
+ * Specifies friendlyName.
+ * @param friendlyName Friendly name of HostPool
+ * @return the next definition stage
+ */
+ WithCreate withFriendlyName(String friendlyName);
+ }
+
+ /**
+ * The stage of the hostpool definition allowing to specify MaxSessionLimit.
+ */
+ interface WithMaxSessionLimit {
+ /**
+ * Specifies maxSessionLimit.
+ * @param maxSessionLimit The max session limit of HostPool
+ * @return the next definition stage
+ */
+ WithCreate withMaxSessionLimit(Integer maxSessionLimit);
+ }
+
+ /**
+ * The stage of the hostpool definition allowing to specify RegistrationInfo.
+ */
+ interface WithRegistrationInfo {
+ /**
+ * Specifies registrationInfo.
+ * @param registrationInfo The registration info of HostPool
+ * @return the next definition stage
+ */
+ WithCreate withRegistrationInfo(RegistrationInfo registrationInfo);
+ }
+
+ /**
+ * The stage of the hostpool definition allowing to specify Ring.
+ */
+ interface WithRing {
+ /**
+ * Specifies ring.
+ * @param ring The ring number of HostPool
+ * @return the next definition stage
+ */
+ WithCreate withRing(Integer ring);
+ }
+
+ /**
+ * The stage of the hostpool definition allowing to specify SsoContext.
+ */
+ interface WithSsoContext {
+ /**
+ * Specifies ssoContext.
+ * @param ssoContext Path to keyvault containing ssoContext secret
+ * @return the next definition stage
+ */
+ WithCreate withSsoContext(String ssoContext);
+ }
+
+ /**
+ * The stage of the hostpool definition allowing to specify ValidationEnvironment.
+ */
+ interface WithValidationEnvironment {
+ /**
+ * Specifies validationEnvironment.
+ * @param validationEnvironment Is validation environment
+ * @return the next definition stage
+ */
+ WithCreate withValidationEnvironment(Boolean validationEnvironment);
+ }
+
+ /**
+ * The stage of the hostpool definition allowing to specify VmTemplate.
+ */
+ interface WithVmTemplate {
+ /**
+ * Specifies vmTemplate.
+ * @param vmTemplate VM template for sessionhosts configuration within hostpool
+ * @return the next definition stage
+ */
+ WithCreate withVmTemplate(String vmTemplate);
+ }
+
+ /**
+ * 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.WithCustomRdpProperty, DefinitionStages.WithDescription, DefinitionStages.WithFriendlyName, DefinitionStages.WithMaxSessionLimit, DefinitionStages.WithRegistrationInfo, DefinitionStages.WithRing, DefinitionStages.WithSsoContext, DefinitionStages.WithValidationEnvironment, DefinitionStages.WithVmTemplate {
+ }
+ }
+ /**
+ * The template for a HostPool update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithCustomRdpProperty, UpdateStages.WithDescription, UpdateStages.WithFriendlyName, UpdateStages.WithLoadBalancerType, UpdateStages.WithMaxSessionLimit, UpdateStages.WithPersonalDesktopAssignmentType, UpdateStages.WithRegistrationInfo, UpdateStages.WithRing, UpdateStages.WithSsoContext, UpdateStages.WithValidationEnvironment {
+ }
+
+ /**
+ * Grouping of HostPool update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the hostpool update allowing to specify CustomRdpProperty.
+ */
+ interface WithCustomRdpProperty {
+ /**
+ * Specifies customRdpProperty.
+ * @param customRdpProperty Custom rdp property of HostPool
+ * @return the next update stage
+ */
+ Update withCustomRdpProperty(String customRdpProperty);
+ }
+
+ /**
+ * The stage of the hostpool update allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of HostPool
+ * @return the next update stage
+ */
+ Update withDescription(String description);
+ }
+
+ /**
+ * The stage of the hostpool update allowing to specify FriendlyName.
+ */
+ interface WithFriendlyName {
+ /**
+ * Specifies friendlyName.
+ * @param friendlyName Friendly name of HostPool
+ * @return the next update stage
+ */
+ Update withFriendlyName(String friendlyName);
+ }
+
+ /**
+ * The stage of the hostpool update allowing to specify LoadBalancerType.
+ */
+ interface WithLoadBalancerType {
+ /**
+ * Specifies loadBalancerType.
+ * @param loadBalancerType The type of the load balancer. Possible values include: 'BreadthFirst', 'DepthFirst', 'Persistent'
+ * @return the next update stage
+ */
+ Update withLoadBalancerType(LoadBalancerType loadBalancerType);
+ }
+
+ /**
+ * The stage of the hostpool update allowing to specify MaxSessionLimit.
+ */
+ interface WithMaxSessionLimit {
+ /**
+ * Specifies maxSessionLimit.
+ * @param maxSessionLimit The max session limit of HostPool
+ * @return the next update stage
+ */
+ Update withMaxSessionLimit(Integer maxSessionLimit);
+ }
+
+ /**
+ * The stage of the hostpool update allowing to specify PersonalDesktopAssignmentType.
+ */
+ interface WithPersonalDesktopAssignmentType {
+ /**
+ * Specifies personalDesktopAssignmentType.
+ * @param personalDesktopAssignmentType PersonalDesktopAssignment type for HostPool. Possible values include: 'Automatic', 'Direct'
+ * @return the next update stage
+ */
+ Update withPersonalDesktopAssignmentType(PersonalDesktopAssignmentType personalDesktopAssignmentType);
+ }
+
+ /**
+ * The stage of the hostpool update allowing to specify RegistrationInfo.
+ */
+ interface WithRegistrationInfo {
+ /**
+ * Specifies registrationInfo.
+ * @param registrationInfo The registration info of HostPool
+ * @return the next update stage
+ */
+ Update withRegistrationInfo(RegistrationInfoPatch registrationInfo);
+ }
+
+ /**
+ * The stage of the hostpool update allowing to specify Ring.
+ */
+ interface WithRing {
+ /**
+ * Specifies ring.
+ * @param ring The ring number of HostPool
+ * @return the next update stage
+ */
+ Update withRing(Integer ring);
+ }
+
+ /**
+ * The stage of the hostpool update allowing to specify SsoContext.
+ */
+ interface WithSsoContext {
+ /**
+ * Specifies ssoContext.
+ * @param ssoContext Path to keyvault containing ssoContext secret
+ * @return the next update stage
+ */
+ Update withSsoContext(String ssoContext);
+ }
+
+ /**
+ * The stage of the hostpool update allowing to specify ValidationEnvironment.
+ */
+ interface WithValidationEnvironment {
+ /**
+ * Specifies validationEnvironment.
+ * @param validationEnvironment Is validation environment
+ * @return the next update stage
+ */
+ Update withValidationEnvironment(Boolean validationEnvironment);
+ }
+
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPoolApplication.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPoolApplication.java
new file mode 100644
index 000000000000..4d2d83a4dd70
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPoolApplication.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.desktopvirtualization.v2019_12_10_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.ApplicationInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.DesktopVirtualizationManager;
+
+/**
+ * Type representing HostPoolApplication.
+ */
+public interface HostPoolApplication extends HasInner, HasManager {
+ /**
+ * @return the commandLineArguments value.
+ */
+ String commandLineArguments();
+
+ /**
+ * @return the commandLineSetting value.
+ */
+ CommandLineSetting commandLineSetting();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the filePath value.
+ */
+ String filePath();
+
+ /**
+ * @return the friendlyName value.
+ */
+ String friendlyName();
+
+ /**
+ * @return the iconContent value.
+ */
+ byte[] iconContent();
+
+ /**
+ * @return the iconHash value.
+ */
+ String iconHash();
+
+ /**
+ * @return the iconIndex value.
+ */
+ Integer iconIndex();
+
+ /**
+ * @return the iconPath value.
+ */
+ String iconPath();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the showInPortal value.
+ */
+ Boolean showInPortal();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPoolPatch.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPoolPatch.java
new file mode 100644
index 000000000000..eca20511c1ac
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPoolPatch.java
@@ -0,0 +1,308 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * HostPool properties that can be patched.
+ */
+@JsonFlatten
+public class HostPoolPatch extends ProxyResource {
+ /**
+ * tags to be updated.
+ */
+ @JsonProperty(value = "tags")
+ private Object tags;
+
+ /**
+ * Friendly name of HostPool.
+ */
+ @JsonProperty(value = "properties.friendlyName")
+ private String friendlyName;
+
+ /**
+ * Description of HostPool.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /**
+ * Custom rdp property of HostPool.
+ */
+ @JsonProperty(value = "properties.customRdpProperty")
+ private String customRdpProperty;
+
+ /**
+ * The max session limit of HostPool.
+ */
+ @JsonProperty(value = "properties.maxSessionLimit")
+ private Integer maxSessionLimit;
+
+ /**
+ * PersonalDesktopAssignment type for HostPool. Possible values include:
+ * 'Automatic', 'Direct'.
+ */
+ @JsonProperty(value = "properties.personalDesktopAssignmentType")
+ private PersonalDesktopAssignmentType personalDesktopAssignmentType;
+
+ /**
+ * The type of the load balancer. Possible values include: 'BreadthFirst',
+ * 'DepthFirst', 'Persistent'.
+ */
+ @JsonProperty(value = "properties.loadBalancerType")
+ private LoadBalancerType loadBalancerType;
+
+ /**
+ * The ring number of HostPool.
+ */
+ @JsonProperty(value = "properties.ring")
+ private Integer ring;
+
+ /**
+ * Is validation environment.
+ */
+ @JsonProperty(value = "properties.validationEnvironment")
+ private Boolean validationEnvironment;
+
+ /**
+ * The registration info of HostPool.
+ */
+ @JsonProperty(value = "properties.registrationInfo")
+ private RegistrationInfoPatch registrationInfo;
+
+ /**
+ * Path to keyvault containing ssoContext secret.
+ */
+ @JsonProperty(value = "properties.ssoContext")
+ private String ssoContext;
+
+ /**
+ * Get tags to be updated.
+ *
+ * @return the tags value
+ */
+ public Object tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set tags to be updated.
+ *
+ * @param tags the tags value to set
+ * @return the HostPoolPatch object itself.
+ */
+ public HostPoolPatch withTags(Object tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get friendly name of HostPool.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of HostPool.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the HostPoolPatch object itself.
+ */
+ public HostPoolPatch withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get description of HostPool.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of HostPool.
+ *
+ * @param description the description value to set
+ * @return the HostPoolPatch object itself.
+ */
+ public HostPoolPatch withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get custom rdp property of HostPool.
+ *
+ * @return the customRdpProperty value
+ */
+ public String customRdpProperty() {
+ return this.customRdpProperty;
+ }
+
+ /**
+ * Set custom rdp property of HostPool.
+ *
+ * @param customRdpProperty the customRdpProperty value to set
+ * @return the HostPoolPatch object itself.
+ */
+ public HostPoolPatch withCustomRdpProperty(String customRdpProperty) {
+ this.customRdpProperty = customRdpProperty;
+ return this;
+ }
+
+ /**
+ * Get the max session limit of HostPool.
+ *
+ * @return the maxSessionLimit value
+ */
+ public Integer maxSessionLimit() {
+ return this.maxSessionLimit;
+ }
+
+ /**
+ * Set the max session limit of HostPool.
+ *
+ * @param maxSessionLimit the maxSessionLimit value to set
+ * @return the HostPoolPatch object itself.
+ */
+ public HostPoolPatch withMaxSessionLimit(Integer maxSessionLimit) {
+ this.maxSessionLimit = maxSessionLimit;
+ return this;
+ }
+
+ /**
+ * Get personalDesktopAssignment type for HostPool. Possible values include: 'Automatic', 'Direct'.
+ *
+ * @return the personalDesktopAssignmentType value
+ */
+ public PersonalDesktopAssignmentType personalDesktopAssignmentType() {
+ return this.personalDesktopAssignmentType;
+ }
+
+ /**
+ * Set personalDesktopAssignment type for HostPool. Possible values include: 'Automatic', 'Direct'.
+ *
+ * @param personalDesktopAssignmentType the personalDesktopAssignmentType value to set
+ * @return the HostPoolPatch object itself.
+ */
+ public HostPoolPatch withPersonalDesktopAssignmentType(PersonalDesktopAssignmentType personalDesktopAssignmentType) {
+ this.personalDesktopAssignmentType = personalDesktopAssignmentType;
+ return this;
+ }
+
+ /**
+ * Get the type of the load balancer. Possible values include: 'BreadthFirst', 'DepthFirst', 'Persistent'.
+ *
+ * @return the loadBalancerType value
+ */
+ public LoadBalancerType loadBalancerType() {
+ return this.loadBalancerType;
+ }
+
+ /**
+ * Set the type of the load balancer. Possible values include: 'BreadthFirst', 'DepthFirst', 'Persistent'.
+ *
+ * @param loadBalancerType the loadBalancerType value to set
+ * @return the HostPoolPatch object itself.
+ */
+ public HostPoolPatch withLoadBalancerType(LoadBalancerType loadBalancerType) {
+ this.loadBalancerType = loadBalancerType;
+ return this;
+ }
+
+ /**
+ * Get the ring number of HostPool.
+ *
+ * @return the ring value
+ */
+ public Integer ring() {
+ return this.ring;
+ }
+
+ /**
+ * Set the ring number of HostPool.
+ *
+ * @param ring the ring value to set
+ * @return the HostPoolPatch object itself.
+ */
+ public HostPoolPatch withRing(Integer ring) {
+ this.ring = ring;
+ return this;
+ }
+
+ /**
+ * Get is validation environment.
+ *
+ * @return the validationEnvironment value
+ */
+ public Boolean validationEnvironment() {
+ return this.validationEnvironment;
+ }
+
+ /**
+ * Set is validation environment.
+ *
+ * @param validationEnvironment the validationEnvironment value to set
+ * @return the HostPoolPatch object itself.
+ */
+ public HostPoolPatch withValidationEnvironment(Boolean validationEnvironment) {
+ this.validationEnvironment = validationEnvironment;
+ return this;
+ }
+
+ /**
+ * Get the registration info of HostPool.
+ *
+ * @return the registrationInfo value
+ */
+ public RegistrationInfoPatch registrationInfo() {
+ return this.registrationInfo;
+ }
+
+ /**
+ * Set the registration info of HostPool.
+ *
+ * @param registrationInfo the registrationInfo value to set
+ * @return the HostPoolPatch object itself.
+ */
+ public HostPoolPatch withRegistrationInfo(RegistrationInfoPatch registrationInfo) {
+ this.registrationInfo = registrationInfo;
+ return this;
+ }
+
+ /**
+ * Get path to keyvault containing ssoContext secret.
+ *
+ * @return the ssoContext value
+ */
+ public String ssoContext() {
+ return this.ssoContext;
+ }
+
+ /**
+ * Set path to keyvault containing ssoContext secret.
+ *
+ * @param ssoContext the ssoContext value to set
+ * @return the HostPoolPatch object itself.
+ */
+ public HostPoolPatch withSsoContext(String ssoContext) {
+ this.ssoContext = ssoContext;
+ return this;
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPoolType.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPoolType.java
new file mode 100644
index 000000000000..c3ecf5833ce2
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPoolType.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.desktopvirtualization.v2019_12_10_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for HostPoolType.
+ */
+public final class HostPoolType extends ExpandableStringEnum {
+ /** Static value Personal for HostPoolType. */
+ public static final HostPoolType PERSONAL = fromString("Personal");
+
+ /** Static value Pooled for HostPoolType. */
+ public static final HostPoolType POOLED = fromString("Pooled");
+
+ /**
+ * Creates or finds a HostPoolType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding HostPoolType
+ */
+ @JsonCreator
+ public static HostPoolType fromString(String name) {
+ return fromString(name, HostPoolType.class);
+ }
+
+ /**
+ * @return known HostPoolType values
+ */
+ public static Collection values() {
+ return values(HostPoolType.class);
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPools.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPools.java
new file mode 100644
index 000000000000..57845ece1c9a
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/HostPools.java
@@ -0,0 +1,25 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_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.desktopvirtualization.v2019_12_10_preview.implementation.HostPoolsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing HostPools.
+ */
+public interface HostPools extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/LoadBalancerType.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/LoadBalancerType.java
new file mode 100644
index 000000000000..bbe3c86b65ca
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/LoadBalancerType.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.desktopvirtualization.v2019_12_10_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for LoadBalancerType.
+ */
+public final class LoadBalancerType extends ExpandableStringEnum {
+ /** Static value BreadthFirst for LoadBalancerType. */
+ public static final LoadBalancerType BREADTH_FIRST = fromString("BreadthFirst");
+
+ /** Static value DepthFirst for LoadBalancerType. */
+ public static final LoadBalancerType DEPTH_FIRST = fromString("DepthFirst");
+
+ /** Static value Persistent for LoadBalancerType. */
+ public static final LoadBalancerType PERSISTENT = fromString("Persistent");
+
+ /**
+ * Creates or finds a LoadBalancerType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding LoadBalancerType
+ */
+ @JsonCreator
+ public static LoadBalancerType fromString(String name) {
+ return fromString(name, LoadBalancerType.class);
+ }
+
+ /**
+ * @return known LoadBalancerType values
+ */
+ public static Collection values() {
+ return values(LoadBalancerType.class);
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Operations.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Operations.java
new file mode 100644
index 000000000000..5e0be2c1e1af
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_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.desktopvirtualization.v2019_12_10_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * List all of the available operations the Desktop Virtualization resource provider supports.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/PersonalDesktopAssignmentType.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/PersonalDesktopAssignmentType.java
new file mode 100644
index 000000000000..27ef6a1419d5
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/PersonalDesktopAssignmentType.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.desktopvirtualization.v2019_12_10_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PersonalDesktopAssignmentType.
+ */
+public final class PersonalDesktopAssignmentType extends ExpandableStringEnum {
+ /** Static value Automatic for PersonalDesktopAssignmentType. */
+ public static final PersonalDesktopAssignmentType AUTOMATIC = fromString("Automatic");
+
+ /** Static value Direct for PersonalDesktopAssignmentType. */
+ public static final PersonalDesktopAssignmentType DIRECT = fromString("Direct");
+
+ /**
+ * Creates or finds a PersonalDesktopAssignmentType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PersonalDesktopAssignmentType
+ */
+ @JsonCreator
+ public static PersonalDesktopAssignmentType fromString(String name) {
+ return fromString(name, PersonalDesktopAssignmentType.class);
+ }
+
+ /**
+ * @return known PersonalDesktopAssignmentType values
+ */
+ public static Collection values() {
+ return values(PersonalDesktopAssignmentType.class);
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/RegistrationInfo.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/RegistrationInfo.java
new file mode 100644
index 000000000000..3619e3c79092
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/RegistrationInfo.java
@@ -0,0 +1,97 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents a RegistrationInfo definition.
+ */
+public class RegistrationInfo {
+ /**
+ * Expiration time of registration token.
+ */
+ @JsonProperty(value = "expirationTime")
+ private DateTime expirationTime;
+
+ /**
+ * The registration token base64 encoded string.
+ */
+ @JsonProperty(value = "token")
+ private String token;
+
+ /**
+ * The type of resetting the token. Possible values include: 'Delete',
+ * 'None', 'Update'.
+ */
+ @JsonProperty(value = "registrationTokenOperation")
+ private RegistrationTokenOperation registrationTokenOperation;
+
+ /**
+ * Get expiration time of registration token.
+ *
+ * @return the expirationTime value
+ */
+ public DateTime expirationTime() {
+ return this.expirationTime;
+ }
+
+ /**
+ * Set expiration time of registration token.
+ *
+ * @param expirationTime the expirationTime value to set
+ * @return the RegistrationInfo object itself.
+ */
+ public RegistrationInfo withExpirationTime(DateTime expirationTime) {
+ this.expirationTime = expirationTime;
+ return this;
+ }
+
+ /**
+ * Get the registration token base64 encoded string.
+ *
+ * @return the token value
+ */
+ public String token() {
+ return this.token;
+ }
+
+ /**
+ * Set the registration token base64 encoded string.
+ *
+ * @param token the token value to set
+ * @return the RegistrationInfo object itself.
+ */
+ public RegistrationInfo withToken(String token) {
+ this.token = token;
+ return this;
+ }
+
+ /**
+ * Get the type of resetting the token. Possible values include: 'Delete', 'None', 'Update'.
+ *
+ * @return the registrationTokenOperation value
+ */
+ public RegistrationTokenOperation registrationTokenOperation() {
+ return this.registrationTokenOperation;
+ }
+
+ /**
+ * Set the type of resetting the token. Possible values include: 'Delete', 'None', 'Update'.
+ *
+ * @param registrationTokenOperation the registrationTokenOperation value to set
+ * @return the RegistrationInfo object itself.
+ */
+ public RegistrationInfo withRegistrationTokenOperation(RegistrationTokenOperation registrationTokenOperation) {
+ this.registrationTokenOperation = registrationTokenOperation;
+ return this;
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/RegistrationInfoPatch.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/RegistrationInfoPatch.java
new file mode 100644
index 000000000000..57d00613791a
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/RegistrationInfoPatch.java
@@ -0,0 +1,71 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents a RegistrationInfo definition.
+ */
+public class RegistrationInfoPatch {
+ /**
+ * Expiration time of registration token.
+ */
+ @JsonProperty(value = "expirationTime")
+ private DateTime expirationTime;
+
+ /**
+ * The type of resetting the token. Possible values include: 'Delete',
+ * 'None', 'Update'.
+ */
+ @JsonProperty(value = "registrationTokenOperation")
+ private RegistrationTokenOperation registrationTokenOperation;
+
+ /**
+ * Get expiration time of registration token.
+ *
+ * @return the expirationTime value
+ */
+ public DateTime expirationTime() {
+ return this.expirationTime;
+ }
+
+ /**
+ * Set expiration time of registration token.
+ *
+ * @param expirationTime the expirationTime value to set
+ * @return the RegistrationInfoPatch object itself.
+ */
+ public RegistrationInfoPatch withExpirationTime(DateTime expirationTime) {
+ this.expirationTime = expirationTime;
+ return this;
+ }
+
+ /**
+ * Get the type of resetting the token. Possible values include: 'Delete', 'None', 'Update'.
+ *
+ * @return the registrationTokenOperation value
+ */
+ public RegistrationTokenOperation registrationTokenOperation() {
+ return this.registrationTokenOperation;
+ }
+
+ /**
+ * Set the type of resetting the token. Possible values include: 'Delete', 'None', 'Update'.
+ *
+ * @param registrationTokenOperation the registrationTokenOperation value to set
+ * @return the RegistrationInfoPatch object itself.
+ */
+ public RegistrationInfoPatch withRegistrationTokenOperation(RegistrationTokenOperation registrationTokenOperation) {
+ this.registrationTokenOperation = registrationTokenOperation;
+ return this;
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/RegistrationTokenOperation.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/RegistrationTokenOperation.java
new file mode 100644
index 000000000000..f23aa28950cf
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/RegistrationTokenOperation.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.desktopvirtualization.v2019_12_10_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for RegistrationTokenOperation.
+ */
+public final class RegistrationTokenOperation extends ExpandableStringEnum {
+ /** Static value Delete for RegistrationTokenOperation. */
+ public static final RegistrationTokenOperation DELETE = fromString("Delete");
+
+ /** Static value None for RegistrationTokenOperation. */
+ public static final RegistrationTokenOperation NONE = fromString("None");
+
+ /** Static value Update for RegistrationTokenOperation. */
+ public static final RegistrationTokenOperation UPDATE = fromString("Update");
+
+ /**
+ * Creates or finds a RegistrationTokenOperation from its string representation.
+ * @param name a name to look for
+ * @return the corresponding RegistrationTokenOperation
+ */
+ @JsonCreator
+ public static RegistrationTokenOperation fromString(String name) {
+ return fromString(name, RegistrationTokenOperation.class);
+ }
+
+ /**
+ * @return known RegistrationTokenOperation values
+ */
+ public static Collection values() {
+ return values(RegistrationTokenOperation.class);
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ResourceProviderOperation.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ResourceProviderOperation.java
new file mode 100644
index 000000000000..b32d2fb4f4b7
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ResourceProviderOperation.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.desktopvirtualization.v2019_12_10_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Supported operation of this resource provider.
+ */
+public class ResourceProviderOperation {
+ /**
+ * Operation name, in format of {provider}/{resource}/{operation}.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Display metadata associated with the operation.
+ */
+ @JsonProperty(value = "display")
+ private ResourceProviderOperationDisplay display;
+
+ /**
+ * Get operation name, in format of {provider}/{resource}/{operation}.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set operation name, in format of {provider}/{resource}/{operation}.
+ *
+ * @param name the name value to set
+ * @return the ResourceProviderOperation object itself.
+ */
+ public ResourceProviderOperation withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get display metadata associated with the operation.
+ *
+ * @return the display value
+ */
+ public ResourceProviderOperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set display metadata associated with the operation.
+ *
+ * @param display the display value to set
+ * @return the ResourceProviderOperation object itself.
+ */
+ public ResourceProviderOperation withDisplay(ResourceProviderOperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ResourceProviderOperationDisplay.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ResourceProviderOperationDisplay.java
new file mode 100644
index 000000000000..3808540b66f2
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ResourceProviderOperationDisplay.java
@@ -0,0 +1,121 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Display metadata associated with the operation.
+ */
+public class ResourceProviderOperationDisplay {
+ /**
+ * Resource provider: Microsoft Desktop Virtualization.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * Resource on which the operation is performed.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * Type of operation: get, read, delete, etc.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * Description of this operation.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get resource provider: Microsoft Desktop Virtualization.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set resource provider: Microsoft Desktop Virtualization.
+ *
+ * @param provider the provider value to set
+ * @return the ResourceProviderOperationDisplay object itself.
+ */
+ public ResourceProviderOperationDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get resource on which the operation is performed.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set resource on which the operation is performed.
+ *
+ * @param resource the resource value to set
+ * @return the ResourceProviderOperationDisplay object itself.
+ */
+ public ResourceProviderOperationDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get type of operation: get, read, delete, etc.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set type of operation: get, read, delete, etc.
+ *
+ * @param operation the operation value to set
+ * @return the ResourceProviderOperationDisplay object itself.
+ */
+ public ResourceProviderOperationDisplay withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get description of this operation.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of this operation.
+ *
+ * @param description the description value to set
+ * @return the ResourceProviderOperationDisplay object itself.
+ */
+ public ResourceProviderOperationDisplay withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ResourceProviderOperationList.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ResourceProviderOperationList.java
new file mode 100644
index 000000000000..2d7e1774cddc
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/ResourceProviderOperationList.java
@@ -0,0 +1,26 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.DesktopVirtualizationManager;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.ResourceProviderOperationListInner;
+import java.util.List;
+
+/**
+ * Type representing ResourceProviderOperationList.
+ */
+public interface ResourceProviderOperationList extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SendMessage.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SendMessage.java
new file mode 100644
index 000000000000..8e2a54a06619
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SendMessage.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.desktopvirtualization.v2019_12_10_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents message sent to a UserSession.
+ */
+public class SendMessage {
+ /**
+ * Title of message.
+ */
+ @JsonProperty(value = "messageTitle")
+ private String messageTitle;
+
+ /**
+ * Body of message.
+ */
+ @JsonProperty(value = "messageBody")
+ private String messageBody;
+
+ /**
+ * Get title of message.
+ *
+ * @return the messageTitle value
+ */
+ public String messageTitle() {
+ return this.messageTitle;
+ }
+
+ /**
+ * Set title of message.
+ *
+ * @param messageTitle the messageTitle value to set
+ * @return the SendMessage object itself.
+ */
+ public SendMessage withMessageTitle(String messageTitle) {
+ this.messageTitle = messageTitle;
+ return this;
+ }
+
+ /**
+ * Get body of message.
+ *
+ * @return the messageBody value
+ */
+ public String messageBody() {
+ return this.messageBody;
+ }
+
+ /**
+ * Set body of message.
+ *
+ * @param messageBody the messageBody value to set
+ * @return the SendMessage object itself.
+ */
+ public SendMessage withMessageBody(String messageBody) {
+ this.messageBody = messageBody;
+ return this;
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SessionHost.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SessionHost.java
new file mode 100644
index 000000000000..a3b79dea2efb
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SessionHost.java
@@ -0,0 +1,135 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.SessionHostInner;
+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.resources.models.HasManager;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.DesktopVirtualizationManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing SessionHost.
+ */
+public interface SessionHost extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the agentVersion value.
+ */
+ String agentVersion();
+
+ /**
+ * @return the allowNewSession value.
+ */
+ Boolean allowNewSession();
+
+ /**
+ * @return the assignedUser value.
+ */
+ String assignedUser();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the lastHeartBeat value.
+ */
+ DateTime lastHeartBeat();
+
+ /**
+ * @return the lastUpdateTime value.
+ */
+ DateTime lastUpdateTime();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the osVersion value.
+ */
+ String osVersion();
+
+ /**
+ * @return the sessions value.
+ */
+ Integer sessions();
+
+ /**
+ * @return the status value.
+ */
+ Status status();
+
+ /**
+ * @return the statusTimestamp value.
+ */
+ DateTime statusTimestamp();
+
+ /**
+ * @return the sxSStackVersion value.
+ */
+ String sxSStackVersion();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the updateErrorMessage value.
+ */
+ String updateErrorMessage();
+
+ /**
+ * @return the updateState value.
+ */
+ UpdateState updateState();
+
+ /**
+ * The template for a SessionHost update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAllowNewSession, UpdateStages.WithAssignedUser {
+ }
+
+ /**
+ * Grouping of SessionHost update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the sessionhost update allowing to specify AllowNewSession.
+ */
+ interface WithAllowNewSession {
+ /**
+ * Specifies allowNewSession.
+ * @param allowNewSession Allow a new session
+ * @return the next update stage
+ */
+ Update withAllowNewSession(Boolean allowNewSession);
+ }
+
+ /**
+ * The stage of the sessionhost update allowing to specify AssignedUser.
+ */
+ interface WithAssignedUser {
+ /**
+ * Specifies assignedUser.
+ * @param assignedUser User assigned to SessionHost
+ * @return the next update stage
+ */
+ Update withAssignedUser(String assignedUser);
+ }
+
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SessionHostPatch.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SessionHostPatch.java
new file mode 100644
index 000000000000..de1e8b2f1ef1
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SessionHostPatch.java
@@ -0,0 +1,72 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * SessionHost properties that can be patched.
+ */
+@JsonFlatten
+public class SessionHostPatch extends ProxyResource {
+ /**
+ * Allow a new session.
+ */
+ @JsonProperty(value = "properties.allowNewSession")
+ private Boolean allowNewSession;
+
+ /**
+ * User assigned to SessionHost.
+ */
+ @JsonProperty(value = "properties.assignedUser")
+ private String assignedUser;
+
+ /**
+ * Get allow a new session.
+ *
+ * @return the allowNewSession value
+ */
+ public Boolean allowNewSession() {
+ return this.allowNewSession;
+ }
+
+ /**
+ * Set allow a new session.
+ *
+ * @param allowNewSession the allowNewSession value to set
+ * @return the SessionHostPatch object itself.
+ */
+ public SessionHostPatch withAllowNewSession(Boolean allowNewSession) {
+ this.allowNewSession = allowNewSession;
+ return this;
+ }
+
+ /**
+ * Get user assigned to SessionHost.
+ *
+ * @return the assignedUser value
+ */
+ public String assignedUser() {
+ return this.assignedUser;
+ }
+
+ /**
+ * Set user assigned to SessionHost.
+ *
+ * @param assignedUser the assignedUser value to set
+ * @return the SessionHostPatch object itself.
+ */
+ public SessionHostPatch withAssignedUser(String assignedUser) {
+ this.assignedUser = assignedUser;
+ return this;
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SessionHosts.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SessionHosts.java
new file mode 100644
index 000000000000..5c3861de9865
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SessionHosts.java
@@ -0,0 +1,52 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.SessionHostsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing SessionHosts.
+ */
+public interface SessionHosts extends HasInner {
+ /**
+ * Get a session host.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String hostPoolName, String sessionHostName);
+
+ /**
+ * List sessionHosts.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String hostPoolName);
+
+ /**
+ * Remove a SessionHost.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String hostPoolName, String sessionHostName);
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SessionState.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SessionState.java
new file mode 100644
index 000000000000..726e1280e79e
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/SessionState.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.desktopvirtualization.v2019_12_10_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SessionState.
+ */
+public final class SessionState extends ExpandableStringEnum {
+ /** Static value Unknown for SessionState. */
+ public static final SessionState UNKNOWN = fromString("Unknown");
+
+ /** Static value Active for SessionState. */
+ public static final SessionState ACTIVE = fromString("Active");
+
+ /** Static value Disconnected for SessionState. */
+ public static final SessionState DISCONNECTED = fromString("Disconnected");
+
+ /** Static value Pending for SessionState. */
+ public static final SessionState PENDING = fromString("Pending");
+
+ /** Static value LogOff for SessionState. */
+ public static final SessionState LOG_OFF = fromString("LogOff");
+
+ /** Static value UserProfileDiskMounted for SessionState. */
+ public static final SessionState USER_PROFILE_DISK_MOUNTED = fromString("UserProfileDiskMounted");
+
+ /**
+ * Creates or finds a SessionState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SessionState
+ */
+ @JsonCreator
+ public static SessionState fromString(String name) {
+ return fromString(name, SessionState.class);
+ }
+
+ /**
+ * @return known SessionState values
+ */
+ public static Collection values() {
+ return values(SessionState.class);
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/StartMenuItem.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/StartMenuItem.java
new file mode 100644
index 000000000000..d03a466e5ce6
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/StartMenuItem.java
@@ -0,0 +1,65 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.StartMenuItemInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.DesktopVirtualizationManager;
+
+/**
+ * Type representing StartMenuItem.
+ */
+public interface StartMenuItem extends HasInner, HasManager {
+ /**
+ * @return the appAlias value.
+ */
+ String appAlias();
+
+ /**
+ * @return the commandLineArguments value.
+ */
+ String commandLineArguments();
+
+ /**
+ * @return the filePath value.
+ */
+ String filePath();
+
+ /**
+ * @return the friendlyName value.
+ */
+ String friendlyName();
+
+ /**
+ * @return the iconIndex value.
+ */
+ Integer iconIndex();
+
+ /**
+ * @return the iconPath value.
+ */
+ String iconPath();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/StartMenuItems.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/StartMenuItems.java
new file mode 100644
index 000000000000..82e2e06e9ebe
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/StartMenuItems.java
@@ -0,0 +1,29 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.StartMenuItemsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing StartMenuItems.
+ */
+public interface StartMenuItems extends HasInner {
+ /**
+ * List start menu items in the given application group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationGroupName The name of the application group
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String applicationGroupName);
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Status.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Status.java
new file mode 100644
index 000000000000..69dea78cc19e
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Status.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.desktopvirtualization.v2019_12_10_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Status.
+ */
+public final class Status extends ExpandableStringEnum {
+ /** Static value Available for Status. */
+ public static final Status AVAILABLE = fromString("Available");
+
+ /** Static value Unavailable for Status. */
+ public static final Status UNAVAILABLE = fromString("Unavailable");
+
+ /** Static value Shutdown for Status. */
+ public static final Status SHUTDOWN = fromString("Shutdown");
+
+ /** Static value Disconnected for Status. */
+ public static final Status DISCONNECTED = fromString("Disconnected");
+
+ /** Static value Upgrading for Status. */
+ public static final Status UPGRADING = fromString("Upgrading");
+
+ /** Static value UpgradeFailed for Status. */
+ public static final Status UPGRADE_FAILED = fromString("UpgradeFailed");
+
+ /**
+ * Creates or finds a Status from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Status
+ */
+ @JsonCreator
+ public static Status fromString(String name) {
+ return fromString(name, Status.class);
+ }
+
+ /**
+ * @return known Status values
+ */
+ public static Collection values() {
+ return values(Status.class);
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/UpdateState.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/UpdateState.java
new file mode 100644
index 000000000000..14216bc49b88
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/UpdateState.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.desktopvirtualization.v2019_12_10_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for UpdateState.
+ */
+public final class UpdateState extends ExpandableStringEnum {
+ /** Static value Initial for UpdateState. */
+ public static final UpdateState INITIAL = fromString("Initial");
+
+ /** Static value Pending for UpdateState. */
+ public static final UpdateState PENDING = fromString("Pending");
+
+ /** Static value Started for UpdateState. */
+ public static final UpdateState STARTED = fromString("Started");
+
+ /** Static value Succeeded for UpdateState. */
+ public static final UpdateState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Failed for UpdateState. */
+ public static final UpdateState FAILED = fromString("Failed");
+
+ /**
+ * Creates or finds a UpdateState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding UpdateState
+ */
+ @JsonCreator
+ public static UpdateState fromString(String name) {
+ return fromString(name, UpdateState.class);
+ }
+
+ /**
+ * @return known UpdateState values
+ */
+ public static Collection values() {
+ return values(UpdateState.class);
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/UserSession.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/UserSession.java
new file mode 100644
index 000000000000..909ee1514694
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/UserSession.java
@@ -0,0 +1,61 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.UserSessionInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.DesktopVirtualizationManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing UserSession.
+ */
+public interface UserSession extends HasInner, HasManager {
+ /**
+ * @return the activeDirectoryUserName value.
+ */
+ String activeDirectoryUserName();
+
+ /**
+ * @return the applicationType value.
+ */
+ ApplicationType applicationType();
+
+ /**
+ * @return the createTime value.
+ */
+ DateTime createTime();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the sessionState value.
+ */
+ SessionState sessionState();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the userPrincipalName value.
+ */
+ String userPrincipalName();
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/UserSessions.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/UserSessions.java
new file mode 100644
index 000000000000..446c91c9fab9
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/UserSessions.java
@@ -0,0 +1,89 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import rx.Observable;
+import rx.Completable;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.UserSessionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing UserSessions.
+ */
+public interface UserSessions extends HasInner {
+ /**
+ * Get a userSession.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @param userSessionId The name of the user session within the specified session host
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String hostPoolName, String sessionHostName, String userSessionId);
+
+ /**
+ * Remove a userSession.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @param userSessionId The name of the user session within the specified session host
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String hostPoolName, String sessionHostName, String userSessionId);
+
+ /**
+ * List userSessions.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String hostPoolName, final String sessionHostName);
+
+ /**
+ * Disconnect a userSession.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @param userSessionId The name of the user session within the specified session host
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable disconnectAsync(String resourceGroupName, String hostPoolName, String sessionHostName, String userSessionId);
+
+ /**
+ * Send a message to a user.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @param userSessionId The name of the user session within the specified session host
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable sendMessageMethodAsync(String resourceGroupName, String hostPoolName, String sessionHostName, String userSessionId);
+
+ /**
+ * List userSessions.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByHostPoolAsync(final String resourceGroupName, final String hostPoolName);
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Workspace.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Workspace.java
new file mode 100644
index 000000000000..28276e5ae4a5
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Workspace.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.desktopvirtualization.v2019_12_10_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.desktopvirtualization.v2019_12_10_preview.implementation.DesktopVirtualizationManager;
+import java.util.List;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.WorkspaceInner;
+
+/**
+ * Type representing Workspace.
+ */
+public interface Workspace extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the applicationGroupReferences value.
+ */
+ List applicationGroupReferences();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the friendlyName value.
+ */
+ String friendlyName();
+
+ /**
+ * The entirety of the Workspace definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Workspace definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Workspace definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the Workspace definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the workspace definition allowing to specify ApplicationGroupReferences.
+ */
+ interface WithApplicationGroupReferences {
+ /**
+ * Specifies applicationGroupReferences.
+ * @param applicationGroupReferences List of applicationGroup resource Ids
+ * @return the next definition stage
+ */
+ WithCreate withApplicationGroupReferences(List applicationGroupReferences);
+ }
+
+ /**
+ * The stage of the workspace definition allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of Workspace
+ * @return the next definition stage
+ */
+ WithCreate withDescription(String description);
+ }
+
+ /**
+ * The stage of the workspace definition allowing to specify FriendlyName.
+ */
+ interface WithFriendlyName {
+ /**
+ * Specifies friendlyName.
+ * @param friendlyName Friendly name of Workspace
+ * @return the next definition stage
+ */
+ WithCreate withFriendlyName(String friendlyName);
+ }
+
+ /**
+ * 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.WithApplicationGroupReferences, DefinitionStages.WithDescription, DefinitionStages.WithFriendlyName {
+ }
+ }
+ /**
+ * The template for a Workspace update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithApplicationGroupReferences, UpdateStages.WithDescription, UpdateStages.WithFriendlyName {
+ }
+
+ /**
+ * Grouping of Workspace update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the workspace update allowing to specify ApplicationGroupReferences.
+ */
+ interface WithApplicationGroupReferences {
+ /**
+ * Specifies applicationGroupReferences.
+ * @param applicationGroupReferences List of applicationGroup links
+ * @return the next update stage
+ */
+ Update withApplicationGroupReferences(List applicationGroupReferences);
+ }
+
+ /**
+ * The stage of the workspace update allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of Workspace
+ * @return the next update stage
+ */
+ Update withDescription(String description);
+ }
+
+ /**
+ * The stage of the workspace update allowing to specify FriendlyName.
+ */
+ interface WithFriendlyName {
+ /**
+ * Specifies friendlyName.
+ * @param friendlyName Friendly name of Workspace
+ * @return the next update stage
+ */
+ Update withFriendlyName(String friendlyName);
+ }
+
+ }
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/WorkspaceApplicationGroup.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/WorkspaceApplicationGroup.java
new file mode 100644
index 000000000000..1a3a8d2c17e4
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/WorkspaceApplicationGroup.java
@@ -0,0 +1,71 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.ApplicationGroupInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.implementation.DesktopVirtualizationManager;
+import java.util.Map;
+
+/**
+ * Type representing WorkspaceApplicationGroup.
+ */
+public interface WorkspaceApplicationGroup extends HasInner, HasManager {
+ /**
+ * @return the applicationGroupType value.
+ */
+ ApplicationGroupType applicationGroupType();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the friendlyName value.
+ */
+ String friendlyName();
+
+ /**
+ * @return the hostPoolArmPath value.
+ */
+ String hostPoolArmPath();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the workspaceArmPath value.
+ */
+ String workspaceArmPath();
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/WorkspacePatch.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/WorkspacePatch.java
new file mode 100644
index 000000000000..cef0deab521a
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/WorkspacePatch.java
@@ -0,0 +1,124 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Workspace properties that can be patched.
+ */
+@JsonFlatten
+public class WorkspacePatch {
+ /**
+ * tags to be updated.
+ */
+ @JsonProperty(value = "tags")
+ private Object tags;
+
+ /**
+ * Description of Workspace.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /**
+ * Friendly name of Workspace.
+ */
+ @JsonProperty(value = "properties.friendlyName")
+ private String friendlyName;
+
+ /**
+ * List of applicationGroup links.
+ */
+ @JsonProperty(value = "properties.applicationGroupReferences")
+ private List applicationGroupReferences;
+
+ /**
+ * Get tags to be updated.
+ *
+ * @return the tags value
+ */
+ public Object tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set tags to be updated.
+ *
+ * @param tags the tags value to set
+ * @return the WorkspacePatch object itself.
+ */
+ public WorkspacePatch withTags(Object tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get description of Workspace.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of Workspace.
+ *
+ * @param description the description value to set
+ * @return the WorkspacePatch object itself.
+ */
+ public WorkspacePatch withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get friendly name of Workspace.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of Workspace.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the WorkspacePatch object itself.
+ */
+ public WorkspacePatch withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get list of applicationGroup links.
+ *
+ * @return the applicationGroupReferences value
+ */
+ public List applicationGroupReferences() {
+ return this.applicationGroupReferences;
+ }
+
+ /**
+ * Set list of applicationGroup links.
+ *
+ * @param applicationGroupReferences the applicationGroupReferences value to set
+ * @return the WorkspacePatch object itself.
+ */
+ public WorkspacePatch withApplicationGroupReferences(List applicationGroupReferences) {
+ this.applicationGroupReferences = applicationGroupReferences;
+ return this;
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Workspaces.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Workspaces.java
new file mode 100644
index 000000000000..abc1293c0d1f
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/Workspaces.java
@@ -0,0 +1,25 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_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.desktopvirtualization.v2019_12_10_preview.implementation.WorkspacesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Workspaces.
+ */
+public interface Workspaces extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ActiveApplicationsImpl.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ActiveApplicationsImpl.java
new file mode 100644
index 000000000000..ab00f2182929
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ActiveApplicationsImpl.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.desktopvirtualization.v2019_12_10_preview.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.ActiveApplications;
+import rx.Observable;
+import rx.functions.Func1;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.HostPoolApplication;
+
+class ActiveApplicationsImpl extends WrapperImpl implements ActiveApplications {
+ private final DesktopVirtualizationManager manager;
+
+ ActiveApplicationsImpl(DesktopVirtualizationManager manager) {
+ super(manager.inner().activeApplications());
+ this.manager = manager;
+ }
+
+ public DesktopVirtualizationManager manager() {
+ return this.manager;
+ }
+
+ private HostPoolApplicationImpl wrapModel(ApplicationInner inner) {
+ return new HostPoolApplicationImpl(inner, manager());
+ }
+
+ @Override
+ public Observable listBySessionHostAsync(final String resourceGroupName, final String hostPoolName, final String sessionHostName) {
+ ActiveApplicationsInner client = this.inner();
+ return client.listBySessionHostAsync(resourceGroupName, hostPoolName, sessionHostName)
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public HostPoolApplication call(ApplicationInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ActiveApplicationsInner.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ActiveApplicationsInner.java
new file mode 100644
index 000000000000..4d147be81e65
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ActiveApplicationsInner.java
@@ -0,0 +1,441 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_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.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Path;
+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 ActiveApplications.
+ */
+public class ActiveApplicationsInner {
+ /** The Retrofit service to perform REST calls. */
+ private ActiveApplicationsService service;
+ /** The service client containing this operation class. */
+ private DesktopVirtualizationAPIClientImpl client;
+
+ /**
+ * Initializes an instance of ActiveApplicationsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public ActiveApplicationsInner(Retrofit retrofit, DesktopVirtualizationAPIClientImpl client) {
+ this.service = retrofit.create(ActiveApplicationsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ActiveApplications to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface ActiveApplicationsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.ActiveApplications listBySessionHost" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/activeApplications")
+ Observable> listBySessionHost(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("hostPoolName") String hostPoolName, @Path("sessionHostName") String sessionHostName, @Query("api-version") String apiVersion, @Query("$filter") String filter, @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.desktopvirtualization.v2019_12_10_preview.ActiveApplications listBySessionHostNext" })
+ @GET
+ Observable> listBySessionHostNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @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<ApplicationInner> object if successful.
+ */
+ public PagedList listBySessionHost(final String resourceGroupName, final String hostPoolName, final String sessionHostName) {
+ ServiceResponse> response = listBySessionHostSinglePageAsync(resourceGroupName, hostPoolName, sessionHostName).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listBySessionHostNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @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> listBySessionHostAsync(final String resourceGroupName, final String hostPoolName, final String sessionHostName, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listBySessionHostSinglePageAsync(resourceGroupName, hostPoolName, sessionHostName),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listBySessionHostNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ApplicationInner> object
+ */
+ public Observable> listBySessionHostAsync(final String resourceGroupName, final String hostPoolName, final String sessionHostName) {
+ return listBySessionHostWithServiceResponseAsync(resourceGroupName, hostPoolName, sessionHostName)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ApplicationInner> object
+ */
+ public Observable>> listBySessionHostWithServiceResponseAsync(final String resourceGroupName, final String hostPoolName, final String sessionHostName) {
+ return listBySessionHostSinglePageAsync(resourceGroupName, hostPoolName, sessionHostName)
+ .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(listBySessionHostNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<ApplicationInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listBySessionHostSinglePageAsync(final String resourceGroupName, final String hostPoolName, final String sessionHostName) {
+ 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 (hostPoolName == null) {
+ throw new IllegalArgumentException("Parameter hostPoolName is required and cannot be null.");
+ }
+ if (sessionHostName == null) {
+ throw new IllegalArgumentException("Parameter sessionHostName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ final String filter = null;
+ return service.listBySessionHost(this.client.subscriptionId(), resourceGroupName, hostPoolName, sessionHostName, this.client.apiVersion(), filter, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listBySessionHostDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @param filter OData filter expression. Valid properties for filtering are userprincipalname and sessionstate.
+ * @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<ApplicationInner> object if successful.
+ */
+ public PagedList listBySessionHost(final String resourceGroupName, final String hostPoolName, final String sessionHostName, final String filter) {
+ ServiceResponse> response = listBySessionHostSinglePageAsync(resourceGroupName, hostPoolName, sessionHostName, filter).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listBySessionHostNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @param filter OData filter expression. Valid properties for filtering are userprincipalname and sessionstate.
+ * @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> listBySessionHostAsync(final String resourceGroupName, final String hostPoolName, final String sessionHostName, final String filter, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listBySessionHostSinglePageAsync(resourceGroupName, hostPoolName, sessionHostName, filter),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listBySessionHostNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @param filter OData filter expression. Valid properties for filtering are userprincipalname and sessionstate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ApplicationInner> object
+ */
+ public Observable> listBySessionHostAsync(final String resourceGroupName, final String hostPoolName, final String sessionHostName, final String filter) {
+ return listBySessionHostWithServiceResponseAsync(resourceGroupName, hostPoolName, sessionHostName, filter)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param hostPoolName The name of the host pool within the specified resource group
+ * @param sessionHostName The name of the session host within the specified host pool
+ * @param filter OData filter expression. Valid properties for filtering are userprincipalname and sessionstate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ApplicationInner> object
+ */
+ public Observable>> listBySessionHostWithServiceResponseAsync(final String resourceGroupName, final String hostPoolName, final String sessionHostName, final String filter) {
+ return listBySessionHostSinglePageAsync(resourceGroupName, hostPoolName, sessionHostName, filter)
+ .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(listBySessionHostNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ ServiceResponse> * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ ServiceResponse> * @param hostPoolName The name of the host pool within the specified resource group
+ ServiceResponse> * @param sessionHostName The name of the session host within the specified host pool
+ ServiceResponse> * @param filter OData filter expression. Valid properties for filtering are userprincipalname and sessionstate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<ApplicationInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listBySessionHostSinglePageAsync(final String resourceGroupName, final String hostPoolName, final String sessionHostName, final String filter) {
+ 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 (hostPoolName == null) {
+ throw new IllegalArgumentException("Parameter hostPoolName is required and cannot be null.");
+ }
+ if (sessionHostName == null) {
+ throw new IllegalArgumentException("Parameter sessionHostName 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.listBySessionHost(this.client.subscriptionId(), resourceGroupName, hostPoolName, sessionHostName, this.client.apiVersion(), filter, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listBySessionHostDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listBySessionHostDelegate(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);
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<ApplicationInner> object if successful.
+ */
+ public PagedList listBySessionHostNext(final String nextPageLink) {
+ ServiceResponse> response = listBySessionHostNextSinglePageAsync(nextPageLink).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listBySessionHostNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listBySessionHostNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listBySessionHostNextSinglePageAsync(nextPageLink),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listBySessionHostNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ApplicationInner> object
+ */
+ public Observable> listBySessionHostNextAsync(final String nextPageLink) {
+ return listBySessionHostNextWithServiceResponseAsync(nextPageLink)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ApplicationInner> object
+ */
+ public Observable>> listBySessionHostNextWithServiceResponseAsync(final String nextPageLink) {
+ return listBySessionHostNextSinglePageAsync(nextPageLink)
+ .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(listBySessionHostNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * List applications for the given session host.
+ *
+ ServiceResponse> * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<ApplicationInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listBySessionHostNextSinglePageAsync(final String nextPageLink) {
+ if (nextPageLink == null) {
+ throw new IllegalArgumentException("Parameter nextPageLink is required and cannot be null.");
+ }
+ String nextUrl = String.format("%s", nextPageLink);
+ return service.listBySessionHostNext(nextUrl, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listBySessionHostNextDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listBySessionHostNextDelegate(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);
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ApplicationGroupApplicationImpl.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ApplicationGroupApplicationImpl.java
new file mode 100644
index 000000000000..e49759b41c7d
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ApplicationGroupApplicationImpl.java
@@ -0,0 +1,253 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_preview.implementation;
+
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.ApplicationGroupApplication;
+import com.microsoft.azure.arm.model.implementation.CreatableUpdatableImpl;
+import rx.Observable;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.ApplicationPatch;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.CommandLineSetting;
+import rx.functions.Func1;
+
+class ApplicationGroupApplicationImpl extends CreatableUpdatableImpl implements ApplicationGroupApplication, ApplicationGroupApplication.Definition, ApplicationGroupApplication.Update {
+ private final DesktopVirtualizationManager manager;
+ private String resourceGroupName;
+ private String applicationGroupName;
+ private String applicationName;
+ private ApplicationPatch updateParameter;
+
+ ApplicationGroupApplicationImpl(String name, DesktopVirtualizationManager manager) {
+ super(name, new ApplicationInner());
+ this.manager = manager;
+ // Set resource name
+ this.applicationName = name;
+ //
+ this.updateParameter = new ApplicationPatch();
+ }
+
+ ApplicationGroupApplicationImpl(ApplicationInner inner, DesktopVirtualizationManager manager) {
+ super(inner.name(), inner);
+ this.manager = manager;
+ // Set resource name
+ this.applicationName = inner.name();
+ // set resource ancestor and positional variables
+ this.resourceGroupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
+ this.applicationGroupName = IdParsingUtils.getValueFromIdByName(inner.id(), "applicationGroups");
+ this.applicationName = IdParsingUtils.getValueFromIdByName(inner.id(), "applications");
+ //
+ this.updateParameter = new ApplicationPatch();
+ }
+
+ @Override
+ public DesktopVirtualizationManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ ApplicationsInner client = this.manager().inner().applications();
+ return client.createOrUpdateAsync(this.resourceGroupName, this.applicationGroupName, this.applicationName, this.inner())
+ .map(new Func1() {
+ @Override
+ public ApplicationInner call(ApplicationInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ ApplicationsInner client = this.manager().inner().applications();
+ return client.updateAsync(this.resourceGroupName, this.applicationGroupName, this.applicationName, this.updateParameter)
+ .map(new Func1() {
+ @Override
+ public ApplicationInner call(ApplicationInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ ApplicationsInner client = this.manager().inner().applications();
+ return client.getAsync(this.resourceGroupName, this.applicationGroupName, this.applicationName);
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+ private void resetCreateUpdateParameters() {
+ this.updateParameter = new ApplicationPatch();
+ }
+
+ @Override
+ public String commandLineArguments() {
+ return this.inner().commandLineArguments();
+ }
+
+ @Override
+ public CommandLineSetting commandLineSetting() {
+ return this.inner().commandLineSetting();
+ }
+
+ @Override
+ public String description() {
+ return this.inner().description();
+ }
+
+ @Override
+ public String filePath() {
+ return this.inner().filePath();
+ }
+
+ @Override
+ public String friendlyName() {
+ return this.inner().friendlyName();
+ }
+
+ @Override
+ public byte[] iconContent() {
+ return this.inner().iconContent();
+ }
+
+ @Override
+ public String iconHash() {
+ return this.inner().iconHash();
+ }
+
+ @Override
+ public Integer iconIndex() {
+ return this.inner().iconIndex();
+ }
+
+ @Override
+ public String iconPath() {
+ return this.inner().iconPath();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public Boolean showInPortal() {
+ return this.inner().showInPortal();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+ @Override
+ public ApplicationGroupApplicationImpl withExistingApplicationGroup(String resourceGroupName, String applicationGroupName) {
+ this.resourceGroupName = resourceGroupName;
+ this.applicationGroupName = applicationGroupName;
+ return this;
+ }
+
+ @Override
+ public ApplicationGroupApplicationImpl withTags(Object tags) {
+ this.updateParameter.withTags(tags);
+ return this;
+ }
+
+ @Override
+ public ApplicationGroupApplicationImpl withCommandLineSetting(CommandLineSetting commandLineSetting) {
+ if (isInCreateMode()) {
+ this.inner().withCommandLineSetting(commandLineSetting);
+ } else {
+ this.updateParameter.withCommandLineSetting(commandLineSetting);
+ }
+ return this;
+ }
+
+ @Override
+ public ApplicationGroupApplicationImpl withCommandLineArguments(String commandLineArguments) {
+ if (isInCreateMode()) {
+ this.inner().withCommandLineArguments(commandLineArguments);
+ } else {
+ this.updateParameter.withCommandLineArguments(commandLineArguments);
+ }
+ return this;
+ }
+
+ @Override
+ public ApplicationGroupApplicationImpl withDescription(String description) {
+ if (isInCreateMode()) {
+ this.inner().withDescription(description);
+ } else {
+ this.updateParameter.withDescription(description);
+ }
+ return this;
+ }
+
+ @Override
+ public ApplicationGroupApplicationImpl withFilePath(String filePath) {
+ if (isInCreateMode()) {
+ this.inner().withFilePath(filePath);
+ } else {
+ this.updateParameter.withFilePath(filePath);
+ }
+ return this;
+ }
+
+ @Override
+ public ApplicationGroupApplicationImpl withFriendlyName(String friendlyName) {
+ if (isInCreateMode()) {
+ this.inner().withFriendlyName(friendlyName);
+ } else {
+ this.updateParameter.withFriendlyName(friendlyName);
+ }
+ return this;
+ }
+
+ @Override
+ public ApplicationGroupApplicationImpl withIconIndex(Integer iconIndex) {
+ if (isInCreateMode()) {
+ this.inner().withIconIndex(iconIndex);
+ } else {
+ this.updateParameter.withIconIndex(iconIndex);
+ }
+ return this;
+ }
+
+ @Override
+ public ApplicationGroupApplicationImpl withIconPath(String iconPath) {
+ if (isInCreateMode()) {
+ this.inner().withIconPath(iconPath);
+ } else {
+ this.updateParameter.withIconPath(iconPath);
+ }
+ return this;
+ }
+
+ @Override
+ public ApplicationGroupApplicationImpl withShowInPortal(Boolean showInPortal) {
+ if (isInCreateMode()) {
+ this.inner().withShowInPortal(showInPortal);
+ } else {
+ this.updateParameter.withShowInPortal(showInPortal);
+ }
+ return this;
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ApplicationGroupAssignmentsImpl.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ApplicationGroupAssignmentsImpl.java
new file mode 100644
index 000000000000..6703309da4f8
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ApplicationGroupAssignmentsImpl.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.desktopvirtualization.v2019_12_10_preview.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.ApplicationGroupAssignments;
+import rx.Observable;
+import rx.functions.Func1;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.WorkspaceApplicationGroup;
+
+class ApplicationGroupAssignmentsImpl extends WrapperImpl implements ApplicationGroupAssignments {
+ private final DesktopVirtualizationManager manager;
+
+ ApplicationGroupAssignmentsImpl(DesktopVirtualizationManager manager) {
+ super(manager.inner().applicationGroupAssignments());
+ this.manager = manager;
+ }
+
+ public DesktopVirtualizationManager manager() {
+ return this.manager;
+ }
+
+ private WorkspaceApplicationGroupImpl wrapModel(ApplicationGroupInner inner) {
+ return new WorkspaceApplicationGroupImpl(inner, manager());
+ }
+
+ @Override
+ public Observable workspaceLevelListAsync(final String resourceGroupName, final String workspaceName) {
+ ApplicationGroupAssignmentsInner client = this.inner();
+ return client.workspaceLevelListAsync(resourceGroupName, workspaceName)
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public WorkspaceApplicationGroup call(ApplicationGroupInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+}
diff --git a/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ApplicationGroupAssignmentsInner.java b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ApplicationGroupAssignmentsInner.java
new file mode 100644
index 000000000000..256ecb19ea80
--- /dev/null
+++ b/sdk/desktopvirtualization/mgmt-v2019_12_10_preview/src/main/java/com/microsoft/azure/management/desktopvirtualization/v2019_12_10_preview/implementation/ApplicationGroupAssignmentsInner.java
@@ -0,0 +1,425 @@
+/**
+ * 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.desktopvirtualization.v2019_12_10_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.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Path;
+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 ApplicationGroupAssignments.
+ */
+public class ApplicationGroupAssignmentsInner {
+ /** The Retrofit service to perform REST calls. */
+ private ApplicationGroupAssignmentsService service;
+ /** The service client containing this operation class. */
+ private DesktopVirtualizationAPIClientImpl client;
+
+ /**
+ * Initializes an instance of ApplicationGroupAssignmentsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public ApplicationGroupAssignmentsInner(Retrofit retrofit, DesktopVirtualizationAPIClientImpl client) {
+ this.service = retrofit.create(ApplicationGroupAssignmentsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ApplicationGroupAssignments to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface ApplicationGroupAssignmentsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.desktopvirtualization.v2019_12_10_preview.ApplicationGroupAssignments workspaceLevelList" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/userApplicationGroupAssignments")
+ Observable> workspaceLevelList(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("workspaceName") String workspaceName, @Query("api-version") String apiVersion, @Query("$filter") String filter, @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.desktopvirtualization.v2019_12_10_preview.ApplicationGroupAssignments workspaceLevelListNext" })
+ @GET
+ Observable> workspaceLevelListNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * List application group that user can use.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param workspaceName The name of the workspace
+ * @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<ApplicationGroupInner> object if successful.
+ */
+ public PagedList workspaceLevelList(final String resourceGroupName, final String workspaceName) {
+ ServiceResponse> response = workspaceLevelListSinglePageAsync(resourceGroupName, workspaceName).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return workspaceLevelListNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * List application group that user can use.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param workspaceName The name of the workspace
+ * @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> workspaceLevelListAsync(final String resourceGroupName, final String workspaceName, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ workspaceLevelListSinglePageAsync(resourceGroupName, workspaceName),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return workspaceLevelListNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * List application group that user can use.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param workspaceName The name of the workspace
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ApplicationGroupInner> object
+ */
+ public Observable> workspaceLevelListAsync(final String resourceGroupName, final String workspaceName) {
+ return workspaceLevelListWithServiceResponseAsync(resourceGroupName, workspaceName)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * List application group that user can use.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param workspaceName The name of the workspace
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ApplicationGroupInner> object
+ */
+ public Observable