diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/pom.xml b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/pom.xml
new file mode 100644
index 000000000000..a46d042d0660
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+ com.microsoft.azure.azuredatabasemigrationservice.v2017_11_15_preview
+
+ com.microsoft.azure
+ azure-arm-parent
+ 0.0.3-beta
+ ../../../pom.xml
+
+ azure-mgmt-datamigration
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for DataMigration Management
+ This package contains Microsoft DataMigration 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
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.7
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+
* Copyright (c) Microsoft Corporation. All rights reserved.
+
* Licensed under the MIT License. See License.txt in the project root for
+
* license information.
+
*/
+ ]]>
+
+
+
+
+
+
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ApiError.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ApiError.java
new file mode 100644
index 000000000000..bbfa915685b0
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ApiError.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Error information.
+ */
+public class ApiError {
+ /**
+ * Error information in OData format.
+ */
+ @JsonProperty(value = "error")
+ private ODataError error;
+
+ /**
+ * Get error information in OData format.
+ *
+ * @return the error value
+ */
+ public ODataError error() {
+ return this.error;
+ }
+
+ /**
+ * Set error information in OData format.
+ *
+ * @param error the error value to set
+ * @return the ApiError object itself.
+ */
+ public ApiError withError(ODataError error) {
+ this.error = error;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ApiErrorException.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ApiErrorException.java
new file mode 100644
index 000000000000..81997de67cfd
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ApiErrorException.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.microsoft.rest.RestException;
+import okhttp3.ResponseBody;
+import retrofit2.Response;
+
+/**
+ * Exception thrown for an invalid response with ApiError information.
+ */
+public class ApiErrorException extends RestException {
+ /**
+ * Initializes a new instance of the ApiErrorException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ */
+ public ApiErrorException(final String message, final Response response) {
+ super(message, response);
+ }
+
+ /**
+ * Initializes a new instance of the ApiErrorException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ * @param body the deserialized response body
+ */
+ public ApiErrorException(final String message, final Response response, final ApiError body) {
+ super(message, response, body);
+ }
+
+ @Override
+ public ApiError body() {
+ return (ApiError) super.body();
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/AuthenticationType.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/AuthenticationType.java
new file mode 100644
index 000000000000..8bbe4a0f2a83
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/AuthenticationType.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for AuthenticationType.
+ */
+public enum AuthenticationType {
+ /** Enum value None. */
+ NONE("None"),
+
+ /** Enum value WindowsAuthentication. */
+ WINDOWS_AUTHENTICATION("WindowsAuthentication"),
+
+ /** Enum value SqlAuthentication. */
+ SQL_AUTHENTICATION("SqlAuthentication"),
+
+ /** Enum value ActiveDirectoryIntegrated. */
+ ACTIVE_DIRECTORY_INTEGRATED("ActiveDirectoryIntegrated"),
+
+ /** Enum value ActiveDirectoryPassword. */
+ ACTIVE_DIRECTORY_PASSWORD("ActiveDirectoryPassword");
+
+ /** The actual serialized value for a AuthenticationType instance. */
+ private String value;
+
+ AuthenticationType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a AuthenticationType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed AuthenticationType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static AuthenticationType fromString(String value) {
+ AuthenticationType[] items = AuthenticationType.values();
+ for (AuthenticationType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/AvailableServiceSku.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/AvailableServiceSku.java
new file mode 100644
index 000000000000..52b294430552
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/AvailableServiceSku.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.AvailableServiceSkuInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.DataMigrationManager;
+
+/**
+ * Type representing AvailableServiceSku.
+ */
+public interface AvailableServiceSku extends HasInner, HasManager {
+ /**
+ * @return the capacity value.
+ */
+ AvailableServiceSkuCapacity capacity();
+
+ /**
+ * @return the resourceType value.
+ */
+ String resourceType();
+
+ /**
+ * @return the sku value.
+ */
+ AvailableServiceSkuSku sku();
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/AvailableServiceSkuCapacity.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/AvailableServiceSkuCapacity.java
new file mode 100644
index 000000000000..d8f311cccf0a
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/AvailableServiceSkuCapacity.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A description of the scaling capacities of the SKU.
+ */
+public class AvailableServiceSkuCapacity {
+ /**
+ * The minimum capacity, usually 0 or 1.
+ */
+ @JsonProperty(value = "minimum")
+ private Integer minimum;
+
+ /**
+ * The maximum capacity.
+ */
+ @JsonProperty(value = "maximum")
+ private Integer maximum;
+
+ /**
+ * The default capacity.
+ */
+ @JsonProperty(value = "default")
+ private Integer defaultProperty;
+
+ /**
+ * The scalability approach. Possible values include: 'none', 'manual',
+ * 'automatic'.
+ */
+ @JsonProperty(value = "scaleType")
+ private ServiceScalability scaleType;
+
+ /**
+ * Get the minimum capacity, usually 0 or 1.
+ *
+ * @return the minimum value
+ */
+ public Integer minimum() {
+ return this.minimum;
+ }
+
+ /**
+ * Set the minimum capacity, usually 0 or 1.
+ *
+ * @param minimum the minimum value to set
+ * @return the AvailableServiceSkuCapacity object itself.
+ */
+ public AvailableServiceSkuCapacity withMinimum(Integer minimum) {
+ this.minimum = minimum;
+ return this;
+ }
+
+ /**
+ * Get the maximum capacity.
+ *
+ * @return the maximum value
+ */
+ public Integer maximum() {
+ return this.maximum;
+ }
+
+ /**
+ * Set the maximum capacity.
+ *
+ * @param maximum the maximum value to set
+ * @return the AvailableServiceSkuCapacity object itself.
+ */
+ public AvailableServiceSkuCapacity withMaximum(Integer maximum) {
+ this.maximum = maximum;
+ return this;
+ }
+
+ /**
+ * Get the default capacity.
+ *
+ * @return the defaultProperty value
+ */
+ public Integer defaultProperty() {
+ return this.defaultProperty;
+ }
+
+ /**
+ * Set the default capacity.
+ *
+ * @param defaultProperty the defaultProperty value to set
+ * @return the AvailableServiceSkuCapacity object itself.
+ */
+ public AvailableServiceSkuCapacity withDefaultProperty(Integer defaultProperty) {
+ this.defaultProperty = defaultProperty;
+ return this;
+ }
+
+ /**
+ * Get the scalability approach. Possible values include: 'none', 'manual', 'automatic'.
+ *
+ * @return the scaleType value
+ */
+ public ServiceScalability scaleType() {
+ return this.scaleType;
+ }
+
+ /**
+ * Set the scalability approach. Possible values include: 'none', 'manual', 'automatic'.
+ *
+ * @param scaleType the scaleType value to set
+ * @return the AvailableServiceSkuCapacity object itself.
+ */
+ public AvailableServiceSkuCapacity withScaleType(ServiceScalability scaleType) {
+ this.scaleType = scaleType;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/AvailableServiceSkuSku.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/AvailableServiceSkuSku.java
new file mode 100644
index 000000000000..c1654d4deb18
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/AvailableServiceSkuSku.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * SKU name, tier, etc.
+ */
+public class AvailableServiceSkuSku {
+ /**
+ * The name of the SKU.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * SKU family.
+ */
+ @JsonProperty(value = "family")
+ private String family;
+
+ /**
+ * SKU size.
+ */
+ @JsonProperty(value = "size")
+ private String size;
+
+ /**
+ * The tier of the SKU, such as "Free", "Basic", "Standard", or "Premium".
+ */
+ @JsonProperty(value = "tier")
+ private String tier;
+
+ /**
+ * Get the name of the SKU.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the SKU.
+ *
+ * @param name the name value to set
+ * @return the AvailableServiceSkuSku object itself.
+ */
+ public AvailableServiceSkuSku withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get sKU family.
+ *
+ * @return the family value
+ */
+ public String family() {
+ return this.family;
+ }
+
+ /**
+ * Set sKU family.
+ *
+ * @param family the family value to set
+ * @return the AvailableServiceSkuSku object itself.
+ */
+ public AvailableServiceSkuSku withFamily(String family) {
+ this.family = family;
+ return this;
+ }
+
+ /**
+ * Get sKU size.
+ *
+ * @return the size value
+ */
+ public String size() {
+ return this.size;
+ }
+
+ /**
+ * Set sKU size.
+ *
+ * @param size the size value to set
+ * @return the AvailableServiceSkuSku object itself.
+ */
+ public AvailableServiceSkuSku withSize(String size) {
+ this.size = size;
+ return this;
+ }
+
+ /**
+ * Get the tier of the SKU, such as "Free", "Basic", "Standard", or "Premium".
+ *
+ * @return the tier value
+ */
+ public String tier() {
+ return this.tier;
+ }
+
+ /**
+ * Set the tier of the SKU, such as "Free", "Basic", "Standard", or "Premium".
+ *
+ * @param tier the tier value to set
+ * @return the AvailableServiceSkuSku object itself.
+ */
+ public AvailableServiceSkuSku withTier(String tier) {
+ this.tier = tier;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskInput.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskInput.java
new file mode 100644
index 000000000000..19a113439e66
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskInput.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Input for the task that validates connection to SQL Server and also
+ * validates source server requirements.
+ */
+public class ConnectToSourceSqlServerTaskInput {
+ /**
+ * Connection information for Source SQL Server.
+ */
+ @JsonProperty(value = "sourceConnectionInfo", required = true)
+ private SqlConnectionInfo sourceConnectionInfo;
+
+ /**
+ * Permission group for validations. Possible values include: 'Default',
+ * 'MigrationFromSqlServerToAzureDB'.
+ */
+ @JsonProperty(value = "checkPermissionsGroup")
+ private ServerLevelPermissionsGroup checkPermissionsGroup;
+
+ /**
+ * Get connection information for Source SQL Server.
+ *
+ * @return the sourceConnectionInfo value
+ */
+ public SqlConnectionInfo sourceConnectionInfo() {
+ return this.sourceConnectionInfo;
+ }
+
+ /**
+ * Set connection information for Source SQL Server.
+ *
+ * @param sourceConnectionInfo the sourceConnectionInfo value to set
+ * @return the ConnectToSourceSqlServerTaskInput object itself.
+ */
+ public ConnectToSourceSqlServerTaskInput withSourceConnectionInfo(SqlConnectionInfo sourceConnectionInfo) {
+ this.sourceConnectionInfo = sourceConnectionInfo;
+ return this;
+ }
+
+ /**
+ * Get permission group for validations. Possible values include: 'Default', 'MigrationFromSqlServerToAzureDB'.
+ *
+ * @return the checkPermissionsGroup value
+ */
+ public ServerLevelPermissionsGroup checkPermissionsGroup() {
+ return this.checkPermissionsGroup;
+ }
+
+ /**
+ * Set permission group for validations. Possible values include: 'Default', 'MigrationFromSqlServerToAzureDB'.
+ *
+ * @param checkPermissionsGroup the checkPermissionsGroup value to set
+ * @return the ConnectToSourceSqlServerTaskInput object itself.
+ */
+ public ConnectToSourceSqlServerTaskInput withCheckPermissionsGroup(ServerLevelPermissionsGroup checkPermissionsGroup) {
+ this.checkPermissionsGroup = checkPermissionsGroup;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskOutput.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskOutput.java
new file mode 100644
index 000000000000..e79e91adafa0
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskOutput.java
@@ -0,0 +1,42 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Output for the task that validates connection to SQL Server and also
+ * validates source server requirements.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "resultType")
+@JsonTypeName("ConnectToSourceSqlServerTaskOutput")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "DatabaseLevelOutput", value = ConnectToSourceSqlServerTaskOutputDatabaseLevel.class),
+ @JsonSubTypes.Type(name = "TaskLevelOutput", value = ConnectToSourceSqlServerTaskOutputTaskLevel.class)
+})
+public class ConnectToSourceSqlServerTaskOutput {
+ /**
+ * Result identifier.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * Get result identifier.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskOutputDatabaseLevel.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskOutputDatabaseLevel.java
new file mode 100644
index 000000000000..4f000d7863ab
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskOutputDatabaseLevel.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Database level output for the task that validates connection to SQL Server
+ * and also validates source server requirements.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "resultType")
+@JsonTypeName("DatabaseLevelOutput")
+public class ConnectToSourceSqlServerTaskOutputDatabaseLevel extends ConnectToSourceSqlServerTaskOutput {
+ /**
+ * Database name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * Size of the file in megabytes.
+ */
+ @JsonProperty(value = "sizeMB", access = JsonProperty.Access.WRITE_ONLY)
+ private Double sizeMB;
+
+ /**
+ * The list of database files.
+ */
+ @JsonProperty(value = "databaseFiles", access = JsonProperty.Access.WRITE_ONLY)
+ private List databaseFiles;
+
+ /**
+ * SQL Server compatibility level of database. Possible values include:
+ * 'CompatLevel80', 'CompatLevel90', 'CompatLevel100', 'CompatLevel110',
+ * 'CompatLevel120', 'CompatLevel130', 'CompatLevel140'.
+ */
+ @JsonProperty(value = "compatibilityLevel", access = JsonProperty.Access.WRITE_ONLY)
+ private DatabaseCompatLevel compatibilityLevel;
+
+ /**
+ * State of the database. Possible values include: 'Online', 'Restoring',
+ * 'Recovering', 'RecoveryPending', 'Suspect', 'Emergency', 'Offline',
+ * 'Copying', 'OfflineSecondary'.
+ */
+ @JsonProperty(value = "databaseState", access = JsonProperty.Access.WRITE_ONLY)
+ private DatabaseState databaseState;
+
+ /**
+ * Get database name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get size of the file in megabytes.
+ *
+ * @return the sizeMB value
+ */
+ public Double sizeMB() {
+ return this.sizeMB;
+ }
+
+ /**
+ * Get the list of database files.
+ *
+ * @return the databaseFiles value
+ */
+ public List databaseFiles() {
+ return this.databaseFiles;
+ }
+
+ /**
+ * Get sQL Server compatibility level of database. Possible values include: 'CompatLevel80', 'CompatLevel90', 'CompatLevel100', 'CompatLevel110', 'CompatLevel120', 'CompatLevel130', 'CompatLevel140'.
+ *
+ * @return the compatibilityLevel value
+ */
+ public DatabaseCompatLevel compatibilityLevel() {
+ return this.compatibilityLevel;
+ }
+
+ /**
+ * Get state of the database. Possible values include: 'Online', 'Restoring', 'Recovering', 'RecoveryPending', 'Suspect', 'Emergency', 'Offline', 'Copying', 'OfflineSecondary'.
+ *
+ * @return the databaseState value
+ */
+ public DatabaseState databaseState() {
+ return this.databaseState;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskOutputTaskLevel.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskOutputTaskLevel.java
new file mode 100644
index 000000000000..c49a3d3715b4
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskOutputTaskLevel.java
@@ -0,0 +1,84 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.Map;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Task level output for the task that validates connection to SQL Server and
+ * also validates source server requirements.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "resultType")
+@JsonTypeName("TaskLevelOutput")
+public class ConnectToSourceSqlServerTaskOutputTaskLevel extends ConnectToSourceSqlServerTaskOutput {
+ /**
+ * Source databases as a map from database name to database id.
+ */
+ @JsonProperty(value = "databases", access = JsonProperty.Access.WRITE_ONLY)
+ private Map databases;
+
+ /**
+ * Source server version.
+ */
+ @JsonProperty(value = "sourceServerVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String sourceServerVersion;
+
+ /**
+ * Source server brand version.
+ */
+ @JsonProperty(value = "sourceServerBrandVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String sourceServerBrandVersion;
+
+ /**
+ * Validation errors.
+ */
+ @JsonProperty(value = "validationErrors", access = JsonProperty.Access.WRITE_ONLY)
+ private List validationErrors;
+
+ /**
+ * Get source databases as a map from database name to database id.
+ *
+ * @return the databases value
+ */
+ public Map databases() {
+ return this.databases;
+ }
+
+ /**
+ * Get source server version.
+ *
+ * @return the sourceServerVersion value
+ */
+ public String sourceServerVersion() {
+ return this.sourceServerVersion;
+ }
+
+ /**
+ * Get source server brand version.
+ *
+ * @return the sourceServerBrandVersion value
+ */
+ public String sourceServerBrandVersion() {
+ return this.sourceServerBrandVersion;
+ }
+
+ /**
+ * Get validation errors.
+ *
+ * @return the validationErrors value
+ */
+ public List validationErrors() {
+ return this.validationErrors;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskProperties.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskProperties.java
new file mode 100644
index 000000000000..ed1ef75de6e3
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToSourceSqlServerTaskProperties.java
@@ -0,0 +1,64 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Properties for the task that validates connection to SQL Server and also
+ * validates source server requirements.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "taskType")
+@JsonTypeName("ConnectToSource.SqlServer")
+public class ConnectToSourceSqlServerTaskProperties extends ProjectTaskProperties {
+ /**
+ * Task input.
+ */
+ @JsonProperty(value = "input")
+ private ConnectToSourceSqlServerTaskInput input;
+
+ /**
+ * Task output. This is ignored if submitted.
+ */
+ @JsonProperty(value = "output", access = JsonProperty.Access.WRITE_ONLY)
+ private List output;
+
+ /**
+ * Get task input.
+ *
+ * @return the input value
+ */
+ public ConnectToSourceSqlServerTaskInput input() {
+ return this.input;
+ }
+
+ /**
+ * Set task input.
+ *
+ * @param input the input value to set
+ * @return the ConnectToSourceSqlServerTaskProperties object itself.
+ */
+ public ConnectToSourceSqlServerTaskProperties withInput(ConnectToSourceSqlServerTaskInput input) {
+ this.input = input;
+ return this;
+ }
+
+ /**
+ * Get task output. This is ignored if submitted.
+ *
+ * @return the output value
+ */
+ public List output() {
+ return this.output;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToTargetSqlDbTaskInput.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToTargetSqlDbTaskInput.java
new file mode 100644
index 000000000000..f0feacd8a9d0
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToTargetSqlDbTaskInput.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Input for the task that validates connection to SQL DB and target server
+ * requirements.
+ */
+public class ConnectToTargetSqlDbTaskInput {
+ /**
+ * Connection information for target SQL DB.
+ */
+ @JsonProperty(value = "targetConnectionInfo", required = true)
+ private SqlConnectionInfo targetConnectionInfo;
+
+ /**
+ * Get connection information for target SQL DB.
+ *
+ * @return the targetConnectionInfo value
+ */
+ public SqlConnectionInfo targetConnectionInfo() {
+ return this.targetConnectionInfo;
+ }
+
+ /**
+ * Set connection information for target SQL DB.
+ *
+ * @param targetConnectionInfo the targetConnectionInfo value to set
+ * @return the ConnectToTargetSqlDbTaskInput object itself.
+ */
+ public ConnectToTargetSqlDbTaskInput withTargetConnectionInfo(SqlConnectionInfo targetConnectionInfo) {
+ this.targetConnectionInfo = targetConnectionInfo;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToTargetSqlDbTaskOutput.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToTargetSqlDbTaskOutput.java
new file mode 100644
index 000000000000..355b84db7e11
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToTargetSqlDbTaskOutput.java
@@ -0,0 +1,79 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Output for the task that validates connection to SQL DB and target server
+ * requirements.
+ */
+public class ConnectToTargetSqlDbTaskOutput {
+ /**
+ * Result identifier.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * Source databases as a map from database name to database id.
+ */
+ @JsonProperty(value = "databases", access = JsonProperty.Access.WRITE_ONLY)
+ private Map databases;
+
+ /**
+ * Version of the target server.
+ */
+ @JsonProperty(value = "targetServerVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String targetServerVersion;
+
+ /**
+ * Target server brand version.
+ */
+ @JsonProperty(value = "targetServerBrandVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String targetServerBrandVersion;
+
+ /**
+ * Get result identifier.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get source databases as a map from database name to database id.
+ *
+ * @return the databases value
+ */
+ public Map databases() {
+ return this.databases;
+ }
+
+ /**
+ * Get version of the target server.
+ *
+ * @return the targetServerVersion value
+ */
+ public String targetServerVersion() {
+ return this.targetServerVersion;
+ }
+
+ /**
+ * Get target server brand version.
+ *
+ * @return the targetServerBrandVersion value
+ */
+ public String targetServerBrandVersion() {
+ return this.targetServerBrandVersion;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToTargetSqlDbTaskProperties.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToTargetSqlDbTaskProperties.java
new file mode 100644
index 000000000000..b3f729ec22b6
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectToTargetSqlDbTaskProperties.java
@@ -0,0 +1,64 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Properties for the task that validates connection to SQL DB and target
+ * server requirements.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "taskType")
+@JsonTypeName("ConnectToTarget.SqlDb")
+public class ConnectToTargetSqlDbTaskProperties extends ProjectTaskProperties {
+ /**
+ * Task input.
+ */
+ @JsonProperty(value = "input")
+ private ConnectToTargetSqlDbTaskInput input;
+
+ /**
+ * Task output. This is ignored if submitted.
+ */
+ @JsonProperty(value = "output", access = JsonProperty.Access.WRITE_ONLY)
+ private List output;
+
+ /**
+ * Get task input.
+ *
+ * @return the input value
+ */
+ public ConnectToTargetSqlDbTaskInput input() {
+ return this.input;
+ }
+
+ /**
+ * Set task input.
+ *
+ * @param input the input value to set
+ * @return the ConnectToTargetSqlDbTaskProperties object itself.
+ */
+ public ConnectToTargetSqlDbTaskProperties withInput(ConnectToTargetSqlDbTaskInput input) {
+ this.input = input;
+ return this;
+ }
+
+ /**
+ * Get task output. This is ignored if submitted.
+ *
+ * @return the output value
+ */
+ public List output() {
+ return this.output;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectionInfo.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectionInfo.java
new file mode 100644
index 000000000000..117eaee261d8
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ConnectionInfo.java
@@ -0,0 +1,81 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Defines the connection properties of a server.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
+@JsonTypeName("Unknown")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "SqlConnectionInfo", value = SqlConnectionInfo.class),
+ @JsonSubTypes.Type(name = "Migrate.SqlServer.SqlDb", value = MigrateSqlServerSqlDbTaskProperties.class),
+ @JsonSubTypes.Type(name = "GetUserTables.Sql", value = GetUserTablesSqlTaskProperties.class),
+ @JsonSubTypes.Type(name = "ConnectToTarget.SqlDb", value = ConnectToTargetSqlDbTaskProperties.class),
+ @JsonSubTypes.Type(name = "ConnectToSource.SqlServer", value = ConnectToSourceSqlServerTaskProperties.class)
+})
+public class ConnectionInfo {
+ /**
+ * User name.
+ */
+ @JsonProperty(value = "userName")
+ private String userName;
+
+ /**
+ * Password credential.
+ */
+ @JsonProperty(value = "password")
+ private String password;
+
+ /**
+ * Get user name.
+ *
+ * @return the userName value
+ */
+ public String userName() {
+ return this.userName;
+ }
+
+ /**
+ * Set user name.
+ *
+ * @param userName the userName value to set
+ * @return the ConnectionInfo object itself.
+ */
+ public ConnectionInfo withUserName(String userName) {
+ this.userName = userName;
+ return this;
+ }
+
+ /**
+ * Get password credential.
+ *
+ * @return the password value
+ */
+ public String password() {
+ return this.password;
+ }
+
+ /**
+ * Set password credential.
+ *
+ * @param password the password value to set
+ * @return the ConnectionInfo object itself.
+ */
+ public ConnectionInfo withPassword(String password) {
+ this.password = password;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataIntegrityValidationResult.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataIntegrityValidationResult.java
new file mode 100644
index 000000000000..96017df12086
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataIntegrityValidationResult.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Results for checksum based Data Integrity validation results.
+ */
+public class DataIntegrityValidationResult {
+ /**
+ * List of failed table names of source and target pair.
+ */
+ @JsonProperty(value = "failedObjects")
+ private Map failedObjects;
+
+ /**
+ * List of errors that happened while performing data integrity validation.
+ */
+ @JsonProperty(value = "validationErrors")
+ private ValidationError validationErrors;
+
+ /**
+ * Get list of failed table names of source and target pair.
+ *
+ * @return the failedObjects value
+ */
+ public Map failedObjects() {
+ return this.failedObjects;
+ }
+
+ /**
+ * Set list of failed table names of source and target pair.
+ *
+ * @param failedObjects the failedObjects value to set
+ * @return the DataIntegrityValidationResult object itself.
+ */
+ public DataIntegrityValidationResult withFailedObjects(Map failedObjects) {
+ this.failedObjects = failedObjects;
+ return this;
+ }
+
+ /**
+ * Get list of errors that happened while performing data integrity validation.
+ *
+ * @return the validationErrors value
+ */
+ public ValidationError validationErrors() {
+ return this.validationErrors;
+ }
+
+ /**
+ * Set list of errors that happened while performing data integrity validation.
+ *
+ * @param validationErrors the validationErrors value to set
+ * @return the DataIntegrityValidationResult object itself.
+ */
+ public DataIntegrityValidationResult withValidationErrors(ValidationError validationErrors) {
+ this.validationErrors = validationErrors;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataItemMigrationSummaryResult.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataItemMigrationSummaryResult.java
new file mode 100644
index 000000000000..1ee65c34adda
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataItemMigrationSummaryResult.java
@@ -0,0 +1,155 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Basic summary of a data item migration.
+ */
+public class DataItemMigrationSummaryResult {
+ /**
+ * Name of the item.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * Migration start time.
+ */
+ @JsonProperty(value = "startedOn", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime startedOn;
+
+ /**
+ * Migration end time.
+ */
+ @JsonProperty(value = "endedOn", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime endedOn;
+
+ /**
+ * Current state of migration. Possible values include: 'None',
+ * 'InProgress', 'Failed', 'Warning', 'Completed', 'Skipped', 'Stopped'.
+ */
+ @JsonProperty(value = "state", access = JsonProperty.Access.WRITE_ONLY)
+ private MigrationState state;
+
+ /**
+ * Status message.
+ */
+ @JsonProperty(value = "statusMessage", access = JsonProperty.Access.WRITE_ONLY)
+ private String statusMessage;
+
+ /**
+ * Number of items.
+ */
+ @JsonProperty(value = "itemsCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long itemsCount;
+
+ /**
+ * Number of successfully completed items.
+ */
+ @JsonProperty(value = "itemsCompletedCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long itemsCompletedCount;
+
+ /**
+ * Wildcard string prefix to use for querying all errors of the item.
+ */
+ @JsonProperty(value = "errorPrefix", access = JsonProperty.Access.WRITE_ONLY)
+ private String errorPrefix;
+
+ /**
+ * Wildcard string prefix to use for querying all sub-tem results of the
+ * item.
+ */
+ @JsonProperty(value = "resultPrefix", access = JsonProperty.Access.WRITE_ONLY)
+ private String resultPrefix;
+
+ /**
+ * Get name of the item.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get migration start time.
+ *
+ * @return the startedOn value
+ */
+ public DateTime startedOn() {
+ return this.startedOn;
+ }
+
+ /**
+ * Get migration end time.
+ *
+ * @return the endedOn value
+ */
+ public DateTime endedOn() {
+ return this.endedOn;
+ }
+
+ /**
+ * Get current state of migration. Possible values include: 'None', 'InProgress', 'Failed', 'Warning', 'Completed', 'Skipped', 'Stopped'.
+ *
+ * @return the state value
+ */
+ public MigrationState state() {
+ return this.state;
+ }
+
+ /**
+ * Get status message.
+ *
+ * @return the statusMessage value
+ */
+ public String statusMessage() {
+ return this.statusMessage;
+ }
+
+ /**
+ * Get number of items.
+ *
+ * @return the itemsCount value
+ */
+ public Long itemsCount() {
+ return this.itemsCount;
+ }
+
+ /**
+ * Get number of successfully completed items.
+ *
+ * @return the itemsCompletedCount value
+ */
+ public Long itemsCompletedCount() {
+ return this.itemsCompletedCount;
+ }
+
+ /**
+ * Get wildcard string prefix to use for querying all errors of the item.
+ *
+ * @return the errorPrefix value
+ */
+ public String errorPrefix() {
+ return this.errorPrefix;
+ }
+
+ /**
+ * Get wildcard string prefix to use for querying all sub-tem results of the item.
+ *
+ * @return the resultPrefix value
+ */
+ public String resultPrefix() {
+ return this.resultPrefix;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataMigrationError.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataMigrationError.java
new file mode 100644
index 000000000000..b0ce87718b1e
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataMigrationError.java
@@ -0,0 +1,58 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Migration Task errors.
+ */
+public class DataMigrationError {
+ /**
+ * Error description.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * Possible values include: 'Default', 'Warning', 'Error'.
+ */
+ @JsonProperty(value = "type")
+ private ErrorType type;
+
+ /**
+ * Get error description.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Get possible values include: 'Default', 'Warning', 'Error'.
+ *
+ * @return the type value
+ */
+ public ErrorType type() {
+ return this.type;
+ }
+
+ /**
+ * Set possible values include: 'Default', 'Warning', 'Error'.
+ *
+ * @param type the type value to set
+ * @return the DataMigrationError object itself.
+ */
+ public DataMigrationError withType(ErrorType type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataMigrationProjectMetadata.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataMigrationProjectMetadata.java
new file mode 100644
index 000000000000..bf38592d996f
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataMigrationProjectMetadata.java
@@ -0,0 +1,138 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Common metadata for migration projects.
+ */
+public class DataMigrationProjectMetadata {
+ /**
+ * Source server name.
+ */
+ @JsonProperty(value = "sourceServerName", access = JsonProperty.Access.WRITE_ONLY)
+ private String sourceServerName;
+
+ /**
+ * Source server port number.
+ */
+ @JsonProperty(value = "sourceServerPort", access = JsonProperty.Access.WRITE_ONLY)
+ private String sourceServerPort;
+
+ /**
+ * Source username.
+ */
+ @JsonProperty(value = "sourceUsername", access = JsonProperty.Access.WRITE_ONLY)
+ private String sourceUsername;
+
+ /**
+ * Target server name.
+ */
+ @JsonProperty(value = "targetServerName", access = JsonProperty.Access.WRITE_ONLY)
+ private String targetServerName;
+
+ /**
+ * Target username.
+ */
+ @JsonProperty(value = "targetUsername", access = JsonProperty.Access.WRITE_ONLY)
+ private String targetUsername;
+
+ /**
+ * Target database name.
+ */
+ @JsonProperty(value = "targetDbName", access = JsonProperty.Access.WRITE_ONLY)
+ private String targetDbName;
+
+ /**
+ * Whether target connection is Windows authentication.
+ */
+ @JsonProperty(value = "targetUsingWinAuth", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean targetUsingWinAuth;
+
+ /**
+ * List of tables selected for migration.
+ */
+ @JsonProperty(value = "selectedMigrationTables", access = JsonProperty.Access.WRITE_ONLY)
+ private List selectedMigrationTables;
+
+ /**
+ * Get source server name.
+ *
+ * @return the sourceServerName value
+ */
+ public String sourceServerName() {
+ return this.sourceServerName;
+ }
+
+ /**
+ * Get source server port number.
+ *
+ * @return the sourceServerPort value
+ */
+ public String sourceServerPort() {
+ return this.sourceServerPort;
+ }
+
+ /**
+ * Get source username.
+ *
+ * @return the sourceUsername value
+ */
+ public String sourceUsername() {
+ return this.sourceUsername;
+ }
+
+ /**
+ * Get target server name.
+ *
+ * @return the targetServerName value
+ */
+ public String targetServerName() {
+ return this.targetServerName;
+ }
+
+ /**
+ * Get target username.
+ *
+ * @return the targetUsername value
+ */
+ public String targetUsername() {
+ return this.targetUsername;
+ }
+
+ /**
+ * Get target database name.
+ *
+ * @return the targetDbName value
+ */
+ public String targetDbName() {
+ return this.targetDbName;
+ }
+
+ /**
+ * Get whether target connection is Windows authentication.
+ *
+ * @return the targetUsingWinAuth value
+ */
+ public Boolean targetUsingWinAuth() {
+ return this.targetUsingWinAuth;
+ }
+
+ /**
+ * Get list of tables selected for migration.
+ *
+ * @return the selectedMigrationTables value
+ */
+ public List selectedMigrationTables() {
+ return this.selectedMigrationTables;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataMigrationService.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataMigrationService.java
new file mode 100644
index 000000000000..cd081b0129b7
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataMigrationService.java
@@ -0,0 +1,206 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_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.azuredatabasemigrationservice.v2017_11_15_preview.implementation.DataMigrationManager;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.DataMigrationServiceInner;
+
+/**
+ * Type representing DataMigrationService.
+ */
+public interface DataMigrationService extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the etag value.
+ */
+ String etag();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ServiceProvisioningState provisioningState();
+
+ /**
+ * @return the publicKey value.
+ */
+ String publicKey();
+
+ /**
+ * @return the sku value.
+ */
+ ServiceSku sku();
+
+ /**
+ * @return the virtualSubnetId value.
+ */
+ String virtualSubnetId();
+
+ /**
+ * The entirety of the DataMigrationService definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithVirtualSubnetId, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DataMigrationService definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DataMigrationService definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the DataMigrationService definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the datamigrationservice definition allowing to specify VirtualSubnetId.
+ */
+ interface WithVirtualSubnetId {
+ /**
+ * Specifies virtualSubnetId.
+ * @param virtualSubnetId The ID of the Microsoft.Network/virtualNetworks/subnets resource to which the service should be joined
+ * @return the next definition stage
+*/
+ WithCreate withVirtualSubnetId(String virtualSubnetId);
+ }
+
+ /**
+ * The stage of the datamigrationservice definition allowing to specify Etag.
+ */
+ interface WithEtag {
+ /**
+ * Specifies etag.
+ * @param etag HTTP strong entity tag value. Ignored if submitted
+ * @return the next definition stage
+ */
+ WithCreate withEtag(String etag);
+ }
+
+ /**
+ * The stage of the datamigrationservice definition allowing to specify Kind.
+ */
+ interface WithKind {
+ /**
+ * Specifies kind.
+ * @param kind The resource kind. Only 'vm' (the default) is supported
+ * @return the next definition stage
+ */
+ WithCreate withKind(String kind);
+ }
+
+ /**
+ * The stage of the datamigrationservice definition allowing to specify PublicKey.
+ */
+ interface WithPublicKey {
+ /**
+ * Specifies publicKey.
+ * @param publicKey The public key of the service, used to encrypt secrets sent to the service
+ * @return the next definition stage
+ */
+ WithCreate withPublicKey(String publicKey);
+ }
+
+ /**
+ * The stage of the datamigrationservice definition allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku Service SKU
+ * @return the next definition stage
+ */
+ WithCreate withSku(ServiceSku sku);
+ }
+
+ /**
+ * 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.WithEtag, DefinitionStages.WithKind, DefinitionStages.WithPublicKey, DefinitionStages.WithSku {
+ }
+ }
+ /**
+ * The template for a DataMigrationService update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithEtag, UpdateStages.WithKind, UpdateStages.WithPublicKey, UpdateStages.WithSku {
+ }
+
+ /**
+ * Grouping of DataMigrationService update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the datamigrationservice update allowing to specify Etag.
+ */
+ interface WithEtag {
+ /**
+ * Specifies etag.
+ * @param etag HTTP strong entity tag value. Ignored if submitted
+ * @return the next update stage
+ */
+ Update withEtag(String etag);
+ }
+
+ /**
+ * The stage of the datamigrationservice update allowing to specify Kind.
+ */
+ interface WithKind {
+ /**
+ * Specifies kind.
+ * @param kind The resource kind. Only 'vm' (the default) is supported
+ * @return the next update stage
+ */
+ Update withKind(String kind);
+ }
+
+ /**
+ * The stage of the datamigrationservice update allowing to specify PublicKey.
+ */
+ interface WithPublicKey {
+ /**
+ * Specifies publicKey.
+ * @param publicKey The public key of the service, used to encrypt secrets sent to the service
+ * @return the next update stage
+ */
+ Update withPublicKey(String publicKey);
+ }
+
+ /**
+ * The stage of the datamigrationservice update allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku Service SKU
+ * @return the next update stage
+ */
+ Update withSku(ServiceSku sku);
+ }
+
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataMigrationServiceStatusResponse.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataMigrationServiceStatusResponse.java
new file mode 100644
index 000000000000..fe0c05fe3468
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DataMigrationServiceStatusResponse.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.DataMigrationManager;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.DataMigrationServiceStatusResponseInner;
+import java.util.List;
+
+/**
+ * Type representing DataMigrationServiceStatusResponse.
+ */
+public interface DataMigrationServiceStatusResponse extends HasInner, HasManager {
+ /**
+ * @return the agentVersion value.
+ */
+ String agentVersion();
+
+ /**
+ * @return the status value.
+ */
+ String status();
+
+ /**
+ * @return the supportedTaskTypes value.
+ */
+ List supportedTaskTypes();
+
+ /**
+ * @return the vmSize value.
+ */
+ String vmSize();
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Database.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Database.java
new file mode 100644
index 000000000000..9fd23b6cb3f3
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Database.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Information about a single database.
+ */
+public class Database {
+ /**
+ * Unique identifier for the database.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * Name of the database.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * SQL Server compatibility level of database. Possible values include:
+ * 'CompatLevel80', 'CompatLevel90', 'CompatLevel100', 'CompatLevel110',
+ * 'CompatLevel120', 'CompatLevel130', 'CompatLevel140'.
+ */
+ @JsonProperty(value = "compatibilityLevel")
+ private DatabaseCompatLevel compatibilityLevel;
+
+ /**
+ * Collation name of the database.
+ */
+ @JsonProperty(value = "collation")
+ private String collation;
+
+ /**
+ * Name of the server.
+ */
+ @JsonProperty(value = "serverName")
+ private String serverName;
+
+ /**
+ * Fully qualified name.
+ */
+ @JsonProperty(value = "fqdn")
+ private String fqdn;
+
+ /**
+ * Install id of the database.
+ */
+ @JsonProperty(value = "installId")
+ private String installId;
+
+ /**
+ * Version of the server.
+ */
+ @JsonProperty(value = "serverVersion")
+ private String serverVersion;
+
+ /**
+ * Edition of the server.
+ */
+ @JsonProperty(value = "serverEdition")
+ private String serverEdition;
+
+ /**
+ * Product level of the server (RTM, SP, CTP).
+ */
+ @JsonProperty(value = "serverLevel")
+ private String serverLevel;
+
+ /**
+ * Default path of the data files.
+ */
+ @JsonProperty(value = "serverDefaultDataPath")
+ private String serverDefaultDataPath;
+
+ /**
+ * Default path of the log files.
+ */
+ @JsonProperty(value = "serverDefaultLogPath")
+ private String serverDefaultLogPath;
+
+ /**
+ * Default path of the backup folder.
+ */
+ @JsonProperty(value = "serverDefaultBackupPath")
+ private String serverDefaultBackupPath;
+
+ /**
+ * Number of cores on the server.
+ */
+ @JsonProperty(value = "serverCoreCount")
+ private Integer serverCoreCount;
+
+ /**
+ * Number of cores on the server that have VISIBLE ONLINE status.
+ */
+ @JsonProperty(value = "serverVisibleOnlineCoreCount")
+ private Integer serverVisibleOnlineCoreCount;
+
+ /**
+ * State of the database. Possible values include: 'Online', 'Restoring',
+ * 'Recovering', 'RecoveryPending', 'Suspect', 'Emergency', 'Offline',
+ * 'Copying', 'OfflineSecondary'.
+ */
+ @JsonProperty(value = "databaseState")
+ private DatabaseState databaseState;
+
+ /**
+ * The unique Server Id.
+ */
+ @JsonProperty(value = "serverId")
+ private String serverId;
+
+ /**
+ * Get unique identifier for the database.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set unique identifier for the database.
+ *
+ * @param id the id value to set
+ * @return the Database object itself.
+ */
+ public Database withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get name of the database.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the database.
+ *
+ * @param name the name value to set
+ * @return the Database object itself.
+ */
+ public Database withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get sQL Server compatibility level of database. Possible values include: 'CompatLevel80', 'CompatLevel90', 'CompatLevel100', 'CompatLevel110', 'CompatLevel120', 'CompatLevel130', 'CompatLevel140'.
+ *
+ * @return the compatibilityLevel value
+ */
+ public DatabaseCompatLevel compatibilityLevel() {
+ return this.compatibilityLevel;
+ }
+
+ /**
+ * Set sQL Server compatibility level of database. Possible values include: 'CompatLevel80', 'CompatLevel90', 'CompatLevel100', 'CompatLevel110', 'CompatLevel120', 'CompatLevel130', 'CompatLevel140'.
+ *
+ * @param compatibilityLevel the compatibilityLevel value to set
+ * @return the Database object itself.
+ */
+ public Database withCompatibilityLevel(DatabaseCompatLevel compatibilityLevel) {
+ this.compatibilityLevel = compatibilityLevel;
+ return this;
+ }
+
+ /**
+ * Get collation name of the database.
+ *
+ * @return the collation value
+ */
+ public String collation() {
+ return this.collation;
+ }
+
+ /**
+ * Set collation name of the database.
+ *
+ * @param collation the collation value to set
+ * @return the Database object itself.
+ */
+ public Database withCollation(String collation) {
+ this.collation = collation;
+ return this;
+ }
+
+ /**
+ * Get name of the server.
+ *
+ * @return the serverName value
+ */
+ public String serverName() {
+ return this.serverName;
+ }
+
+ /**
+ * Set name of the server.
+ *
+ * @param serverName the serverName value to set
+ * @return the Database object itself.
+ */
+ public Database withServerName(String serverName) {
+ this.serverName = serverName;
+ return this;
+ }
+
+ /**
+ * Get fully qualified name.
+ *
+ * @return the fqdn value
+ */
+ public String fqdn() {
+ return this.fqdn;
+ }
+
+ /**
+ * Set fully qualified name.
+ *
+ * @param fqdn the fqdn value to set
+ * @return the Database object itself.
+ */
+ public Database withFqdn(String fqdn) {
+ this.fqdn = fqdn;
+ return this;
+ }
+
+ /**
+ * Get install id of the database.
+ *
+ * @return the installId value
+ */
+ public String installId() {
+ return this.installId;
+ }
+
+ /**
+ * Set install id of the database.
+ *
+ * @param installId the installId value to set
+ * @return the Database object itself.
+ */
+ public Database withInstallId(String installId) {
+ this.installId = installId;
+ return this;
+ }
+
+ /**
+ * Get version of the server.
+ *
+ * @return the serverVersion value
+ */
+ public String serverVersion() {
+ return this.serverVersion;
+ }
+
+ /**
+ * Set version of the server.
+ *
+ * @param serverVersion the serverVersion value to set
+ * @return the Database object itself.
+ */
+ public Database withServerVersion(String serverVersion) {
+ this.serverVersion = serverVersion;
+ return this;
+ }
+
+ /**
+ * Get edition of the server.
+ *
+ * @return the serverEdition value
+ */
+ public String serverEdition() {
+ return this.serverEdition;
+ }
+
+ /**
+ * Set edition of the server.
+ *
+ * @param serverEdition the serverEdition value to set
+ * @return the Database object itself.
+ */
+ public Database withServerEdition(String serverEdition) {
+ this.serverEdition = serverEdition;
+ return this;
+ }
+
+ /**
+ * Get product level of the server (RTM, SP, CTP).
+ *
+ * @return the serverLevel value
+ */
+ public String serverLevel() {
+ return this.serverLevel;
+ }
+
+ /**
+ * Set product level of the server (RTM, SP, CTP).
+ *
+ * @param serverLevel the serverLevel value to set
+ * @return the Database object itself.
+ */
+ public Database withServerLevel(String serverLevel) {
+ this.serverLevel = serverLevel;
+ return this;
+ }
+
+ /**
+ * Get default path of the data files.
+ *
+ * @return the serverDefaultDataPath value
+ */
+ public String serverDefaultDataPath() {
+ return this.serverDefaultDataPath;
+ }
+
+ /**
+ * Set default path of the data files.
+ *
+ * @param serverDefaultDataPath the serverDefaultDataPath value to set
+ * @return the Database object itself.
+ */
+ public Database withServerDefaultDataPath(String serverDefaultDataPath) {
+ this.serverDefaultDataPath = serverDefaultDataPath;
+ return this;
+ }
+
+ /**
+ * Get default path of the log files.
+ *
+ * @return the serverDefaultLogPath value
+ */
+ public String serverDefaultLogPath() {
+ return this.serverDefaultLogPath;
+ }
+
+ /**
+ * Set default path of the log files.
+ *
+ * @param serverDefaultLogPath the serverDefaultLogPath value to set
+ * @return the Database object itself.
+ */
+ public Database withServerDefaultLogPath(String serverDefaultLogPath) {
+ this.serverDefaultLogPath = serverDefaultLogPath;
+ return this;
+ }
+
+ /**
+ * Get default path of the backup folder.
+ *
+ * @return the serverDefaultBackupPath value
+ */
+ public String serverDefaultBackupPath() {
+ return this.serverDefaultBackupPath;
+ }
+
+ /**
+ * Set default path of the backup folder.
+ *
+ * @param serverDefaultBackupPath the serverDefaultBackupPath value to set
+ * @return the Database object itself.
+ */
+ public Database withServerDefaultBackupPath(String serverDefaultBackupPath) {
+ this.serverDefaultBackupPath = serverDefaultBackupPath;
+ return this;
+ }
+
+ /**
+ * Get number of cores on the server.
+ *
+ * @return the serverCoreCount value
+ */
+ public Integer serverCoreCount() {
+ return this.serverCoreCount;
+ }
+
+ /**
+ * Set number of cores on the server.
+ *
+ * @param serverCoreCount the serverCoreCount value to set
+ * @return the Database object itself.
+ */
+ public Database withServerCoreCount(Integer serverCoreCount) {
+ this.serverCoreCount = serverCoreCount;
+ return this;
+ }
+
+ /**
+ * Get number of cores on the server that have VISIBLE ONLINE status.
+ *
+ * @return the serverVisibleOnlineCoreCount value
+ */
+ public Integer serverVisibleOnlineCoreCount() {
+ return this.serverVisibleOnlineCoreCount;
+ }
+
+ /**
+ * Set number of cores on the server that have VISIBLE ONLINE status.
+ *
+ * @param serverVisibleOnlineCoreCount the serverVisibleOnlineCoreCount value to set
+ * @return the Database object itself.
+ */
+ public Database withServerVisibleOnlineCoreCount(Integer serverVisibleOnlineCoreCount) {
+ this.serverVisibleOnlineCoreCount = serverVisibleOnlineCoreCount;
+ return this;
+ }
+
+ /**
+ * Get state of the database. Possible values include: 'Online', 'Restoring', 'Recovering', 'RecoveryPending', 'Suspect', 'Emergency', 'Offline', 'Copying', 'OfflineSecondary'.
+ *
+ * @return the databaseState value
+ */
+ public DatabaseState databaseState() {
+ return this.databaseState;
+ }
+
+ /**
+ * Set state of the database. Possible values include: 'Online', 'Restoring', 'Recovering', 'RecoveryPending', 'Suspect', 'Emergency', 'Offline', 'Copying', 'OfflineSecondary'.
+ *
+ * @param databaseState the databaseState value to set
+ * @return the Database object itself.
+ */
+ public Database withDatabaseState(DatabaseState databaseState) {
+ this.databaseState = databaseState;
+ return this;
+ }
+
+ /**
+ * Get the unique Server Id.
+ *
+ * @return the serverId value
+ */
+ public String serverId() {
+ return this.serverId;
+ }
+
+ /**
+ * Set the unique Server Id.
+ *
+ * @param serverId the serverId value to set
+ * @return the Database object itself.
+ */
+ public Database withServerId(String serverId) {
+ this.serverId = serverId;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseCompatLevel.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseCompatLevel.java
new file mode 100644
index 000000000000..f7dee1e630ce
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseCompatLevel.java
@@ -0,0 +1,68 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DatabaseCompatLevel.
+ */
+public enum DatabaseCompatLevel {
+ /** Enum value CompatLevel80. */
+ COMPAT_LEVEL80("CompatLevel80"),
+
+ /** Enum value CompatLevel90. */
+ COMPAT_LEVEL90("CompatLevel90"),
+
+ /** Enum value CompatLevel100. */
+ COMPAT_LEVEL100("CompatLevel100"),
+
+ /** Enum value CompatLevel110. */
+ COMPAT_LEVEL110("CompatLevel110"),
+
+ /** Enum value CompatLevel120. */
+ COMPAT_LEVEL120("CompatLevel120"),
+
+ /** Enum value CompatLevel130. */
+ COMPAT_LEVEL130("CompatLevel130"),
+
+ /** Enum value CompatLevel140. */
+ COMPAT_LEVEL140("CompatLevel140");
+
+ /** The actual serialized value for a DatabaseCompatLevel instance. */
+ private String value;
+
+ DatabaseCompatLevel(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DatabaseCompatLevel instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DatabaseCompatLevel object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DatabaseCompatLevel fromString(String value) {
+ DatabaseCompatLevel[] items = DatabaseCompatLevel.values();
+ for (DatabaseCompatLevel item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseFileInfo.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseFileInfo.java
new file mode 100644
index 000000000000..4dde5012ae71
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseFileInfo.java
@@ -0,0 +1,200 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Database file specific information.
+ */
+public class DatabaseFileInfo {
+ /**
+ * Name of the database.
+ */
+ @JsonProperty(value = "databaseName")
+ private String databaseName;
+
+ /**
+ * Unique identifier for database file.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * Logical name of the file.
+ */
+ @JsonProperty(value = "logicalName")
+ private String logicalName;
+
+ /**
+ * Operating-system full path of the file.
+ */
+ @JsonProperty(value = "physicalFullName")
+ private String physicalFullName;
+
+ /**
+ * Suggested full path of the file for restoring.
+ */
+ @JsonProperty(value = "restoreFullName")
+ private String restoreFullName;
+
+ /**
+ * Database file type. Possible values include: 'Rows', 'Log',
+ * 'Filestream', 'NotSupported', 'Fulltext'.
+ */
+ @JsonProperty(value = "fileType")
+ private DatabaseFileType fileType;
+
+ /**
+ * Size of the file in megabytes.
+ */
+ @JsonProperty(value = "sizeMB")
+ private Double sizeMB;
+
+ /**
+ * Get name of the database.
+ *
+ * @return the databaseName value
+ */
+ public String databaseName() {
+ return this.databaseName;
+ }
+
+ /**
+ * Set name of the database.
+ *
+ * @param databaseName the databaseName value to set
+ * @return the DatabaseFileInfo object itself.
+ */
+ public DatabaseFileInfo withDatabaseName(String databaseName) {
+ this.databaseName = databaseName;
+ return this;
+ }
+
+ /**
+ * Get unique identifier for database file.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set unique identifier for database file.
+ *
+ * @param id the id value to set
+ * @return the DatabaseFileInfo object itself.
+ */
+ public DatabaseFileInfo withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get logical name of the file.
+ *
+ * @return the logicalName value
+ */
+ public String logicalName() {
+ return this.logicalName;
+ }
+
+ /**
+ * Set logical name of the file.
+ *
+ * @param logicalName the logicalName value to set
+ * @return the DatabaseFileInfo object itself.
+ */
+ public DatabaseFileInfo withLogicalName(String logicalName) {
+ this.logicalName = logicalName;
+ return this;
+ }
+
+ /**
+ * Get operating-system full path of the file.
+ *
+ * @return the physicalFullName value
+ */
+ public String physicalFullName() {
+ return this.physicalFullName;
+ }
+
+ /**
+ * Set operating-system full path of the file.
+ *
+ * @param physicalFullName the physicalFullName value to set
+ * @return the DatabaseFileInfo object itself.
+ */
+ public DatabaseFileInfo withPhysicalFullName(String physicalFullName) {
+ this.physicalFullName = physicalFullName;
+ return this;
+ }
+
+ /**
+ * Get suggested full path of the file for restoring.
+ *
+ * @return the restoreFullName value
+ */
+ public String restoreFullName() {
+ return this.restoreFullName;
+ }
+
+ /**
+ * Set suggested full path of the file for restoring.
+ *
+ * @param restoreFullName the restoreFullName value to set
+ * @return the DatabaseFileInfo object itself.
+ */
+ public DatabaseFileInfo withRestoreFullName(String restoreFullName) {
+ this.restoreFullName = restoreFullName;
+ return this;
+ }
+
+ /**
+ * Get database file type. Possible values include: 'Rows', 'Log', 'Filestream', 'NotSupported', 'Fulltext'.
+ *
+ * @return the fileType value
+ */
+ public DatabaseFileType fileType() {
+ return this.fileType;
+ }
+
+ /**
+ * Set database file type. Possible values include: 'Rows', 'Log', 'Filestream', 'NotSupported', 'Fulltext'.
+ *
+ * @param fileType the fileType value to set
+ * @return the DatabaseFileInfo object itself.
+ */
+ public DatabaseFileInfo withFileType(DatabaseFileType fileType) {
+ this.fileType = fileType;
+ return this;
+ }
+
+ /**
+ * Get size of the file in megabytes.
+ *
+ * @return the sizeMB value
+ */
+ public Double sizeMB() {
+ return this.sizeMB;
+ }
+
+ /**
+ * Set size of the file in megabytes.
+ *
+ * @param sizeMB the sizeMB value to set
+ * @return the DatabaseFileInfo object itself.
+ */
+ public DatabaseFileInfo withSizeMB(Double sizeMB) {
+ this.sizeMB = sizeMB;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseFileInput.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseFileInput.java
new file mode 100644
index 000000000000..e4ea692b00e9
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseFileInput.java
@@ -0,0 +1,148 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Database file specific information for input.
+ */
+public class DatabaseFileInput {
+ /**
+ * Unique identifier for database file.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * Logical name of the file.
+ */
+ @JsonProperty(value = "logicalName")
+ private String logicalName;
+
+ /**
+ * Operating-system full path of the file.
+ */
+ @JsonProperty(value = "physicalFullName")
+ private String physicalFullName;
+
+ /**
+ * Suggested full path of the file for restoring.
+ */
+ @JsonProperty(value = "restoreFullName")
+ private String restoreFullName;
+
+ /**
+ * Database file type. Possible values include: 'Rows', 'Log',
+ * 'Filestream', 'NotSupported', 'Fulltext'.
+ */
+ @JsonProperty(value = "fileType")
+ private DatabaseFileType fileType;
+
+ /**
+ * Get unique identifier for database file.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set unique identifier for database file.
+ *
+ * @param id the id value to set
+ * @return the DatabaseFileInput object itself.
+ */
+ public DatabaseFileInput withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get logical name of the file.
+ *
+ * @return the logicalName value
+ */
+ public String logicalName() {
+ return this.logicalName;
+ }
+
+ /**
+ * Set logical name of the file.
+ *
+ * @param logicalName the logicalName value to set
+ * @return the DatabaseFileInput object itself.
+ */
+ public DatabaseFileInput withLogicalName(String logicalName) {
+ this.logicalName = logicalName;
+ return this;
+ }
+
+ /**
+ * Get operating-system full path of the file.
+ *
+ * @return the physicalFullName value
+ */
+ public String physicalFullName() {
+ return this.physicalFullName;
+ }
+
+ /**
+ * Set operating-system full path of the file.
+ *
+ * @param physicalFullName the physicalFullName value to set
+ * @return the DatabaseFileInput object itself.
+ */
+ public DatabaseFileInput withPhysicalFullName(String physicalFullName) {
+ this.physicalFullName = physicalFullName;
+ return this;
+ }
+
+ /**
+ * Get suggested full path of the file for restoring.
+ *
+ * @return the restoreFullName value
+ */
+ public String restoreFullName() {
+ return this.restoreFullName;
+ }
+
+ /**
+ * Set suggested full path of the file for restoring.
+ *
+ * @param restoreFullName the restoreFullName value to set
+ * @return the DatabaseFileInput object itself.
+ */
+ public DatabaseFileInput withRestoreFullName(String restoreFullName) {
+ this.restoreFullName = restoreFullName;
+ return this;
+ }
+
+ /**
+ * Get database file type. Possible values include: 'Rows', 'Log', 'Filestream', 'NotSupported', 'Fulltext'.
+ *
+ * @return the fileType value
+ */
+ public DatabaseFileType fileType() {
+ return this.fileType;
+ }
+
+ /**
+ * Set database file type. Possible values include: 'Rows', 'Log', 'Filestream', 'NotSupported', 'Fulltext'.
+ *
+ * @param fileType the fileType value to set
+ * @return the DatabaseFileInput object itself.
+ */
+ public DatabaseFileInput withFileType(DatabaseFileType fileType) {
+ this.fileType = fileType;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseFileType.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseFileType.java
new file mode 100644
index 000000000000..9b7901462a09
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseFileType.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DatabaseFileType.
+ */
+public enum DatabaseFileType {
+ /** Enum value Rows. */
+ ROWS("Rows"),
+
+ /** Enum value Log. */
+ LOG("Log"),
+
+ /** Enum value Filestream. */
+ FILESTREAM("Filestream"),
+
+ /** Enum value NotSupported. */
+ NOT_SUPPORTED("NotSupported"),
+
+ /** Enum value Fulltext. */
+ FULLTEXT("Fulltext");
+
+ /** The actual serialized value for a DatabaseFileType instance. */
+ private String value;
+
+ DatabaseFileType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DatabaseFileType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DatabaseFileType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DatabaseFileType fromString(String value) {
+ DatabaseFileType[] items = DatabaseFileType.values();
+ for (DatabaseFileType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseInfo.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseInfo.java
new file mode 100644
index 000000000000..663b48d39dbb
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseInfo.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Project Database Details.
+ */
+public class DatabaseInfo {
+ /**
+ * Name of the database.
+ */
+ @JsonProperty(value = "sourceDatabaseName", required = true)
+ private String sourceDatabaseName;
+
+ /**
+ * Get name of the database.
+ *
+ * @return the sourceDatabaseName value
+ */
+ public String sourceDatabaseName() {
+ return this.sourceDatabaseName;
+ }
+
+ /**
+ * Set name of the database.
+ *
+ * @param sourceDatabaseName the sourceDatabaseName value to set
+ * @return the DatabaseInfo object itself.
+ */
+ public DatabaseInfo withSourceDatabaseName(String sourceDatabaseName) {
+ this.sourceDatabaseName = sourceDatabaseName;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseMigrationStage.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseMigrationStage.java
new file mode 100644
index 000000000000..b7e3ab032194
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseMigrationStage.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DatabaseMigrationStage.
+ */
+public enum DatabaseMigrationStage {
+ /** Enum value None. */
+ NONE("None"),
+
+ /** Enum value Initialize. */
+ INITIALIZE("Initialize"),
+
+ /** Enum value Backup. */
+ BACKUP("Backup"),
+
+ /** Enum value FileCopy. */
+ FILE_COPY("FileCopy"),
+
+ /** Enum value Restore. */
+ RESTORE("Restore"),
+
+ /** Enum value Completed. */
+ COMPLETED("Completed");
+
+ /** The actual serialized value for a DatabaseMigrationStage instance. */
+ private String value;
+
+ DatabaseMigrationStage(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DatabaseMigrationStage instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DatabaseMigrationStage object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DatabaseMigrationStage fromString(String value) {
+ DatabaseMigrationStage[] items = DatabaseMigrationStage.values();
+ for (DatabaseMigrationStage item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseObjectName.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseObjectName.java
new file mode 100644
index 000000000000..24d86c5abb1d
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseObjectName.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A representation of the name of an object in a database.
+ */
+public class DatabaseObjectName {
+ /**
+ * The unescaped name of the database containing the object.
+ */
+ @JsonProperty(value = "databaseName", access = JsonProperty.Access.WRITE_ONLY)
+ private String databaseName;
+
+ /**
+ * The unescaped name of the object.
+ */
+ @JsonProperty(value = "objectName", access = JsonProperty.Access.WRITE_ONLY)
+ private String objectName;
+
+ /**
+ * The unescaped name of the schema containing the object.
+ */
+ @JsonProperty(value = "schemaName", access = JsonProperty.Access.WRITE_ONLY)
+ private String schemaName;
+
+ /**
+ * Type of the object in the database. Possible values include:
+ * 'StoredProcedures', 'Table', 'User', 'View', 'Function'.
+ */
+ @JsonProperty(value = "objectType")
+ private ObjectType objectType;
+
+ /**
+ * Get the unescaped name of the database containing the object.
+ *
+ * @return the databaseName value
+ */
+ public String databaseName() {
+ return this.databaseName;
+ }
+
+ /**
+ * Get the unescaped name of the object.
+ *
+ * @return the objectName value
+ */
+ public String objectName() {
+ return this.objectName;
+ }
+
+ /**
+ * Get the unescaped name of the schema containing the object.
+ *
+ * @return the schemaName value
+ */
+ public String schemaName() {
+ return this.schemaName;
+ }
+
+ /**
+ * Get type of the object in the database. Possible values include: 'StoredProcedures', 'Table', 'User', 'View', 'Function'.
+ *
+ * @return the objectType value
+ */
+ public ObjectType objectType() {
+ return this.objectType;
+ }
+
+ /**
+ * Set type of the object in the database. Possible values include: 'StoredProcedures', 'Table', 'User', 'View', 'Function'.
+ *
+ * @param objectType the objectType value to set
+ * @return the DatabaseObjectName object itself.
+ */
+ public DatabaseObjectName withObjectType(ObjectType objectType) {
+ this.objectType = objectType;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseState.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseState.java
new file mode 100644
index 000000000000..8be73021dae3
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseState.java
@@ -0,0 +1,74 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DatabaseState.
+ */
+public enum DatabaseState {
+ /** Enum value Online. */
+ ONLINE("Online"),
+
+ /** Enum value Restoring. */
+ RESTORING("Restoring"),
+
+ /** Enum value Recovering. */
+ RECOVERING("Recovering"),
+
+ /** Enum value RecoveryPending. */
+ RECOVERY_PENDING("RecoveryPending"),
+
+ /** Enum value Suspect. */
+ SUSPECT("Suspect"),
+
+ /** Enum value Emergency. */
+ EMERGENCY("Emergency"),
+
+ /** Enum value Offline. */
+ OFFLINE("Offline"),
+
+ /** Enum value Copying. */
+ COPYING("Copying"),
+
+ /** Enum value OfflineSecondary. */
+ OFFLINE_SECONDARY("OfflineSecondary");
+
+ /** The actual serialized value for a DatabaseState instance. */
+ private String value;
+
+ DatabaseState(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DatabaseState instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DatabaseState object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DatabaseState fromString(String value) {
+ DatabaseState[] items = DatabaseState.values();
+ for (DatabaseState item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseSummaryResult.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseSummaryResult.java
new file mode 100644
index 000000000000..858cd0aeab19
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseSummaryResult.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Summary of database results in the migration.
+ */
+public class DatabaseSummaryResult extends DataItemMigrationSummaryResult {
+ /**
+ * Size of the database in megabytes.
+ */
+ @JsonProperty(value = "sizeMB", access = JsonProperty.Access.WRITE_ONLY)
+ private Double sizeMB;
+
+ /**
+ * Get size of the database in megabytes.
+ *
+ * @return the sizeMB value
+ */
+ public Double sizeMB() {
+ return this.sizeMB;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseTable.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseTable.java
new file mode 100644
index 000000000000..8a3f0231ec34
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/DatabaseTable.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Table properties.
+ */
+public class DatabaseTable {
+ /**
+ * Indicates whether table is empty or not.
+ */
+ @JsonProperty(value = "hasRows", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean hasRows;
+
+ /**
+ * Schema-qualified name of the table.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * Get indicates whether table is empty or not.
+ *
+ * @return the hasRows value
+ */
+ public Boolean hasRows() {
+ return this.hasRows;
+ }
+
+ /**
+ * Get schema-qualified name of the table.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ErrorType.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ErrorType.java
new file mode 100644
index 000000000000..6eaeb24c4128
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ErrorType.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ErrorType.
+ */
+public enum ErrorType {
+ /** Enum value Default. */
+ DEFAULT("Default"),
+
+ /** Enum value Warning. */
+ WARNING("Warning"),
+
+ /** Enum value Error. */
+ ERROR("Error");
+
+ /** The actual serialized value for a ErrorType instance. */
+ private String value;
+
+ ErrorType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ErrorType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ErrorType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ErrorType fromString(String value) {
+ ErrorType[] items = ErrorType.values();
+ for (ErrorType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ExecutionStatistics.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ExecutionStatistics.java
new file mode 100644
index 000000000000..da4cd6d72f22
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ExecutionStatistics.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.Map;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Description about the errors happen while performing migration validation.
+ */
+public class ExecutionStatistics {
+ /**
+ * No. of query executions.
+ */
+ @JsonProperty(value = "executionCount")
+ private Long executionCount;
+
+ /**
+ * CPU Time in millisecond(s) for the query execution.
+ */
+ @JsonProperty(value = "cpuTimeMs")
+ private Double cpuTimeMs;
+
+ /**
+ * Time taken in millisecond(s) for executing the query.
+ */
+ @JsonProperty(value = "elapsedTimeMs")
+ private Double elapsedTimeMs;
+
+ /**
+ * Dictionary of sql query execution wait types and the respective
+ * statistics.
+ */
+ @JsonProperty(value = "waitStats")
+ private Map waitStats;
+
+ /**
+ * Indicates whether the query resulted in an error.
+ */
+ @JsonProperty(value = "hasErrors")
+ private Boolean hasErrors;
+
+ /**
+ * List of sql Errors.
+ */
+ @JsonProperty(value = "sqlErrors")
+ private List sqlErrors;
+
+ /**
+ * Get no. of query executions.
+ *
+ * @return the executionCount value
+ */
+ public Long executionCount() {
+ return this.executionCount;
+ }
+
+ /**
+ * Set no. of query executions.
+ *
+ * @param executionCount the executionCount value to set
+ * @return the ExecutionStatistics object itself.
+ */
+ public ExecutionStatistics withExecutionCount(Long executionCount) {
+ this.executionCount = executionCount;
+ return this;
+ }
+
+ /**
+ * Get cPU Time in millisecond(s) for the query execution.
+ *
+ * @return the cpuTimeMs value
+ */
+ public Double cpuTimeMs() {
+ return this.cpuTimeMs;
+ }
+
+ /**
+ * Set cPU Time in millisecond(s) for the query execution.
+ *
+ * @param cpuTimeMs the cpuTimeMs value to set
+ * @return the ExecutionStatistics object itself.
+ */
+ public ExecutionStatistics withCpuTimeMs(Double cpuTimeMs) {
+ this.cpuTimeMs = cpuTimeMs;
+ return this;
+ }
+
+ /**
+ * Get time taken in millisecond(s) for executing the query.
+ *
+ * @return the elapsedTimeMs value
+ */
+ public Double elapsedTimeMs() {
+ return this.elapsedTimeMs;
+ }
+
+ /**
+ * Set time taken in millisecond(s) for executing the query.
+ *
+ * @param elapsedTimeMs the elapsedTimeMs value to set
+ * @return the ExecutionStatistics object itself.
+ */
+ public ExecutionStatistics withElapsedTimeMs(Double elapsedTimeMs) {
+ this.elapsedTimeMs = elapsedTimeMs;
+ return this;
+ }
+
+ /**
+ * Get dictionary of sql query execution wait types and the respective statistics.
+ *
+ * @return the waitStats value
+ */
+ public Map waitStats() {
+ return this.waitStats;
+ }
+
+ /**
+ * Set dictionary of sql query execution wait types and the respective statistics.
+ *
+ * @param waitStats the waitStats value to set
+ * @return the ExecutionStatistics object itself.
+ */
+ public ExecutionStatistics withWaitStats(Map waitStats) {
+ this.waitStats = waitStats;
+ return this;
+ }
+
+ /**
+ * Get indicates whether the query resulted in an error.
+ *
+ * @return the hasErrors value
+ */
+ public Boolean hasErrors() {
+ return this.hasErrors;
+ }
+
+ /**
+ * Set indicates whether the query resulted in an error.
+ *
+ * @param hasErrors the hasErrors value to set
+ * @return the ExecutionStatistics object itself.
+ */
+ public ExecutionStatistics withHasErrors(Boolean hasErrors) {
+ this.hasErrors = hasErrors;
+ return this;
+ }
+
+ /**
+ * Get list of sql Errors.
+ *
+ * @return the sqlErrors value
+ */
+ public List sqlErrors() {
+ return this.sqlErrors;
+ }
+
+ /**
+ * Set list of sql Errors.
+ *
+ * @param sqlErrors the sqlErrors value to set
+ * @return the ExecutionStatistics object itself.
+ */
+ public ExecutionStatistics withSqlErrors(List sqlErrors) {
+ this.sqlErrors = sqlErrors;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/GetUserTablesSqlTaskInput.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/GetUserTablesSqlTaskInput.java
new file mode 100644
index 000000000000..96e8c27e9988
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/GetUserTablesSqlTaskInput.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Input for the task that collects user tables for the given list of
+ * databases.
+ */
+public class GetUserTablesSqlTaskInput {
+ /**
+ * Connection information for SQL Server.
+ */
+ @JsonProperty(value = "connectionInfo", required = true)
+ private SqlConnectionInfo connectionInfo;
+
+ /**
+ * List of database names to collect tables for.
+ */
+ @JsonProperty(value = "selectedDatabases", required = true)
+ private List selectedDatabases;
+
+ /**
+ * Get connection information for SQL Server.
+ *
+ * @return the connectionInfo value
+ */
+ public SqlConnectionInfo connectionInfo() {
+ return this.connectionInfo;
+ }
+
+ /**
+ * Set connection information for SQL Server.
+ *
+ * @param connectionInfo the connectionInfo value to set
+ * @return the GetUserTablesSqlTaskInput object itself.
+ */
+ public GetUserTablesSqlTaskInput withConnectionInfo(SqlConnectionInfo connectionInfo) {
+ this.connectionInfo = connectionInfo;
+ return this;
+ }
+
+ /**
+ * Get list of database names to collect tables for.
+ *
+ * @return the selectedDatabases value
+ */
+ public List selectedDatabases() {
+ return this.selectedDatabases;
+ }
+
+ /**
+ * Set list of database names to collect tables for.
+ *
+ * @param selectedDatabases the selectedDatabases value to set
+ * @return the GetUserTablesSqlTaskInput object itself.
+ */
+ public GetUserTablesSqlTaskInput withSelectedDatabases(List selectedDatabases) {
+ this.selectedDatabases = selectedDatabases;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/GetUserTablesSqlTaskOutput.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/GetUserTablesSqlTaskOutput.java
new file mode 100644
index 000000000000..be68ecd7e848
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/GetUserTablesSqlTaskOutput.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.Map;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Output of the task that collects user tables for the given list of
+ * databases.
+ */
+public class GetUserTablesSqlTaskOutput {
+ /**
+ * Result identifier.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * Mapping from database name to list of tables.
+ */
+ @JsonProperty(value = "databasesToTables", access = JsonProperty.Access.WRITE_ONLY)
+ private Map> databasesToTables;
+
+ /**
+ * Validation errors.
+ */
+ @JsonProperty(value = "validationErrors", access = JsonProperty.Access.WRITE_ONLY)
+ private List validationErrors;
+
+ /**
+ * Get result identifier.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get mapping from database name to list of tables.
+ *
+ * @return the databasesToTables value
+ */
+ public Map> databasesToTables() {
+ return this.databasesToTables;
+ }
+
+ /**
+ * Get validation errors.
+ *
+ * @return the validationErrors value
+ */
+ public List validationErrors() {
+ return this.validationErrors;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/GetUserTablesSqlTaskProperties.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/GetUserTablesSqlTaskProperties.java
new file mode 100644
index 000000000000..d60ec5e8be43
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/GetUserTablesSqlTaskProperties.java
@@ -0,0 +1,64 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Properties for the task that collects user tables for the given list of
+ * databases.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "taskType")
+@JsonTypeName("GetUserTables.Sql")
+public class GetUserTablesSqlTaskProperties extends ProjectTaskProperties {
+ /**
+ * Task input.
+ */
+ @JsonProperty(value = "input")
+ private GetUserTablesSqlTaskInput input;
+
+ /**
+ * Task output. This is ignored if submitted.
+ */
+ @JsonProperty(value = "output", access = JsonProperty.Access.WRITE_ONLY)
+ private List output;
+
+ /**
+ * Get task input.
+ *
+ * @return the input value
+ */
+ public GetUserTablesSqlTaskInput input() {
+ return this.input;
+ }
+
+ /**
+ * Set task input.
+ *
+ * @param input the input value to set
+ * @return the GetUserTablesSqlTaskProperties object itself.
+ */
+ public GetUserTablesSqlTaskProperties withInput(GetUserTablesSqlTaskInput input) {
+ this.input = input;
+ return this;
+ }
+
+ /**
+ * Get task output. This is ignored if submitted.
+ *
+ * @return the output value
+ */
+ public List output() {
+ return this.output;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbDatabaseInput.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbDatabaseInput.java
new file mode 100644
index 000000000000..12d6da9bf060
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbDatabaseInput.java
@@ -0,0 +1,123 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Database specific information for SQL to Azure SQL DB migration task inputs.
+ */
+public class MigrateSqlServerSqlDbDatabaseInput {
+ /**
+ * Name of the database.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Name of target database. Note: Target database will be truncated before
+ * starting migration.
+ */
+ @JsonProperty(value = "targetDatabaseName")
+ private String targetDatabaseName;
+
+ /**
+ * Whether to set database read only before migration.
+ */
+ @JsonProperty(value = "makeSourceDbReadOnly")
+ private Boolean makeSourceDbReadOnly;
+
+ /**
+ * Mapping of source to target tables.
+ */
+ @JsonProperty(value = "tableMap")
+ private Map tableMap;
+
+ /**
+ * Get name of the database.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the database.
+ *
+ * @param name the name value to set
+ * @return the MigrateSqlServerSqlDbDatabaseInput object itself.
+ */
+ public MigrateSqlServerSqlDbDatabaseInput withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get name of target database. Note: Target database will be truncated before starting migration.
+ *
+ * @return the targetDatabaseName value
+ */
+ public String targetDatabaseName() {
+ return this.targetDatabaseName;
+ }
+
+ /**
+ * Set name of target database. Note: Target database will be truncated before starting migration.
+ *
+ * @param targetDatabaseName the targetDatabaseName value to set
+ * @return the MigrateSqlServerSqlDbDatabaseInput object itself.
+ */
+ public MigrateSqlServerSqlDbDatabaseInput withTargetDatabaseName(String targetDatabaseName) {
+ this.targetDatabaseName = targetDatabaseName;
+ return this;
+ }
+
+ /**
+ * Get whether to set database read only before migration.
+ *
+ * @return the makeSourceDbReadOnly value
+ */
+ public Boolean makeSourceDbReadOnly() {
+ return this.makeSourceDbReadOnly;
+ }
+
+ /**
+ * Set whether to set database read only before migration.
+ *
+ * @param makeSourceDbReadOnly the makeSourceDbReadOnly value to set
+ * @return the MigrateSqlServerSqlDbDatabaseInput object itself.
+ */
+ public MigrateSqlServerSqlDbDatabaseInput withMakeSourceDbReadOnly(Boolean makeSourceDbReadOnly) {
+ this.makeSourceDbReadOnly = makeSourceDbReadOnly;
+ return this;
+ }
+
+ /**
+ * Get mapping of source to target tables.
+ *
+ * @return the tableMap value
+ */
+ public Map tableMap() {
+ return this.tableMap;
+ }
+
+ /**
+ * Set mapping of source to target tables.
+ *
+ * @param tableMap the tableMap value to set
+ * @return the MigrateSqlServerSqlDbDatabaseInput object itself.
+ */
+ public MigrateSqlServerSqlDbDatabaseInput withTableMap(Map tableMap) {
+ this.tableMap = tableMap;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskInput.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskInput.java
new file mode 100644
index 000000000000..acf44f3441e8
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskInput.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Input for the task that migrates on-prem SQL Server databases to Azure SQL
+ * Database.
+ */
+public class MigrateSqlServerSqlDbTaskInput extends SqlMigrationTaskInput {
+ /**
+ * Databases to migrate.
+ */
+ @JsonProperty(value = "selectedDatabases", required = true)
+ private List selectedDatabases;
+
+ /**
+ * Options for enabling various post migration validations. Available
+ * options,
+ * 1.) Data Integrity Check: Performs a checksum based comparison on source
+ * and target tables after the migration to ensure the correctness of the
+ * data.
+ * 2.) Schema Validation: Performs a thorough schema comparison between the
+ * source and target tables and provides a list of differences between the
+ * source and target database, 3.) Query Analysis: Executes a set of
+ * queries picked up automatically either from the Query Plan Cache or
+ * Query Store and execute them and compares the execution time between the
+ * source and target database.
+ */
+ @JsonProperty(value = "validationOptions")
+ private MigrationValidationOptions validationOptions;
+
+ /**
+ * Get databases to migrate.
+ *
+ * @return the selectedDatabases value
+ */
+ public List selectedDatabases() {
+ return this.selectedDatabases;
+ }
+
+ /**
+ * Set databases to migrate.
+ *
+ * @param selectedDatabases the selectedDatabases value to set
+ * @return the MigrateSqlServerSqlDbTaskInput object itself.
+ */
+ public MigrateSqlServerSqlDbTaskInput withSelectedDatabases(List selectedDatabases) {
+ this.selectedDatabases = selectedDatabases;
+ return this;
+ }
+
+ /**
+ * Get options for enabling various post migration validations. Available options,
+ 1.) Data Integrity Check: Performs a checksum based comparison on source and target tables after the migration to ensure the correctness of the data.
+ 2.) Schema Validation: Performs a thorough schema comparison between the source and target tables and provides a list of differences between the source and target database, 3.) Query Analysis: Executes a set of queries picked up automatically either from the Query Plan Cache or Query Store and execute them and compares the execution time between the source and target database.
+ *
+ * @return the validationOptions value
+ */
+ public MigrationValidationOptions validationOptions() {
+ return this.validationOptions;
+ }
+
+ /**
+ * Set options for enabling various post migration validations. Available options,
+ 1.) Data Integrity Check: Performs a checksum based comparison on source and target tables after the migration to ensure the correctness of the data.
+ 2.) Schema Validation: Performs a thorough schema comparison between the source and target tables and provides a list of differences between the source and target database, 3.) Query Analysis: Executes a set of queries picked up automatically either from the Query Plan Cache or Query Store and execute them and compares the execution time between the source and target database.
+ *
+ * @param validationOptions the validationOptions value to set
+ * @return the MigrateSqlServerSqlDbTaskInput object itself.
+ */
+ public MigrateSqlServerSqlDbTaskInput withValidationOptions(MigrationValidationOptions validationOptions) {
+ this.validationOptions = validationOptions;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutput.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutput.java
new file mode 100644
index 000000000000..94367d9f9d2f
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutput.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Output for the task that migrates on-prem SQL Server databases to Azure SQL
+ * Database.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "resultType")
+@JsonTypeName("MigrateSqlServerSqlDbTaskOutput")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "ErrorOutput", value = MigrateSqlServerSqlDbTaskOutputError.class),
+ @JsonSubTypes.Type(name = "TableLevelOutput", value = MigrateSqlServerSqlDbTaskOutputTableLevel.class),
+ @JsonSubTypes.Type(name = "DatabaseLevelOutput", value = MigrateSqlServerSqlDbTaskOutputDatabaseLevel.class),
+ @JsonSubTypes.Type(name = "MigrationLevelOutput", value = MigrateSqlServerSqlDbTaskOutputMigrationLevel.class)
+})
+public class MigrateSqlServerSqlDbTaskOutput {
+ /**
+ * Result identifier.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * Get result identifier.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutputDatabaseLevel.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutputDatabaseLevel.java
new file mode 100644
index 000000000000..4b2aac2a0589
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutputDatabaseLevel.java
@@ -0,0 +1,237 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Database level result for Sql Server to Azure Sql DB migration.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "resultType")
+@JsonTypeName("DatabaseLevelOutput")
+public class MigrateSqlServerSqlDbTaskOutputDatabaseLevel extends MigrateSqlServerSqlDbTaskOutput {
+ /**
+ * Name of the item.
+ */
+ @JsonProperty(value = "databaseName", access = JsonProperty.Access.WRITE_ONLY)
+ private String databaseName;
+
+ /**
+ * Migration start time.
+ */
+ @JsonProperty(value = "startedOn", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime startedOn;
+
+ /**
+ * Migration end time.
+ */
+ @JsonProperty(value = "endedOn", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime endedOn;
+
+ /**
+ * Current state of migration. Possible values include: 'None',
+ * 'InProgress', 'Failed', 'Warning', 'Completed', 'Skipped', 'Stopped'.
+ */
+ @JsonProperty(value = "state", access = JsonProperty.Access.WRITE_ONLY)
+ private MigrationState state;
+
+ /**
+ * Migration stage that this database is in. Possible values include:
+ * 'None', 'Initialize', 'Backup', 'FileCopy', 'Restore', 'Completed'.
+ */
+ @JsonProperty(value = "stage", access = JsonProperty.Access.WRITE_ONLY)
+ private DatabaseMigrationStage stage;
+
+ /**
+ * Status message.
+ */
+ @JsonProperty(value = "statusMessage", access = JsonProperty.Access.WRITE_ONLY)
+ private String statusMessage;
+
+ /**
+ * Migration progress message.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * Number of objects.
+ */
+ @JsonProperty(value = "numberOfObjects", access = JsonProperty.Access.WRITE_ONLY)
+ private Long numberOfObjects;
+
+ /**
+ * Number of successfully completed objects.
+ */
+ @JsonProperty(value = "numberOfObjectsCompleted", access = JsonProperty.Access.WRITE_ONLY)
+ private Long numberOfObjectsCompleted;
+
+ /**
+ * Number of database/object errors.
+ */
+ @JsonProperty(value = "errorCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long errorCount;
+
+ /**
+ * Wildcard string prefix to use for querying all errors of the item.
+ */
+ @JsonProperty(value = "errorPrefix", access = JsonProperty.Access.WRITE_ONLY)
+ private String errorPrefix;
+
+ /**
+ * Wildcard string prefix to use for querying all sub-tem results of the
+ * item.
+ */
+ @JsonProperty(value = "resultPrefix", access = JsonProperty.Access.WRITE_ONLY)
+ private String resultPrefix;
+
+ /**
+ * Migration exceptions and warnings.
+ */
+ @JsonProperty(value = "exceptionsAndWarnings", access = JsonProperty.Access.WRITE_ONLY)
+ private List exceptionsAndWarnings;
+
+ /**
+ * Summary of object results in the migration.
+ */
+ @JsonProperty(value = "objectSummary", access = JsonProperty.Access.WRITE_ONLY)
+ private Map objectSummary;
+
+ /**
+ * Get name of the item.
+ *
+ * @return the databaseName value
+ */
+ public String databaseName() {
+ return this.databaseName;
+ }
+
+ /**
+ * Get migration start time.
+ *
+ * @return the startedOn value
+ */
+ public DateTime startedOn() {
+ return this.startedOn;
+ }
+
+ /**
+ * Get migration end time.
+ *
+ * @return the endedOn value
+ */
+ public DateTime endedOn() {
+ return this.endedOn;
+ }
+
+ /**
+ * Get current state of migration. Possible values include: 'None', 'InProgress', 'Failed', 'Warning', 'Completed', 'Skipped', 'Stopped'.
+ *
+ * @return the state value
+ */
+ public MigrationState state() {
+ return this.state;
+ }
+
+ /**
+ * Get migration stage that this database is in. Possible values include: 'None', 'Initialize', 'Backup', 'FileCopy', 'Restore', 'Completed'.
+ *
+ * @return the stage value
+ */
+ public DatabaseMigrationStage stage() {
+ return this.stage;
+ }
+
+ /**
+ * Get status message.
+ *
+ * @return the statusMessage value
+ */
+ public String statusMessage() {
+ return this.statusMessage;
+ }
+
+ /**
+ * Get migration progress message.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Get number of objects.
+ *
+ * @return the numberOfObjects value
+ */
+ public Long numberOfObjects() {
+ return this.numberOfObjects;
+ }
+
+ /**
+ * Get number of successfully completed objects.
+ *
+ * @return the numberOfObjectsCompleted value
+ */
+ public Long numberOfObjectsCompleted() {
+ return this.numberOfObjectsCompleted;
+ }
+
+ /**
+ * Get number of database/object errors.
+ *
+ * @return the errorCount value
+ */
+ public Long errorCount() {
+ return this.errorCount;
+ }
+
+ /**
+ * Get wildcard string prefix to use for querying all errors of the item.
+ *
+ * @return the errorPrefix value
+ */
+ public String errorPrefix() {
+ return this.errorPrefix;
+ }
+
+ /**
+ * Get wildcard string prefix to use for querying all sub-tem results of the item.
+ *
+ * @return the resultPrefix value
+ */
+ public String resultPrefix() {
+ return this.resultPrefix;
+ }
+
+ /**
+ * Get migration exceptions and warnings.
+ *
+ * @return the exceptionsAndWarnings value
+ */
+ public List exceptionsAndWarnings() {
+ return this.exceptionsAndWarnings;
+ }
+
+ /**
+ * Get summary of object results in the migration.
+ *
+ * @return the objectSummary value
+ */
+ public Map objectSummary() {
+ return this.objectSummary;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutputError.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutputError.java
new file mode 100644
index 000000000000..ccbe0d6db50b
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutputError.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Task errors for Sql Server to Azure Sql DB migration.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "resultType")
+@JsonTypeName("ErrorOutput")
+public class MigrateSqlServerSqlDbTaskOutputError extends MigrateSqlServerSqlDbTaskOutput {
+ /**
+ * Migration error.
+ */
+ @JsonProperty(value = "error", access = JsonProperty.Access.WRITE_ONLY)
+ private ReportableException error;
+
+ /**
+ * Get migration error.
+ *
+ * @return the error value
+ */
+ public ReportableException error() {
+ return this.error;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutputMigrationLevel.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutputMigrationLevel.java
new file mode 100644
index 000000000000..d75f3c51685c
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutputMigrationLevel.java
@@ -0,0 +1,248 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import org.joda.time.DateTime;
+import java.util.Map;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Migration level result for Sql server to Azure Sql DB migration.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "resultType")
+@JsonTypeName("MigrationLevelOutput")
+public class MigrateSqlServerSqlDbTaskOutputMigrationLevel extends MigrateSqlServerSqlDbTaskOutput {
+ /**
+ * Migration start time.
+ */
+ @JsonProperty(value = "startedOn", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime startedOn;
+
+ /**
+ * Migration end time.
+ */
+ @JsonProperty(value = "endedOn", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime endedOn;
+
+ /**
+ * Duration of task execution in seconds.
+ */
+ @JsonProperty(value = "durationInSeconds", access = JsonProperty.Access.WRITE_ONLY)
+ private Long durationInSeconds;
+
+ /**
+ * Current status of migration. Possible values include: 'Default',
+ * 'Connecting', 'SourceAndTargetSelected', 'SelectLogins', 'Configured',
+ * 'Running', 'Error', 'Stopped', 'Completed', 'CompletedWithWarnings'.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private MigrationStatus status;
+
+ /**
+ * Migration status message.
+ */
+ @JsonProperty(value = "statusMessage", access = JsonProperty.Access.WRITE_ONLY)
+ private String statusMessage;
+
+ /**
+ * Migration progress message.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * Selected databases as a map from database name to database id.
+ */
+ @JsonProperty(value = "databases", access = JsonProperty.Access.WRITE_ONLY)
+ private Map databases;
+
+ /**
+ * Summary of database results in the migration.
+ */
+ @JsonProperty(value = "databaseSummary", access = JsonProperty.Access.WRITE_ONLY)
+ private Map databaseSummary;
+
+ /**
+ * Migration Report Result, provides unique url for downloading your
+ * migration report.
+ */
+ @JsonProperty(value = "migrationReportResult")
+ private MigrationReportResult migrationReportResult;
+
+ /**
+ * Source server version.
+ */
+ @JsonProperty(value = "sourceServerVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String sourceServerVersion;
+
+ /**
+ * Source server brand version.
+ */
+ @JsonProperty(value = "sourceServerBrandVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String sourceServerBrandVersion;
+
+ /**
+ * Target server version.
+ */
+ @JsonProperty(value = "targetServerVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String targetServerVersion;
+
+ /**
+ * Target server brand version.
+ */
+ @JsonProperty(value = "targetServerBrandVersion", access = JsonProperty.Access.WRITE_ONLY)
+ private String targetServerBrandVersion;
+
+ /**
+ * Migration exceptions and warnings.
+ */
+ @JsonProperty(value = "exceptionsAndWarnings", access = JsonProperty.Access.WRITE_ONLY)
+ private List exceptionsAndWarnings;
+
+ /**
+ * Get migration start time.
+ *
+ * @return the startedOn value
+ */
+ public DateTime startedOn() {
+ return this.startedOn;
+ }
+
+ /**
+ * Get migration end time.
+ *
+ * @return the endedOn value
+ */
+ public DateTime endedOn() {
+ return this.endedOn;
+ }
+
+ /**
+ * Get duration of task execution in seconds.
+ *
+ * @return the durationInSeconds value
+ */
+ public Long durationInSeconds() {
+ return this.durationInSeconds;
+ }
+
+ /**
+ * Get current status of migration. Possible values include: 'Default', 'Connecting', 'SourceAndTargetSelected', 'SelectLogins', 'Configured', 'Running', 'Error', 'Stopped', 'Completed', 'CompletedWithWarnings'.
+ *
+ * @return the status value
+ */
+ public MigrationStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get migration status message.
+ *
+ * @return the statusMessage value
+ */
+ public String statusMessage() {
+ return this.statusMessage;
+ }
+
+ /**
+ * Get migration progress message.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Get selected databases as a map from database name to database id.
+ *
+ * @return the databases value
+ */
+ public Map databases() {
+ return this.databases;
+ }
+
+ /**
+ * Get summary of database results in the migration.
+ *
+ * @return the databaseSummary value
+ */
+ public Map databaseSummary() {
+ return this.databaseSummary;
+ }
+
+ /**
+ * Get migration Report Result, provides unique url for downloading your migration report.
+ *
+ * @return the migrationReportResult value
+ */
+ public MigrationReportResult migrationReportResult() {
+ return this.migrationReportResult;
+ }
+
+ /**
+ * Set migration Report Result, provides unique url for downloading your migration report.
+ *
+ * @param migrationReportResult the migrationReportResult value to set
+ * @return the MigrateSqlServerSqlDbTaskOutputMigrationLevel object itself.
+ */
+ public MigrateSqlServerSqlDbTaskOutputMigrationLevel withMigrationReportResult(MigrationReportResult migrationReportResult) {
+ this.migrationReportResult = migrationReportResult;
+ return this;
+ }
+
+ /**
+ * Get source server version.
+ *
+ * @return the sourceServerVersion value
+ */
+ public String sourceServerVersion() {
+ return this.sourceServerVersion;
+ }
+
+ /**
+ * Get source server brand version.
+ *
+ * @return the sourceServerBrandVersion value
+ */
+ public String sourceServerBrandVersion() {
+ return this.sourceServerBrandVersion;
+ }
+
+ /**
+ * Get target server version.
+ *
+ * @return the targetServerVersion value
+ */
+ public String targetServerVersion() {
+ return this.targetServerVersion;
+ }
+
+ /**
+ * Get target server brand version.
+ *
+ * @return the targetServerBrandVersion value
+ */
+ public String targetServerBrandVersion() {
+ return this.targetServerBrandVersion;
+ }
+
+ /**
+ * Get migration exceptions and warnings.
+ *
+ * @return the exceptionsAndWarnings value
+ */
+ public List exceptionsAndWarnings() {
+ return this.exceptionsAndWarnings;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutputTableLevel.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutputTableLevel.java
new file mode 100644
index 000000000000..56fd7b0fd968
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskOutputTableLevel.java
@@ -0,0 +1,159 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Table level result for Sql Server to Azure Sql DB migration.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "resultType")
+@JsonTypeName("TableLevelOutput")
+public class MigrateSqlServerSqlDbTaskOutputTableLevel extends MigrateSqlServerSqlDbTaskOutput {
+ /**
+ * Name of the item.
+ */
+ @JsonProperty(value = "objectName", access = JsonProperty.Access.WRITE_ONLY)
+ private String objectName;
+
+ /**
+ * Migration start time.
+ */
+ @JsonProperty(value = "startedOn", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime startedOn;
+
+ /**
+ * Migration end time.
+ */
+ @JsonProperty(value = "endedOn", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime endedOn;
+
+ /**
+ * Current state of migration. Possible values include: 'None',
+ * 'InProgress', 'Failed', 'Warning', 'Completed', 'Skipped', 'Stopped'.
+ */
+ @JsonProperty(value = "state", access = JsonProperty.Access.WRITE_ONLY)
+ private MigrationState state;
+
+ /**
+ * Status message.
+ */
+ @JsonProperty(value = "statusMessage", access = JsonProperty.Access.WRITE_ONLY)
+ private String statusMessage;
+
+ /**
+ * Number of items.
+ */
+ @JsonProperty(value = "itemsCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long itemsCount;
+
+ /**
+ * Number of successfully completed items.
+ */
+ @JsonProperty(value = "itemsCompletedCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long itemsCompletedCount;
+
+ /**
+ * Wildcard string prefix to use for querying all errors of the item.
+ */
+ @JsonProperty(value = "errorPrefix", access = JsonProperty.Access.WRITE_ONLY)
+ private String errorPrefix;
+
+ /**
+ * Wildcard string prefix to use for querying all sub-tem results of the
+ * item.
+ */
+ @JsonProperty(value = "resultPrefix", access = JsonProperty.Access.WRITE_ONLY)
+ private String resultPrefix;
+
+ /**
+ * Get name of the item.
+ *
+ * @return the objectName value
+ */
+ public String objectName() {
+ return this.objectName;
+ }
+
+ /**
+ * Get migration start time.
+ *
+ * @return the startedOn value
+ */
+ public DateTime startedOn() {
+ return this.startedOn;
+ }
+
+ /**
+ * Get migration end time.
+ *
+ * @return the endedOn value
+ */
+ public DateTime endedOn() {
+ return this.endedOn;
+ }
+
+ /**
+ * Get current state of migration. Possible values include: 'None', 'InProgress', 'Failed', 'Warning', 'Completed', 'Skipped', 'Stopped'.
+ *
+ * @return the state value
+ */
+ public MigrationState state() {
+ return this.state;
+ }
+
+ /**
+ * Get status message.
+ *
+ * @return the statusMessage value
+ */
+ public String statusMessage() {
+ return this.statusMessage;
+ }
+
+ /**
+ * Get number of items.
+ *
+ * @return the itemsCount value
+ */
+ public Long itemsCount() {
+ return this.itemsCount;
+ }
+
+ /**
+ * Get number of successfully completed items.
+ *
+ * @return the itemsCompletedCount value
+ */
+ public Long itemsCompletedCount() {
+ return this.itemsCompletedCount;
+ }
+
+ /**
+ * Get wildcard string prefix to use for querying all errors of the item.
+ *
+ * @return the errorPrefix value
+ */
+ public String errorPrefix() {
+ return this.errorPrefix;
+ }
+
+ /**
+ * Get wildcard string prefix to use for querying all sub-tem results of the item.
+ *
+ * @return the resultPrefix value
+ */
+ public String resultPrefix() {
+ return this.resultPrefix;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskProperties.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskProperties.java
new file mode 100644
index 000000000000..488c6150f211
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrateSqlServerSqlDbTaskProperties.java
@@ -0,0 +1,64 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Properties for the task that migrates on-prem SQL Server databases to Azure
+ * SQL Database.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "taskType")
+@JsonTypeName("Migrate.SqlServer.SqlDb")
+public class MigrateSqlServerSqlDbTaskProperties extends ProjectTaskProperties {
+ /**
+ * Task input.
+ */
+ @JsonProperty(value = "input")
+ private MigrateSqlServerSqlDbTaskInput input;
+
+ /**
+ * Task output. This is ignored if submitted.
+ */
+ @JsonProperty(value = "output", access = JsonProperty.Access.WRITE_ONLY)
+ private List output;
+
+ /**
+ * Get task input.
+ *
+ * @return the input value
+ */
+ public MigrateSqlServerSqlDbTaskInput input() {
+ return this.input;
+ }
+
+ /**
+ * Set task input.
+ *
+ * @param input the input value to set
+ * @return the MigrateSqlServerSqlDbTaskProperties object itself.
+ */
+ public MigrateSqlServerSqlDbTaskProperties withInput(MigrateSqlServerSqlDbTaskInput input) {
+ this.input = input;
+ return this;
+ }
+
+ /**
+ * Get task output. This is ignored if submitted.
+ *
+ * @return the output value
+ */
+ public List output() {
+ return this.output;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationReportResult.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationReportResult.java
new file mode 100644
index 000000000000..0580f6cf71fc
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationReportResult.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Migration validation report result, contains the url for downloading the
+ * generated report.
+ */
+public class MigrationReportResult {
+ /**
+ * Migration validation result identifier.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * The url of the report.
+ */
+ @JsonProperty(value = "reportUrl")
+ private String reportUrl;
+
+ /**
+ * Get migration validation result identifier.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set migration validation result identifier.
+ *
+ * @param id the id value to set
+ * @return the MigrationReportResult object itself.
+ */
+ public MigrationReportResult withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the url of the report.
+ *
+ * @return the reportUrl value
+ */
+ public String reportUrl() {
+ return this.reportUrl;
+ }
+
+ /**
+ * Set the url of the report.
+ *
+ * @param reportUrl the reportUrl value to set
+ * @return the MigrationReportResult object itself.
+ */
+ public MigrationReportResult withReportUrl(String reportUrl) {
+ this.reportUrl = reportUrl;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationState.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationState.java
new file mode 100644
index 000000000000..f46b6c973210
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationState.java
@@ -0,0 +1,68 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for MigrationState.
+ */
+public enum MigrationState {
+ /** Enum value None. */
+ NONE("None"),
+
+ /** Enum value InProgress. */
+ IN_PROGRESS("InProgress"),
+
+ /** Enum value Failed. */
+ FAILED("Failed"),
+
+ /** Enum value Warning. */
+ WARNING("Warning"),
+
+ /** Enum value Completed. */
+ COMPLETED("Completed"),
+
+ /** Enum value Skipped. */
+ SKIPPED("Skipped"),
+
+ /** Enum value Stopped. */
+ STOPPED("Stopped");
+
+ /** The actual serialized value for a MigrationState instance. */
+ private String value;
+
+ MigrationState(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a MigrationState instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed MigrationState object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static MigrationState fromString(String value) {
+ MigrationState[] items = MigrationState.values();
+ for (MigrationState item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationStatus.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationStatus.java
new file mode 100644
index 000000000000..a7f126dbefae
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationStatus.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for MigrationStatus.
+ */
+public enum MigrationStatus {
+ /** Enum value Default. */
+ DEFAULT("Default"),
+
+ /** Enum value Connecting. */
+ CONNECTING("Connecting"),
+
+ /** Enum value SourceAndTargetSelected. */
+ SOURCE_AND_TARGET_SELECTED("SourceAndTargetSelected"),
+
+ /** Enum value SelectLogins. */
+ SELECT_LOGINS("SelectLogins"),
+
+ /** Enum value Configured. */
+ CONFIGURED("Configured"),
+
+ /** Enum value Running. */
+ RUNNING("Running"),
+
+ /** Enum value Error. */
+ ERROR("Error"),
+
+ /** Enum value Stopped. */
+ STOPPED("Stopped"),
+
+ /** Enum value Completed. */
+ COMPLETED("Completed"),
+
+ /** Enum value CompletedWithWarnings. */
+ COMPLETED_WITH_WARNINGS("CompletedWithWarnings");
+
+ /** The actual serialized value for a MigrationStatus instance. */
+ private String value;
+
+ MigrationStatus(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a MigrationStatus instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed MigrationStatus object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static MigrationStatus fromString(String value) {
+ MigrationStatus[] items = MigrationStatus.values();
+ for (MigrationStatus item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationTableMetadata.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationTableMetadata.java
new file mode 100644
index 000000000000..3c8a3752fccf
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationTableMetadata.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Metadata for tables selected in migration project.
+ */
+public class MigrationTableMetadata {
+ /**
+ * Source table name.
+ */
+ @JsonProperty(value = "sourceTableName", access = JsonProperty.Access.WRITE_ONLY)
+ private String sourceTableName;
+
+ /**
+ * Target table name.
+ */
+ @JsonProperty(value = "targetTableName", access = JsonProperty.Access.WRITE_ONLY)
+ private String targetTableName;
+
+ /**
+ * Get source table name.
+ *
+ * @return the sourceTableName value
+ */
+ public String sourceTableName() {
+ return this.sourceTableName;
+ }
+
+ /**
+ * Get target table name.
+ *
+ * @return the targetTableName value
+ */
+ public String targetTableName() {
+ return this.targetTableName;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationValidationDatabaseLevelResult.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationValidationDatabaseLevelResult.java
new file mode 100644
index 000000000000..067198e5f471
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationValidationDatabaseLevelResult.java
@@ -0,0 +1,172 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Database level validation results.
+ */
+public class MigrationValidationDatabaseLevelResult {
+ /**
+ * Result identifier.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * Migration Identifier.
+ */
+ @JsonProperty(value = "migrationId", access = JsonProperty.Access.WRITE_ONLY)
+ private String migrationId;
+
+ /**
+ * Name of the source database.
+ */
+ @JsonProperty(value = "sourceDatabaseName", access = JsonProperty.Access.WRITE_ONLY)
+ private String sourceDatabaseName;
+
+ /**
+ * Name of the target database.
+ */
+ @JsonProperty(value = "targetDatabaseName", access = JsonProperty.Access.WRITE_ONLY)
+ private String targetDatabaseName;
+
+ /**
+ * Validation start time.
+ */
+ @JsonProperty(value = "startedOn", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime startedOn;
+
+ /**
+ * Validation end time.
+ */
+ @JsonProperty(value = "endedOn", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime endedOn;
+
+ /**
+ * Provides data integrity validation result between the source and target
+ * tables that are migrated.
+ */
+ @JsonProperty(value = "dataIntegrityValidationResult", access = JsonProperty.Access.WRITE_ONLY)
+ private DataIntegrityValidationResult dataIntegrityValidationResult;
+
+ /**
+ * Provides schema comparison result between source and target database.
+ */
+ @JsonProperty(value = "schemaValidationResult", access = JsonProperty.Access.WRITE_ONLY)
+ private SchemaComparisonValidationResult schemaValidationResult;
+
+ /**
+ * Results of some of the query execution result between source and target
+ * database.
+ */
+ @JsonProperty(value = "queryAnalysisValidationResult", access = JsonProperty.Access.WRITE_ONLY)
+ private QueryAnalysisValidationResult queryAnalysisValidationResult;
+
+ /**
+ * Current status of validation at the database level. Possible values
+ * include: 'Default', 'NotStarted', 'Initialized', 'InProgress',
+ * 'Completed', 'CompletedWithIssues', 'Failed', 'Stopped'.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private ValidationStatus status;
+
+ /**
+ * Get result identifier.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get migration Identifier.
+ *
+ * @return the migrationId value
+ */
+ public String migrationId() {
+ return this.migrationId;
+ }
+
+ /**
+ * Get name of the source database.
+ *
+ * @return the sourceDatabaseName value
+ */
+ public String sourceDatabaseName() {
+ return this.sourceDatabaseName;
+ }
+
+ /**
+ * Get name of the target database.
+ *
+ * @return the targetDatabaseName value
+ */
+ public String targetDatabaseName() {
+ return this.targetDatabaseName;
+ }
+
+ /**
+ * Get validation start time.
+ *
+ * @return the startedOn value
+ */
+ public DateTime startedOn() {
+ return this.startedOn;
+ }
+
+ /**
+ * Get validation end time.
+ *
+ * @return the endedOn value
+ */
+ public DateTime endedOn() {
+ return this.endedOn;
+ }
+
+ /**
+ * Get provides data integrity validation result between the source and target tables that are migrated.
+ *
+ * @return the dataIntegrityValidationResult value
+ */
+ public DataIntegrityValidationResult dataIntegrityValidationResult() {
+ return this.dataIntegrityValidationResult;
+ }
+
+ /**
+ * Get provides schema comparison result between source and target database.
+ *
+ * @return the schemaValidationResult value
+ */
+ public SchemaComparisonValidationResult schemaValidationResult() {
+ return this.schemaValidationResult;
+ }
+
+ /**
+ * Get results of some of the query execution result between source and target database.
+ *
+ * @return the queryAnalysisValidationResult value
+ */
+ public QueryAnalysisValidationResult queryAnalysisValidationResult() {
+ return this.queryAnalysisValidationResult;
+ }
+
+ /**
+ * Get current status of validation at the database level. Possible values include: 'Default', 'NotStarted', 'Initialized', 'InProgress', 'Completed', 'CompletedWithIssues', 'Failed', 'Stopped'.
+ *
+ * @return the status value
+ */
+ public ValidationStatus status() {
+ return this.status;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationValidationDatabaseSummaryResult.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationValidationDatabaseSummaryResult.java
new file mode 100644
index 000000000000..b5dff707283e
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationValidationDatabaseSummaryResult.java
@@ -0,0 +1,125 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Migration Validation Database level summary result.
+ */
+public class MigrationValidationDatabaseSummaryResult {
+ /**
+ * Result identifier.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * Migration Identifier.
+ */
+ @JsonProperty(value = "migrationId", access = JsonProperty.Access.WRITE_ONLY)
+ private String migrationId;
+
+ /**
+ * Name of the source database.
+ */
+ @JsonProperty(value = "sourceDatabaseName", access = JsonProperty.Access.WRITE_ONLY)
+ private String sourceDatabaseName;
+
+ /**
+ * Name of the target database.
+ */
+ @JsonProperty(value = "targetDatabaseName", access = JsonProperty.Access.WRITE_ONLY)
+ private String targetDatabaseName;
+
+ /**
+ * Validation start time.
+ */
+ @JsonProperty(value = "startedOn", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime startedOn;
+
+ /**
+ * Validation end time.
+ */
+ @JsonProperty(value = "endedOn", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime endedOn;
+
+ /**
+ * Current status of validation at the database level. Possible values
+ * include: 'Default', 'NotStarted', 'Initialized', 'InProgress',
+ * 'Completed', 'CompletedWithIssues', 'Failed', 'Stopped'.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private ValidationStatus status;
+
+ /**
+ * Get result identifier.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get migration Identifier.
+ *
+ * @return the migrationId value
+ */
+ public String migrationId() {
+ return this.migrationId;
+ }
+
+ /**
+ * Get name of the source database.
+ *
+ * @return the sourceDatabaseName value
+ */
+ public String sourceDatabaseName() {
+ return this.sourceDatabaseName;
+ }
+
+ /**
+ * Get name of the target database.
+ *
+ * @return the targetDatabaseName value
+ */
+ public String targetDatabaseName() {
+ return this.targetDatabaseName;
+ }
+
+ /**
+ * Get validation start time.
+ *
+ * @return the startedOn value
+ */
+ public DateTime startedOn() {
+ return this.startedOn;
+ }
+
+ /**
+ * Get validation end time.
+ *
+ * @return the endedOn value
+ */
+ public DateTime endedOn() {
+ return this.endedOn;
+ }
+
+ /**
+ * Get current status of validation at the database level. Possible values include: 'Default', 'NotStarted', 'Initialized', 'InProgress', 'Completed', 'CompletedWithIssues', 'Failed', 'Stopped'.
+ *
+ * @return the status value
+ */
+ public ValidationStatus status() {
+ return this.status;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationValidationOptions.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationValidationOptions.java
new file mode 100644
index 000000000000..1cfddeb08a95
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationValidationOptions.java
@@ -0,0 +1,99 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Types of validations to run after the migration.
+ */
+public class MigrationValidationOptions {
+ /**
+ * Allows to compare the schema information between source and target.
+ */
+ @JsonProperty(value = "enableSchemaValidation")
+ private Boolean enableSchemaValidation;
+
+ /**
+ * Allows to perform a checksum based data integrity validation between
+ * source and target for the selected database / tables .
+ */
+ @JsonProperty(value = "enableDataIntegrityValidation")
+ private Boolean enableDataIntegrityValidation;
+
+ /**
+ * Allows to perform a quick and intelligent query analysis by retrieving
+ * queries from the source database and executes them in the target. The
+ * result will have execution statistics for executions in source and
+ * target databases for the extracted queries.
+ */
+ @JsonProperty(value = "enableQueryAnalysisValidation")
+ private Boolean enableQueryAnalysisValidation;
+
+ /**
+ * Get allows to compare the schema information between source and target.
+ *
+ * @return the enableSchemaValidation value
+ */
+ public Boolean enableSchemaValidation() {
+ return this.enableSchemaValidation;
+ }
+
+ /**
+ * Set allows to compare the schema information between source and target.
+ *
+ * @param enableSchemaValidation the enableSchemaValidation value to set
+ * @return the MigrationValidationOptions object itself.
+ */
+ public MigrationValidationOptions withEnableSchemaValidation(Boolean enableSchemaValidation) {
+ this.enableSchemaValidation = enableSchemaValidation;
+ return this;
+ }
+
+ /**
+ * Get allows to perform a checksum based data integrity validation between source and target for the selected database / tables .
+ *
+ * @return the enableDataIntegrityValidation value
+ */
+ public Boolean enableDataIntegrityValidation() {
+ return this.enableDataIntegrityValidation;
+ }
+
+ /**
+ * Set allows to perform a checksum based data integrity validation between source and target for the selected database / tables .
+ *
+ * @param enableDataIntegrityValidation the enableDataIntegrityValidation value to set
+ * @return the MigrationValidationOptions object itself.
+ */
+ public MigrationValidationOptions withEnableDataIntegrityValidation(Boolean enableDataIntegrityValidation) {
+ this.enableDataIntegrityValidation = enableDataIntegrityValidation;
+ return this;
+ }
+
+ /**
+ * Get allows to perform a quick and intelligent query analysis by retrieving queries from the source database and executes them in the target. The result will have execution statistics for executions in source and target databases for the extracted queries.
+ *
+ * @return the enableQueryAnalysisValidation value
+ */
+ public Boolean enableQueryAnalysisValidation() {
+ return this.enableQueryAnalysisValidation;
+ }
+
+ /**
+ * Set allows to perform a quick and intelligent query analysis by retrieving queries from the source database and executes them in the target. The result will have execution statistics for executions in source and target databases for the extracted queries.
+ *
+ * @param enableQueryAnalysisValidation the enableQueryAnalysisValidation value to set
+ * @return the MigrationValidationOptions object itself.
+ */
+ public MigrationValidationOptions withEnableQueryAnalysisValidation(Boolean enableQueryAnalysisValidation) {
+ this.enableQueryAnalysisValidation = enableQueryAnalysisValidation;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationValidationResult.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationValidationResult.java
new file mode 100644
index 000000000000..f3c55de12ccd
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/MigrationValidationResult.java
@@ -0,0 +1,92 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Migration Validation Result.
+ */
+public class MigrationValidationResult {
+ /**
+ * Migration validation result identifier.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * Migration Identifier.
+ */
+ @JsonProperty(value = "migrationId", access = JsonProperty.Access.WRITE_ONLY)
+ private String migrationId;
+
+ /**
+ * Validation summary results for each database.
+ */
+ @JsonProperty(value = "summaryResults")
+ private Map summaryResults;
+
+ /**
+ * Current status of validation at the migration level. Status from the
+ * database validation result status will be aggregated here. Possible
+ * values include: 'Default', 'NotStarted', 'Initialized', 'InProgress',
+ * 'Completed', 'CompletedWithIssues', 'Failed', 'Stopped'.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private ValidationStatus status;
+
+ /**
+ * Get migration validation result identifier.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get migration Identifier.
+ *
+ * @return the migrationId value
+ */
+ public String migrationId() {
+ return this.migrationId;
+ }
+
+ /**
+ * Get validation summary results for each database.
+ *
+ * @return the summaryResults value
+ */
+ public Map summaryResults() {
+ return this.summaryResults;
+ }
+
+ /**
+ * Set validation summary results for each database.
+ *
+ * @param summaryResults the summaryResults value to set
+ * @return the MigrationValidationResult object itself.
+ */
+ public MigrationValidationResult withSummaryResults(Map summaryResults) {
+ this.summaryResults = summaryResults;
+ return this;
+ }
+
+ /**
+ * Get current status of validation at the migration level. Status from the database validation result status will be aggregated here. Possible values include: 'Default', 'NotStarted', 'Initialized', 'InProgress', 'Completed', 'CompletedWithIssues', 'Failed', 'Stopped'.
+ *
+ * @return the status value
+ */
+ public ValidationStatus status() {
+ return this.status;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/NameAvailabilityRequest.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/NameAvailabilityRequest.java
new file mode 100644
index 000000000000..72935b5eea74
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/NameAvailabilityRequest.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A resource type and proposed name.
+ */
+public class NameAvailabilityRequest {
+ /**
+ * The proposed resource name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The resource type chain (e.g. virtualMachines/extensions).
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get the proposed resource name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the proposed resource name.
+ *
+ * @param name the name value to set
+ * @return the NameAvailabilityRequest object itself.
+ */
+ public NameAvailabilityRequest withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the resource type chain (e.g. virtualMachines/extensions).
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the resource type chain (e.g. virtualMachines/extensions).
+ *
+ * @param type the type value to set
+ * @return the NameAvailabilityRequest object itself.
+ */
+ public NameAvailabilityRequest withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/NameAvailabilityResponse.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/NameAvailabilityResponse.java
new file mode 100644
index 000000000000..e14f682ae36f
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/NameAvailabilityResponse.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.DataMigrationManager;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.NameAvailabilityResponseInner;
+
+/**
+ * Type representing NameAvailabilityResponse.
+ */
+public interface NameAvailabilityResponse extends HasInner, HasManager {
+ /**
+ * @return the message value.
+ */
+ String message();
+
+ /**
+ * @return the nameAvailable value.
+ */
+ Boolean nameAvailable();
+
+ /**
+ * @return the reason value.
+ */
+ NameCheckFailureReason reason();
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/NameCheckFailureReason.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/NameCheckFailureReason.java
new file mode 100644
index 000000000000..86344f7f1bba
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/NameCheckFailureReason.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for NameCheckFailureReason.
+ */
+public enum NameCheckFailureReason {
+ /** Enum value AlreadyExists. */
+ ALREADY_EXISTS("AlreadyExists"),
+
+ /** Enum value Invalid. */
+ INVALID("Invalid");
+
+ /** The actual serialized value for a NameCheckFailureReason instance. */
+ private String value;
+
+ NameCheckFailureReason(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a NameCheckFailureReason instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed NameCheckFailureReason object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static NameCheckFailureReason fromString(String value) {
+ NameCheckFailureReason[] items = NameCheckFailureReason.values();
+ for (NameCheckFailureReason item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ODataError.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ODataError.java
new file mode 100644
index 000000000000..9056fd9f8560
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ODataError.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Error information in OData format.
+ */
+public class ODataError {
+ /**
+ * The machine-readable description of the error, such as 'InvalidRequest'
+ * or 'InternalServerError'.
+ */
+ @JsonProperty(value = "code")
+ private String code;
+
+ /**
+ * The human-readable description of the error.
+ */
+ @JsonProperty(value = "message")
+ private String message;
+
+ /**
+ * Inner errors that caused this error.
+ */
+ @JsonProperty(value = "details")
+ private List details;
+
+ /**
+ * Get the machine-readable description of the error, such as 'InvalidRequest' or 'InternalServerError'.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Set the machine-readable description of the error, such as 'InvalidRequest' or 'InternalServerError'.
+ *
+ * @param code the code value to set
+ * @return the ODataError object itself.
+ */
+ public ODataError withCode(String code) {
+ this.code = code;
+ return this;
+ }
+
+ /**
+ * Get the human-readable description of the error.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set the human-readable description of the error.
+ *
+ * @param message the message value to set
+ * @return the ODataError object itself.
+ */
+ public ODataError withMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+ /**
+ * Get inner errors that caused this error.
+ *
+ * @return the details value
+ */
+ public List details() {
+ return this.details;
+ }
+
+ /**
+ * Set inner errors that caused this error.
+ *
+ * @param details the details value to set
+ * @return the ODataError object itself.
+ */
+ public ODataError withDetails(List details) {
+ this.details = details;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ObjectType.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ObjectType.java
new file mode 100644
index 000000000000..c8635331808a
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ObjectType.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ObjectType.
+ */
+public enum ObjectType {
+ /** Enum value StoredProcedures. */
+ STORED_PROCEDURES("StoredProcedures"),
+
+ /** Enum value Table. */
+ TABLE("Table"),
+
+ /** Enum value User. */
+ USER("User"),
+
+ /** Enum value View. */
+ VIEW("View"),
+
+ /** Enum value Function. */
+ FUNCTION("Function");
+
+ /** The actual serialized value for a ObjectType instance. */
+ private String value;
+
+ ObjectType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ObjectType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ObjectType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ObjectType fromString(String value) {
+ ObjectType[] items = ObjectType.values();
+ for (ObjectType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Operations.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Operations.java
new file mode 100644
index 000000000000..678a7d4f37be
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Operations.java
@@ -0,0 +1,28 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Get available resource provider actions (operations).
+ * Lists all available actions exposed by the Data Migration Service resource provider.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Project.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Project.java
new file mode 100644
index 000000000000..aee85f559fe4
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Project.java
@@ -0,0 +1,268 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.ProjectInner;
+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.azuredatabasemigrationservice.v2017_11_15_preview.implementation.DataMigrationManager;
+import java.util.Map;
+import org.joda.time.DateTime;
+import java.util.List;
+
+/**
+ * Type representing Project.
+ */
+public interface Project extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the creationTime value.
+ */
+ DateTime creationTime();
+
+ /**
+ * @return the databasesInfo value.
+ */
+ List databasesInfo();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProjectProvisioningState provisioningState();
+
+ /**
+ * @return the sourceConnectionInfo value.
+ */
+ ConnectionInfo sourceConnectionInfo();
+
+ /**
+ * @return the sourcePlatform value.
+ */
+ ProjectSourcePlatform sourcePlatform();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the targetConnectionInfo value.
+ */
+ ConnectionInfo targetConnectionInfo();
+
+ /**
+ * @return the targetPlatform value.
+ */
+ ProjectTargetPlatform targetPlatform();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Project definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithService, DefinitionStages.WithLocation, DefinitionStages.WithSourcePlatform, DefinitionStages.WithTargetPlatform, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Project definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Project definition.
+ */
+ interface Blank extends WithService {
+ }
+
+ /**
+ * The stage of the project definition allowing to specify Service.
+ */
+ interface WithService {
+ /**
+ * Specifies groupName, serviceName.
+ * @param groupName Name of the resource group
+ * @param serviceName Name of the service
+ * @return the next definition stage
+ */
+ WithLocation withExistingService(String groupName, String serviceName);
+ }
+
+ /**
+ * The stage of the project definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Resource location
+ * @return the next definition stage
+ */
+ WithSourcePlatform withLocation(String location);
+ }
+
+ /**
+ * The stage of the project definition allowing to specify SourcePlatform.
+ */
+ interface WithSourcePlatform {
+ /**
+ * Specifies sourcePlatform.
+ * @param sourcePlatform Source platform for the project. Possible values include: 'SQL', 'Unknown'
+ * @return the next definition stage
+ */
+ WithTargetPlatform withSourcePlatform(ProjectSourcePlatform sourcePlatform);
+ }
+
+ /**
+ * The stage of the project definition allowing to specify TargetPlatform.
+ */
+ interface WithTargetPlatform {
+ /**
+ * Specifies targetPlatform.
+ * @param targetPlatform Target platform for the project. Possible values include: 'SQLDB', 'Unknown'
+ * @return the next definition stage
+ */
+ WithCreate withTargetPlatform(ProjectTargetPlatform targetPlatform);
+ }
+
+ /**
+ * The stage of the project definition allowing to specify DatabasesInfo.
+ */
+ interface WithDatabasesInfo {
+ /**
+ * Specifies databasesInfo.
+ * @param databasesInfo List of DatabaseInfo
+ * @return the next definition stage
+ */
+ WithCreate withDatabasesInfo(List databasesInfo);
+ }
+
+ /**
+ * The stage of the project definition allowing to specify SourceConnectionInfo.
+ */
+ interface WithSourceConnectionInfo {
+ /**
+ * Specifies sourceConnectionInfo.
+ * @param sourceConnectionInfo Information for connecting to source
+ * @return the next definition stage
+ */
+ WithCreate withSourceConnectionInfo(ConnectionInfo sourceConnectionInfo);
+ }
+
+ /**
+ * The stage of the project definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags Resource tags
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the project definition allowing to specify TargetConnectionInfo.
+ */
+ interface WithTargetConnectionInfo {
+ /**
+ * Specifies targetConnectionInfo.
+ * @param targetConnectionInfo Information for connecting to target
+ * @return the next definition stage
+ */
+ WithCreate withTargetConnectionInfo(ConnectionInfo targetConnectionInfo);
+ }
+
+ /**
+ * 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.WithDatabasesInfo, DefinitionStages.WithSourceConnectionInfo, DefinitionStages.WithTags, DefinitionStages.WithTargetConnectionInfo {
+ }
+ }
+ /**
+ * The template for a Project update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithDatabasesInfo, UpdateStages.WithSourceConnectionInfo, UpdateStages.WithTags, UpdateStages.WithTargetConnectionInfo {
+ }
+
+ /**
+ * Grouping of Project update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the project update allowing to specify DatabasesInfo.
+ */
+ interface WithDatabasesInfo {
+ /**
+ * Specifies databasesInfo.
+ * @param databasesInfo List of DatabaseInfo
+ * @return the next update stage
+ */
+ Update withDatabasesInfo(List databasesInfo);
+ }
+
+ /**
+ * The stage of the project update allowing to specify SourceConnectionInfo.
+ */
+ interface WithSourceConnectionInfo {
+ /**
+ * Specifies sourceConnectionInfo.
+ * @param sourceConnectionInfo Information for connecting to source
+ * @return the next update stage
+ */
+ Update withSourceConnectionInfo(ConnectionInfo sourceConnectionInfo);
+ }
+
+ /**
+ * The stage of the project update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags Resource tags
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ /**
+ * The stage of the project update allowing to specify TargetConnectionInfo.
+ */
+ interface WithTargetConnectionInfo {
+ /**
+ * Specifies targetConnectionInfo.
+ * @param targetConnectionInfo Information for connecting to target
+ * @return the next update stage
+ */
+ Update withTargetConnectionInfo(ConnectionInfo targetConnectionInfo);
+ }
+
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectProvisioningState.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectProvisioningState.java
new file mode 100644
index 000000000000..6b664e8dc972
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectProvisioningState.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ProjectProvisioningState.
+ */
+public enum ProjectProvisioningState {
+ /** Enum value Deleting. */
+ DELETING("Deleting"),
+
+ /** Enum value Succeeded. */
+ SUCCEEDED("Succeeded");
+
+ /** The actual serialized value for a ProjectProvisioningState instance. */
+ private String value;
+
+ ProjectProvisioningState(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ProjectProvisioningState instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ProjectProvisioningState object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ProjectProvisioningState fromString(String value) {
+ ProjectProvisioningState[] items = ProjectProvisioningState.values();
+ for (ProjectProvisioningState item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectSourcePlatform.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectSourcePlatform.java
new file mode 100644
index 000000000000..3a52e5964e50
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectSourcePlatform.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ProjectSourcePlatform.
+ */
+public enum ProjectSourcePlatform {
+ /** Enum value SQL. */
+ SQL("SQL"),
+
+ /** Enum value Unknown. */
+ UNKNOWN("Unknown");
+
+ /** The actual serialized value for a ProjectSourcePlatform instance. */
+ private String value;
+
+ ProjectSourcePlatform(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ProjectSourcePlatform instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ProjectSourcePlatform object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ProjectSourcePlatform fromString(String value) {
+ ProjectSourcePlatform[] items = ProjectSourcePlatform.values();
+ for (ProjectSourcePlatform item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectTargetPlatform.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectTargetPlatform.java
new file mode 100644
index 000000000000..e83d0e9d82f2
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectTargetPlatform.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ProjectTargetPlatform.
+ */
+public enum ProjectTargetPlatform {
+ /** Enum value SQLDB. */
+ SQLDB("SQLDB"),
+
+ /** Enum value Unknown. */
+ UNKNOWN("Unknown");
+
+ /** The actual serialized value for a ProjectTargetPlatform instance. */
+ private String value;
+
+ ProjectTargetPlatform(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ProjectTargetPlatform instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ProjectTargetPlatform object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ProjectTargetPlatform fromString(String value) {
+ ProjectTargetPlatform[] items = ProjectTargetPlatform.values();
+ for (ProjectTargetPlatform item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectTask.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectTask.java
new file mode 100644
index 000000000000..9311715350ac
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectTask.java
@@ -0,0 +1,147 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.ProjectTaskInner;
+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.azuredatabasemigrationservice.v2017_11_15_preview.implementation.DataMigrationManager;
+
+/**
+ * Type representing ProjectTask.
+ */
+public interface ProjectTask 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.
+ */
+ ProjectTaskProperties properties();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the ProjectTask definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithProject, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ProjectTask definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ProjectTask definition.
+ */
+ interface Blank extends WithProject {
+ }
+
+ /**
+ * The stage of the projecttask definition allowing to specify Project.
+ */
+ interface WithProject {
+ /**
+ * Specifies groupName, serviceName, projectName.
+ * @param groupName Name of the resource group
+ * @param serviceName Name of the service
+ * @param projectName Name of the project
+ * @return the next definition stage
+ */
+ WithCreate withExistingProject(String groupName, String serviceName, String projectName);
+ }
+
+ /**
+ * The stage of the projecttask definition allowing to specify Etag.
+ */
+ interface WithEtag {
+ /**
+ * Specifies etag.
+ * @param etag HTTP strong entity tag value. This is ignored if submitted
+ * @return the next definition stage
+ */
+ WithCreate withEtag(String etag);
+ }
+
+ /**
+ * The stage of the projecttask definition allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties Custom task properties
+ * @return the next definition stage
+ */
+ WithCreate withProperties(ProjectTaskProperties 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, DefinitionStages.WithEtag, DefinitionStages.WithProperties {
+ }
+ }
+ /**
+ * The template for a ProjectTask update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithEtag, UpdateStages.WithProperties {
+ }
+
+ /**
+ * Grouping of ProjectTask update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the projecttask update allowing to specify Etag.
+ */
+ interface WithEtag {
+ /**
+ * Specifies etag.
+ * @param etag HTTP strong entity tag value. This is ignored if submitted
+ * @return the next update stage
+ */
+ Update withEtag(String etag);
+ }
+
+ /**
+ * The stage of the projecttask update allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties Custom task properties
+ * @return the next update stage
+ */
+ Update withProperties(ProjectTaskProperties properties);
+ }
+
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectTaskProperties.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectTaskProperties.java
new file mode 100644
index 000000000000..0c844548cee8
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ProjectTaskProperties.java
@@ -0,0 +1,63 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Base class for all types of DMS task properties. If task is not supported by
+ * current client, this object is returned.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "taskType")
+@JsonTypeName("Unknown")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "SqlConnectionInfo", value = SqlConnectionInfo.class),
+ @JsonSubTypes.Type(name = "Migrate.SqlServer.SqlDb", value = MigrateSqlServerSqlDbTaskProperties.class),
+ @JsonSubTypes.Type(name = "GetUserTables.Sql", value = GetUserTablesSqlTaskProperties.class),
+ @JsonSubTypes.Type(name = "ConnectToTarget.SqlDb", value = ConnectToTargetSqlDbTaskProperties.class),
+ @JsonSubTypes.Type(name = "ConnectToSource.SqlServer", value = ConnectToSourceSqlServerTaskProperties.class)
+})
+public class ProjectTaskProperties {
+ /**
+ * Array of errors. This is ignored if submitted.
+ */
+ @JsonProperty(value = "errors", access = JsonProperty.Access.WRITE_ONLY)
+ private List errors;
+
+ /**
+ * The state of the task. This is ignored if submitted. Possible values
+ * include: 'Unknown', 'Queued', 'Running', 'Canceled', 'Succeeded',
+ * 'Failed', 'FailedInputValidation', 'Faulted'.
+ */
+ @JsonProperty(value = "state", access = JsonProperty.Access.WRITE_ONLY)
+ private TaskState state;
+
+ /**
+ * Get array of errors. This is ignored if submitted.
+ *
+ * @return the errors value
+ */
+ public List errors() {
+ return this.errors;
+ }
+
+ /**
+ * Get the state of the task. This is ignored if submitted. Possible values include: 'Unknown', 'Queued', 'Running', 'Canceled', 'Succeeded', 'Failed', 'FailedInputValidation', 'Faulted'.
+ *
+ * @return the state value
+ */
+ public TaskState state() {
+ return this.state;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Projects.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Projects.java
new file mode 100644
index 000000000000..1252370f5eb5
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Projects.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.ProjectsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Projects.
+ */
+public interface Projects extends SupportsCreating, HasInner {
+ /**
+ * Get project information.
+ * The project resource is a nested resource representing a stored migration project. The GET method retrieves information about a project.
+ *
+ * @param groupName Name of the resource group
+ * @param serviceName Name of the service
+ * @param projectName Name of the project
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String groupName, String serviceName, String projectName);
+
+ /**
+ * Get projects in a service.
+ * The project resource is a nested resource representing a stored migration project. This method returns a list of projects owned by a service resource.
+ *
+ * @param groupName Name of the resource group
+ * @param serviceName Name of the service
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String groupName, final String serviceName);
+
+ /**
+ * Delete project.
+ * The project resource is a nested resource representing a stored migration project. The DELETE method deletes a project.
+ *
+ * @param groupName Name of the resource group
+ * @param serviceName Name of the service
+ * @param projectName Name of the project
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String groupName, String serviceName, String projectName);
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/QueryAnalysisValidationResult.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/QueryAnalysisValidationResult.java
new file mode 100644
index 000000000000..767995f57dce
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/QueryAnalysisValidationResult.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Results for query analysis comparison between the source and target.
+ */
+public class QueryAnalysisValidationResult {
+ /**
+ * List of queries executed and it's execution results in source and
+ * target.
+ */
+ @JsonProperty(value = "queryResults")
+ private QueryExecutionResult queryResults;
+
+ /**
+ * Errors that are part of the execution.
+ */
+ @JsonProperty(value = "validationErrors")
+ private ValidationError validationErrors;
+
+ /**
+ * Get list of queries executed and it's execution results in source and target.
+ *
+ * @return the queryResults value
+ */
+ public QueryExecutionResult queryResults() {
+ return this.queryResults;
+ }
+
+ /**
+ * Set list of queries executed and it's execution results in source and target.
+ *
+ * @param queryResults the queryResults value to set
+ * @return the QueryAnalysisValidationResult object itself.
+ */
+ public QueryAnalysisValidationResult withQueryResults(QueryExecutionResult queryResults) {
+ this.queryResults = queryResults;
+ return this;
+ }
+
+ /**
+ * Get errors that are part of the execution.
+ *
+ * @return the validationErrors value
+ */
+ public ValidationError validationErrors() {
+ return this.validationErrors;
+ }
+
+ /**
+ * Set errors that are part of the execution.
+ *
+ * @param validationErrors the validationErrors value to set
+ * @return the QueryAnalysisValidationResult object itself.
+ */
+ public QueryAnalysisValidationResult withValidationErrors(ValidationError validationErrors) {
+ this.validationErrors = validationErrors;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/QueryExecutionResult.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/QueryExecutionResult.java
new file mode 100644
index 000000000000..d022c4dc08fb
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/QueryExecutionResult.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Describes query analysis results for execution in source and target.
+ */
+public class QueryExecutionResult {
+ /**
+ * Query text retrieved from the source server.
+ */
+ @JsonProperty(value = "queryText")
+ private String queryText;
+
+ /**
+ * Total no. of statements in the batch.
+ */
+ @JsonProperty(value = "statementsInBatch")
+ private Long statementsInBatch;
+
+ /**
+ * Query analysis result from the source.
+ */
+ @JsonProperty(value = "sourceResult")
+ private ExecutionStatistics sourceResult;
+
+ /**
+ * Query analysis result from the target.
+ */
+ @JsonProperty(value = "targetResult")
+ private ExecutionStatistics targetResult;
+
+ /**
+ * Get query text retrieved from the source server.
+ *
+ * @return the queryText value
+ */
+ public String queryText() {
+ return this.queryText;
+ }
+
+ /**
+ * Set query text retrieved from the source server.
+ *
+ * @param queryText the queryText value to set
+ * @return the QueryExecutionResult object itself.
+ */
+ public QueryExecutionResult withQueryText(String queryText) {
+ this.queryText = queryText;
+ return this;
+ }
+
+ /**
+ * Get total no. of statements in the batch.
+ *
+ * @return the statementsInBatch value
+ */
+ public Long statementsInBatch() {
+ return this.statementsInBatch;
+ }
+
+ /**
+ * Set total no. of statements in the batch.
+ *
+ * @param statementsInBatch the statementsInBatch value to set
+ * @return the QueryExecutionResult object itself.
+ */
+ public QueryExecutionResult withStatementsInBatch(Long statementsInBatch) {
+ this.statementsInBatch = statementsInBatch;
+ return this;
+ }
+
+ /**
+ * Get query analysis result from the source.
+ *
+ * @return the sourceResult value
+ */
+ public ExecutionStatistics sourceResult() {
+ return this.sourceResult;
+ }
+
+ /**
+ * Set query analysis result from the source.
+ *
+ * @param sourceResult the sourceResult value to set
+ * @return the QueryExecutionResult object itself.
+ */
+ public QueryExecutionResult withSourceResult(ExecutionStatistics sourceResult) {
+ this.sourceResult = sourceResult;
+ return this;
+ }
+
+ /**
+ * Get query analysis result from the target.
+ *
+ * @return the targetResult value
+ */
+ public ExecutionStatistics targetResult() {
+ return this.targetResult;
+ }
+
+ /**
+ * Set query analysis result from the target.
+ *
+ * @param targetResult the targetResult value to set
+ * @return the QueryExecutionResult object itself.
+ */
+ public QueryExecutionResult withTargetResult(ExecutionStatistics targetResult) {
+ this.targetResult = targetResult;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Quota.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Quota.java
new file mode 100644
index 000000000000..e59a86b4e9fd
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Quota.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.QuotaInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.DataMigrationManager;
+
+/**
+ * Type representing Quota.
+ */
+public interface Quota extends HasInner, HasManager {
+ /**
+ * @return the currentValue value.
+ */
+ Double currentValue();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the limit value.
+ */
+ Double limit();
+
+ /**
+ * @return the name value.
+ */
+ QuotaName name();
+
+ /**
+ * @return the unit value.
+ */
+ String unit();
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/QuotaName.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/QuotaName.java
new file mode 100644
index 000000000000..226178015d05
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/QuotaName.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The name of the quota.
+ */
+public class QuotaName {
+ /**
+ * The localized name of the quota.
+ */
+ @JsonProperty(value = "localizedValue")
+ private String localizedValue;
+
+ /**
+ * The unlocalized name (or ID) of the quota.
+ */
+ @JsonProperty(value = "value")
+ private String value;
+
+ /**
+ * Get the localized name of the quota.
+ *
+ * @return the localizedValue value
+ */
+ public String localizedValue() {
+ return this.localizedValue;
+ }
+
+ /**
+ * Set the localized name of the quota.
+ *
+ * @param localizedValue the localizedValue value to set
+ * @return the QuotaName object itself.
+ */
+ public QuotaName withLocalizedValue(String localizedValue) {
+ this.localizedValue = localizedValue;
+ return this;
+ }
+
+ /**
+ * Get the unlocalized name (or ID) of the quota.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+ /**
+ * Set the unlocalized name (or ID) of the quota.
+ *
+ * @param value the value value to set
+ * @return the QuotaName object itself.
+ */
+ public QuotaName withValue(String value) {
+ this.value = value;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ReportableException.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ReportableException.java
new file mode 100644
index 000000000000..351e75a27dd5
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ReportableException.java
@@ -0,0 +1,147 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Exception object for all custom exceptions.
+ */
+public class ReportableException {
+ /**
+ * Error message.
+ */
+ @JsonProperty(value = "message")
+ private String message;
+
+ /**
+ * The path to the file where exception occurred.
+ */
+ @JsonProperty(value = "filePath")
+ private String filePath;
+
+ /**
+ * The line number where exception occurred.
+ */
+ @JsonProperty(value = "lineNumber")
+ private String lineNumber;
+
+ /**
+ * Coded numerical value that is assigned to a specific exception.
+ */
+ @JsonProperty(value = "hResult")
+ private Integer hResult;
+
+ /**
+ * Stack trace.
+ */
+ @JsonProperty(value = "stackTrace")
+ private String stackTrace;
+
+ /**
+ * Get error message.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set error message.
+ *
+ * @param message the message value to set
+ * @return the ReportableException object itself.
+ */
+ public ReportableException withMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+ /**
+ * Get the path to the file where exception occurred.
+ *
+ * @return the filePath value
+ */
+ public String filePath() {
+ return this.filePath;
+ }
+
+ /**
+ * Set the path to the file where exception occurred.
+ *
+ * @param filePath the filePath value to set
+ * @return the ReportableException object itself.
+ */
+ public ReportableException withFilePath(String filePath) {
+ this.filePath = filePath;
+ return this;
+ }
+
+ /**
+ * Get the line number where exception occurred.
+ *
+ * @return the lineNumber value
+ */
+ public String lineNumber() {
+ return this.lineNumber;
+ }
+
+ /**
+ * Set the line number where exception occurred.
+ *
+ * @param lineNumber the lineNumber value to set
+ * @return the ReportableException object itself.
+ */
+ public ReportableException withLineNumber(String lineNumber) {
+ this.lineNumber = lineNumber;
+ return this;
+ }
+
+ /**
+ * Get coded numerical value that is assigned to a specific exception.
+ *
+ * @return the hResult value
+ */
+ public Integer hResult() {
+ return this.hResult;
+ }
+
+ /**
+ * Set coded numerical value that is assigned to a specific exception.
+ *
+ * @param hResult the hResult value to set
+ * @return the ReportableException object itself.
+ */
+ public ReportableException withHResult(Integer hResult) {
+ this.hResult = hResult;
+ return this;
+ }
+
+ /**
+ * Get stack trace.
+ *
+ * @return the stackTrace value
+ */
+ public String stackTrace() {
+ return this.stackTrace;
+ }
+
+ /**
+ * Set stack trace.
+ *
+ * @param stackTrace the stackTrace value to set
+ * @return the ReportableException object itself.
+ */
+ public ReportableException withStackTrace(String stackTrace) {
+ this.stackTrace = stackTrace;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSku.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSku.java
new file mode 100644
index 000000000000..d3f74f364cb6
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSku.java
@@ -0,0 +1,81 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.DataMigrationManager;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.ResourceSkuInner;
+import java.util.List;
+
+/**
+ * Type representing ResourceSku.
+ */
+public interface ResourceSku extends HasInner, HasManager {
+ /**
+ * @return the apiVersions value.
+ */
+ List apiVersions();
+
+ /**
+ * @return the capabilities value.
+ */
+ List capabilities();
+
+ /**
+ * @return the capacity value.
+ */
+ ResourceSkuCapacity capacity();
+
+ /**
+ * @return the costs value.
+ */
+ List costs();
+
+ /**
+ * @return the family value.
+ */
+ String family();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the locations value.
+ */
+ List locations();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the resourceType value.
+ */
+ String resourceType();
+
+ /**
+ * @return the restrictions value.
+ */
+ List restrictions();
+
+ /**
+ * @return the size value.
+ */
+ String size();
+
+ /**
+ * @return the tier value.
+ */
+ String tier();
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuCapabilities.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuCapabilities.java
new file mode 100644
index 000000000000..3adf85e70de0
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuCapabilities.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Describes The SKU capabilites object.
+ */
+public class ResourceSkuCapabilities {
+ /**
+ * An invariant to describe the feature.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * An invariant if the feature is measured by quantity.
+ */
+ @JsonProperty(value = "value", access = JsonProperty.Access.WRITE_ONLY)
+ private String value;
+
+ /**
+ * Get an invariant to describe the feature.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get an invariant if the feature is measured by quantity.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuCapacity.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuCapacity.java
new file mode 100644
index 000000000000..c240b071ffe5
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuCapacity.java
@@ -0,0 +1,78 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Describes scaling information of a SKU.
+ */
+public class ResourceSkuCapacity {
+ /**
+ * The minimum capacity.
+ */
+ @JsonProperty(value = "minimum", access = JsonProperty.Access.WRITE_ONLY)
+ private Long minimum;
+
+ /**
+ * The maximum capacity.
+ */
+ @JsonProperty(value = "maximum", access = JsonProperty.Access.WRITE_ONLY)
+ private Long maximum;
+
+ /**
+ * The default capacity.
+ */
+ @JsonProperty(value = "default", access = JsonProperty.Access.WRITE_ONLY)
+ private Long defaultProperty;
+
+ /**
+ * The scale type applicable to the SKU. Possible values include:
+ * 'Automatic', 'Manual', 'None'.
+ */
+ @JsonProperty(value = "scaleType", access = JsonProperty.Access.WRITE_ONLY)
+ private ResourceSkuCapacityScaleType scaleType;
+
+ /**
+ * Get the minimum capacity.
+ *
+ * @return the minimum value
+ */
+ public Long minimum() {
+ return this.minimum;
+ }
+
+ /**
+ * Get the maximum capacity.
+ *
+ * @return the maximum value
+ */
+ public Long maximum() {
+ return this.maximum;
+ }
+
+ /**
+ * Get the default capacity.
+ *
+ * @return the defaultProperty value
+ */
+ public Long defaultProperty() {
+ return this.defaultProperty;
+ }
+
+ /**
+ * Get the scale type applicable to the SKU. Possible values include: 'Automatic', 'Manual', 'None'.
+ *
+ * @return the scaleType value
+ */
+ public ResourceSkuCapacityScaleType scaleType() {
+ return this.scaleType;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuCapacityScaleType.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuCapacityScaleType.java
new file mode 100644
index 000000000000..eb4c6eae092c
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuCapacityScaleType.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ResourceSkuCapacityScaleType.
+ */
+public enum ResourceSkuCapacityScaleType {
+ /** Enum value Automatic. */
+ AUTOMATIC("Automatic"),
+
+ /** Enum value Manual. */
+ MANUAL("Manual"),
+
+ /** Enum value None. */
+ NONE("None");
+
+ /** The actual serialized value for a ResourceSkuCapacityScaleType instance. */
+ private String value;
+
+ ResourceSkuCapacityScaleType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ResourceSkuCapacityScaleType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ResourceSkuCapacityScaleType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ResourceSkuCapacityScaleType fromString(String value) {
+ ResourceSkuCapacityScaleType[] items = ResourceSkuCapacityScaleType.values();
+ for (ResourceSkuCapacityScaleType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuCosts.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuCosts.java
new file mode 100644
index 000000000000..f3d9da500237
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuCosts.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Describes metadata for retrieving price info.
+ */
+public class ResourceSkuCosts {
+ /**
+ * Used for querying price from commerce.
+ */
+ @JsonProperty(value = "meterID", access = JsonProperty.Access.WRITE_ONLY)
+ private String meterID;
+
+ /**
+ * The multiplier is needed to extend the base metered cost.
+ */
+ @JsonProperty(value = "quantity", access = JsonProperty.Access.WRITE_ONLY)
+ private Long quantity;
+
+ /**
+ * An invariant to show the extended unit.
+ */
+ @JsonProperty(value = "extendedUnit", access = JsonProperty.Access.WRITE_ONLY)
+ private String extendedUnit;
+
+ /**
+ * Get used for querying price from commerce.
+ *
+ * @return the meterID value
+ */
+ public String meterID() {
+ return this.meterID;
+ }
+
+ /**
+ * Get the multiplier is needed to extend the base metered cost.
+ *
+ * @return the quantity value
+ */
+ public Long quantity() {
+ return this.quantity;
+ }
+
+ /**
+ * Get an invariant to show the extended unit.
+ *
+ * @return the extendedUnit value
+ */
+ public String extendedUnit() {
+ return this.extendedUnit;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuRestrictions.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuRestrictions.java
new file mode 100644
index 000000000000..0106e38e2d44
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuRestrictions.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Describes scaling information of a SKU.
+ */
+public class ResourceSkuRestrictions {
+ /**
+ * The type of restrictions. Possible values include: 'location'.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private ResourceSkuRestrictionsType type;
+
+ /**
+ * The value of restrictions. If the restriction type is set to location.
+ * This would be different locations where the SKU is restricted.
+ */
+ @JsonProperty(value = "values", access = JsonProperty.Access.WRITE_ONLY)
+ private List values;
+
+ /**
+ * The reason code for restriction. Possible values include: 'QuotaId',
+ * 'NotAvailableForSubscription'.
+ */
+ @JsonProperty(value = "reasonCode", access = JsonProperty.Access.WRITE_ONLY)
+ private ResourceSkuRestrictionsReasonCode reasonCode;
+
+ /**
+ * Get the type of restrictions. Possible values include: 'location'.
+ *
+ * @return the type value
+ */
+ public ResourceSkuRestrictionsType type() {
+ return this.type;
+ }
+
+ /**
+ * Get the value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Get the reason code for restriction. Possible values include: 'QuotaId', 'NotAvailableForSubscription'.
+ *
+ * @return the reasonCode value
+ */
+ public ResourceSkuRestrictionsReasonCode reasonCode() {
+ return this.reasonCode;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuRestrictionsReasonCode.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuRestrictionsReasonCode.java
new file mode 100644
index 000000000000..63e3528c9f32
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuRestrictionsReasonCode.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ResourceSkuRestrictionsReasonCode.
+ */
+public enum ResourceSkuRestrictionsReasonCode {
+ /** Enum value QuotaId. */
+ QUOTA_ID("QuotaId"),
+
+ /** Enum value NotAvailableForSubscription. */
+ NOT_AVAILABLE_FOR_SUBSCRIPTION("NotAvailableForSubscription");
+
+ /** The actual serialized value for a ResourceSkuRestrictionsReasonCode instance. */
+ private String value;
+
+ ResourceSkuRestrictionsReasonCode(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ResourceSkuRestrictionsReasonCode instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ResourceSkuRestrictionsReasonCode object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ResourceSkuRestrictionsReasonCode fromString(String value) {
+ ResourceSkuRestrictionsReasonCode[] items = ResourceSkuRestrictionsReasonCode.values();
+ for (ResourceSkuRestrictionsReasonCode item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuRestrictionsType.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuRestrictionsType.java
new file mode 100644
index 000000000000..69f9c3d13d60
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkuRestrictionsType.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ResourceSkuRestrictionsType.
+ */
+public enum ResourceSkuRestrictionsType {
+ /** Enum value location. */
+ LOCATION("location");
+
+ /** The actual serialized value for a ResourceSkuRestrictionsType instance. */
+ private String value;
+
+ ResourceSkuRestrictionsType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ResourceSkuRestrictionsType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ResourceSkuRestrictionsType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ResourceSkuRestrictionsType fromString(String value) {
+ ResourceSkuRestrictionsType[] items = ResourceSkuRestrictionsType.values();
+ for (ResourceSkuRestrictionsType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkus.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkus.java
new file mode 100644
index 000000000000..05cf544a09d1
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ResourceSkus.java
@@ -0,0 +1,28 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.ResourceSkusInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ResourceSkus.
+ */
+public interface ResourceSkus extends HasInner {
+ /**
+ * Get supported SKUs.
+ * The skus action returns the list of SKUs that DMS supports.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/SchemaComparisonValidationResult.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/SchemaComparisonValidationResult.java
new file mode 100644
index 000000000000..82d803d9adbe
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/SchemaComparisonValidationResult.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Results for schema comparison between the source and target.
+ */
+public class SchemaComparisonValidationResult {
+ /**
+ * List of schema differences between the source and target databases.
+ */
+ @JsonProperty(value = "schemaDifferences")
+ private SchemaComparisonValidationResultType schemaDifferences;
+
+ /**
+ * List of errors that happened while performing schema compare validation.
+ */
+ @JsonProperty(value = "validationErrors")
+ private ValidationError validationErrors;
+
+ /**
+ * Count of source database objects.
+ */
+ @JsonProperty(value = "sourceDatabaseObjectCount")
+ private Map sourceDatabaseObjectCount;
+
+ /**
+ * Count of target database objects.
+ */
+ @JsonProperty(value = "targetDatabaseObjectCount")
+ private Map targetDatabaseObjectCount;
+
+ /**
+ * Get list of schema differences between the source and target databases.
+ *
+ * @return the schemaDifferences value
+ */
+ public SchemaComparisonValidationResultType schemaDifferences() {
+ return this.schemaDifferences;
+ }
+
+ /**
+ * Set list of schema differences between the source and target databases.
+ *
+ * @param schemaDifferences the schemaDifferences value to set
+ * @return the SchemaComparisonValidationResult object itself.
+ */
+ public SchemaComparisonValidationResult withSchemaDifferences(SchemaComparisonValidationResultType schemaDifferences) {
+ this.schemaDifferences = schemaDifferences;
+ return this;
+ }
+
+ /**
+ * Get list of errors that happened while performing schema compare validation.
+ *
+ * @return the validationErrors value
+ */
+ public ValidationError validationErrors() {
+ return this.validationErrors;
+ }
+
+ /**
+ * Set list of errors that happened while performing schema compare validation.
+ *
+ * @param validationErrors the validationErrors value to set
+ * @return the SchemaComparisonValidationResult object itself.
+ */
+ public SchemaComparisonValidationResult withValidationErrors(ValidationError validationErrors) {
+ this.validationErrors = validationErrors;
+ return this;
+ }
+
+ /**
+ * Get count of source database objects.
+ *
+ * @return the sourceDatabaseObjectCount value
+ */
+ public Map sourceDatabaseObjectCount() {
+ return this.sourceDatabaseObjectCount;
+ }
+
+ /**
+ * Set count of source database objects.
+ *
+ * @param sourceDatabaseObjectCount the sourceDatabaseObjectCount value to set
+ * @return the SchemaComparisonValidationResult object itself.
+ */
+ public SchemaComparisonValidationResult withSourceDatabaseObjectCount(Map sourceDatabaseObjectCount) {
+ this.sourceDatabaseObjectCount = sourceDatabaseObjectCount;
+ return this;
+ }
+
+ /**
+ * Get count of target database objects.
+ *
+ * @return the targetDatabaseObjectCount value
+ */
+ public Map targetDatabaseObjectCount() {
+ return this.targetDatabaseObjectCount;
+ }
+
+ /**
+ * Set count of target database objects.
+ *
+ * @param targetDatabaseObjectCount the targetDatabaseObjectCount value to set
+ * @return the SchemaComparisonValidationResult object itself.
+ */
+ public SchemaComparisonValidationResult withTargetDatabaseObjectCount(Map targetDatabaseObjectCount) {
+ this.targetDatabaseObjectCount = targetDatabaseObjectCount;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/SchemaComparisonValidationResultType.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/SchemaComparisonValidationResultType.java
new file mode 100644
index 000000000000..c48e5bef87c7
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/SchemaComparisonValidationResultType.java
@@ -0,0 +1,98 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Description about the errors happen while performing migration validation.
+ */
+public class SchemaComparisonValidationResultType {
+ /**
+ * Name of the object that has the difference.
+ */
+ @JsonProperty(value = "objectName")
+ private String objectName;
+
+ /**
+ * Type of the object that has the difference. e.g
+ * (Table/View/StoredProcedure). Possible values include:
+ * 'StoredProcedures', 'Table', 'User', 'View', 'Function'.
+ */
+ @JsonProperty(value = "objectType")
+ private ObjectType objectType;
+
+ /**
+ * Update action type with respect to target. Possible values include:
+ * 'DeletedOnTarget', 'ChangedOnTarget', 'AddedOnTarget'.
+ */
+ @JsonProperty(value = "updateAction")
+ private UpdateActionType updateAction;
+
+ /**
+ * Get name of the object that has the difference.
+ *
+ * @return the objectName value
+ */
+ public String objectName() {
+ return this.objectName;
+ }
+
+ /**
+ * Set name of the object that has the difference.
+ *
+ * @param objectName the objectName value to set
+ * @return the SchemaComparisonValidationResultType object itself.
+ */
+ public SchemaComparisonValidationResultType withObjectName(String objectName) {
+ this.objectName = objectName;
+ return this;
+ }
+
+ /**
+ * Get type of the object that has the difference. e.g (Table/View/StoredProcedure). Possible values include: 'StoredProcedures', 'Table', 'User', 'View', 'Function'.
+ *
+ * @return the objectType value
+ */
+ public ObjectType objectType() {
+ return this.objectType;
+ }
+
+ /**
+ * Set type of the object that has the difference. e.g (Table/View/StoredProcedure). Possible values include: 'StoredProcedures', 'Table', 'User', 'View', 'Function'.
+ *
+ * @param objectType the objectType value to set
+ * @return the SchemaComparisonValidationResultType object itself.
+ */
+ public SchemaComparisonValidationResultType withObjectType(ObjectType objectType) {
+ this.objectType = objectType;
+ return this;
+ }
+
+ /**
+ * Get update action type with respect to target. Possible values include: 'DeletedOnTarget', 'ChangedOnTarget', 'AddedOnTarget'.
+ *
+ * @return the updateAction value
+ */
+ public UpdateActionType updateAction() {
+ return this.updateAction;
+ }
+
+ /**
+ * Set update action type with respect to target. Possible values include: 'DeletedOnTarget', 'ChangedOnTarget', 'AddedOnTarget'.
+ *
+ * @param updateAction the updateAction value to set
+ * @return the SchemaComparisonValidationResultType object itself.
+ */
+ public SchemaComparisonValidationResultType withUpdateAction(UpdateActionType updateAction) {
+ this.updateAction = updateAction;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServerLevelPermissionsGroup.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServerLevelPermissionsGroup.java
new file mode 100644
index 000000000000..e8e0f426d2f5
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServerLevelPermissionsGroup.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ServerLevelPermissionsGroup.
+ */
+public enum ServerLevelPermissionsGroup {
+ /** Enum value Default. */
+ DEFAULT("Default"),
+
+ /** Enum value MigrationFromSqlServerToAzureDB. */
+ MIGRATION_FROM_SQL_SERVER_TO_AZURE_DB("MigrationFromSqlServerToAzureDB");
+
+ /** The actual serialized value for a ServerLevelPermissionsGroup instance. */
+ private String value;
+
+ ServerLevelPermissionsGroup(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ServerLevelPermissionsGroup instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ServerLevelPermissionsGroup object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ServerLevelPermissionsGroup fromString(String value) {
+ ServerLevelPermissionsGroup[] items = ServerLevelPermissionsGroup.values();
+ for (ServerLevelPermissionsGroup item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceOperation.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceOperation.java
new file mode 100644
index 000000000000..df930bb13102
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceOperation.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.DataMigrationManager;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.ServiceOperationInner;
+
+/**
+ * Type representing ServiceOperation.
+ */
+public interface ServiceOperation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ ServiceOperationDisplay display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceOperationDisplay.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceOperationDisplay.java
new file mode 100644
index 000000000000..f62c52eaa599
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceOperationDisplay.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Localized display text.
+ */
+public class ServiceOperationDisplay {
+ /**
+ * The localized resource provider name.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * The localized resource type name.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * The localized operation name.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * The localized operation description.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get the localized resource provider name.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set the localized resource provider name.
+ *
+ * @param provider the provider value to set
+ * @return the ServiceOperationDisplay object itself.
+ */
+ public ServiceOperationDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get the localized resource type name.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set the localized resource type name.
+ *
+ * @param resource the resource value to set
+ * @return the ServiceOperationDisplay object itself.
+ */
+ public ServiceOperationDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get the localized operation name.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set the localized operation name.
+ *
+ * @param operation the operation value to set
+ * @return the ServiceOperationDisplay object itself.
+ */
+ public ServiceOperationDisplay withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get the localized operation description.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the localized operation description.
+ *
+ * @param description the description value to set
+ * @return the ServiceOperationDisplay object itself.
+ */
+ public ServiceOperationDisplay withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceProvisioningState.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceProvisioningState.java
new file mode 100644
index 000000000000..62335e27472a
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceProvisioningState.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ServiceProvisioningState.
+ */
+public enum ServiceProvisioningState {
+ /** Enum value Accepted. */
+ ACCEPTED("Accepted"),
+
+ /** Enum value Deleting. */
+ DELETING("Deleting"),
+
+ /** Enum value Deploying. */
+ DEPLOYING("Deploying"),
+
+ /** Enum value Stopped. */
+ STOPPED("Stopped"),
+
+ /** Enum value Stopping. */
+ STOPPING("Stopping"),
+
+ /** Enum value Starting. */
+ STARTING("Starting"),
+
+ /** Enum value FailedToStart. */
+ FAILED_TO_START("FailedToStart"),
+
+ /** Enum value FailedToStop. */
+ FAILED_TO_STOP("FailedToStop"),
+
+ /** Enum value Succeeded. */
+ SUCCEEDED("Succeeded"),
+
+ /** Enum value Failed. */
+ FAILED("Failed");
+
+ /** The actual serialized value for a ServiceProvisioningState instance. */
+ private String value;
+
+ ServiceProvisioningState(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ServiceProvisioningState instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ServiceProvisioningState object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ServiceProvisioningState fromString(String value) {
+ ServiceProvisioningState[] items = ServiceProvisioningState.values();
+ for (ServiceProvisioningState item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceScalability.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceScalability.java
new file mode 100644
index 000000000000..182d62389894
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceScalability.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ServiceScalability.
+ */
+public enum ServiceScalability {
+ /** Enum value none. */
+ NONE("none"),
+
+ /** Enum value manual. */
+ MANUAL("manual"),
+
+ /** Enum value automatic. */
+ AUTOMATIC("automatic");
+
+ /** The actual serialized value for a ServiceScalability instance. */
+ private String value;
+
+ ServiceScalability(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ServiceScalability instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ServiceScalability object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ServiceScalability fromString(String value) {
+ ServiceScalability[] items = ServiceScalability.values();
+ for (ServiceScalability item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceSku.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceSku.java
new file mode 100644
index 000000000000..14e14b7e7e4e
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ServiceSku.java
@@ -0,0 +1,150 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * An Azure SKU instance.
+ */
+public class ServiceSku {
+ /**
+ * The unique name of the SKU, such as 'P3'.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The tier of the SKU, such as 'Free', 'Basic', 'Standard', or 'Premium'.
+ */
+ @JsonProperty(value = "tier")
+ private String tier;
+
+ /**
+ * The SKU family, used when the service has multiple performance classes
+ * within a tier, such as 'A', 'D', etc. for virtual machines.
+ */
+ @JsonProperty(value = "family")
+ private String family;
+
+ /**
+ * The size of the SKU, used when the name alone does not denote a service
+ * size or when a SKU has multiple performance classes within a family,
+ * e.g. 'A1' for virtual machines.
+ */
+ @JsonProperty(value = "size")
+ private String size;
+
+ /**
+ * The capacity of the SKU, if it supports scaling.
+ */
+ @JsonProperty(value = "capacity")
+ private Integer capacity;
+
+ /**
+ * Get the unique name of the SKU, such as 'P3'.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the unique name of the SKU, such as 'P3'.
+ *
+ * @param name the name value to set
+ * @return the ServiceSku object itself.
+ */
+ public ServiceSku withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the tier of the SKU, such as 'Free', 'Basic', 'Standard', or 'Premium'.
+ *
+ * @return the tier value
+ */
+ public String tier() {
+ return this.tier;
+ }
+
+ /**
+ * Set the tier of the SKU, such as 'Free', 'Basic', 'Standard', or 'Premium'.
+ *
+ * @param tier the tier value to set
+ * @return the ServiceSku object itself.
+ */
+ public ServiceSku withTier(String tier) {
+ this.tier = tier;
+ return this;
+ }
+
+ /**
+ * Get the SKU family, used when the service has multiple performance classes within a tier, such as 'A', 'D', etc. for virtual machines.
+ *
+ * @return the family value
+ */
+ public String family() {
+ return this.family;
+ }
+
+ /**
+ * Set the SKU family, used when the service has multiple performance classes within a tier, such as 'A', 'D', etc. for virtual machines.
+ *
+ * @param family the family value to set
+ * @return the ServiceSku object itself.
+ */
+ public ServiceSku withFamily(String family) {
+ this.family = family;
+ return this;
+ }
+
+ /**
+ * Get the size of the SKU, used when the name alone does not denote a service size or when a SKU has multiple performance classes within a family, e.g. 'A1' for virtual machines.
+ *
+ * @return the size value
+ */
+ public String size() {
+ return this.size;
+ }
+
+ /**
+ * Set the size of the SKU, used when the name alone does not denote a service size or when a SKU has multiple performance classes within a family, e.g. 'A1' for virtual machines.
+ *
+ * @param size the size value to set
+ * @return the ServiceSku object itself.
+ */
+ public ServiceSku withSize(String size) {
+ this.size = size;
+ return this;
+ }
+
+ /**
+ * Get the capacity of the SKU, if it supports scaling.
+ *
+ * @return the capacity value
+ */
+ public Integer capacity() {
+ return this.capacity;
+ }
+
+ /**
+ * Set the capacity of the SKU, if it supports scaling.
+ *
+ * @param capacity the capacity value to set
+ * @return the ServiceSku object itself.
+ */
+ public ServiceSku withCapacity(Integer capacity) {
+ this.capacity = capacity;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Services.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Services.java
new file mode 100644
index 000000000000..f55e9556ad20
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Services.java
@@ -0,0 +1,94 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_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.azuredatabasemigrationservice.v2017_11_15_preview.implementation.ServicesInner;
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.AvailableServiceSku;
+
+/**
+ * Type representing Services.
+ */
+public interface Services extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Check service health status.
+ * The services resource is the top-level resource that represents the Data Migration Service. This action performs a health check and returns the status of the service and virtual machine size.
+ *
+ * @param groupName Name of the resource group
+ * @param serviceName Name of the service
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkStatusAsync(String groupName, String serviceName);
+
+ /**
+ * Start service.
+ * The services resource is the top-level resource that represents the Data Migration Service. This action starts the service and the service can be used for data migration.
+ *
+ * @param groupName Name of the resource group
+ * @param serviceName Name of the service
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable startAsync(String groupName, String serviceName);
+
+ /**
+ * Stop service.
+ * The services resource is the top-level resource that represents the Data Migration Service. This action stops the service and the service cannot be used for data migration. The service owner won't be billed when the service is stopped.
+ *
+ * @param groupName Name of the resource group
+ * @param serviceName Name of the service
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable stopAsync(String groupName, String serviceName);
+
+ /**
+ * Check nested resource name validity and availability.
+ * This method checks whether a proposed nested resource name is valid and available.
+ *
+ * @param groupName Name of the resource group
+ * @param serviceName Name of the service
+ * @param parameters Requested name to validate
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkChildrenNameAvailabilityAsync(String groupName, String serviceName, NameAvailabilityRequest parameters);
+
+ /**
+ * Get compatible SKUs.
+ * The services resource is the top-level resource that represents the Data Migration Service. The skus action returns the list of SKUs that a service resource can be updated to.
+ *
+ * @param groupName Name of the resource group
+ * @param serviceName Name of the service
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listSkusAsync(final String groupName, final String serviceName);
+
+ /**
+ * Check name validity and availability.
+ * This method checks whether a proposed top-level resource name is valid and available.
+ *
+ * @param location The Azure region of the operation
+ * @param parameters Requested name to validate
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkNameAvailabilityAsync(String location, NameAvailabilityRequest parameters);
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Severity.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Severity.java
new file mode 100644
index 000000000000..9d606031b8cc
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Severity.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for Severity.
+ */
+public enum Severity {
+ /** Enum value Message. */
+ MESSAGE("Message"),
+
+ /** Enum value Warning. */
+ WARNING("Warning"),
+
+ /** Enum value Error. */
+ ERROR("Error");
+
+ /** The actual serialized value for a Severity instance. */
+ private String value;
+
+ Severity(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a Severity instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed Severity object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static Severity fromString(String value) {
+ Severity[] items = Severity.values();
+ for (Severity item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/SqlConnectionInfo.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/SqlConnectionInfo.java
new file mode 100644
index 000000000000..5b7e55e8ed6a
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/SqlConnectionInfo.java
@@ -0,0 +1,154 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Information for connecting to SQL database server.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
+@JsonTypeName("SqlConnectionInfo")
+public class SqlConnectionInfo extends ConnectionInfo {
+ /**
+ * Data source in the format
+ * Protocol:MachineName\SQLServerInstanceName,PortNumber.
+ */
+ @JsonProperty(value = "dataSource", required = true)
+ private String dataSource;
+
+ /**
+ * Authentication type to use for connection. Possible values include:
+ * 'None', 'WindowsAuthentication', 'SqlAuthentication',
+ * 'ActiveDirectoryIntegrated', 'ActiveDirectoryPassword'.
+ */
+ @JsonProperty(value = "authentication")
+ private AuthenticationType authentication;
+
+ /**
+ * Whether to encrypt the connection.
+ */
+ @JsonProperty(value = "encryptConnection")
+ private Boolean encryptConnection;
+
+ /**
+ * Additional connection settings.
+ */
+ @JsonProperty(value = "additionalSettings")
+ private String additionalSettings;
+
+ /**
+ * Whether to trust the server certificate.
+ */
+ @JsonProperty(value = "trustServerCertificate")
+ private Boolean trustServerCertificate;
+
+ /**
+ * Get data source in the format Protocol:MachineName\SQLServerInstanceName,PortNumber.
+ *
+ * @return the dataSource value
+ */
+ public String dataSource() {
+ return this.dataSource;
+ }
+
+ /**
+ * Set data source in the format Protocol:MachineName\SQLServerInstanceName,PortNumber.
+ *
+ * @param dataSource the dataSource value to set
+ * @return the SqlConnectionInfo object itself.
+ */
+ public SqlConnectionInfo withDataSource(String dataSource) {
+ this.dataSource = dataSource;
+ return this;
+ }
+
+ /**
+ * Get authentication type to use for connection. Possible values include: 'None', 'WindowsAuthentication', 'SqlAuthentication', 'ActiveDirectoryIntegrated', 'ActiveDirectoryPassword'.
+ *
+ * @return the authentication value
+ */
+ public AuthenticationType authentication() {
+ return this.authentication;
+ }
+
+ /**
+ * Set authentication type to use for connection. Possible values include: 'None', 'WindowsAuthentication', 'SqlAuthentication', 'ActiveDirectoryIntegrated', 'ActiveDirectoryPassword'.
+ *
+ * @param authentication the authentication value to set
+ * @return the SqlConnectionInfo object itself.
+ */
+ public SqlConnectionInfo withAuthentication(AuthenticationType authentication) {
+ this.authentication = authentication;
+ return this;
+ }
+
+ /**
+ * Get whether to encrypt the connection.
+ *
+ * @return the encryptConnection value
+ */
+ public Boolean encryptConnection() {
+ return this.encryptConnection;
+ }
+
+ /**
+ * Set whether to encrypt the connection.
+ *
+ * @param encryptConnection the encryptConnection value to set
+ * @return the SqlConnectionInfo object itself.
+ */
+ public SqlConnectionInfo withEncryptConnection(Boolean encryptConnection) {
+ this.encryptConnection = encryptConnection;
+ return this;
+ }
+
+ /**
+ * Get additional connection settings.
+ *
+ * @return the additionalSettings value
+ */
+ public String additionalSettings() {
+ return this.additionalSettings;
+ }
+
+ /**
+ * Set additional connection settings.
+ *
+ * @param additionalSettings the additionalSettings value to set
+ * @return the SqlConnectionInfo object itself.
+ */
+ public SqlConnectionInfo withAdditionalSettings(String additionalSettings) {
+ this.additionalSettings = additionalSettings;
+ return this;
+ }
+
+ /**
+ * Get whether to trust the server certificate.
+ *
+ * @return the trustServerCertificate value
+ */
+ public Boolean trustServerCertificate() {
+ return this.trustServerCertificate;
+ }
+
+ /**
+ * Set whether to trust the server certificate.
+ *
+ * @param trustServerCertificate the trustServerCertificate value to set
+ * @return the SqlConnectionInfo object itself.
+ */
+ public SqlConnectionInfo withTrustServerCertificate(Boolean trustServerCertificate) {
+ this.trustServerCertificate = trustServerCertificate;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/SqlMigrationTaskInput.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/SqlMigrationTaskInput.java
new file mode 100644
index 000000000000..6c1742b095f3
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/SqlMigrationTaskInput.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Base class for migration task input.
+ */
+public class SqlMigrationTaskInput {
+ /**
+ * Information for connecting to source.
+ */
+ @JsonProperty(value = "sourceConnectionInfo", required = true)
+ private SqlConnectionInfo sourceConnectionInfo;
+
+ /**
+ * Information for connecting to target.
+ */
+ @JsonProperty(value = "targetConnectionInfo", required = true)
+ private SqlConnectionInfo targetConnectionInfo;
+
+ /**
+ * Get information for connecting to source.
+ *
+ * @return the sourceConnectionInfo value
+ */
+ public SqlConnectionInfo sourceConnectionInfo() {
+ return this.sourceConnectionInfo;
+ }
+
+ /**
+ * Set information for connecting to source.
+ *
+ * @param sourceConnectionInfo the sourceConnectionInfo value to set
+ * @return the SqlMigrationTaskInput object itself.
+ */
+ public SqlMigrationTaskInput withSourceConnectionInfo(SqlConnectionInfo sourceConnectionInfo) {
+ this.sourceConnectionInfo = sourceConnectionInfo;
+ return this;
+ }
+
+ /**
+ * Get information for connecting to target.
+ *
+ * @return the targetConnectionInfo value
+ */
+ public SqlConnectionInfo targetConnectionInfo() {
+ return this.targetConnectionInfo;
+ }
+
+ /**
+ * Set information for connecting to target.
+ *
+ * @param targetConnectionInfo the targetConnectionInfo value to set
+ * @return the SqlMigrationTaskInput object itself.
+ */
+ public SqlMigrationTaskInput withTargetConnectionInfo(SqlConnectionInfo targetConnectionInfo) {
+ this.targetConnectionInfo = targetConnectionInfo;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/TaskState.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/TaskState.java
new file mode 100644
index 000000000000..17b452a2b346
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/TaskState.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for TaskState.
+ */
+public enum TaskState {
+ /** Enum value Unknown. */
+ UNKNOWN("Unknown"),
+
+ /** Enum value Queued. */
+ QUEUED("Queued"),
+
+ /** Enum value Running. */
+ RUNNING("Running"),
+
+ /** Enum value Canceled. */
+ CANCELED("Canceled"),
+
+ /** Enum value Succeeded. */
+ SUCCEEDED("Succeeded"),
+
+ /** Enum value Failed. */
+ FAILED("Failed"),
+
+ /** Enum value FailedInputValidation. */
+ FAILED_INPUT_VALIDATION("FailedInputValidation"),
+
+ /** Enum value Faulted. */
+ FAULTED("Faulted");
+
+ /** The actual serialized value for a TaskState instance. */
+ private String value;
+
+ TaskState(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a TaskState instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed TaskState object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static TaskState fromString(String value) {
+ TaskState[] items = TaskState.values();
+ for (TaskState item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Tasks.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Tasks.java
new file mode 100644
index 000000000000..30d6f9399eb7
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Tasks.java
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.TasksInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Tasks.
+ */
+public interface Tasks extends SupportsCreating, HasInner {
+ /**
+ * Cancel a task.
+ * The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. This method cancels a task if it's currently queued or running.
+ *
+ * @param groupName Name of the resource group
+ * @param serviceName Name of the service
+ * @param projectName Name of the project
+ * @param taskName Name of the Task
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable cancelAsync(String groupName, String serviceName, String projectName, String taskName);
+
+ /**
+ * Get task information.
+ * The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The GET method retrieves information about a task.
+ *
+ * @param groupName Name of the resource group
+ * @param serviceName Name of the service
+ * @param projectName Name of the project
+ * @param taskName Name of the Task
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String groupName, String serviceName, String projectName, String taskName);
+
+ /**
+ * Get tasks in a service.
+ * The services resource is the top-level resource that represents the Data Migration Service. This method returns a list of tasks owned by a service resource. Some tasks may have a status of Unknown, which indicates that an error occurred while querying the status of that task.
+ *
+ * @param groupName Name of the resource group
+ * @param serviceName Name of the service
+ * @param projectName Name of the project
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String groupName, final String serviceName, final String projectName);
+
+ /**
+ * Delete task.
+ * The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The DELETE method deletes a task, canceling it first if it's running.
+ *
+ * @param groupName Name of the resource group
+ * @param serviceName Name of the service
+ * @param projectName Name of the project
+ * @param taskName Name of the Task
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String groupName, String serviceName, String projectName, String taskName);
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/UpdateActionType.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/UpdateActionType.java
new file mode 100644
index 000000000000..b4b55f36f819
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/UpdateActionType.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for UpdateActionType.
+ */
+public enum UpdateActionType {
+ /** Enum value DeletedOnTarget. */
+ DELETED_ON_TARGET("DeletedOnTarget"),
+
+ /** Enum value ChangedOnTarget. */
+ CHANGED_ON_TARGET("ChangedOnTarget"),
+
+ /** Enum value AddedOnTarget. */
+ ADDED_ON_TARGET("AddedOnTarget");
+
+ /** The actual serialized value for a UpdateActionType instance. */
+ private String value;
+
+ UpdateActionType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a UpdateActionType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed UpdateActionType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static UpdateActionType fromString(String value) {
+ UpdateActionType[] items = UpdateActionType.values();
+ for (UpdateActionType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Usages.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Usages.java
new file mode 100644
index 000000000000..b2dbcac06d48
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/Usages.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation.UsagesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Usages.
+ */
+public interface Usages extends HasInner {
+ /**
+ * Get resource quotas and usage information.
+ * This method returns region-specific quotas and resource usage information for the Data Migration Service.
+ *
+ * @param location The Azure region of the operation
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String location);
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ValidationError.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ValidationError.java
new file mode 100644
index 000000000000..c8c671776936
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ValidationError.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Description about the errors happen while performing migration validation.
+ */
+public class ValidationError {
+ /**
+ * Error Text.
+ */
+ @JsonProperty(value = "text")
+ private String text;
+
+ /**
+ * Severity of the error. Possible values include: 'Message', 'Warning',
+ * 'Error'.
+ */
+ @JsonProperty(value = "severity")
+ private Severity severity;
+
+ /**
+ * Get error Text.
+ *
+ * @return the text value
+ */
+ public String text() {
+ return this.text;
+ }
+
+ /**
+ * Set error Text.
+ *
+ * @param text the text value to set
+ * @return the ValidationError object itself.
+ */
+ public ValidationError withText(String text) {
+ this.text = text;
+ return this;
+ }
+
+ /**
+ * Get severity of the error. Possible values include: 'Message', 'Warning', 'Error'.
+ *
+ * @return the severity value
+ */
+ public Severity severity() {
+ return this.severity;
+ }
+
+ /**
+ * Set severity of the error. Possible values include: 'Message', 'Warning', 'Error'.
+ *
+ * @param severity the severity value to set
+ * @return the ValidationError object itself.
+ */
+ public ValidationError withSeverity(Severity severity) {
+ this.severity = severity;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ValidationStatus.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ValidationStatus.java
new file mode 100644
index 000000000000..141c675fae4e
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/ValidationStatus.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ValidationStatus.
+ */
+public enum ValidationStatus {
+ /** Enum value Default. */
+ DEFAULT("Default"),
+
+ /** Enum value NotStarted. */
+ NOT_STARTED("NotStarted"),
+
+ /** Enum value Initialized. */
+ INITIALIZED("Initialized"),
+
+ /** Enum value InProgress. */
+ IN_PROGRESS("InProgress"),
+
+ /** Enum value Completed. */
+ COMPLETED("Completed"),
+
+ /** Enum value CompletedWithIssues. */
+ COMPLETED_WITH_ISSUES("CompletedWithIssues"),
+
+ /** Enum value Failed. */
+ FAILED("Failed"),
+
+ /** Enum value Stopped. */
+ STOPPED("Stopped");
+
+ /** The actual serialized value for a ValidationStatus instance. */
+ private String value;
+
+ ValidationStatus(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ValidationStatus instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ValidationStatus object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ValidationStatus fromString(String value) {
+ ValidationStatus[] items = ValidationStatus.values();
+ for (ValidationStatus item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/WaitStatistics.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/WaitStatistics.java
new file mode 100644
index 000000000000..f717015e3b75
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/WaitStatistics.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.azuredatabasemigrationservice.v2017_11_15_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Wait statistics gathered during query batch execution.
+ */
+public class WaitStatistics {
+ /**
+ * Type of the Wait.
+ */
+ @JsonProperty(value = "waitType")
+ private String waitType;
+
+ /**
+ * Total wait time in millisecond(s).
+ */
+ @JsonProperty(value = "waitTimeMs")
+ private Double waitTimeMs;
+
+ /**
+ * Total no. of waits.
+ */
+ @JsonProperty(value = "waitCount")
+ private Long waitCount;
+
+ /**
+ * Get type of the Wait.
+ *
+ * @return the waitType value
+ */
+ public String waitType() {
+ return this.waitType;
+ }
+
+ /**
+ * Set type of the Wait.
+ *
+ * @param waitType the waitType value to set
+ * @return the WaitStatistics object itself.
+ */
+ public WaitStatistics withWaitType(String waitType) {
+ this.waitType = waitType;
+ return this;
+ }
+
+ /**
+ * Get total wait time in millisecond(s).
+ *
+ * @return the waitTimeMs value
+ */
+ public Double waitTimeMs() {
+ return this.waitTimeMs;
+ }
+
+ /**
+ * Set total wait time in millisecond(s).
+ *
+ * @param waitTimeMs the waitTimeMs value to set
+ * @return the WaitStatistics object itself.
+ */
+ public WaitStatistics withWaitTimeMs(Double waitTimeMs) {
+ this.waitTimeMs = waitTimeMs;
+ return this;
+ }
+
+ /**
+ * Get total no. of waits.
+ *
+ * @return the waitCount value
+ */
+ public Long waitCount() {
+ return this.waitCount;
+ }
+
+ /**
+ * Set total no. of waits.
+ *
+ * @param waitCount the waitCount value to set
+ * @return the WaitStatistics object itself.
+ */
+ public WaitStatistics withWaitCount(Long waitCount) {
+ this.waitCount = waitCount;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/AvailableServiceSkuImpl.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/AvailableServiceSkuImpl.java
new file mode 100644
index 000000000000..aa3786039742
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/AvailableServiceSkuImpl.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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.AvailableServiceSku;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import rx.Observable;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.AvailableServiceSkuCapacity;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.AvailableServiceSkuSku;
+
+class AvailableServiceSkuImpl extends WrapperImpl implements AvailableServiceSku {
+ private final DataMigrationManager manager;
+
+ AvailableServiceSkuImpl(AvailableServiceSkuInner inner, DataMigrationManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public DataMigrationManager manager() {
+ return this.manager;
+ }
+
+
+
+ @Override
+ public AvailableServiceSkuCapacity capacity() {
+ return this.inner().capacity();
+ }
+
+ @Override
+ public String resourceType() {
+ return this.inner().resourceType();
+ }
+
+ @Override
+ public AvailableServiceSkuSku sku() {
+ return this.inner().sku();
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/AvailableServiceSkuInner.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/AvailableServiceSkuInner.java
new file mode 100644
index 000000000000..4bce2c0cd08f
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/AvailableServiceSkuInner.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.AvailableServiceSkuSku;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.AvailableServiceSkuCapacity;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Describes the available service SKU.
+ */
+public class AvailableServiceSkuInner {
+ /**
+ * The resource type, including the provider namespace.
+ */
+ @JsonProperty(value = "resourceType")
+ private String resourceType;
+
+ /**
+ * SKU name, tier, etc.
+ */
+ @JsonProperty(value = "sku")
+ private AvailableServiceSkuSku sku;
+
+ /**
+ * A description of the scaling capacities of the SKU.
+ */
+ @JsonProperty(value = "capacity")
+ private AvailableServiceSkuCapacity capacity;
+
+ /**
+ * Get the resource type, including the provider namespace.
+ *
+ * @return the resourceType value
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Set the resource type, including the provider namespace.
+ *
+ * @param resourceType the resourceType value to set
+ * @return the AvailableServiceSkuInner object itself.
+ */
+ public AvailableServiceSkuInner withResourceType(String resourceType) {
+ this.resourceType = resourceType;
+ return this;
+ }
+
+ /**
+ * Get sKU name, tier, etc.
+ *
+ * @return the sku value
+ */
+ public AvailableServiceSkuSku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set sKU name, tier, etc.
+ *
+ * @param sku the sku value to set
+ * @return the AvailableServiceSkuInner object itself.
+ */
+ public AvailableServiceSkuInner withSku(AvailableServiceSkuSku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get a description of the scaling capacities of the SKU.
+ *
+ * @return the capacity value
+ */
+ public AvailableServiceSkuCapacity capacity() {
+ return this.capacity;
+ }
+
+ /**
+ * Set a description of the scaling capacities of the SKU.
+ *
+ * @param capacity the capacity value to set
+ * @return the AvailableServiceSkuInner object itself.
+ */
+ public AvailableServiceSkuInner withCapacity(AvailableServiceSkuCapacity capacity) {
+ this.capacity = capacity;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationManager.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationManager.java
new file mode 100644
index 000000000000..58ed4a844aa7
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationManager.java
@@ -0,0 +1,159 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.AzureEnvironment;
+import com.microsoft.azure.AzureResponseBuilder;
+import com.microsoft.azure.credentials.AzureTokenCredentials;
+import com.microsoft.azure.management.apigeneration.Beta;
+import com.microsoft.azure.management.apigeneration.Beta.SinceVersion;
+import com.microsoft.azure.arm.resources.AzureConfigurable;
+import com.microsoft.azure.serializer.AzureJacksonAdapter;
+import com.microsoft.rest.RestClient;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ResourceSkus;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.Services;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.Tasks;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.Projects;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.Usages;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.Operations;
+import com.microsoft.azure.arm.resources.implementation.AzureConfigurableCoreImpl;
+import com.microsoft.azure.arm.resources.implementation.ManagerCore;
+
+/**
+ * Entry point to Azure DataMigration resource management.
+ */
+public final class DataMigrationManager extends ManagerCore {
+ private ResourceSkus resourceSkus;
+ private Services services;
+ private Tasks tasks;
+ private Projects projects;
+ private Usages usages;
+ private Operations operations;
+ /**
+ * Get a Configurable instance that can be used to create DataMigrationManager with optional configuration.
+ *
+ * @return the instance allowing configurations
+ */
+ public static Configurable configure() {
+ return new DataMigrationManager.ConfigurableImpl();
+ }
+ /**
+ * Creates an instance of DataMigrationManager that exposes DataMigration resource management API entry points.
+ *
+ * @param credentials the credentials to use
+ * @param subscriptionId the subscription UUID
+ * @return the DataMigrationManager
+ */
+ public static DataMigrationManager authenticate(AzureTokenCredentials credentials, String subscriptionId) {
+ return new DataMigrationManager(new RestClient.Builder()
+ .withBaseUrl(credentials.environment(), AzureEnvironment.Endpoint.RESOURCE_MANAGER)
+ .withCredentials(credentials)
+ .withSerializerAdapter(new AzureJacksonAdapter())
+ .withResponseBuilderFactory(new AzureResponseBuilder.Factory())
+ .build(), subscriptionId);
+ }
+ /**
+ * Creates an instance of DataMigrationManager that exposes DataMigration resource management API entry points.
+ *
+ * @param restClient the RestClient to be used for API calls.
+ * @param subscriptionId the subscription UUID
+ * @return the DataMigrationManager
+ */
+ public static DataMigrationManager authenticate(RestClient restClient, String subscriptionId) {
+ return new DataMigrationManager(restClient, subscriptionId);
+ }
+ /**
+ * The interface allowing configurations to be set.
+ */
+ public interface Configurable extends AzureConfigurable {
+ /**
+ * Creates an instance of DataMigrationManager that exposes DataMigration management API entry points.
+ *
+ * @param credentials the credentials to use
+ * @param subscriptionId the subscription UUID
+ * @return the interface exposing DataMigration management API entry points that work across subscriptions
+ */
+ DataMigrationManager authenticate(AzureTokenCredentials credentials, String subscriptionId);
+ }
+
+ /**
+ * @return Entry point to manage ResourceSkus.
+ */
+ public ResourceSkus resourceSkus() {
+ if (this.resourceSkus == null) {
+ this.resourceSkus = new ResourceSkusImpl(this);
+ }
+ return this.resourceSkus;
+ }
+
+ /**
+ * @return Entry point to manage Services.
+ */
+ public Services services() {
+ if (this.services == null) {
+ this.services = new ServicesImpl(this);
+ }
+ return this.services;
+ }
+
+ /**
+ * @return Entry point to manage Tasks.
+ */
+ public Tasks tasks() {
+ if (this.tasks == null) {
+ this.tasks = new TasksImpl(this);
+ }
+ return this.tasks;
+ }
+
+ /**
+ * @return Entry point to manage Projects.
+ */
+ public Projects projects() {
+ if (this.projects == null) {
+ this.projects = new ProjectsImpl(this);
+ }
+ return this.projects;
+ }
+
+ /**
+ * @return Entry point to manage Usages.
+ */
+ public Usages usages() {
+ if (this.usages == null) {
+ this.usages = new UsagesImpl(this);
+ }
+ return this.usages;
+ }
+
+ /**
+ * @return Entry point to manage Operations.
+ */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(this);
+ }
+ return this.operations;
+ }
+
+ /**
+ * The implementation for Configurable interface.
+ */
+ private static final class ConfigurableImpl extends AzureConfigurableCoreImpl implements Configurable {
+ public DataMigrationManager authenticate(AzureTokenCredentials credentials, String subscriptionId) {
+ return DataMigrationManager.authenticate(buildRestClient(credentials), subscriptionId);
+ }
+ }
+ private DataMigrationManager(RestClient restClient, String subscriptionId) {
+ super(
+ restClient,
+ subscriptionId,
+ new DataMigrationServiceClientImpl(restClient).withSubscriptionId(subscriptionId));
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceClientImpl.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceClientImpl.java
new file mode 100644
index 000000000000..59c73179890a
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceClientImpl.java
@@ -0,0 +1,266 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.AzureClient;
+import com.microsoft.azure.AzureServiceClient;
+import com.microsoft.rest.credentials.ServiceClientCredentials;
+import com.microsoft.rest.RestClient;
+
+/**
+ * Initializes a new instance of the DataMigrationServiceClientImpl class.
+ */
+public class DataMigrationServiceClientImpl extends AzureServiceClient {
+ /** the {@link AzureClient} used for long running operations. */
+ private AzureClient azureClient;
+
+ /**
+ * Gets the {@link AzureClient} used for long running operations.
+ * @return the azure client;
+ */
+ public AzureClient getAzureClient() {
+ return this.azureClient;
+ }
+
+ /** Version of the API. */
+ private String apiVersion;
+
+ /**
+ * Gets Version of the API.
+ *
+ * @return the apiVersion value.
+ */
+ public String apiVersion() {
+ return this.apiVersion;
+ }
+
+ /** Identifier of the subscription. */
+ private String subscriptionId;
+
+ /**
+ * Gets Identifier of the subscription.
+ *
+ * @return the subscriptionId value.
+ */
+ public String subscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /**
+ * Sets Identifier of the subscription.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the service client itself
+ */
+ public DataMigrationServiceClientImpl withSubscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /** The preferred language for the response. */
+ private String acceptLanguage;
+
+ /**
+ * Gets The preferred language for the response.
+ *
+ * @return the acceptLanguage value.
+ */
+ public String acceptLanguage() {
+ return this.acceptLanguage;
+ }
+
+ /**
+ * Sets The preferred language for the response.
+ *
+ * @param acceptLanguage the acceptLanguage value.
+ * @return the service client itself
+ */
+ public DataMigrationServiceClientImpl withAcceptLanguage(String acceptLanguage) {
+ this.acceptLanguage = acceptLanguage;
+ return this;
+ }
+
+ /** The retry timeout in seconds for Long Running Operations. Default value is 30. */
+ private int longRunningOperationRetryTimeout;
+
+ /**
+ * Gets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ *
+ * @return the longRunningOperationRetryTimeout value.
+ */
+ public int longRunningOperationRetryTimeout() {
+ return this.longRunningOperationRetryTimeout;
+ }
+
+ /**
+ * Sets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ *
+ * @param longRunningOperationRetryTimeout the longRunningOperationRetryTimeout value.
+ * @return the service client itself
+ */
+ public DataMigrationServiceClientImpl withLongRunningOperationRetryTimeout(int longRunningOperationRetryTimeout) {
+ this.longRunningOperationRetryTimeout = longRunningOperationRetryTimeout;
+ return this;
+ }
+
+ /** Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true. */
+ private boolean generateClientRequestId;
+
+ /**
+ * Gets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ *
+ * @return the generateClientRequestId value.
+ */
+ public boolean generateClientRequestId() {
+ return this.generateClientRequestId;
+ }
+
+ /**
+ * Sets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ *
+ * @param generateClientRequestId the generateClientRequestId value.
+ * @return the service client itself
+ */
+ public DataMigrationServiceClientImpl withGenerateClientRequestId(boolean generateClientRequestId) {
+ this.generateClientRequestId = generateClientRequestId;
+ return this;
+ }
+
+ /**
+ * The ResourceSkusInner object to access its operations.
+ */
+ private ResourceSkusInner resourceSkus;
+
+ /**
+ * Gets the ResourceSkusInner object to access its operations.
+ * @return the ResourceSkusInner object.
+ */
+ public ResourceSkusInner resourceSkus() {
+ return this.resourceSkus;
+ }
+
+ /**
+ * The ServicesInner object to access its operations.
+ */
+ private ServicesInner services;
+
+ /**
+ * Gets the ServicesInner object to access its operations.
+ * @return the ServicesInner object.
+ */
+ public ServicesInner services() {
+ return this.services;
+ }
+
+ /**
+ * The TasksInner object to access its operations.
+ */
+ private TasksInner tasks;
+
+ /**
+ * Gets the TasksInner object to access its operations.
+ * @return the TasksInner object.
+ */
+ public TasksInner tasks() {
+ return this.tasks;
+ }
+
+ /**
+ * The ProjectsInner object to access its operations.
+ */
+ private ProjectsInner projects;
+
+ /**
+ * Gets the ProjectsInner object to access its operations.
+ * @return the ProjectsInner object.
+ */
+ public ProjectsInner projects() {
+ return this.projects;
+ }
+
+ /**
+ * The UsagesInner object to access its operations.
+ */
+ private UsagesInner usages;
+
+ /**
+ * Gets the UsagesInner object to access its operations.
+ * @return the UsagesInner object.
+ */
+ public UsagesInner usages() {
+ return this.usages;
+ }
+
+ /**
+ * The OperationsInner object to access its operations.
+ */
+ private OperationsInner operations;
+
+ /**
+ * Gets the OperationsInner object to access its operations.
+ * @return the OperationsInner object.
+ */
+ public OperationsInner operations() {
+ return this.operations;
+ }
+
+ /**
+ * Initializes an instance of DataMigrationServiceClient client.
+ *
+ * @param credentials the management credentials for Azure
+ */
+ public DataMigrationServiceClientImpl(ServiceClientCredentials credentials) {
+ this("https://management.azure.com", credentials);
+ }
+
+ /**
+ * Initializes an instance of DataMigrationServiceClient client.
+ *
+ * @param baseUrl the base URL of the host
+ * @param credentials the management credentials for Azure
+ */
+ public DataMigrationServiceClientImpl(String baseUrl, ServiceClientCredentials credentials) {
+ super(baseUrl, credentials);
+ initialize();
+ }
+
+ /**
+ * Initializes an instance of DataMigrationServiceClient client.
+ *
+ * @param restClient the REST client to connect to Azure.
+ */
+ public DataMigrationServiceClientImpl(RestClient restClient) {
+ super(restClient);
+ initialize();
+ }
+
+ protected void initialize() {
+ this.apiVersion = "2017-11-15-preview";
+ this.acceptLanguage = "en-US";
+ this.longRunningOperationRetryTimeout = 30;
+ this.generateClientRequestId = true;
+ this.resourceSkus = new ResourceSkusInner(restClient().retrofit(), this);
+ this.services = new ServicesInner(restClient().retrofit(), this);
+ this.tasks = new TasksInner(restClient().retrofit(), this);
+ this.projects = new ProjectsInner(restClient().retrofit(), this);
+ this.usages = new UsagesInner(restClient().retrofit(), this);
+ this.operations = new OperationsInner(restClient().retrofit(), this);
+ this.azureClient = new AzureClient(this);
+ }
+
+ /**
+ * Gets the User-Agent header for the client.
+ *
+ * @return the user agent string.
+ */
+ @Override
+ public String userAgent() {
+ return String.format("%s (%s, %s, auto-generated)", super.userAgent(), "DataMigrationServiceClient", "2017-11-15-preview");
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceImpl.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceImpl.java
new file mode 100644
index 000000000000..abd25917156b
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceImpl.java
@@ -0,0 +1,108 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.arm.resources.models.implementation.GroupableResourceCoreImpl;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.DataMigrationService;
+import rx.Observable;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ServiceProvisioningState;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ServiceSku;
+
+class DataMigrationServiceImpl extends GroupableResourceCoreImpl implements DataMigrationService, DataMigrationService.Definition, DataMigrationService.Update {
+ DataMigrationServiceImpl(String name, DataMigrationServiceInner inner, DataMigrationManager manager) {
+ super(name, inner, manager);
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ ServicesInner client = this.manager().inner().services();
+ return client.createOrUpdateAsync(this.resourceGroupName(), this.name(), this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ ServicesInner client = this.manager().inner().services();
+ return client.updateAsync(this.resourceGroupName(), this.name(), this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ ServicesInner client = this.manager().inner().services();
+ return client.getByResourceGroupAsync(this.resourceGroupName(), this.name());
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+
+ @Override
+ public String etag() {
+ return this.inner().etag();
+ }
+
+ @Override
+ public String kind() {
+ return this.inner().kind();
+ }
+
+ @Override
+ public ServiceProvisioningState provisioningState() {
+ return this.inner().provisioningState();
+ }
+
+ @Override
+ public String publicKey() {
+ return this.inner().publicKey();
+ }
+
+ @Override
+ public ServiceSku sku() {
+ return this.inner().sku();
+ }
+
+ @Override
+ public String virtualSubnetId() {
+ return this.inner().virtualSubnetId();
+ }
+
+ @Override
+ public DataMigrationServiceImpl withVirtualSubnetId(String virtualSubnetId) {
+ this.inner().withVirtualSubnetId(virtualSubnetId);
+ return this;
+ }
+
+ @Override
+ public DataMigrationServiceImpl withEtag(String etag) {
+ this.inner().withEtag(etag);
+ return this;
+ }
+
+ @Override
+ public DataMigrationServiceImpl withKind(String kind) {
+ this.inner().withKind(kind);
+ return this;
+ }
+
+ @Override
+ public DataMigrationServiceImpl withPublicKey(String publicKey) {
+ this.inner().withPublicKey(publicKey);
+ return this;
+ }
+
+ @Override
+ public DataMigrationServiceImpl withSku(ServiceSku sku) {
+ this.inner().withSku(sku);
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceInner.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceInner.java
new file mode 100644
index 000000000000..dfd19788f8c9
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceInner.java
@@ -0,0 +1,171 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ServiceProvisioningState;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ServiceSku;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * A Data Migration Service resource.
+ */
+@JsonFlatten
+public class DataMigrationServiceInner extends Resource {
+ /**
+ * HTTP strong entity tag value. Ignored if submitted.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * The resource kind. Only 'vm' (the default) is supported.
+ */
+ @JsonProperty(value = "kind")
+ private String kind;
+
+ /**
+ * The resource's provisioning state. Possible values include: 'Accepted',
+ * 'Deleting', 'Deploying', 'Stopped', 'Stopping', 'Starting',
+ * 'FailedToStart', 'FailedToStop', 'Succeeded', 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ServiceProvisioningState provisioningState;
+
+ /**
+ * The public key of the service, used to encrypt secrets sent to the
+ * service.
+ */
+ @JsonProperty(value = "properties.publicKey")
+ private String publicKey;
+
+ /**
+ * The ID of the Microsoft.Network/virtualNetworks/subnets resource to
+ * which the service should be joined.
+ */
+ @JsonProperty(value = "properties.virtualSubnetId", required = true)
+ private String virtualSubnetId;
+
+ /**
+ * Service SKU.
+ */
+ @JsonProperty(value = "sku")
+ private ServiceSku sku;
+
+ /**
+ * Get hTTP strong entity tag value. Ignored if submitted.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set hTTP strong entity tag value. Ignored if submitted.
+ *
+ * @param etag the etag value to set
+ * @return the DataMigrationServiceInner object itself.
+ */
+ public DataMigrationServiceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get the resource kind. Only 'vm' (the default) is supported.
+ *
+ * @return the kind value
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the resource kind. Only 'vm' (the default) is supported.
+ *
+ * @param kind the kind value to set
+ * @return the DataMigrationServiceInner object itself.
+ */
+ public DataMigrationServiceInner withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Get the resource's provisioning state. Possible values include: 'Accepted', 'Deleting', 'Deploying', 'Stopped', 'Stopping', 'Starting', 'FailedToStart', 'FailedToStop', 'Succeeded', 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public ServiceProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the public key of the service, used to encrypt secrets sent to the service.
+ *
+ * @return the publicKey value
+ */
+ public String publicKey() {
+ return this.publicKey;
+ }
+
+ /**
+ * Set the public key of the service, used to encrypt secrets sent to the service.
+ *
+ * @param publicKey the publicKey value to set
+ * @return the DataMigrationServiceInner object itself.
+ */
+ public DataMigrationServiceInner withPublicKey(String publicKey) {
+ this.publicKey = publicKey;
+ return this;
+ }
+
+ /**
+ * Get the ID of the Microsoft.Network/virtualNetworks/subnets resource to which the service should be joined.
+ *
+ * @return the virtualSubnetId value
+ */
+ public String virtualSubnetId() {
+ return this.virtualSubnetId;
+ }
+
+ /**
+ * Set the ID of the Microsoft.Network/virtualNetworks/subnets resource to which the service should be joined.
+ *
+ * @param virtualSubnetId the virtualSubnetId value to set
+ * @return the DataMigrationServiceInner object itself.
+ */
+ public DataMigrationServiceInner withVirtualSubnetId(String virtualSubnetId) {
+ this.virtualSubnetId = virtualSubnetId;
+ return this;
+ }
+
+ /**
+ * Get service SKU.
+ *
+ * @return the sku value
+ */
+ public ServiceSku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set service SKU.
+ *
+ * @param sku the sku value to set
+ * @return the DataMigrationServiceInner object itself.
+ */
+ public DataMigrationServiceInner withSku(ServiceSku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceStatusResponseImpl.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceStatusResponseImpl.java
new file mode 100644
index 000000000000..26f30009f291
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceStatusResponseImpl.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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.DataMigrationServiceStatusResponse;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import java.util.List;
+
+class DataMigrationServiceStatusResponseImpl extends WrapperImpl implements DataMigrationServiceStatusResponse {
+ private final DataMigrationManager manager;
+ DataMigrationServiceStatusResponseImpl(DataMigrationServiceStatusResponseInner inner, DataMigrationManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public DataMigrationManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public String agentVersion() {
+ return this.inner().agentVersion();
+ }
+
+ @Override
+ public String status() {
+ return this.inner().status();
+ }
+
+ @Override
+ public List supportedTaskTypes() {
+ return this.inner().supportedTaskTypes();
+ }
+
+ @Override
+ public String vmSize() {
+ return this.inner().vmSize();
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceStatusResponseInner.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceStatusResponseInner.java
new file mode 100644
index 000000000000..a6bc33e1d602
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/DataMigrationServiceStatusResponseInner.java
@@ -0,0 +1,124 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Service health status.
+ */
+public class DataMigrationServiceStatusResponseInner {
+ /**
+ * The DMS instance agent version.
+ */
+ @JsonProperty(value = "agentVersion")
+ private String agentVersion;
+
+ /**
+ * The machine-readable status, such as 'Initializing', 'Offline',
+ * 'Online', 'Deploying', 'Deleting', 'Stopped', 'Stopping', 'Starting',
+ * 'FailedToStart', 'FailedToStop' or 'Failed'.
+ */
+ @JsonProperty(value = "status")
+ private String status;
+
+ /**
+ * The services virtual machine size, such as 'Standard_D2_v2'.
+ */
+ @JsonProperty(value = "vmSize")
+ private String vmSize;
+
+ /**
+ * The list of supported task types.
+ */
+ @JsonProperty(value = "supportedTaskTypes")
+ private List supportedTaskTypes;
+
+ /**
+ * Get the DMS instance agent version.
+ *
+ * @return the agentVersion value
+ */
+ public String agentVersion() {
+ return this.agentVersion;
+ }
+
+ /**
+ * Set the DMS instance agent version.
+ *
+ * @param agentVersion the agentVersion value to set
+ * @return the DataMigrationServiceStatusResponseInner object itself.
+ */
+ public DataMigrationServiceStatusResponseInner withAgentVersion(String agentVersion) {
+ this.agentVersion = agentVersion;
+ return this;
+ }
+
+ /**
+ * Get the machine-readable status, such as 'Initializing', 'Offline', 'Online', 'Deploying', 'Deleting', 'Stopped', 'Stopping', 'Starting', 'FailedToStart', 'FailedToStop' or 'Failed'.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Set the machine-readable status, such as 'Initializing', 'Offline', 'Online', 'Deploying', 'Deleting', 'Stopped', 'Stopping', 'Starting', 'FailedToStart', 'FailedToStop' or 'Failed'.
+ *
+ * @param status the status value to set
+ * @return the DataMigrationServiceStatusResponseInner object itself.
+ */
+ public DataMigrationServiceStatusResponseInner withStatus(String status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the services virtual machine size, such as 'Standard_D2_v2'.
+ *
+ * @return the vmSize value
+ */
+ public String vmSize() {
+ return this.vmSize;
+ }
+
+ /**
+ * Set the services virtual machine size, such as 'Standard_D2_v2'.
+ *
+ * @param vmSize the vmSize value to set
+ * @return the DataMigrationServiceStatusResponseInner object itself.
+ */
+ public DataMigrationServiceStatusResponseInner withVmSize(String vmSize) {
+ this.vmSize = vmSize;
+ return this;
+ }
+
+ /**
+ * Get the list of supported task types.
+ *
+ * @return the supportedTaskTypes value
+ */
+ public List supportedTaskTypes() {
+ return this.supportedTaskTypes;
+ }
+
+ /**
+ * Set the list of supported task types.
+ *
+ * @param supportedTaskTypes the supportedTaskTypes value to set
+ * @return the DataMigrationServiceStatusResponseInner object itself.
+ */
+ public DataMigrationServiceStatusResponseInner withSupportedTaskTypes(List supportedTaskTypes) {
+ this.supportedTaskTypes = supportedTaskTypes;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/IdParsingUtils.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/IdParsingUtils.java
new file mode 100644
index 000000000000..ecb85cfc8638
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/IdParsingUtils.java
@@ -0,0 +1,57 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+import java.util.Arrays;
+import java.util.Iterator;
+
+class IdParsingUtils {
+ public static String getValueFromIdByName(String id, String name) {
+ if (id == null) {
+ return null;
+ }
+ Iterable iterable = Arrays.asList(id.split("/"));
+ Iterator itr = iterable.iterator();
+ while (itr.hasNext()) {
+ String part = itr.next();
+ if (part != null && part.trim() != "") {
+ if (part.equalsIgnoreCase(name)) {
+ if (itr.hasNext()) {
+ return itr.next();
+ } else {
+ return null;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ public static String getValueFromIdByPosition(String id, int pos) {
+ if (id == null) {
+ return null;
+ }
+ Iterable iterable = Arrays.asList(id.split("/"));
+ Iterator itr = iterable.iterator();
+ int index = 0;
+ while (itr.hasNext()) {
+ String part = itr.next();
+ if (part != null && part.trim() != "") {
+ if (index == pos) {
+ if (itr.hasNext()) {
+ return itr.next();
+ } else {
+ return null;
+ }
+ }
+ }
+ index++;
+ }
+ return null;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/NameAvailabilityResponseImpl.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/NameAvailabilityResponseImpl.java
new file mode 100644
index 000000000000..88c5af985ee9
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/NameAvailabilityResponseImpl.java
@@ -0,0 +1,42 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.NameAvailabilityResponse;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.NameCheckFailureReason;
+
+class NameAvailabilityResponseImpl extends WrapperImpl implements NameAvailabilityResponse {
+ private final DataMigrationManager manager;
+ NameAvailabilityResponseImpl(NameAvailabilityResponseInner inner, DataMigrationManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public DataMigrationManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public String message() {
+ return this.inner().message();
+ }
+
+ @Override
+ public Boolean nameAvailable() {
+ return this.inner().nameAvailable();
+ }
+
+ @Override
+ public NameCheckFailureReason reason() {
+ return this.inner().reason();
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/NameAvailabilityResponseInner.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/NameAvailabilityResponseInner.java
new file mode 100644
index 000000000000..003376ae10b4
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/NameAvailabilityResponseInner.java
@@ -0,0 +1,99 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.NameCheckFailureReason;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Indicates whether a proposed resource name is available.
+ */
+public class NameAvailabilityResponseInner {
+ /**
+ * If true, the name is valid and available. If false, 'reason' describes
+ * why not.
+ */
+ @JsonProperty(value = "nameAvailable")
+ private Boolean nameAvailable;
+
+ /**
+ * The reason why the name is not available, if nameAvailable is false.
+ * Possible values include: 'AlreadyExists', 'Invalid'.
+ */
+ @JsonProperty(value = "reason")
+ private NameCheckFailureReason reason;
+
+ /**
+ * The localized reason why the name is not available, if nameAvailable is
+ * false.
+ */
+ @JsonProperty(value = "message")
+ private String message;
+
+ /**
+ * Get if true, the name is valid and available. If false, 'reason' describes why not.
+ *
+ * @return the nameAvailable value
+ */
+ public Boolean nameAvailable() {
+ return this.nameAvailable;
+ }
+
+ /**
+ * Set if true, the name is valid and available. If false, 'reason' describes why not.
+ *
+ * @param nameAvailable the nameAvailable value to set
+ * @return the NameAvailabilityResponseInner object itself.
+ */
+ public NameAvailabilityResponseInner withNameAvailable(Boolean nameAvailable) {
+ this.nameAvailable = nameAvailable;
+ return this;
+ }
+
+ /**
+ * Get the reason why the name is not available, if nameAvailable is false. Possible values include: 'AlreadyExists', 'Invalid'.
+ *
+ * @return the reason value
+ */
+ public NameCheckFailureReason reason() {
+ return this.reason;
+ }
+
+ /**
+ * Set the reason why the name is not available, if nameAvailable is false. Possible values include: 'AlreadyExists', 'Invalid'.
+ *
+ * @param reason the reason value to set
+ * @return the NameAvailabilityResponseInner object itself.
+ */
+ public NameAvailabilityResponseInner withReason(NameCheckFailureReason reason) {
+ this.reason = reason;
+ return this;
+ }
+
+ /**
+ * Get the localized reason why the name is not available, if nameAvailable is false.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set the localized reason why the name is not available, if nameAvailable is false.
+ *
+ * @param message the message value to set
+ * @return the NameAvailabilityResponseInner object itself.
+ */
+ public NameAvailabilityResponseInner withMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/OperationsImpl.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/OperationsImpl.java
new file mode 100644
index 000000000000..c043c22e9c36
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/OperationsImpl.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.
+ * abc
+ */
+
+package com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.Operations;
+import rx.functions.Func1;
+import rx.Observable;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ServiceOperation;
+
+class OperationsImpl extends WrapperImpl implements Operations {
+ private final DataMigrationManager manager;
+
+ OperationsImpl(DataMigrationManager manager) {
+ super(manager.inner().operations());
+ this.manager = manager;
+ }
+
+ public DataMigrationManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable listAsync() {
+ OperationsInner client = this.inner();
+ return client.listAsync()
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public ServiceOperation call(ServiceOperationInner inner) {
+ return new ServiceOperationImpl(inner, manager());
+ }
+ });
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/OperationsInner.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/OperationsInner.java
new file mode 100644
index 000000000000..c92b09b51d0e
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/OperationsInner.java
@@ -0,0 +1,293 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.AzureServiceFuture;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ApiErrorException;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Query;
+import retrofit2.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Operations.
+ */
+public class OperationsInner {
+ /** The Retrofit service to perform REST calls. */
+ private OperationsService service;
+ /** The service client containing this operation class. */
+ private DataMigrationServiceClientImpl client;
+
+ /**
+ * Initializes an instance of OperationsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public OperationsInner(Retrofit retrofit, DataMigrationServiceClientImpl client) {
+ this.service = retrofit.create(OperationsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Operations to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface OperationsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.Operations list" })
+ @GET("providers/Microsoft.DataMigration/operations")
+ Observable> list(@Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.Operations listNext" })
+ @GET
+ Observable> listNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Get available resource provider actions (operations).
+ * Lists all available actions exposed by the Data Migration Service resource provider.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws ApiErrorException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<ServiceOperationInner> object if successful.
+ */
+ public PagedList list() {
+ ServiceResponse> response = listSinglePageAsync().toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Get available resource provider actions (operations).
+ * Lists all available actions exposed by the Data Migration Service resource provider.
+ *
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listAsync(final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listSinglePageAsync(),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Get available resource provider actions (operations).
+ * Lists all available actions exposed by the Data Migration Service resource provider.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ServiceOperationInner> object
+ */
+ public Observable> listAsync() {
+ return listWithServiceResponseAsync()
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Get available resource provider actions (operations).
+ * Lists all available actions exposed by the Data Migration Service resource provider.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ServiceOperationInner> object
+ */
+ public Observable>> listWithServiceResponseAsync() {
+ return listSinglePageAsync()
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Get available resource provider actions (operations).
+ * Lists all available actions exposed by the Data Migration Service resource provider.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<ServiceOperationInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listSinglePageAsync() {
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.list(this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listDelegate(Response response) throws ApiErrorException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., ApiErrorException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(ApiErrorException.class)
+ .build(response);
+ }
+
+ /**
+ * Get available resource provider actions (operations).
+ * Lists all available actions exposed by the Data Migration Service resource provider.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws ApiErrorException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<ServiceOperationInner> object if successful.
+ */
+ public PagedList listNext(final String nextPageLink) {
+ ServiceResponse> response = listNextSinglePageAsync(nextPageLink).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Get available resource provider actions (operations).
+ * Lists all available actions exposed by the Data Migration Service resource provider.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listNextSinglePageAsync(nextPageLink),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Get available resource provider actions (operations).
+ * Lists all available actions exposed by the Data Migration Service resource provider.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ServiceOperationInner> object
+ */
+ public Observable> listNextAsync(final String nextPageLink) {
+ return listNextWithServiceResponseAsync(nextPageLink)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Get available resource provider actions (operations).
+ * Lists all available actions exposed by the Data Migration Service resource provider.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ServiceOperationInner> object
+ */
+ public Observable>> listNextWithServiceResponseAsync(final String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink)
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Get available resource provider actions (operations).
+ * Lists all available actions exposed by the Data Migration Service resource provider.
+ *
+ ServiceResponse> * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<ServiceOperationInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listNextSinglePageAsync(final String nextPageLink) {
+ if (nextPageLink == null) {
+ throw new IllegalArgumentException("Parameter nextPageLink is required and cannot be null.");
+ }
+ String nextUrl = String.format("%s", nextPageLink);
+ return service.listNext(nextUrl, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listNextDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listNextDelegate(Response response) throws ApiErrorException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., ApiErrorException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(ApiErrorException.class)
+ .build(response);
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/PageImpl.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/PageImpl.java
new file mode 100644
index 000000000000..a5855615641b
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/PageImpl.java
@@ -0,0 +1,75 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.azure.Page;
+import java.util.List;
+
+/**
+ * An instance of this class defines a page of Azure resources and a link to
+ * get the next page of resources, if any.
+ *
+ * @param type of Azure resource
+ */
+public class PageImpl implements Page {
+ /**
+ * The link to the next page.
+ */
+ @JsonProperty("nextLink")
+ private String nextPageLink;
+
+ /**
+ * The list of items.
+ */
+ @JsonProperty("value")
+ private List items;
+
+ /**
+ * Gets the link to the next page.
+ *
+ * @return the link to the next page.
+ */
+ @Override
+ public String nextPageLink() {
+ return this.nextPageLink;
+ }
+
+ /**
+ * Gets the list of items.
+ *
+ * @return the list of items in {@link List}.
+ */
+ @Override
+ public List items() {
+ return items;
+ }
+
+ /**
+ * Sets the link to the next page.
+ *
+ * @param nextPageLink the link to the next page.
+ * @return this Page object itself.
+ */
+ public PageImpl setNextPageLink(String nextPageLink) {
+ this.nextPageLink = nextPageLink;
+ return this;
+ }
+
+ /**
+ * Sets the list of items.
+ *
+ * @param items the list of items in {@link List}.
+ * @return this Page object itself.
+ */
+ public PageImpl setItems(List items) {
+ this.items = items;
+ return this;
+ }
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectImpl.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectImpl.java
new file mode 100644
index 000000000000..29a4a92bce15
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectImpl.java
@@ -0,0 +1,189 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.Project;
+import com.microsoft.azure.arm.model.implementation.CreatableUpdatableImpl;
+import rx.Observable;
+import java.util.Map;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ProjectSourcePlatform;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ProjectTargetPlatform;
+import org.joda.time.DateTime;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ConnectionInfo;
+import java.util.List;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.DatabaseInfo;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ProjectProvisioningState;
+
+class ProjectImpl extends CreatableUpdatableImpl implements Project, Project.Definition, Project.Update {
+ private final DataMigrationManager manager;
+ private String groupName;
+ private String serviceName;
+ private String projectName;
+
+ ProjectImpl(String name, DataMigrationManager manager) {
+ super(name, new ProjectInner());
+ this.manager = manager;
+ // Set resource name
+ this.projectName = name;
+ //
+ }
+
+ ProjectImpl(ProjectInner inner, DataMigrationManager manager) {
+ super(inner.name(), inner);
+ this.manager = manager;
+ // Set resource name
+ this.projectName = inner.name();
+ // set resource ancestor and positional variables
+ this.groupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
+ this.serviceName = IdParsingUtils.getValueFromIdByName(inner.id(), "services");
+ this.projectName = IdParsingUtils.getValueFromIdByName(inner.id(), "projects");
+ //
+ }
+
+ @Override
+ public DataMigrationManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ ProjectsInner client = this.manager().inner().projects();
+ return client.createOrUpdateAsync(this.groupName, this.serviceName, this.projectName, this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ ProjectsInner client = this.manager().inner().projects();
+ return client.updateAsync(this.groupName, this.serviceName, this.projectName, this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ ProjectsInner client = this.manager().inner().projects();
+ return client.getAsync(this.groupName, this.serviceName, this.projectName);
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+
+ @Override
+ public DateTime creationTime() {
+ return this.inner().creationTime();
+ }
+
+ @Override
+ public List databasesInfo() {
+ return this.inner().databasesInfo();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public String location() {
+ return this.inner().location();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public ProjectProvisioningState provisioningState() {
+ return this.inner().provisioningState();
+ }
+
+ @Override
+ public ConnectionInfo sourceConnectionInfo() {
+ return this.inner().sourceConnectionInfo();
+ }
+
+ @Override
+ public ProjectSourcePlatform sourcePlatform() {
+ return this.inner().sourcePlatform();
+ }
+
+ @Override
+ public Map tags() {
+ return this.inner().getTags();
+ }
+
+ @Override
+ public ConnectionInfo targetConnectionInfo() {
+ return this.inner().targetConnectionInfo();
+ }
+
+ @Override
+ public ProjectTargetPlatform targetPlatform() {
+ return this.inner().targetPlatform();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+ @Override
+ public ProjectImpl withExistingService(String groupName, String serviceName) {
+ this.groupName = groupName;
+ this.serviceName = serviceName;
+ return this;
+ }
+
+ @Override
+ public ProjectImpl withLocation(String location) {
+ this.inner().withLocation(location);
+ return this;
+ }
+
+ @Override
+ public ProjectImpl withSourcePlatform(ProjectSourcePlatform sourcePlatform) {
+ this.inner().withSourcePlatform(sourcePlatform);
+ return this;
+ }
+
+ @Override
+ public ProjectImpl withTargetPlatform(ProjectTargetPlatform targetPlatform) {
+ this.inner().withTargetPlatform(targetPlatform);
+ return this;
+ }
+
+ @Override
+ public ProjectImpl withDatabasesInfo(List databasesInfo) {
+ this.inner().withDatabasesInfo(databasesInfo);
+ return this;
+ }
+
+ @Override
+ public ProjectImpl withSourceConnectionInfo(ConnectionInfo sourceConnectionInfo) {
+ this.inner().withSourceConnectionInfo(sourceConnectionInfo);
+ return this;
+ }
+
+ @Override
+ public ProjectImpl withTags(Map tags) {
+ this.inner().withTags(tags);
+ return this;
+ }
+
+ @Override
+ public ProjectImpl withTargetConnectionInfo(ConnectionInfo targetConnectionInfo) {
+ this.inner().withTargetConnectionInfo(targetConnectionInfo);
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectInner.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectInner.java
new file mode 100644
index 000000000000..f5cca7436b03
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectInner.java
@@ -0,0 +1,190 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ProjectSourcePlatform;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ProjectTargetPlatform;
+import org.joda.time.DateTime;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ConnectionInfo;
+import java.util.List;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.DatabaseInfo;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ProjectProvisioningState;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * A project resource.
+ */
+@JsonFlatten
+public class ProjectInner extends Resource {
+ /**
+ * Source platform for the project. Possible values include: 'SQL',
+ * 'Unknown'.
+ */
+ @JsonProperty(value = "properties.sourcePlatform", required = true)
+ private ProjectSourcePlatform sourcePlatform;
+
+ /**
+ * Target platform for the project. Possible values include: 'SQLDB',
+ * 'Unknown'.
+ */
+ @JsonProperty(value = "properties.targetPlatform", required = true)
+ private ProjectTargetPlatform targetPlatform;
+
+ /**
+ * UTC Date and time when project was created.
+ */
+ @JsonProperty(value = "properties.creationTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime creationTime;
+
+ /**
+ * Information for connecting to source.
+ */
+ @JsonProperty(value = "properties.sourceConnectionInfo")
+ private ConnectionInfo sourceConnectionInfo;
+
+ /**
+ * Information for connecting to target.
+ */
+ @JsonProperty(value = "properties.targetConnectionInfo")
+ private ConnectionInfo targetConnectionInfo;
+
+ /**
+ * List of DatabaseInfo.
+ */
+ @JsonProperty(value = "properties.databasesInfo")
+ private List databasesInfo;
+
+ /**
+ * The project's provisioning state. Possible values include: 'Deleting',
+ * 'Succeeded'.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProjectProvisioningState provisioningState;
+
+ /**
+ * Get source platform for the project. Possible values include: 'SQL', 'Unknown'.
+ *
+ * @return the sourcePlatform value
+ */
+ public ProjectSourcePlatform sourcePlatform() {
+ return this.sourcePlatform;
+ }
+
+ /**
+ * Set source platform for the project. Possible values include: 'SQL', 'Unknown'.
+ *
+ * @param sourcePlatform the sourcePlatform value to set
+ * @return the ProjectInner object itself.
+ */
+ public ProjectInner withSourcePlatform(ProjectSourcePlatform sourcePlatform) {
+ this.sourcePlatform = sourcePlatform;
+ return this;
+ }
+
+ /**
+ * Get target platform for the project. Possible values include: 'SQLDB', 'Unknown'.
+ *
+ * @return the targetPlatform value
+ */
+ public ProjectTargetPlatform targetPlatform() {
+ return this.targetPlatform;
+ }
+
+ /**
+ * Set target platform for the project. Possible values include: 'SQLDB', 'Unknown'.
+ *
+ * @param targetPlatform the targetPlatform value to set
+ * @return the ProjectInner object itself.
+ */
+ public ProjectInner withTargetPlatform(ProjectTargetPlatform targetPlatform) {
+ this.targetPlatform = targetPlatform;
+ return this;
+ }
+
+ /**
+ * Get uTC Date and time when project was created.
+ *
+ * @return the creationTime value
+ */
+ public DateTime creationTime() {
+ return this.creationTime;
+ }
+
+ /**
+ * Get information for connecting to source.
+ *
+ * @return the sourceConnectionInfo value
+ */
+ public ConnectionInfo sourceConnectionInfo() {
+ return this.sourceConnectionInfo;
+ }
+
+ /**
+ * Set information for connecting to source.
+ *
+ * @param sourceConnectionInfo the sourceConnectionInfo value to set
+ * @return the ProjectInner object itself.
+ */
+ public ProjectInner withSourceConnectionInfo(ConnectionInfo sourceConnectionInfo) {
+ this.sourceConnectionInfo = sourceConnectionInfo;
+ return this;
+ }
+
+ /**
+ * Get information for connecting to target.
+ *
+ * @return the targetConnectionInfo value
+ */
+ public ConnectionInfo targetConnectionInfo() {
+ return this.targetConnectionInfo;
+ }
+
+ /**
+ * Set information for connecting to target.
+ *
+ * @param targetConnectionInfo the targetConnectionInfo value to set
+ * @return the ProjectInner object itself.
+ */
+ public ProjectInner withTargetConnectionInfo(ConnectionInfo targetConnectionInfo) {
+ this.targetConnectionInfo = targetConnectionInfo;
+ return this;
+ }
+
+ /**
+ * Get list of DatabaseInfo.
+ *
+ * @return the databasesInfo value
+ */
+ public List databasesInfo() {
+ return this.databasesInfo;
+ }
+
+ /**
+ * Set list of DatabaseInfo.
+ *
+ * @param databasesInfo the databasesInfo value to set
+ * @return the ProjectInner object itself.
+ */
+ public ProjectInner withDatabasesInfo(List databasesInfo) {
+ this.databasesInfo = databasesInfo;
+ return this;
+ }
+
+ /**
+ * Get the project's provisioning state. Possible values include: 'Deleting', 'Succeeded'.
+ *
+ * @return the provisioningState value
+ */
+ public ProjectProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectTaskImpl.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectTaskImpl.java
new file mode 100644
index 000000000000..25a8d164da3e
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectTaskImpl.java
@@ -0,0 +1,120 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ProjectTask;
+import com.microsoft.azure.arm.model.implementation.CreatableUpdatableImpl;
+import rx.Observable;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ProjectTaskProperties;
+
+class ProjectTaskImpl extends CreatableUpdatableImpl implements ProjectTask, ProjectTask.Definition, ProjectTask.Update {
+ private final DataMigrationManager manager;
+ private String groupName;
+ private String serviceName;
+ private String projectName;
+ private String taskName;
+
+ ProjectTaskImpl(String name, DataMigrationManager manager) {
+ super(name, new ProjectTaskInner());
+ this.manager = manager;
+ // Set resource name
+ this.taskName = name;
+ //
+ }
+
+ ProjectTaskImpl(ProjectTaskInner inner, DataMigrationManager manager) {
+ super(inner.name(), inner);
+ this.manager = manager;
+ // Set resource name
+ this.taskName = inner.name();
+ // set resource ancestor and positional variables
+ this.groupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
+ this.serviceName = IdParsingUtils.getValueFromIdByName(inner.id(), "services");
+ this.projectName = IdParsingUtils.getValueFromIdByName(inner.id(), "projects");
+ this.taskName = IdParsingUtils.getValueFromIdByName(inner.id(), "tasks");
+ //
+ }
+
+ @Override
+ public DataMigrationManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ TasksInner client = this.manager().inner().tasks();
+ return client.createOrUpdateAsync(this.groupName, this.serviceName, this.projectName, this.taskName, this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ TasksInner client = this.manager().inner().tasks();
+ return client.updateAsync(this.groupName, this.serviceName, this.projectName, this.taskName, this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ TasksInner client = this.manager().inner().tasks();
+ return client.getAsync(this.groupName, this.serviceName, this.projectName, this.taskName);
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+
+ @Override
+ public String etag() {
+ return this.inner().etag();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public ProjectTaskProperties properties() {
+ return this.inner().properties();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+ @Override
+ public ProjectTaskImpl withExistingProject(String groupName, String serviceName, String projectName) {
+ this.groupName = groupName;
+ this.serviceName = serviceName;
+ this.projectName = projectName;
+ return this;
+ }
+
+ @Override
+ public ProjectTaskImpl withEtag(String etag) {
+ this.inner().withEtag(etag);
+ return this;
+ }
+
+ @Override
+ public ProjectTaskImpl withProperties(ProjectTaskProperties properties) {
+ this.inner().withProperties(properties);
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectTaskInner.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectTaskInner.java
new file mode 100644
index 000000000000..ab099fa4f3db
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectTaskInner.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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.ProjectTaskProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * A task resource.
+ */
+public class ProjectTaskInner extends ProxyResource {
+ /**
+ * HTTP strong entity tag value. This is ignored if submitted.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * Custom task properties.
+ */
+ @JsonProperty(value = "properties")
+ private ProjectTaskProperties properties;
+
+ /**
+ * Get hTTP strong entity tag value. This is ignored if submitted.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set hTTP strong entity tag value. This is ignored if submitted.
+ *
+ * @param etag the etag value to set
+ * @return the ProjectTaskInner object itself.
+ */
+ public ProjectTaskInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get custom task properties.
+ *
+ * @return the properties value
+ */
+ public ProjectTaskProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set custom task properties.
+ *
+ * @param properties the properties value to set
+ * @return the ProjectTaskInner object itself.
+ */
+ public ProjectTaskInner withProperties(ProjectTaskProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectsImpl.java b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectsImpl.java
new file mode 100644
index 000000000000..b04cf2514dbc
--- /dev/null
+++ b/azuredatabasemigrationservice/resource-manager/v2017_11_15_preview/src/main/java/com/microsoft/azure/management/azuredatabasemigrationservice/v2017_11_15_preview/implementation/ProjectsImpl.java
@@ -0,0 +1,81 @@
+/**
+ * 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.azuredatabasemigrationservice.v2017_11_15_preview.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.Projects;
+import rx.Completable;
+import rx.Observable;
+import rx.functions.Func1;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.azuredatabasemigrationservice.v2017_11_15_preview.Project;
+
+class ProjectsImpl extends WrapperImpl implements Projects {
+ private final DataMigrationManager manager;
+
+ ProjectsImpl(DataMigrationManager manager) {
+ super(manager.inner().projects());
+ this.manager = manager;
+ }
+
+ public DataMigrationManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public ProjectImpl define(String name) {
+ return wrapModel(name);
+ }
+
+ private ProjectImpl wrapModel(ProjectInner inner) {
+ return new ProjectImpl(inner, manager());
+ }
+
+ private ProjectImpl wrapModel(String name) {
+ return new ProjectImpl(name, this.manager());
+ }
+
+ @Override
+ public Observable listAsync(final String groupName, final String serviceName) {
+ ProjectsInner client = this.inner();
+ return client.listAsync(groupName, serviceName)
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page