diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/pom.xml b/sdk/hdinsight/mgmt-v2015_03_01_preview/pom.xml
new file mode 100644
index 0000000000000..b283c12bd7b89
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.hdinsight.v2015_03_01_preview
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-hdinsight
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for HDInsight Management
+ This package contains Microsoft HDInsight 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
+
+
+ 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/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Application.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Application.java
new file mode 100644
index 0000000000000..c904037705015
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Application.java
@@ -0,0 +1,176 @@
+/**
+ * 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.hdinsight.v2015_03_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.hdinsight.v2015_03_01_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.hdinsight.v2015_03_01_preview.implementation.HDInsightManager;
+import java.util.Map;
+
+/**
+ * Type representing Application.
+ */
+public interface Application extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the etag value.
+ */
+ String etag();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ ApplicationProperties properties();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Application definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithCluster, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Application definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Application definition.
+ */
+ interface Blank extends WithCluster {
+ }
+
+ /**
+ * The stage of the application definition allowing to specify Cluster.
+ */
+ interface WithCluster {
+ /**
+ * Specifies resourceGroupName, clusterName.
+ * @param resourceGroupName The name of the resource group
+ * @param clusterName The name of the cluster
+ * @return the next definition stage
+ */
+ WithCreate withExistingCluster(String resourceGroupName, String clusterName);
+ }
+
+ /**
+ * The stage of the application definition allowing to specify Etag.
+ */
+ interface WithEtag {
+ /**
+ * Specifies etag.
+ * @param etag The ETag for the application
+ * @return the next definition stage
+ */
+ WithCreate withEtag(String etag);
+ }
+
+ /**
+ * The stage of the application definition allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties The properties of the application
+ * @return the next definition stage
+ */
+ WithCreate withProperties(ApplicationProperties properties);
+ }
+
+ /**
+ * The stage of the application definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags The tags for the application
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * 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.WithEtag, DefinitionStages.WithProperties, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a Application update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithEtag, UpdateStages.WithProperties, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of Application update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the application update allowing to specify Etag.
+ */
+ interface WithEtag {
+ /**
+ * Specifies etag.
+ * @param etag The ETag for the application
+ * @return the next update stage
+ */
+ Update withEtag(String etag);
+ }
+
+ /**
+ * The stage of the application update allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties The properties of the application
+ * @return the next update stage
+ */
+ Update withProperties(ApplicationProperties properties);
+ }
+
+ /**
+ * The stage of the application update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags The tags for the application
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ }
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ApplicationGetEndpoint.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ApplicationGetEndpoint.java
new file mode 100644
index 0000000000000..30aad4561990c
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ApplicationGetEndpoint.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.hdinsight.v2015_03_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Gets the application SSH endpoint.
+ */
+public class ApplicationGetEndpoint {
+ /**
+ * The location of the endpoint.
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /**
+ * The destination port to connect to.
+ */
+ @JsonProperty(value = "destinationPort")
+ private Integer destinationPort;
+
+ /**
+ * The public port to connect to.
+ */
+ @JsonProperty(value = "publicPort")
+ private Integer publicPort;
+
+ /**
+ * Get the location of the endpoint.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the location of the endpoint.
+ *
+ * @param location the location value to set
+ * @return the ApplicationGetEndpoint object itself.
+ */
+ public ApplicationGetEndpoint withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the destination port to connect to.
+ *
+ * @return the destinationPort value
+ */
+ public Integer destinationPort() {
+ return this.destinationPort;
+ }
+
+ /**
+ * Set the destination port to connect to.
+ *
+ * @param destinationPort the destinationPort value to set
+ * @return the ApplicationGetEndpoint object itself.
+ */
+ public ApplicationGetEndpoint withDestinationPort(Integer destinationPort) {
+ this.destinationPort = destinationPort;
+ return this;
+ }
+
+ /**
+ * Get the public port to connect to.
+ *
+ * @return the publicPort value
+ */
+ public Integer publicPort() {
+ return this.publicPort;
+ }
+
+ /**
+ * Set the public port to connect to.
+ *
+ * @param publicPort the publicPort value to set
+ * @return the ApplicationGetEndpoint object itself.
+ */
+ public ApplicationGetEndpoint withPublicPort(Integer publicPort) {
+ this.publicPort = publicPort;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ApplicationGetHttpsEndpoint.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ApplicationGetHttpsEndpoint.java
new file mode 100644
index 0000000000000..2eae68130aa19
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ApplicationGetHttpsEndpoint.java
@@ -0,0 +1,174 @@
+/**
+ * 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.hdinsight.v2015_03_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Gets the application HTTP endpoints.
+ */
+public class ApplicationGetHttpsEndpoint {
+ /**
+ * The list of access modes for the application.
+ */
+ @JsonProperty(value = "accessModes")
+ private List accessModes;
+
+ /**
+ * The location of the endpoint.
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /**
+ * The destination port to connect to.
+ */
+ @JsonProperty(value = "destinationPort")
+ private Integer destinationPort;
+
+ /**
+ * The public port to connect to.
+ */
+ @JsonProperty(value = "publicPort")
+ private Integer publicPort;
+
+ /**
+ * The subdomain suffix of the application.
+ */
+ @JsonProperty(value = "subDomainSuffix")
+ private String subDomainSuffix;
+
+ /**
+ * Disable gateway authentication.
+ */
+ @JsonProperty(value = "disableGatewayAuth")
+ private Boolean disableGatewayAuth;
+
+ /**
+ * Get the list of access modes for the application.
+ *
+ * @return the accessModes value
+ */
+ public List accessModes() {
+ return this.accessModes;
+ }
+
+ /**
+ * Set the list of access modes for the application.
+ *
+ * @param accessModes the accessModes value to set
+ * @return the ApplicationGetHttpsEndpoint object itself.
+ */
+ public ApplicationGetHttpsEndpoint withAccessModes(List accessModes) {
+ this.accessModes = accessModes;
+ return this;
+ }
+
+ /**
+ * Get the location of the endpoint.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the location of the endpoint.
+ *
+ * @param location the location value to set
+ * @return the ApplicationGetHttpsEndpoint object itself.
+ */
+ public ApplicationGetHttpsEndpoint withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the destination port to connect to.
+ *
+ * @return the destinationPort value
+ */
+ public Integer destinationPort() {
+ return this.destinationPort;
+ }
+
+ /**
+ * Set the destination port to connect to.
+ *
+ * @param destinationPort the destinationPort value to set
+ * @return the ApplicationGetHttpsEndpoint object itself.
+ */
+ public ApplicationGetHttpsEndpoint withDestinationPort(Integer destinationPort) {
+ this.destinationPort = destinationPort;
+ return this;
+ }
+
+ /**
+ * Get the public port to connect to.
+ *
+ * @return the publicPort value
+ */
+ public Integer publicPort() {
+ return this.publicPort;
+ }
+
+ /**
+ * Set the public port to connect to.
+ *
+ * @param publicPort the publicPort value to set
+ * @return the ApplicationGetHttpsEndpoint object itself.
+ */
+ public ApplicationGetHttpsEndpoint withPublicPort(Integer publicPort) {
+ this.publicPort = publicPort;
+ return this;
+ }
+
+ /**
+ * Get the subdomain suffix of the application.
+ *
+ * @return the subDomainSuffix value
+ */
+ public String subDomainSuffix() {
+ return this.subDomainSuffix;
+ }
+
+ /**
+ * Set the subdomain suffix of the application.
+ *
+ * @param subDomainSuffix the subDomainSuffix value to set
+ * @return the ApplicationGetHttpsEndpoint object itself.
+ */
+ public ApplicationGetHttpsEndpoint withSubDomainSuffix(String subDomainSuffix) {
+ this.subDomainSuffix = subDomainSuffix;
+ return this;
+ }
+
+ /**
+ * Get disable gateway authentication.
+ *
+ * @return the disableGatewayAuth value
+ */
+ public Boolean disableGatewayAuth() {
+ return this.disableGatewayAuth;
+ }
+
+ /**
+ * Set disable gateway authentication.
+ *
+ * @param disableGatewayAuth the disableGatewayAuth value to set
+ * @return the ApplicationGetHttpsEndpoint object itself.
+ */
+ public ApplicationGetHttpsEndpoint withDisableGatewayAuth(Boolean disableGatewayAuth) {
+ this.disableGatewayAuth = disableGatewayAuth;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ApplicationProperties.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ApplicationProperties.java
new file mode 100644
index 0000000000000..d675073be9947
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ApplicationProperties.java
@@ -0,0 +1,260 @@
+/**
+ * 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.hdinsight.v2015_03_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The HDInsight cluster application GET response.
+ */
+public class ApplicationProperties {
+ /**
+ * The list of roles in the cluster.
+ */
+ @JsonProperty(value = "computeProfile")
+ private ComputeProfile computeProfile;
+
+ /**
+ * The list of install script actions.
+ */
+ @JsonProperty(value = "installScriptActions")
+ private List installScriptActions;
+
+ /**
+ * The list of uninstall script actions.
+ */
+ @JsonProperty(value = "uninstallScriptActions")
+ private List uninstallScriptActions;
+
+ /**
+ * The list of application HTTPS endpoints.
+ */
+ @JsonProperty(value = "httpsEndpoints")
+ private List httpsEndpoints;
+
+ /**
+ * The list of application SSH endpoints.
+ */
+ @JsonProperty(value = "sshEndpoints")
+ private List sshEndpoints;
+
+ /**
+ * The provisioning state of the application.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * The application type.
+ */
+ @JsonProperty(value = "applicationType")
+ private String applicationType;
+
+ /**
+ * The application state.
+ */
+ @JsonProperty(value = "applicationState", access = JsonProperty.Access.WRITE_ONLY)
+ private String applicationState;
+
+ /**
+ * The list of errors.
+ */
+ @JsonProperty(value = "errors")
+ private List errors;
+
+ /**
+ * The application create date time.
+ */
+ @JsonProperty(value = "createdDate", access = JsonProperty.Access.WRITE_ONLY)
+ private String createdDate;
+
+ /**
+ * The marketplace identifier.
+ */
+ @JsonProperty(value = "marketplaceIdentifier", access = JsonProperty.Access.WRITE_ONLY)
+ private String marketplaceIdentifier;
+
+ /**
+ * Get the list of roles in the cluster.
+ *
+ * @return the computeProfile value
+ */
+ public ComputeProfile computeProfile() {
+ return this.computeProfile;
+ }
+
+ /**
+ * Set the list of roles in the cluster.
+ *
+ * @param computeProfile the computeProfile value to set
+ * @return the ApplicationProperties object itself.
+ */
+ public ApplicationProperties withComputeProfile(ComputeProfile computeProfile) {
+ this.computeProfile = computeProfile;
+ return this;
+ }
+
+ /**
+ * Get the list of install script actions.
+ *
+ * @return the installScriptActions value
+ */
+ public List installScriptActions() {
+ return this.installScriptActions;
+ }
+
+ /**
+ * Set the list of install script actions.
+ *
+ * @param installScriptActions the installScriptActions value to set
+ * @return the ApplicationProperties object itself.
+ */
+ public ApplicationProperties withInstallScriptActions(List installScriptActions) {
+ this.installScriptActions = installScriptActions;
+ return this;
+ }
+
+ /**
+ * Get the list of uninstall script actions.
+ *
+ * @return the uninstallScriptActions value
+ */
+ public List uninstallScriptActions() {
+ return this.uninstallScriptActions;
+ }
+
+ /**
+ * Set the list of uninstall script actions.
+ *
+ * @param uninstallScriptActions the uninstallScriptActions value to set
+ * @return the ApplicationProperties object itself.
+ */
+ public ApplicationProperties withUninstallScriptActions(List uninstallScriptActions) {
+ this.uninstallScriptActions = uninstallScriptActions;
+ return this;
+ }
+
+ /**
+ * Get the list of application HTTPS endpoints.
+ *
+ * @return the httpsEndpoints value
+ */
+ public List httpsEndpoints() {
+ return this.httpsEndpoints;
+ }
+
+ /**
+ * Set the list of application HTTPS endpoints.
+ *
+ * @param httpsEndpoints the httpsEndpoints value to set
+ * @return the ApplicationProperties object itself.
+ */
+ public ApplicationProperties withHttpsEndpoints(List httpsEndpoints) {
+ this.httpsEndpoints = httpsEndpoints;
+ return this;
+ }
+
+ /**
+ * Get the list of application SSH endpoints.
+ *
+ * @return the sshEndpoints value
+ */
+ public List sshEndpoints() {
+ return this.sshEndpoints;
+ }
+
+ /**
+ * Set the list of application SSH endpoints.
+ *
+ * @param sshEndpoints the sshEndpoints value to set
+ * @return the ApplicationProperties object itself.
+ */
+ public ApplicationProperties withSshEndpoints(List sshEndpoints) {
+ this.sshEndpoints = sshEndpoints;
+ return this;
+ }
+
+ /**
+ * Get the provisioning state of the application.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the application type.
+ *
+ * @return the applicationType value
+ */
+ public String applicationType() {
+ return this.applicationType;
+ }
+
+ /**
+ * Set the application type.
+ *
+ * @param applicationType the applicationType value to set
+ * @return the ApplicationProperties object itself.
+ */
+ public ApplicationProperties withApplicationType(String applicationType) {
+ this.applicationType = applicationType;
+ return this;
+ }
+
+ /**
+ * Get the application state.
+ *
+ * @return the applicationState value
+ */
+ public String applicationState() {
+ return this.applicationState;
+ }
+
+ /**
+ * Get the list of errors.
+ *
+ * @return the errors value
+ */
+ public List errors() {
+ return this.errors;
+ }
+
+ /**
+ * Set the list of errors.
+ *
+ * @param errors the errors value to set
+ * @return the ApplicationProperties object itself.
+ */
+ public ApplicationProperties withErrors(List errors) {
+ this.errors = errors;
+ return this;
+ }
+
+ /**
+ * Get the application create date time.
+ *
+ * @return the createdDate value
+ */
+ public String createdDate() {
+ return this.createdDate;
+ }
+
+ /**
+ * Get the marketplace identifier.
+ *
+ * @return the marketplaceIdentifier value
+ */
+ public String marketplaceIdentifier() {
+ return this.marketplaceIdentifier;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Applications.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Applications.java
new file mode 100644
index 0000000000000..cd4e43545737b
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_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.hdinsight.v2015_03_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.hdinsight.v2015_03_01_preview.implementation.ApplicationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Applications.
+ */
+public interface Applications extends SupportsCreating, HasInner {
+ /**
+ * Lists properties of the specified application.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param clusterName The name of the cluster.
+ * @param applicationName The constant value for the application name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String clusterName, String applicationName);
+
+ /**
+ * Lists all of the applications for the HDInsight cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param clusterName The name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String clusterName);
+
+ /**
+ * Deletes the specified application on the HDInsight cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param clusterName The name of the cluster.
+ * @param applicationName The constant value for the application name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String clusterName, String applicationName);
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AsyncOperationState.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AsyncOperationState.java
new file mode 100644
index 0000000000000..b4114684d7be9
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AsyncOperationState.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.hdinsight.v2015_03_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for AsyncOperationState.
+ */
+public enum AsyncOperationState {
+ /** Enum value InProgress. */
+ IN_PROGRESS("InProgress"),
+
+ /** Enum value Succeeded. */
+ SUCCEEDED("Succeeded"),
+
+ /** Enum value Failed. */
+ FAILED("Failed");
+
+ /** The actual serialized value for a AsyncOperationState instance. */
+ private String value;
+
+ AsyncOperationState(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a AsyncOperationState instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed AsyncOperationState object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static AsyncOperationState fromString(String value) {
+ AsyncOperationState[] items = AsyncOperationState.values();
+ for (AsyncOperationState item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Autoscale.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Autoscale.java
new file mode 100644
index 0000000000000..9b158937804ae
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Autoscale.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.hdinsight.v2015_03_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The autoscale request parameters.
+ */
+public class Autoscale {
+ /**
+ * Parameters for load-based autoscale.
+ */
+ @JsonProperty(value = "capacity")
+ private AutoscaleCapacity capacity;
+
+ /**
+ * Parameters for schedule-based autoscale.
+ */
+ @JsonProperty(value = "recurrence")
+ private AutoscaleRecurrence recurrence;
+
+ /**
+ * Get parameters for load-based autoscale.
+ *
+ * @return the capacity value
+ */
+ public AutoscaleCapacity capacity() {
+ return this.capacity;
+ }
+
+ /**
+ * Set parameters for load-based autoscale.
+ *
+ * @param capacity the capacity value to set
+ * @return the Autoscale object itself.
+ */
+ public Autoscale withCapacity(AutoscaleCapacity capacity) {
+ this.capacity = capacity;
+ return this;
+ }
+
+ /**
+ * Get parameters for schedule-based autoscale.
+ *
+ * @return the recurrence value
+ */
+ public AutoscaleRecurrence recurrence() {
+ return this.recurrence;
+ }
+
+ /**
+ * Set parameters for schedule-based autoscale.
+ *
+ * @param recurrence the recurrence value to set
+ * @return the Autoscale object itself.
+ */
+ public Autoscale withRecurrence(AutoscaleRecurrence recurrence) {
+ this.recurrence = recurrence;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleCapacity.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleCapacity.java
new file mode 100644
index 0000000000000..8249388ec3454
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleCapacity.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.hdinsight.v2015_03_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The load-based autoscale request parameters.
+ */
+public class AutoscaleCapacity {
+ /**
+ * The minimum instance count of the cluster.
+ */
+ @JsonProperty(value = "minInstanceCount")
+ private Integer minInstanceCount;
+
+ /**
+ * The maximum instance count of the cluster.
+ */
+ @JsonProperty(value = "maxInstanceCount")
+ private Integer maxInstanceCount;
+
+ /**
+ * Get the minimum instance count of the cluster.
+ *
+ * @return the minInstanceCount value
+ */
+ public Integer minInstanceCount() {
+ return this.minInstanceCount;
+ }
+
+ /**
+ * Set the minimum instance count of the cluster.
+ *
+ * @param minInstanceCount the minInstanceCount value to set
+ * @return the AutoscaleCapacity object itself.
+ */
+ public AutoscaleCapacity withMinInstanceCount(Integer minInstanceCount) {
+ this.minInstanceCount = minInstanceCount;
+ return this;
+ }
+
+ /**
+ * Get the maximum instance count of the cluster.
+ *
+ * @return the maxInstanceCount value
+ */
+ public Integer maxInstanceCount() {
+ return this.maxInstanceCount;
+ }
+
+ /**
+ * Set the maximum instance count of the cluster.
+ *
+ * @param maxInstanceCount the maxInstanceCount value to set
+ * @return the AutoscaleCapacity object itself.
+ */
+ public AutoscaleCapacity withMaxInstanceCount(Integer maxInstanceCount) {
+ this.maxInstanceCount = maxInstanceCount;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleConfigurationUpdateParameter.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleConfigurationUpdateParameter.java
new file mode 100644
index 0000000000000..173731a5a4b28
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleConfigurationUpdateParameter.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.hdinsight.v2015_03_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The autoscale configuration update parameter.
+ */
+public class AutoscaleConfigurationUpdateParameter {
+ /**
+ * The autoscale configuration.
+ */
+ @JsonProperty(value = "autoscale")
+ private Autoscale autoscale;
+
+ /**
+ * Get the autoscale configuration.
+ *
+ * @return the autoscale value
+ */
+ public Autoscale autoscale() {
+ return this.autoscale;
+ }
+
+ /**
+ * Set the autoscale configuration.
+ *
+ * @param autoscale the autoscale value to set
+ * @return the AutoscaleConfigurationUpdateParameter object itself.
+ */
+ public AutoscaleConfigurationUpdateParameter withAutoscale(Autoscale autoscale) {
+ this.autoscale = autoscale;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleRecurrence.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleRecurrence.java
new file mode 100644
index 0000000000000..42d0c231fe2aa
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleRecurrence.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.hdinsight.v2015_03_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Schedule-based autoscale request parameters.
+ */
+public class AutoscaleRecurrence {
+ /**
+ * The time zone for the autoscale schedule times.
+ */
+ @JsonProperty(value = "timeZone")
+ private String timeZone;
+
+ /**
+ * Array of schedule-based autoscale rules.
+ */
+ @JsonProperty(value = "schedule")
+ private List schedule;
+
+ /**
+ * Get the time zone for the autoscale schedule times.
+ *
+ * @return the timeZone value
+ */
+ public String timeZone() {
+ return this.timeZone;
+ }
+
+ /**
+ * Set the time zone for the autoscale schedule times.
+ *
+ * @param timeZone the timeZone value to set
+ * @return the AutoscaleRecurrence object itself.
+ */
+ public AutoscaleRecurrence withTimeZone(String timeZone) {
+ this.timeZone = timeZone;
+ return this;
+ }
+
+ /**
+ * Get array of schedule-based autoscale rules.
+ *
+ * @return the schedule value
+ */
+ public List schedule() {
+ return this.schedule;
+ }
+
+ /**
+ * Set array of schedule-based autoscale rules.
+ *
+ * @param schedule the schedule value to set
+ * @return the AutoscaleRecurrence object itself.
+ */
+ public AutoscaleRecurrence withSchedule(List schedule) {
+ this.schedule = schedule;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleSchedule.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleSchedule.java
new file mode 100644
index 0000000000000..fe8d2e3966bcb
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleSchedule.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.hdinsight.v2015_03_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Parameters for a schedule-based autoscale rule, consisting of an array of
+ * days + a time and capacity.
+ */
+public class AutoscaleSchedule {
+ /**
+ * Days of the week for a schedule-based autoscale rule.
+ */
+ @JsonProperty(value = "days")
+ private List days;
+
+ /**
+ * Time and capacity for a schedule-based autoscale rule.
+ */
+ @JsonProperty(value = "timeAndCapacity")
+ private AutoscaleTimeAndCapacity timeAndCapacity;
+
+ /**
+ * Get days of the week for a schedule-based autoscale rule.
+ *
+ * @return the days value
+ */
+ public List days() {
+ return this.days;
+ }
+
+ /**
+ * Set days of the week for a schedule-based autoscale rule.
+ *
+ * @param days the days value to set
+ * @return the AutoscaleSchedule object itself.
+ */
+ public AutoscaleSchedule withDays(List days) {
+ this.days = days;
+ return this;
+ }
+
+ /**
+ * Get time and capacity for a schedule-based autoscale rule.
+ *
+ * @return the timeAndCapacity value
+ */
+ public AutoscaleTimeAndCapacity timeAndCapacity() {
+ return this.timeAndCapacity;
+ }
+
+ /**
+ * Set time and capacity for a schedule-based autoscale rule.
+ *
+ * @param timeAndCapacity the timeAndCapacity value to set
+ * @return the AutoscaleSchedule object itself.
+ */
+ public AutoscaleSchedule withTimeAndCapacity(AutoscaleTimeAndCapacity timeAndCapacity) {
+ this.timeAndCapacity = timeAndCapacity;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleTimeAndCapacity.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleTimeAndCapacity.java
new file mode 100644
index 0000000000000..70f42740330d0
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/AutoscaleTimeAndCapacity.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.hdinsight.v2015_03_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Time and capacity request parameters.
+ */
+public class AutoscaleTimeAndCapacity {
+ /**
+ * 24-hour time in the form xx:xx.
+ */
+ @JsonProperty(value = "time")
+ private String time;
+
+ /**
+ * The minimum instance count of the cluster.
+ */
+ @JsonProperty(value = "minInstanceCount")
+ private Integer minInstanceCount;
+
+ /**
+ * The maximum instance count of the cluster.
+ */
+ @JsonProperty(value = "maxInstanceCount")
+ private Integer maxInstanceCount;
+
+ /**
+ * Get 24-hour time in the form xx:xx.
+ *
+ * @return the time value
+ */
+ public String time() {
+ return this.time;
+ }
+
+ /**
+ * Set 24-hour time in the form xx:xx.
+ *
+ * @param time the time value to set
+ * @return the AutoscaleTimeAndCapacity object itself.
+ */
+ public AutoscaleTimeAndCapacity withTime(String time) {
+ this.time = time;
+ return this;
+ }
+
+ /**
+ * Get the minimum instance count of the cluster.
+ *
+ * @return the minInstanceCount value
+ */
+ public Integer minInstanceCount() {
+ return this.minInstanceCount;
+ }
+
+ /**
+ * Set the minimum instance count of the cluster.
+ *
+ * @param minInstanceCount the minInstanceCount value to set
+ * @return the AutoscaleTimeAndCapacity object itself.
+ */
+ public AutoscaleTimeAndCapacity withMinInstanceCount(Integer minInstanceCount) {
+ this.minInstanceCount = minInstanceCount;
+ return this;
+ }
+
+ /**
+ * Get the maximum instance count of the cluster.
+ *
+ * @return the maxInstanceCount value
+ */
+ public Integer maxInstanceCount() {
+ return this.maxInstanceCount;
+ }
+
+ /**
+ * Set the maximum instance count of the cluster.
+ *
+ * @param maxInstanceCount the maxInstanceCount value to set
+ * @return the AutoscaleTimeAndCapacity object itself.
+ */
+ public AutoscaleTimeAndCapacity withMaxInstanceCount(Integer maxInstanceCount) {
+ this.maxInstanceCount = maxInstanceCount;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/BillingMeters.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/BillingMeters.java
new file mode 100644
index 0000000000000..9542b815b015d
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/BillingMeters.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.hdinsight.v2015_03_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The billing meters.
+ */
+public class BillingMeters {
+ /**
+ * The virtual machine sizes.
+ */
+ @JsonProperty(value = "meterParameter")
+ private String meterParameter;
+
+ /**
+ * The HDInsight meter guid.
+ */
+ @JsonProperty(value = "meter")
+ private String meter;
+
+ /**
+ * The unit of meter, VMHours or CoreHours.
+ */
+ @JsonProperty(value = "unit")
+ private String unit;
+
+ /**
+ * Get the virtual machine sizes.
+ *
+ * @return the meterParameter value
+ */
+ public String meterParameter() {
+ return this.meterParameter;
+ }
+
+ /**
+ * Set the virtual machine sizes.
+ *
+ * @param meterParameter the meterParameter value to set
+ * @return the BillingMeters object itself.
+ */
+ public BillingMeters withMeterParameter(String meterParameter) {
+ this.meterParameter = meterParameter;
+ return this;
+ }
+
+ /**
+ * Get the HDInsight meter guid.
+ *
+ * @return the meter value
+ */
+ public String meter() {
+ return this.meter;
+ }
+
+ /**
+ * Set the HDInsight meter guid.
+ *
+ * @param meter the meter value to set
+ * @return the BillingMeters object itself.
+ */
+ public BillingMeters withMeter(String meter) {
+ this.meter = meter;
+ return this;
+ }
+
+ /**
+ * Get the unit of meter, VMHours or CoreHours.
+ *
+ * @return the unit value
+ */
+ public String unit() {
+ return this.unit;
+ }
+
+ /**
+ * Set the unit of meter, VMHours or CoreHours.
+ *
+ * @param unit the unit value to set
+ * @return the BillingMeters object itself.
+ */
+ public BillingMeters withUnit(String unit) {
+ this.unit = unit;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/BillingResources.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/BillingResources.java
new file mode 100644
index 0000000000000..7ce9bd009b413
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/BillingResources.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.hdinsight.v2015_03_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The billing resources.
+ */
+public class BillingResources {
+ /**
+ * The region or location.
+ */
+ @JsonProperty(value = "region")
+ private String region;
+
+ /**
+ * The billing meter information.
+ */
+ @JsonProperty(value = "billingMeters")
+ private List billingMeters;
+
+ /**
+ * The managed disk billing information.
+ */
+ @JsonProperty(value = "diskBillingMeters")
+ private List diskBillingMeters;
+
+ /**
+ * Get the region or location.
+ *
+ * @return the region value
+ */
+ public String region() {
+ return this.region;
+ }
+
+ /**
+ * Set the region or location.
+ *
+ * @param region the region value to set
+ * @return the BillingResources object itself.
+ */
+ public BillingResources withRegion(String region) {
+ this.region = region;
+ return this;
+ }
+
+ /**
+ * Get the billing meter information.
+ *
+ * @return the billingMeters value
+ */
+ public List billingMeters() {
+ return this.billingMeters;
+ }
+
+ /**
+ * Set the billing meter information.
+ *
+ * @param billingMeters the billingMeters value to set
+ * @return the BillingResources object itself.
+ */
+ public BillingResources withBillingMeters(List billingMeters) {
+ this.billingMeters = billingMeters;
+ return this;
+ }
+
+ /**
+ * Get the managed disk billing information.
+ *
+ * @return the diskBillingMeters value
+ */
+ public List diskBillingMeters() {
+ return this.diskBillingMeters;
+ }
+
+ /**
+ * Set the managed disk billing information.
+ *
+ * @param diskBillingMeters the diskBillingMeters value to set
+ * @return the BillingResources object itself.
+ */
+ public BillingResources withDiskBillingMeters(List diskBillingMeters) {
+ this.diskBillingMeters = diskBillingMeters;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/BillingResponseListResult.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/BillingResponseListResult.java
new file mode 100644
index 0000000000000..42cca81077afd
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/BillingResponseListResult.java
@@ -0,0 +1,36 @@
+/**
+ * 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.hdinsight.v2015_03_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.hdinsight.v2015_03_01_preview.implementation.HDInsightManager;
+import com.microsoft.azure.management.hdinsight.v2015_03_01_preview.implementation.BillingResponseListResultInner;
+import java.util.List;
+
+/**
+ * Type representing BillingResponseListResult.
+ */
+public interface BillingResponseListResult extends HasInner, HasManager {
+ /**
+ * @return the billingResources value.
+ */
+ List billingResources();
+
+ /**
+ * @return the vmSizeFilters value.
+ */
+ List vmSizeFilters();
+
+ /**
+ * @return the vmSizes value.
+ */
+ List vmSizes();
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/CapabilitiesResult.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/CapabilitiesResult.java
new file mode 100644
index 0000000000000..30af6b8ba26f5
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/CapabilitiesResult.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.hdinsight.v2015_03_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.hdinsight.v2015_03_01_preview.implementation.HDInsightManager;
+import com.microsoft.azure.management.hdinsight.v2015_03_01_preview.implementation.CapabilitiesResultInner;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Type representing CapabilitiesResult.
+ */
+public interface CapabilitiesResult extends HasInner, HasManager {
+ /**
+ * @return the features value.
+ */
+ List features();
+
+ /**
+ * @return the quota value.
+ */
+ QuotaCapability quota();
+
+ /**
+ * @return the regions value.
+ */
+ Map regions();
+
+ /**
+ * @return the versions value.
+ */
+ Map versions();
+
+ /**
+ * @return the vmSizeFilters value.
+ */
+ List vmSizeFilters();
+
+ /**
+ * @return the vmSizes value.
+ */
+ Map vmSizes();
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClientGroupInfo.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClientGroupInfo.java
new file mode 100644
index 0000000000000..cebbed17fbad6
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClientGroupInfo.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.hdinsight.v2015_03_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The information of AAD security group.
+ */
+public class ClientGroupInfo {
+ /**
+ * The AAD security group name.
+ */
+ @JsonProperty(value = "groupName")
+ private String groupName;
+
+ /**
+ * The AAD security group id.
+ */
+ @JsonProperty(value = "groupId")
+ private String groupId;
+
+ /**
+ * Get the AAD security group name.
+ *
+ * @return the groupName value
+ */
+ public String groupName() {
+ return this.groupName;
+ }
+
+ /**
+ * Set the AAD security group name.
+ *
+ * @param groupName the groupName value to set
+ * @return the ClientGroupInfo object itself.
+ */
+ public ClientGroupInfo withGroupName(String groupName) {
+ this.groupName = groupName;
+ return this;
+ }
+
+ /**
+ * Get the AAD security group id.
+ *
+ * @return the groupId value
+ */
+ public String groupId() {
+ return this.groupId;
+ }
+
+ /**
+ * Set the AAD security group id.
+ *
+ * @param groupId the groupId value to set
+ * @return the ClientGroupInfo object itself.
+ */
+ public ClientGroupInfo withGroupId(String groupId) {
+ this.groupId = groupId;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Cluster.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Cluster.java
new file mode 100644
index 0000000000000..5e6b0d066dad1
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Cluster.java
@@ -0,0 +1,131 @@
+/**
+ * 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.hdinsight.v2015_03_01_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.hdinsight.v2015_03_01_preview.implementation.HDInsightManager;
+import com.microsoft.azure.management.hdinsight.v2015_03_01_preview.implementation.ClusterInner;
+
+/**
+ * Type representing Cluster.
+ */
+public interface Cluster extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the etag value.
+ */
+ String etag();
+
+ /**
+ * @return the identity value.
+ */
+ ClusterIdentity identity();
+
+ /**
+ * @return the properties value.
+ */
+ ClusterGetProperties properties();
+
+ /**
+ * The entirety of the Cluster definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Cluster definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Cluster definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the Cluster definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify Identity.
+ */
+ interface WithIdentity {
+ /**
+ * Specifies identity.
+ * @param identity The identity of the cluster, if configured
+ * @return the next definition stage
+ */
+ WithCreate withIdentity(ClusterIdentity identity);
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties The cluster create parameters
+ * @return the next definition stage
+ */
+ WithCreate withProperties(ClusterCreateProperties properties);
+ }
+
+ /**
+ * 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.WithIdentity, DefinitionStages.WithProperties {
+ }
+ }
+ /**
+ * The template for a Cluster update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithIdentity, UpdateStages.WithProperties {
+ }
+
+ /**
+ * Grouping of Cluster update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the cluster update allowing to specify Identity.
+ */
+ interface WithIdentity {
+ /**
+ * Specifies identity.
+ * @param identity The identity of the cluster, if configured
+ * @return the next update stage
+ */
+ Update withIdentity(ClusterIdentity identity);
+ }
+
+ /**
+ * The stage of the cluster update allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties The cluster create parameters
+ * @return the next update stage
+ */
+ Update withProperties(ClusterCreateProperties properties);
+ }
+
+ }
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterConfigurations.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterConfigurations.java
new file mode 100644
index 0000000000000..c7ea11c60ba22
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterConfigurations.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.hdinsight.v2015_03_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.hdinsight.v2015_03_01_preview.implementation.HDInsightManager;
+import com.microsoft.azure.management.hdinsight.v2015_03_01_preview.implementation.ClusterConfigurationsInner;
+import java.util.Map;
+
+/**
+ * Type representing ClusterConfigurations.
+ */
+public interface ClusterConfigurations extends HasInner, HasManager {
+ /**
+ * @return the configurations value.
+ */
+ Map> configurations();
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterCreateParametersExtended.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterCreateParametersExtended.java
new file mode 100644
index 0000000000000..9adf04bfadc49
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterCreateParametersExtended.java
@@ -0,0 +1,122 @@
+/**
+ * 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.hdinsight.v2015_03_01_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The CreateCluster request parameters.
+ */
+public class ClusterCreateParametersExtended {
+ /**
+ * The location of the cluster.
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /**
+ * The resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * The cluster create parameters.
+ */
+ @JsonProperty(value = "properties")
+ private ClusterCreateProperties properties;
+
+ /**
+ * The identity of the cluster, if configured.
+ */
+ @JsonProperty(value = "identity")
+ private ClusterIdentity identity;
+
+ /**
+ * Get the location of the cluster.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the location of the cluster.
+ *
+ * @param location the location value to set
+ * @return the ClusterCreateParametersExtended object itself.
+ */
+ public ClusterCreateParametersExtended withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the resource tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the resource tags.
+ *
+ * @param tags the tags value to set
+ * @return the ClusterCreateParametersExtended object itself.
+ */
+ public ClusterCreateParametersExtended withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the cluster create parameters.
+ *
+ * @return the properties value
+ */
+ public ClusterCreateProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the cluster create parameters.
+ *
+ * @param properties the properties value to set
+ * @return the ClusterCreateParametersExtended object itself.
+ */
+ public ClusterCreateParametersExtended withProperties(ClusterCreateProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the identity of the cluster, if configured.
+ *
+ * @return the identity value
+ */
+ public ClusterIdentity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity of the cluster, if configured.
+ *
+ * @param identity the identity value to set
+ * @return the ClusterCreateParametersExtended object itself.
+ */
+ public ClusterCreateParametersExtended withIdentity(ClusterIdentity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterCreateProperties.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterCreateProperties.java
new file mode 100644
index 0000000000000..5f5ff668c00c1
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterCreateProperties.java
@@ -0,0 +1,330 @@
+/**
+ * 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.hdinsight.v2015_03_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The cluster create parameters.
+ */
+public class ClusterCreateProperties {
+ /**
+ * The version of the cluster.
+ */
+ @JsonProperty(value = "clusterVersion")
+ private String clusterVersion;
+
+ /**
+ * The type of operating system. Possible values include: 'Windows',
+ * 'Linux'.
+ */
+ @JsonProperty(value = "osType")
+ private OSType osType;
+
+ /**
+ * The cluster tier. Possible values include: 'Standard', 'Premium'.
+ */
+ @JsonProperty(value = "tier")
+ private Tier tier;
+
+ /**
+ * The cluster definition.
+ */
+ @JsonProperty(value = "clusterDefinition")
+ private ClusterDefinition clusterDefinition;
+
+ /**
+ * The cluster kafka rest proxy configuration.
+ */
+ @JsonProperty(value = "kafkaRestProperties")
+ private KafkaRestProperties kafkaRestProperties;
+
+ /**
+ * The security profile.
+ */
+ @JsonProperty(value = "securityProfile")
+ private SecurityProfile securityProfile;
+
+ /**
+ * The compute profile.
+ */
+ @JsonProperty(value = "computeProfile")
+ private ComputeProfile computeProfile;
+
+ /**
+ * The storage profile.
+ */
+ @JsonProperty(value = "storageProfile")
+ private StorageProfile storageProfile;
+
+ /**
+ * The disk encryption properties.
+ */
+ @JsonProperty(value = "diskEncryptionProperties")
+ private DiskEncryptionProperties diskEncryptionProperties;
+
+ /**
+ * The encryption-in-transit properties.
+ */
+ @JsonProperty(value = "encryptionInTransitProperties")
+ private EncryptionInTransitProperties encryptionInTransitProperties;
+
+ /**
+ * The minimal supported tls version.
+ */
+ @JsonProperty(value = "minSupportedTlsVersion")
+ private String minSupportedTlsVersion;
+
+ /**
+ * The network settings.
+ */
+ @JsonProperty(value = "networkSettings")
+ private NetworkSettings networkSettings;
+
+ /**
+ * Get the version of the cluster.
+ *
+ * @return the clusterVersion value
+ */
+ public String clusterVersion() {
+ return this.clusterVersion;
+ }
+
+ /**
+ * Set the version of the cluster.
+ *
+ * @param clusterVersion the clusterVersion value to set
+ * @return the ClusterCreateProperties object itself.
+ */
+ public ClusterCreateProperties withClusterVersion(String clusterVersion) {
+ this.clusterVersion = clusterVersion;
+ return this;
+ }
+
+ /**
+ * Get the type of operating system. Possible values include: 'Windows', 'Linux'.
+ *
+ * @return the osType value
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the type of operating system. Possible values include: 'Windows', 'Linux'.
+ *
+ * @param osType the osType value to set
+ * @return the ClusterCreateProperties object itself.
+ */
+ public ClusterCreateProperties withOsType(OSType osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get the cluster tier. Possible values include: 'Standard', 'Premium'.
+ *
+ * @return the tier value
+ */
+ public Tier tier() {
+ return this.tier;
+ }
+
+ /**
+ * Set the cluster tier. Possible values include: 'Standard', 'Premium'.
+ *
+ * @param tier the tier value to set
+ * @return the ClusterCreateProperties object itself.
+ */
+ public ClusterCreateProperties withTier(Tier tier) {
+ this.tier = tier;
+ return this;
+ }
+
+ /**
+ * Get the cluster definition.
+ *
+ * @return the clusterDefinition value
+ */
+ public ClusterDefinition clusterDefinition() {
+ return this.clusterDefinition;
+ }
+
+ /**
+ * Set the cluster definition.
+ *
+ * @param clusterDefinition the clusterDefinition value to set
+ * @return the ClusterCreateProperties object itself.
+ */
+ public ClusterCreateProperties withClusterDefinition(ClusterDefinition clusterDefinition) {
+ this.clusterDefinition = clusterDefinition;
+ return this;
+ }
+
+ /**
+ * Get the cluster kafka rest proxy configuration.
+ *
+ * @return the kafkaRestProperties value
+ */
+ public KafkaRestProperties kafkaRestProperties() {
+ return this.kafkaRestProperties;
+ }
+
+ /**
+ * Set the cluster kafka rest proxy configuration.
+ *
+ * @param kafkaRestProperties the kafkaRestProperties value to set
+ * @return the ClusterCreateProperties object itself.
+ */
+ public ClusterCreateProperties withKafkaRestProperties(KafkaRestProperties kafkaRestProperties) {
+ this.kafkaRestProperties = kafkaRestProperties;
+ return this;
+ }
+
+ /**
+ * Get the security profile.
+ *
+ * @return the securityProfile value
+ */
+ public SecurityProfile securityProfile() {
+ return this.securityProfile;
+ }
+
+ /**
+ * Set the security profile.
+ *
+ * @param securityProfile the securityProfile value to set
+ * @return the ClusterCreateProperties object itself.
+ */
+ public ClusterCreateProperties withSecurityProfile(SecurityProfile securityProfile) {
+ this.securityProfile = securityProfile;
+ return this;
+ }
+
+ /**
+ * Get the compute profile.
+ *
+ * @return the computeProfile value
+ */
+ public ComputeProfile computeProfile() {
+ return this.computeProfile;
+ }
+
+ /**
+ * Set the compute profile.
+ *
+ * @param computeProfile the computeProfile value to set
+ * @return the ClusterCreateProperties object itself.
+ */
+ public ClusterCreateProperties withComputeProfile(ComputeProfile computeProfile) {
+ this.computeProfile = computeProfile;
+ return this;
+ }
+
+ /**
+ * Get the storage profile.
+ *
+ * @return the storageProfile value
+ */
+ public StorageProfile storageProfile() {
+ return this.storageProfile;
+ }
+
+ /**
+ * Set the storage profile.
+ *
+ * @param storageProfile the storageProfile value to set
+ * @return the ClusterCreateProperties object itself.
+ */
+ public ClusterCreateProperties withStorageProfile(StorageProfile storageProfile) {
+ this.storageProfile = storageProfile;
+ return this;
+ }
+
+ /**
+ * Get the disk encryption properties.
+ *
+ * @return the diskEncryptionProperties value
+ */
+ public DiskEncryptionProperties diskEncryptionProperties() {
+ return this.diskEncryptionProperties;
+ }
+
+ /**
+ * Set the disk encryption properties.
+ *
+ * @param diskEncryptionProperties the diskEncryptionProperties value to set
+ * @return the ClusterCreateProperties object itself.
+ */
+ public ClusterCreateProperties withDiskEncryptionProperties(DiskEncryptionProperties diskEncryptionProperties) {
+ this.diskEncryptionProperties = diskEncryptionProperties;
+ return this;
+ }
+
+ /**
+ * Get the encryption-in-transit properties.
+ *
+ * @return the encryptionInTransitProperties value
+ */
+ public EncryptionInTransitProperties encryptionInTransitProperties() {
+ return this.encryptionInTransitProperties;
+ }
+
+ /**
+ * Set the encryption-in-transit properties.
+ *
+ * @param encryptionInTransitProperties the encryptionInTransitProperties value to set
+ * @return the ClusterCreateProperties object itself.
+ */
+ public ClusterCreateProperties withEncryptionInTransitProperties(EncryptionInTransitProperties encryptionInTransitProperties) {
+ this.encryptionInTransitProperties = encryptionInTransitProperties;
+ return this;
+ }
+
+ /**
+ * Get the minimal supported tls version.
+ *
+ * @return the minSupportedTlsVersion value
+ */
+ public String minSupportedTlsVersion() {
+ return this.minSupportedTlsVersion;
+ }
+
+ /**
+ * Set the minimal supported tls version.
+ *
+ * @param minSupportedTlsVersion the minSupportedTlsVersion value to set
+ * @return the ClusterCreateProperties object itself.
+ */
+ public ClusterCreateProperties withMinSupportedTlsVersion(String minSupportedTlsVersion) {
+ this.minSupportedTlsVersion = minSupportedTlsVersion;
+ return this;
+ }
+
+ /**
+ * Get the network settings.
+ *
+ * @return the networkSettings value
+ */
+ public NetworkSettings networkSettings() {
+ return this.networkSettings;
+ }
+
+ /**
+ * Set the network settings.
+ *
+ * @param networkSettings the networkSettings value to set
+ * @return the ClusterCreateProperties object itself.
+ */
+ public ClusterCreateProperties withNetworkSettings(NetworkSettings networkSettings) {
+ this.networkSettings = networkSettings;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterDefinition.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterDefinition.java
new file mode 100644
index 0000000000000..33fff49e4d75a
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterDefinition.java
@@ -0,0 +1,122 @@
+/**
+ * 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.hdinsight.v2015_03_01_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The cluster definition.
+ */
+public class ClusterDefinition {
+ /**
+ * The link to the blueprint.
+ */
+ @JsonProperty(value = "blueprint")
+ private String blueprint;
+
+ /**
+ * The type of cluster.
+ */
+ @JsonProperty(value = "kind")
+ private String kind;
+
+ /**
+ * The versions of different services in the cluster.
+ */
+ @JsonProperty(value = "componentVersion")
+ private Map componentVersion;
+
+ /**
+ * The cluster configurations.
+ */
+ @JsonProperty(value = "configurations")
+ private Object configurations;
+
+ /**
+ * Get the link to the blueprint.
+ *
+ * @return the blueprint value
+ */
+ public String blueprint() {
+ return this.blueprint;
+ }
+
+ /**
+ * Set the link to the blueprint.
+ *
+ * @param blueprint the blueprint value to set
+ * @return the ClusterDefinition object itself.
+ */
+ public ClusterDefinition withBlueprint(String blueprint) {
+ this.blueprint = blueprint;
+ return this;
+ }
+
+ /**
+ * Get the type of cluster.
+ *
+ * @return the kind value
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the type of cluster.
+ *
+ * @param kind the kind value to set
+ * @return the ClusterDefinition object itself.
+ */
+ public ClusterDefinition withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Get the versions of different services in the cluster.
+ *
+ * @return the componentVersion value
+ */
+ public Map componentVersion() {
+ return this.componentVersion;
+ }
+
+ /**
+ * Set the versions of different services in the cluster.
+ *
+ * @param componentVersion the componentVersion value to set
+ * @return the ClusterDefinition object itself.
+ */
+ public ClusterDefinition withComponentVersion(Map componentVersion) {
+ this.componentVersion = componentVersion;
+ return this;
+ }
+
+ /**
+ * Get the cluster configurations.
+ *
+ * @return the configurations value
+ */
+ public Object configurations() {
+ return this.configurations;
+ }
+
+ /**
+ * Set the cluster configurations.
+ *
+ * @param configurations the configurations value to set
+ * @return the ClusterDefinition object itself.
+ */
+ public ClusterDefinition withConfigurations(Object configurations) {
+ this.configurations = configurations;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterDiskEncryptionParameters.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterDiskEncryptionParameters.java
new file mode 100644
index 0000000000000..5f932508239fa
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterDiskEncryptionParameters.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.hdinsight.v2015_03_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The Disk Encryption Cluster request parameters.
+ */
+public class ClusterDiskEncryptionParameters {
+ /**
+ * Base key vault URI where the customers key is located eg.
+ * https://myvault.vault.azure.net.
+ */
+ @JsonProperty(value = "vaultUri")
+ private String vaultUri;
+
+ /**
+ * Key name that is used for enabling disk encryption.
+ */
+ @JsonProperty(value = "keyName")
+ private String keyName;
+
+ /**
+ * Specific key version that is used for enabling disk encryption.
+ */
+ @JsonProperty(value = "keyVersion")
+ private String keyVersion;
+
+ /**
+ * Get base key vault URI where the customers key is located eg. https://myvault.vault.azure.net.
+ *
+ * @return the vaultUri value
+ */
+ public String vaultUri() {
+ return this.vaultUri;
+ }
+
+ /**
+ * Set base key vault URI where the customers key is located eg. https://myvault.vault.azure.net.
+ *
+ * @param vaultUri the vaultUri value to set
+ * @return the ClusterDiskEncryptionParameters object itself.
+ */
+ public ClusterDiskEncryptionParameters withVaultUri(String vaultUri) {
+ this.vaultUri = vaultUri;
+ return this;
+ }
+
+ /**
+ * Get key name that is used for enabling disk encryption.
+ *
+ * @return the keyName value
+ */
+ public String keyName() {
+ return this.keyName;
+ }
+
+ /**
+ * Set key name that is used for enabling disk encryption.
+ *
+ * @param keyName the keyName value to set
+ * @return the ClusterDiskEncryptionParameters object itself.
+ */
+ public ClusterDiskEncryptionParameters withKeyName(String keyName) {
+ this.keyName = keyName;
+ return this;
+ }
+
+ /**
+ * Get specific key version that is used for enabling disk encryption.
+ *
+ * @return the keyVersion value
+ */
+ public String keyVersion() {
+ return this.keyVersion;
+ }
+
+ /**
+ * Set specific key version that is used for enabling disk encryption.
+ *
+ * @param keyVersion the keyVersion value to set
+ * @return the ClusterDiskEncryptionParameters object itself.
+ */
+ public ClusterDiskEncryptionParameters withKeyVersion(String keyVersion) {
+ this.keyVersion = keyVersion;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterGetProperties.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterGetProperties.java
new file mode 100644
index 0000000000000..abec06271cd1f
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterGetProperties.java
@@ -0,0 +1,463 @@
+/**
+ * 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.hdinsight.v2015_03_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of cluster.
+ */
+public class ClusterGetProperties {
+ /**
+ * The version of the cluster.
+ */
+ @JsonProperty(value = "clusterVersion")
+ private String clusterVersion;
+
+ /**
+ * The type of operating system. Possible values include: 'Windows',
+ * 'Linux'.
+ */
+ @JsonProperty(value = "osType")
+ private OSType osType;
+
+ /**
+ * The cluster tier. Possible values include: 'Standard', 'Premium'.
+ */
+ @JsonProperty(value = "tier")
+ private Tier tier;
+
+ /**
+ * The cluster definition.
+ */
+ @JsonProperty(value = "clusterDefinition", required = true)
+ private ClusterDefinition clusterDefinition;
+
+ /**
+ * The cluster kafka rest proxy configuration.
+ */
+ @JsonProperty(value = "kafkaRestProperties")
+ private KafkaRestProperties kafkaRestProperties;
+
+ /**
+ * The security profile.
+ */
+ @JsonProperty(value = "securityProfile")
+ private SecurityProfile securityProfile;
+
+ /**
+ * The compute profile.
+ */
+ @JsonProperty(value = "computeProfile")
+ private ComputeProfile computeProfile;
+
+ /**
+ * The provisioning state, which only appears in the response. Possible
+ * values include: 'InProgress', 'Failed', 'Succeeded', 'Canceled',
+ * 'Deleting'.
+ */
+ @JsonProperty(value = "provisioningState")
+ private HDInsightClusterProvisioningState provisioningState;
+
+ /**
+ * The date on which the cluster was created.
+ */
+ @JsonProperty(value = "createdDate")
+ private String createdDate;
+
+ /**
+ * The state of the cluster.
+ */
+ @JsonProperty(value = "clusterState")
+ private String clusterState;
+
+ /**
+ * The quota information.
+ */
+ @JsonProperty(value = "quotaInfo")
+ private QuotaInfo quotaInfo;
+
+ /**
+ * The list of errors.
+ */
+ @JsonProperty(value = "errors")
+ private List errors;
+
+ /**
+ * The list of connectivity endpoints.
+ */
+ @JsonProperty(value = "connectivityEndpoints")
+ private List connectivityEndpoints;
+
+ /**
+ * The disk encryption properties.
+ */
+ @JsonProperty(value = "diskEncryptionProperties")
+ private DiskEncryptionProperties diskEncryptionProperties;
+
+ /**
+ * The encryption-in-transit properties.
+ */
+ @JsonProperty(value = "encryptionInTransitProperties")
+ private EncryptionInTransitProperties encryptionInTransitProperties;
+
+ /**
+ * The minimal supported tls version.
+ */
+ @JsonProperty(value = "minSupportedTlsVersion")
+ private String minSupportedTlsVersion;
+
+ /**
+ * The network settings.
+ */
+ @JsonProperty(value = "networkSettings")
+ private NetworkSettings networkSettings;
+
+ /**
+ * Get the version of the cluster.
+ *
+ * @return the clusterVersion value
+ */
+ public String clusterVersion() {
+ return this.clusterVersion;
+ }
+
+ /**
+ * Set the version of the cluster.
+ *
+ * @param clusterVersion the clusterVersion value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withClusterVersion(String clusterVersion) {
+ this.clusterVersion = clusterVersion;
+ return this;
+ }
+
+ /**
+ * Get the type of operating system. Possible values include: 'Windows', 'Linux'.
+ *
+ * @return the osType value
+ */
+ public OSType osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the type of operating system. Possible values include: 'Windows', 'Linux'.
+ *
+ * @param osType the osType value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withOsType(OSType osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get the cluster tier. Possible values include: 'Standard', 'Premium'.
+ *
+ * @return the tier value
+ */
+ public Tier tier() {
+ return this.tier;
+ }
+
+ /**
+ * Set the cluster tier. Possible values include: 'Standard', 'Premium'.
+ *
+ * @param tier the tier value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withTier(Tier tier) {
+ this.tier = tier;
+ return this;
+ }
+
+ /**
+ * Get the cluster definition.
+ *
+ * @return the clusterDefinition value
+ */
+ public ClusterDefinition clusterDefinition() {
+ return this.clusterDefinition;
+ }
+
+ /**
+ * Set the cluster definition.
+ *
+ * @param clusterDefinition the clusterDefinition value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withClusterDefinition(ClusterDefinition clusterDefinition) {
+ this.clusterDefinition = clusterDefinition;
+ return this;
+ }
+
+ /**
+ * Get the cluster kafka rest proxy configuration.
+ *
+ * @return the kafkaRestProperties value
+ */
+ public KafkaRestProperties kafkaRestProperties() {
+ return this.kafkaRestProperties;
+ }
+
+ /**
+ * Set the cluster kafka rest proxy configuration.
+ *
+ * @param kafkaRestProperties the kafkaRestProperties value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withKafkaRestProperties(KafkaRestProperties kafkaRestProperties) {
+ this.kafkaRestProperties = kafkaRestProperties;
+ return this;
+ }
+
+ /**
+ * Get the security profile.
+ *
+ * @return the securityProfile value
+ */
+ public SecurityProfile securityProfile() {
+ return this.securityProfile;
+ }
+
+ /**
+ * Set the security profile.
+ *
+ * @param securityProfile the securityProfile value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withSecurityProfile(SecurityProfile securityProfile) {
+ this.securityProfile = securityProfile;
+ return this;
+ }
+
+ /**
+ * Get the compute profile.
+ *
+ * @return the computeProfile value
+ */
+ public ComputeProfile computeProfile() {
+ return this.computeProfile;
+ }
+
+ /**
+ * Set the compute profile.
+ *
+ * @param computeProfile the computeProfile value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withComputeProfile(ComputeProfile computeProfile) {
+ this.computeProfile = computeProfile;
+ return this;
+ }
+
+ /**
+ * Get the provisioning state, which only appears in the response. Possible values include: 'InProgress', 'Failed', 'Succeeded', 'Canceled', 'Deleting'.
+ *
+ * @return the provisioningState value
+ */
+ public HDInsightClusterProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set the provisioning state, which only appears in the response. Possible values include: 'InProgress', 'Failed', 'Succeeded', 'Canceled', 'Deleting'.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withProvisioningState(HDInsightClusterProvisioningState provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get the date on which the cluster was created.
+ *
+ * @return the createdDate value
+ */
+ public String createdDate() {
+ return this.createdDate;
+ }
+
+ /**
+ * Set the date on which the cluster was created.
+ *
+ * @param createdDate the createdDate value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withCreatedDate(String createdDate) {
+ this.createdDate = createdDate;
+ return this;
+ }
+
+ /**
+ * Get the state of the cluster.
+ *
+ * @return the clusterState value
+ */
+ public String clusterState() {
+ return this.clusterState;
+ }
+
+ /**
+ * Set the state of the cluster.
+ *
+ * @param clusterState the clusterState value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withClusterState(String clusterState) {
+ this.clusterState = clusterState;
+ return this;
+ }
+
+ /**
+ * Get the quota information.
+ *
+ * @return the quotaInfo value
+ */
+ public QuotaInfo quotaInfo() {
+ return this.quotaInfo;
+ }
+
+ /**
+ * Set the quota information.
+ *
+ * @param quotaInfo the quotaInfo value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withQuotaInfo(QuotaInfo quotaInfo) {
+ this.quotaInfo = quotaInfo;
+ return this;
+ }
+
+ /**
+ * Get the list of errors.
+ *
+ * @return the errors value
+ */
+ public List errors() {
+ return this.errors;
+ }
+
+ /**
+ * Set the list of errors.
+ *
+ * @param errors the errors value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withErrors(List errors) {
+ this.errors = errors;
+ return this;
+ }
+
+ /**
+ * Get the list of connectivity endpoints.
+ *
+ * @return the connectivityEndpoints value
+ */
+ public List connectivityEndpoints() {
+ return this.connectivityEndpoints;
+ }
+
+ /**
+ * Set the list of connectivity endpoints.
+ *
+ * @param connectivityEndpoints the connectivityEndpoints value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withConnectivityEndpoints(List connectivityEndpoints) {
+ this.connectivityEndpoints = connectivityEndpoints;
+ return this;
+ }
+
+ /**
+ * Get the disk encryption properties.
+ *
+ * @return the diskEncryptionProperties value
+ */
+ public DiskEncryptionProperties diskEncryptionProperties() {
+ return this.diskEncryptionProperties;
+ }
+
+ /**
+ * Set the disk encryption properties.
+ *
+ * @param diskEncryptionProperties the diskEncryptionProperties value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withDiskEncryptionProperties(DiskEncryptionProperties diskEncryptionProperties) {
+ this.diskEncryptionProperties = diskEncryptionProperties;
+ return this;
+ }
+
+ /**
+ * Get the encryption-in-transit properties.
+ *
+ * @return the encryptionInTransitProperties value
+ */
+ public EncryptionInTransitProperties encryptionInTransitProperties() {
+ return this.encryptionInTransitProperties;
+ }
+
+ /**
+ * Set the encryption-in-transit properties.
+ *
+ * @param encryptionInTransitProperties the encryptionInTransitProperties value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withEncryptionInTransitProperties(EncryptionInTransitProperties encryptionInTransitProperties) {
+ this.encryptionInTransitProperties = encryptionInTransitProperties;
+ return this;
+ }
+
+ /**
+ * Get the minimal supported tls version.
+ *
+ * @return the minSupportedTlsVersion value
+ */
+ public String minSupportedTlsVersion() {
+ return this.minSupportedTlsVersion;
+ }
+
+ /**
+ * Set the minimal supported tls version.
+ *
+ * @param minSupportedTlsVersion the minSupportedTlsVersion value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withMinSupportedTlsVersion(String minSupportedTlsVersion) {
+ this.minSupportedTlsVersion = minSupportedTlsVersion;
+ return this;
+ }
+
+ /**
+ * Get the network settings.
+ *
+ * @return the networkSettings value
+ */
+ public NetworkSettings networkSettings() {
+ return this.networkSettings;
+ }
+
+ /**
+ * Set the network settings.
+ *
+ * @param networkSettings the networkSettings value to set
+ * @return the ClusterGetProperties object itself.
+ */
+ public ClusterGetProperties withNetworkSettings(NetworkSettings networkSettings) {
+ this.networkSettings = networkSettings;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterIdentity.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterIdentity.java
new file mode 100644
index 0000000000000..12d05f6302fc9
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterIdentity.java
@@ -0,0 +1,107 @@
+/**
+ * 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.hdinsight.v2015_03_01_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Identity for the cluster.
+ */
+public class ClusterIdentity {
+ /**
+ * The principal id of cluster identity. This property will only be
+ * provided for a system assigned identity.
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalId;
+
+ /**
+ * The tenant id associated with the cluster. This property will only be
+ * provided for a system assigned identity.
+ */
+ @JsonProperty(value = "tenantId", access = JsonProperty.Access.WRITE_ONLY)
+ private String tenantId;
+
+ /**
+ * The type of identity used for the cluster. The type 'SystemAssigned,
+ * UserAssigned' includes both an implicitly created identity and a set of
+ * user assigned identities. Possible values include: 'SystemAssigned',
+ * 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
+ */
+ @JsonProperty(value = "type")
+ private ResourceIdentityType type;
+
+ /**
+ * The list of user identities associated with the cluster. The user
+ * identity dictionary key references will be ARM resource ids in the form:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ */
+ @JsonProperty(value = "userAssignedIdentities")
+ private Map userAssignedIdentities;
+
+ /**
+ * Get the principal id of cluster identity. This property will only be provided for a system assigned identity.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the tenant id associated with the cluster. This property will only be provided for a system assigned identity.
+ *
+ * @return the tenantId value
+ */
+ public String tenantId() {
+ return this.tenantId;
+ }
+
+ /**
+ * Get the type of identity used for the cluster. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. Possible values include: 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
+ *
+ * @return the type value
+ */
+ public ResourceIdentityType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of identity used for the cluster. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. Possible values include: 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
+ *
+ * @param type the type value to set
+ * @return the ClusterIdentity object itself.
+ */
+ public ClusterIdentity withType(ResourceIdentityType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the list of user identities associated with the cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ *
+ * @return the userAssignedIdentities value
+ */
+ public Map userAssignedIdentities() {
+ return this.userAssignedIdentities;
+ }
+
+ /**
+ * Set the list of user identities associated with the cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ *
+ * @param userAssignedIdentities the userAssignedIdentities value to set
+ * @return the ClusterIdentity object itself.
+ */
+ public ClusterIdentity withUserAssignedIdentities(Map userAssignedIdentities) {
+ this.userAssignedIdentities = userAssignedIdentities;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterIdentityUserAssignedIdentitiesValue.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterIdentityUserAssignedIdentitiesValue.java
new file mode 100644
index 0000000000000..0003482f2b4ed
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterIdentityUserAssignedIdentitiesValue.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.hdinsight.v2015_03_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The ClusterIdentityUserAssignedIdentitiesValue model.
+ */
+public class ClusterIdentityUserAssignedIdentitiesValue {
+ /**
+ * The principal id of user assigned identity.
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalId;
+
+ /**
+ * The client id of user assigned identity.
+ */
+ @JsonProperty(value = "clientId", access = JsonProperty.Access.WRITE_ONLY)
+ private String clientId;
+
+ /**
+ * Get the principal id of user assigned identity.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the client id of user assigned identity.
+ *
+ * @return the clientId value
+ */
+ public String clientId() {
+ return this.clientId;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterListPersistedScriptActionsResult.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterListPersistedScriptActionsResult.java
new file mode 100644
index 0000000000000..4771a38f1a69e
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterListPersistedScriptActionsResult.java
@@ -0,0 +1,59 @@
+/**
+ * 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.hdinsight.v2015_03_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The ListPersistedScriptActions operation response.
+ */
+public class ClusterListPersistedScriptActionsResult {
+ /**
+ * The list of Persisted Script Actions.
+ */
+ @JsonProperty(value = "value")
+ private List value;
+
+ /**
+ * The link (url) to the next page of results.
+ */
+ @JsonProperty(value = "nextLink", access = JsonProperty.Access.WRITE_ONLY)
+ private String nextLink;
+
+ /**
+ * Get the list of Persisted Script Actions.
+ *
+ * @return the value value
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Set the list of Persisted Script Actions.
+ *
+ * @param value the value value to set
+ * @return the ClusterListPersistedScriptActionsResult object itself.
+ */
+ public ClusterListPersistedScriptActionsResult withValue(List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get the link (url) to the next page of results.
+ *
+ * @return the nextLink value
+ */
+ public String nextLink() {
+ return this.nextLink;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterListRuntimeScriptActionDetailResult.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterListRuntimeScriptActionDetailResult.java
new file mode 100644
index 0000000000000..dddb68eb68a8b
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterListRuntimeScriptActionDetailResult.java
@@ -0,0 +1,49 @@
+/**
+ * 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.hdinsight.v2015_03_01_preview;
+
+import java.util.List;
+import com.microsoft.azure.management.hdinsight.v2015_03_01_preview.implementation.RuntimeScriptActionDetailInner;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The list runtime script action detail response.
+ */
+public class ClusterListRuntimeScriptActionDetailResult {
+ /**
+ * The list of persisted script action details for the cluster.
+ */
+ @JsonProperty(value = "value", access = JsonProperty.Access.WRITE_ONLY)
+ private List value;
+
+ /**
+ * The link (url) to the next page of results.
+ */
+ @JsonProperty(value = "nextLink", access = JsonProperty.Access.WRITE_ONLY)
+ private String nextLink;
+
+ /**
+ * Get the list of persisted script action details for the cluster.
+ *
+ * @return the value value
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Get the link (url) to the next page of results.
+ *
+ * @return the nextLink value
+ */
+ public String nextLink() {
+ return this.nextLink;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterMonitoringRequest.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterMonitoringRequest.java
new file mode 100644
index 0000000000000..ff83e029de9ef
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterMonitoringRequest.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.hdinsight.v2015_03_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The Operations Management Suite (OMS) parameters.
+ */
+public class ClusterMonitoringRequest {
+ /**
+ * The Operations Management Suite (OMS) workspace ID.
+ */
+ @JsonProperty(value = "workspaceId")
+ private String workspaceId;
+
+ /**
+ * The Operations Management Suite (OMS) workspace key.
+ */
+ @JsonProperty(value = "primaryKey")
+ private String primaryKey;
+
+ /**
+ * Get the Operations Management Suite (OMS) workspace ID.
+ *
+ * @return the workspaceId value
+ */
+ public String workspaceId() {
+ return this.workspaceId;
+ }
+
+ /**
+ * Set the Operations Management Suite (OMS) workspace ID.
+ *
+ * @param workspaceId the workspaceId value to set
+ * @return the ClusterMonitoringRequest object itself.
+ */
+ public ClusterMonitoringRequest withWorkspaceId(String workspaceId) {
+ this.workspaceId = workspaceId;
+ return this;
+ }
+
+ /**
+ * Get the Operations Management Suite (OMS) workspace key.
+ *
+ * @return the primaryKey value
+ */
+ public String primaryKey() {
+ return this.primaryKey;
+ }
+
+ /**
+ * Set the Operations Management Suite (OMS) workspace key.
+ *
+ * @param primaryKey the primaryKey value to set
+ * @return the ClusterMonitoringRequest object itself.
+ */
+ public ClusterMonitoringRequest withPrimaryKey(String primaryKey) {
+ this.primaryKey = primaryKey;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterMonitoringResponse.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterMonitoringResponse.java
new file mode 100644
index 0000000000000..2c32a0b24c6f4
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterMonitoringResponse.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.hdinsight.v2015_03_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.hdinsight.v2015_03_01_preview.implementation.HDInsightManager;
+import com.microsoft.azure.management.hdinsight.v2015_03_01_preview.implementation.ClusterMonitoringResponseInner;
+
+/**
+ * Type representing ClusterMonitoringResponse.
+ */
+public interface ClusterMonitoringResponse extends HasInner, HasManager {
+ /**
+ * @return the clusterMonitoringEnabled value.
+ */
+ Boolean clusterMonitoringEnabled();
+
+ /**
+ * @return the workspaceId value.
+ */
+ String workspaceId();
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterPatchParameters.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterPatchParameters.java
new file mode 100644
index 0000000000000..0a0e38b051775
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterPatchParameters.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.hdinsight.v2015_03_01_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The PatchCluster request parameters.
+ */
+public class ClusterPatchParameters {
+ /**
+ * The resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Get the resource tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the resource tags.
+ *
+ * @param tags the tags value to set
+ * @return the ClusterPatchParameters object itself.
+ */
+ public ClusterPatchParameters withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterResizeParameters.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterResizeParameters.java
new file mode 100644
index 0000000000000..19d32fc0983b3
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ClusterResizeParameters.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.hdinsight.v2015_03_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The Resize Cluster request parameters.
+ */
+public class ClusterResizeParameters {
+ /**
+ * The target instance count for the operation.
+ */
+ @JsonProperty(value = "targetInstanceCount")
+ private Integer targetInstanceCount;
+
+ /**
+ * Get the target instance count for the operation.
+ *
+ * @return the targetInstanceCount value
+ */
+ public Integer targetInstanceCount() {
+ return this.targetInstanceCount;
+ }
+
+ /**
+ * Set the target instance count for the operation.
+ *
+ * @param targetInstanceCount the targetInstanceCount value to set
+ * @return the ClusterResizeParameters object itself.
+ */
+ public ClusterResizeParameters withTargetInstanceCount(Integer targetInstanceCount) {
+ this.targetInstanceCount = targetInstanceCount;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Clusters.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Clusters.java
new file mode 100644
index 0000000000000..7da933a1e8926
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Clusters.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.hdinsight.v2015_03_01_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 rx.Completable;
+import com.microsoft.azure.management.hdinsight.v2015_03_01_preview.implementation.ClustersInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Clusters.
+ */
+public interface Clusters extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Rotate disk encryption key of the specified HDInsight cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param clusterName The name of the cluster.
+ * @param parameters The parameters for the disk encryption operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable rotateDiskEncryptionKeyAsync(String resourceGroupName, String clusterName, ClusterDiskEncryptionParameters parameters);
+
+ /**
+ * Gets the gateway settings for the specified cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param clusterName The name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getGatewaySettingsAsync(String resourceGroupName, String clusterName);
+
+ /**
+ * Configures the gateway settings on the specified cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param clusterName The name of the cluster.
+ * @param parameters The cluster configurations.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable updateGatewaySettingsAsync(String resourceGroupName, String clusterName, UpdateGatewaySettingsParameters parameters);
+
+ /**
+ * Executes script actions on the specified HDInsight cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param clusterName The name of the cluster.
+ * @param parameters The parameters for executing script actions.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable executeScriptActionsAsync(String resourceGroupName, String clusterName, ExecuteScriptActionParameters parameters);
+
+ /**
+ * Resizes the specified HDInsight cluster to the specified size.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param clusterName The name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable resizeAsync(String resourceGroupName, String clusterName);
+
+ /**
+ * Updates the Autoscale Configuration for HDInsight cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param clusterName The name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable updateAutoScaleConfigurationAsync(String resourceGroupName, String clusterName);
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ComputeProfile.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ComputeProfile.java
new file mode 100644
index 0000000000000..3b49a2fa7da14
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/ComputeProfile.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.hdinsight.v2015_03_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Describes the compute profile.
+ */
+public class ComputeProfile {
+ /**
+ * The list of roles in the cluster.
+ */
+ @JsonProperty(value = "roles")
+ private List roles;
+
+ /**
+ * Get the list of roles in the cluster.
+ *
+ * @return the roles value
+ */
+ public List roles() {
+ return this.roles;
+ }
+
+ /**
+ * Set the list of roles in the cluster.
+ *
+ * @param roles the roles value to set
+ * @return the ComputeProfile object itself.
+ */
+ public ComputeProfile withRoles(List roles) {
+ this.roles = roles;
+ return this;
+ }
+
+}
diff --git a/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Configurations.java b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Configurations.java
new file mode 100644
index 0000000000000..280a01f0ccc0a
--- /dev/null
+++ b/sdk/hdinsight/mgmt-v2015_03_01_preview/src/main/java/com/microsoft/azure/management/hdinsight/v2015_03_01_preview/Configurations.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.hdinsight.v2015_03_01_preview;
+
+import rx.Observable;
+import rx.Completable;
+import java.util.Map;
+
+/**
+ * Type representing Configurations.
+ */
+public interface Configurations {
+ /**
+ * Gets all configuration information for an HDI cluster.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param clusterName The name of the cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String clusterName);
+
+ /**
+ * Configures the HTTP settings on the specified cluster. This API is deprecated, please use UpdateGatewaySettings in cluster endpoint instead.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param clusterName The name of the cluster.
+ * @param configurationName The name of the cluster configuration.
+ * @param parameters The cluster configurations.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable updateAsync(String resourceGroupName, String clusterName, String configurationName, Map parameters);
+
+ /**
+ * The configuration object for the specified cluster. This API is not recommended and might be removed in the future. Please consider using List configurations API instead.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param clusterName The name of the cluster.
+ * @param configurationName The name of the cluster configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable