diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index 7b1540684f26..73f8d6912c79 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -219,6 +219,7 @@ com.azure.resourcemanager:azure-resourcemanager-kubernetesconfiguration;1.0.0-be
com.azure.resourcemanager:azure-resourcemanager-resourcegraph;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-changeanalysis;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-delegatednetwork;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-datamigration;1.0.0-beta.1;1.0.0-beta.1
# Unreleased dependencies: Copy the entry from above, prepend "unreleased_" and remove the current
# version. Unreleased dependencies are only valid for dependency versions.
diff --git a/pom.xml b/pom.xml
index 5c5f884ed387..b47f0aa77334 100644
--- a/pom.xml
+++ b/pom.xml
@@ -667,6 +667,7 @@
sdk/cosmossdk/costmanagementsdk/datadog
+ sdk/datamigrationsdk/delegatednetworksdk/deviceupdatesdk/digitaltwins
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/CHANGELOG.md b/sdk/datamigration/azure-resourcemanager-datamigration/CHANGELOG.md
new file mode 100644
index 000000000000..92e582fca20e
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2021-03-30)
+
+- Azure Resource Manager DataMigration client library for Java. This package contains Microsoft Azure SDK for DataMigration Management SDK. Data Migration Client. Package tag package-2018-07-15-preview. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/README.md b/sdk/datamigration/azure-resourcemanager-datamigration/README.md
new file mode 100644
index 000000000000..a5885cd82068
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/README.md
@@ -0,0 +1,99 @@
+# Azure Resource Manager DataMigration client library for Java
+
+Azure Resource Manager DataMigration client library for Java.
+
+This package contains Microsoft Azure SDK for DataMigration Management SDK. Data Migration Client. Package tag package-2018-07-15-preview. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
+
+## We'd love to hear your feedback
+
+We're always working on improving our products and the way we communicate with our users. So we'd love to learn what's working and how we can do better.
+
+If you haven't already, please take a few minutes to [complete this short survey][survey] we have put together.
+
+Thank you in advance for your collaboration. We really appreciate your time!
+
+## Documentation
+
+Various documentation is available to help you get started
+
+- [API reference documentation][docs]
+
+## Getting started
+
+### Prerequisites
+
+- [Java Development Kit (JDK)][jdk] with version 8 or above
+- [Azure Subscription][azure_subscription]
+
+### Adding the package to your product
+
+[//]: # ({x-version-update-start;com.azure.resourcemanager:azure-resourcemanager-datamigration;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-datamigration
+ 1.0.0-beta.1
+
+```
+[//]: # ({x-version-update-end})
+
+### Include the recommended packages
+
+Azure Management Libraries require a `TokenCredential` implementation for authentication and an `HttpClient` implementation for HTTP client.
+
+[Azure Identity][azure_identity] package and [Azure Core Netty HTTP][azure_core_http_netty] package provide the default implementation.
+
+### Authentication
+
+By default, Azure Active Directory token authentication depends on correct configure of following environment variables.
+
+- `AZURE_CLIENT_ID` for Azure client ID.
+- `AZURE_TENANT_ID` for Azure tenant ID.
+- `AZURE_CLIENT_SECRET` or `AZURE_CLIENT_CERTIFICATE_PATH` for client secret or client certificate.
+
+In addition, Azure subscription ID can be configured via environment variable `AZURE_SUBSCRIPTION_ID`.
+
+With above configuration, `azure` client can be authenticated by following code:
+
+```java
+AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
+TokenCredential credential = new DefaultAzureCredentialBuilder()
+ .authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
+ .build();
+DataMigrationManager manager = DataMigrationManager
+ .authenticate(credential, profile);
+```
+
+The sample code assumes global Azure. Please change `AzureEnvironment.AZURE` variable if otherwise.
+
+See [Authentication][authenticate] for more options.
+
+## Key concepts
+
+See [API design][design] for general introduction on design and key concepts on Azure Management Libraries.
+
+## Examples
+
+## Troubleshooting
+
+## Next steps
+
+## Contributing
+
+For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-java/blob/master/CONTRIBUTING.md).
+
+1. Fork it
+1. Create your feature branch (`git checkout -b my-new-feature`)
+1. Commit your changes (`git commit -am 'Add some feature'`)
+1. Push to the branch (`git push origin my-new-feature`)
+1. Create new Pull Request
+
+
+[survey]: https://microsoft.qualtrics.com/jfe/form/SV_ehN0lIk2FKEBkwd?Q_CHL=DOCS
+[docs]: https://azure.github.io/azure-sdk-for-java/
+[jdk]: https://docs.microsoft.com/java/azure/jdk/
+[azure_subscription]: https://azure.microsoft.com/free/
+[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/identity/azure-identity
+[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/core/azure-core-http-netty
+[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/AUTH.md
+[design]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/DESIGN.md
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/pom.xml b/sdk/datamigration/azure-resourcemanager-datamigration/pom.xml
new file mode 100644
index 000000000000..4640cefbbf23
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/pom.xml
@@ -0,0 +1,67 @@
+
+ 4.0.0
+
+ com.azure
+ azure-client-sdk-parent
+ 1.7.0
+ ../../parents/azure-client-sdk-parent
+
+
+ com.azure.resourcemanager
+ azure-resourcemanager-datamigration
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for DataMigration Management
+ This package contains Microsoft Azure SDK for DataMigration Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. Data Migration Client. Package tag package-2018-07-15-preview.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+
+ https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+
+ microsoft
+ Microsoft
+
+
+
+ UTF-8
+
+
+
+
+ com.azure
+ azure-core
+ 1.14.1
+
+
+ com.azure
+ azure-core-management
+ 1.2.0
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.5
+
+ true
+
+
+
+
+
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/DataMigrationManager.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/DataMigrationManager.java
new file mode 100644
index 000000000000..8546ff12ec5e
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/DataMigrationManager.java
@@ -0,0 +1,298 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration;
+
+import com.azure.core.credential.TokenCredential;
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpPipelineBuilder;
+import com.azure.core.http.policy.AddDatePolicy;
+import com.azure.core.http.policy.BearerTokenAuthenticationPolicy;
+import com.azure.core.http.policy.HttpLogOptions;
+import com.azure.core.http.policy.HttpLoggingPolicy;
+import com.azure.core.http.policy.HttpPipelinePolicy;
+import com.azure.core.http.policy.HttpPolicyProviders;
+import com.azure.core.http.policy.RequestIdPolicy;
+import com.azure.core.http.policy.RetryPolicy;
+import com.azure.core.http.policy.UserAgentPolicy;
+import com.azure.core.management.profile.AzureProfile;
+import com.azure.core.util.Configuration;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.datamigration.fluent.DataMigrationManagementClient;
+import com.azure.resourcemanager.datamigration.implementation.DataMigrationManagementClientBuilder;
+import com.azure.resourcemanager.datamigration.implementation.FilesImpl;
+import com.azure.resourcemanager.datamigration.implementation.OperationsImpl;
+import com.azure.resourcemanager.datamigration.implementation.ProjectsImpl;
+import com.azure.resourcemanager.datamigration.implementation.ResourceSkusImpl;
+import com.azure.resourcemanager.datamigration.implementation.ServiceTasksImpl;
+import com.azure.resourcemanager.datamigration.implementation.ServicesImpl;
+import com.azure.resourcemanager.datamigration.implementation.TasksImpl;
+import com.azure.resourcemanager.datamigration.implementation.UsagesImpl;
+import com.azure.resourcemanager.datamigration.models.Files;
+import com.azure.resourcemanager.datamigration.models.Operations;
+import com.azure.resourcemanager.datamigration.models.Projects;
+import com.azure.resourcemanager.datamigration.models.ResourceSkus;
+import com.azure.resourcemanager.datamigration.models.ServiceTasks;
+import com.azure.resourcemanager.datamigration.models.Services;
+import com.azure.resourcemanager.datamigration.models.Tasks;
+import com.azure.resourcemanager.datamigration.models.Usages;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/** Entry point to DataMigrationManager. Data Migration Client. */
+public final class DataMigrationManager {
+ private ResourceSkus resourceSkus;
+
+ private Services services;
+
+ private Tasks tasks;
+
+ private ServiceTasks serviceTasks;
+
+ private Projects projects;
+
+ private Usages usages;
+
+ private Operations operations;
+
+ private Files files;
+
+ private final DataMigrationManagementClient clientObject;
+
+ private DataMigrationManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new DataMigrationManagementClientBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .subscriptionId(profile.getSubscriptionId())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of DataMigration service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the DataMigration service API instance.
+ */
+ public static DataMigrationManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ return configure().authenticate(credential, profile);
+ }
+
+ /**
+ * Gets a Configurable instance that can be used to create DataMigrationManager with optional configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new DataMigrationManager.Configurable();
+ }
+
+ /** The Configurable allowing configurations to be set. */
+ public static final class Configurable {
+ private final ClientLogger logger = new ClientLogger(Configurable.class);
+
+ private HttpClient httpClient;
+ private HttpLogOptions httpLogOptions;
+ private final List policies = new ArrayList<>();
+ private RetryPolicy retryPolicy;
+ private Duration defaultPollInterval;
+
+ private Configurable() {
+ }
+
+ /**
+ * Sets the http client.
+ *
+ * @param httpClient the HTTP client.
+ * @return the configurable object itself.
+ */
+ public Configurable withHttpClient(HttpClient httpClient) {
+ this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the logging options to the HTTP pipeline.
+ *
+ * @param httpLogOptions the HTTP log options.
+ * @return the configurable object itself.
+ */
+ public Configurable withLogOptions(HttpLogOptions httpLogOptions) {
+ this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Adds the pipeline policy to the HTTP pipeline.
+ *
+ * @param policy the HTTP pipeline policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withPolicy(HttpPipelinePolicy policy) {
+ this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Sets the retry policy to the HTTP pipeline.
+ *
+ * @param retryPolicy the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryPolicy(RetryPolicy retryPolicy) {
+ this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the default poll interval, used when service does not provide "Retry-After" header.
+ *
+ * @param defaultPollInterval the default poll interval.
+ * @return the configurable object itself.
+ */
+ public Configurable withDefaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval = Objects.requireNonNull(defaultPollInterval, "'retryPolicy' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw logger.logExceptionAsError(new IllegalArgumentException("'httpPipeline' cannot be negative"));
+ }
+ return this;
+ }
+
+ /**
+ * Creates an instance of DataMigration service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the DataMigration service API instance.
+ */
+ public DataMigrationManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+
+ StringBuilder userAgentBuilder = new StringBuilder();
+ userAgentBuilder
+ .append("azsdk-java")
+ .append("-")
+ .append("com.azure.resourcemanager.datamigration")
+ .append("/")
+ .append("1.0.0-beta.1");
+ if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
+ userAgentBuilder
+ .append(" (")
+ .append(Configuration.getGlobalConfiguration().get("java.version"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.name"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.version"))
+ .append("; auto-generated)");
+ } else {
+ userAgentBuilder.append(" (auto-generated)");
+ }
+
+ if (retryPolicy == null) {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new RequestIdPolicy());
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies
+ .add(
+ new BearerTokenAuthenticationPolicy(
+ credential, profile.getEnvironment().getManagementEndpoint() + "/.default"));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline =
+ new HttpPipelineBuilder()
+ .httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new DataMigrationManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /** @return Resource collection API of ResourceSkus. */
+ public ResourceSkus resourceSkus() {
+ if (this.resourceSkus == null) {
+ this.resourceSkus = new ResourceSkusImpl(clientObject.getResourceSkus(), this);
+ }
+ return resourceSkus;
+ }
+
+ /** @return Resource collection API of Services. */
+ public Services services() {
+ if (this.services == null) {
+ this.services = new ServicesImpl(clientObject.getServices(), this);
+ }
+ return services;
+ }
+
+ /** @return Resource collection API of Tasks. */
+ public Tasks tasks() {
+ if (this.tasks == null) {
+ this.tasks = new TasksImpl(clientObject.getTasks(), this);
+ }
+ return tasks;
+ }
+
+ /** @return Resource collection API of ServiceTasks. */
+ public ServiceTasks serviceTasks() {
+ if (this.serviceTasks == null) {
+ this.serviceTasks = new ServiceTasksImpl(clientObject.getServiceTasks(), this);
+ }
+ return serviceTasks;
+ }
+
+ /** @return Resource collection API of Projects. */
+ public Projects projects() {
+ if (this.projects == null) {
+ this.projects = new ProjectsImpl(clientObject.getProjects(), this);
+ }
+ return projects;
+ }
+
+ /** @return Resource collection API of Usages. */
+ public Usages usages() {
+ if (this.usages == null) {
+ this.usages = new UsagesImpl(clientObject.getUsages(), this);
+ }
+ return usages;
+ }
+
+ /** @return Resource collection API of Operations. */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /** @return Resource collection API of Files. */
+ public Files files() {
+ if (this.files == null) {
+ this.files = new FilesImpl(clientObject.getFiles(), this);
+ }
+ return files;
+ }
+
+ /**
+ * @return Wrapped service client DataMigrationManagementClient providing direct access to the underlying
+ * auto-generated API implementation, based on Azure REST API.
+ */
+ public DataMigrationManagementClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/DataMigrationManagementClient.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/DataMigrationManagementClient.java
new file mode 100644
index 000000000000..94fb3a37b8ea
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/DataMigrationManagementClient.java
@@ -0,0 +1,102 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for DataMigrationManagementClient class. */
+public interface DataMigrationManagementClient {
+ /**
+ * Gets Identifier of the subscription.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ String getApiVersion();
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ HttpPipeline getHttpPipeline();
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ Duration getDefaultPollInterval();
+
+ /**
+ * Gets the ResourceSkusClient object to access its operations.
+ *
+ * @return the ResourceSkusClient object.
+ */
+ ResourceSkusClient getResourceSkus();
+
+ /**
+ * Gets the ServicesClient object to access its operations.
+ *
+ * @return the ServicesClient object.
+ */
+ ServicesClient getServices();
+
+ /**
+ * Gets the TasksClient object to access its operations.
+ *
+ * @return the TasksClient object.
+ */
+ TasksClient getTasks();
+
+ /**
+ * Gets the ServiceTasksClient object to access its operations.
+ *
+ * @return the ServiceTasksClient object.
+ */
+ ServiceTasksClient getServiceTasks();
+
+ /**
+ * Gets the ProjectsClient object to access its operations.
+ *
+ * @return the ProjectsClient object.
+ */
+ ProjectsClient getProjects();
+
+ /**
+ * Gets the UsagesClient object to access its operations.
+ *
+ * @return the UsagesClient object.
+ */
+ UsagesClient getUsages();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the FilesClient object to access its operations.
+ *
+ * @return the FilesClient object.
+ */
+ FilesClient getFiles();
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/FilesClient.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/FilesClient.java
new file mode 100644
index 000000000000..d278d4bcdba5
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/FilesClient.java
@@ -0,0 +1,256 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.datamigration.fluent.models.FileStorageInfoInner;
+import com.azure.resourcemanager.datamigration.fluent.models.ProjectFileInner;
+
+/** An instance of this class provides access to all the operations defined in FilesClient. */
+public interface FilesClient {
+ /**
+ * The project resource is a nested resource representing a stored migration project. This method returns a list of
+ * files owned by a project resource.
+ *
+ * @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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of files.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String groupName, String serviceName, String projectName);
+
+ /**
+ * The project resource is a nested resource representing a stored migration project. This method returns a list of
+ * files owned by a project resource.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of files.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String groupName, String serviceName, String projectName, Context context);
+
+ /**
+ * The files resource is a nested, proxy-only resource representing a file stored under the project resource. This
+ * method retrieves information about a file.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param fileName Name of the File.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a file resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectFileInner get(String groupName, String serviceName, String projectName, String fileName);
+
+ /**
+ * The files resource is a nested, proxy-only resource representing a file stored under the project resource. This
+ * method retrieves information about a file.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param fileName Name of the File.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a file resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String groupName, String serviceName, String projectName, String fileName, Context context);
+
+ /**
+ * The PUT method creates a new file or updates an existing one.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param fileName Name of the File.
+ * @param parameters Information about the file.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a file resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectFileInner createOrUpdate(
+ String groupName, String serviceName, String projectName, String fileName, ProjectFileInner parameters);
+
+ /**
+ * The PUT method creates a new file or updates an existing one.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param fileName Name of the File.
+ * @param parameters Information about the file.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a file resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String groupName,
+ String serviceName,
+ String projectName,
+ String fileName,
+ ProjectFileInner parameters,
+ Context context);
+
+ /**
+ * This method deletes a file.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param fileName Name of the File.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String groupName, String serviceName, String projectName, String fileName);
+
+ /**
+ * This method deletes a file.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param fileName Name of the File.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String groupName, String serviceName, String projectName, String fileName, Context context);
+
+ /**
+ * This method updates an existing file.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param fileName Name of the File.
+ * @param parameters Information about the file.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a file resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectFileInner update(
+ String groupName, String serviceName, String projectName, String fileName, ProjectFileInner parameters);
+
+ /**
+ * This method updates an existing file.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param fileName Name of the File.
+ * @param parameters Information about the file.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a file resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String groupName,
+ String serviceName,
+ String projectName,
+ String fileName,
+ ProjectFileInner parameters,
+ Context context);
+
+ /**
+ * This method is used for requesting storage information using which contents of the file can be downloaded.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param fileName Name of the File.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return file storage information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FileStorageInfoInner read(String groupName, String serviceName, String projectName, String fileName);
+
+ /**
+ * This method is used for requesting storage information using which contents of the file can be downloaded.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param fileName Name of the File.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return file storage information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response readWithResponse(
+ String groupName, String serviceName, String projectName, String fileName, Context context);
+
+ /**
+ * This method is used for requesting information for reading and writing the file content.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param fileName Name of the File.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return file storage information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FileStorageInfoInner readWrite(String groupName, String serviceName, String projectName, String fileName);
+
+ /**
+ * This method is used for requesting information for reading and writing the file content.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param fileName Name of the File.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return file storage information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response readWriteWithResponse(
+ String groupName, String serviceName, String projectName, String fileName, Context context);
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/OperationsClient.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/OperationsClient.java
new file mode 100644
index 000000000000..e1b3352421e9
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/OperationsClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.datamigration.fluent.models.ServiceOperationInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Lists all available actions exposed by the Database Migration Service resource provider.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of action (operation) objects.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all available actions exposed by the Database Migration Service resource provider.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of action (operation) objects.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/ProjectsClient.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/ProjectsClient.java
new file mode 100644
index 000000000000..270588b47331
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/ProjectsClient.java
@@ -0,0 +1,175 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.datamigration.fluent.models.ProjectInner;
+
+/** An instance of this class provides access to all the operations defined in ProjectsClient. */
+public interface ProjectsClient {
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of project resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String groupName, String serviceName);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of project resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String groupName, String serviceName, Context context);
+
+ /**
+ * The project resource is a nested resource representing a stored migration project. The PUT method creates a new
+ * project or updates an existing one.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param parameters Information about the project.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a project resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectInner createOrUpdate(String groupName, String serviceName, String projectName, ProjectInner parameters);
+
+ /**
+ * The project resource is a nested resource representing a stored migration project. The PUT method creates a new
+ * project or updates an existing one.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param parameters Information about the project.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a project resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String groupName, String serviceName, String projectName, ProjectInner parameters, Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a project resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectInner get(String groupName, String serviceName, String projectName);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a project resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String groupName, String serviceName, String projectName, Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String groupName, String serviceName, String projectName);
+
+ /**
+ * 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.
+ * @param deleteRunningTasks Delete the resource even if it contains running tasks.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String groupName, String serviceName, String projectName, Boolean deleteRunningTasks, Context context);
+
+ /**
+ * The project resource is a nested resource representing a stored migration project. The PATCH method updates an
+ * existing project.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param parameters Information about the project.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a project resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectInner update(String groupName, String serviceName, String projectName, ProjectInner parameters);
+
+ /**
+ * The project resource is a nested resource representing a stored migration project. The PATCH method updates an
+ * existing project.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param projectName Name of the project.
+ * @param parameters Information about the project.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a project resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String groupName, String serviceName, String projectName, ProjectInner parameters, Context context);
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/ResourceSkusClient.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/ResourceSkusClient.java
new file mode 100644
index 000000000000..9f3b034006b6
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/ResourceSkusClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.datamigration.fluent.models.ResourceSkuInner;
+
+/** An instance of this class provides access to all the operations defined in ResourceSkusClient. */
+public interface ResourceSkusClient {
+ /**
+ * The skus action returns the list of SKUs that DMS supports.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the DMS List SKUs operation response.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * The skus action returns the list of SKUs that DMS supports.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the DMS List SKUs operation response.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/ServiceTasksClient.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/ServiceTasksClient.java
new file mode 100644
index 000000000000..1a7707fd2929
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/ServiceTasksClient.java
@@ -0,0 +1,216 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.datamigration.fluent.models.ProjectTaskInner;
+
+/** An instance of this class provides access to all the operations defined in ServiceTasksClient. */
+public interface ServiceTasksClient {
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. This method
+ * returns a list of service level 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of tasks.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String groupName, String serviceName);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. This method
+ * returns a list of service level 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 taskType Filter tasks by task type.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of tasks.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String groupName, String serviceName, String taskType, Context context);
+
+ /**
+ * The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The
+ * PUT method creates a new service task or updates an existing one, although since service tasks have no mutable
+ * custom properties, there is little reason to update an existing one.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param taskName Name of the Task.
+ * @param parameters Information about the task.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectTaskInner createOrUpdate(String groupName, String serviceName, String taskName, ProjectTaskInner parameters);
+
+ /**
+ * The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The
+ * PUT method creates a new service task or updates an existing one, although since service tasks have no mutable
+ * custom properties, there is little reason to update an existing one.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param taskName Name of the Task.
+ * @param parameters Information about the task.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String groupName, String serviceName, String taskName, ProjectTaskInner parameters, Context context);
+
+ /**
+ * The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The
+ * GET method retrieves information about a service task.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param taskName Name of the Task.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectTaskInner get(String groupName, String serviceName, String taskName);
+
+ /**
+ * The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The
+ * GET method retrieves information about a service task.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param taskName Name of the Task.
+ * @param expand Expand the response.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String groupName, String serviceName, String taskName, String expand, Context context);
+
+ /**
+ * The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The
+ * DELETE method deletes a service task, canceling it first if it's running.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param taskName Name of the Task.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String groupName, String serviceName, String taskName);
+
+ /**
+ * The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The
+ * DELETE method deletes a service task, canceling it first if it's running.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param taskName Name of the Task.
+ * @param deleteRunningTasks Delete the resource even if it contains running tasks.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String groupName, String serviceName, String taskName, Boolean deleteRunningTasks, Context context);
+
+ /**
+ * The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The
+ * PATCH method updates an existing service task, but since service tasks have no mutable custom properties, there
+ * is little reason to do so.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param taskName Name of the Task.
+ * @param parameters Information about the task.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectTaskInner update(String groupName, String serviceName, String taskName, ProjectTaskInner parameters);
+
+ /**
+ * The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The
+ * PATCH method updates an existing service task, but since service tasks have no mutable custom properties, there
+ * is little reason to do so.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param taskName Name of the Task.
+ * @param parameters Information about the task.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String groupName, String serviceName, String taskName, ProjectTaskInner parameters, Context context);
+
+ /**
+ * The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. This
+ * method cancels a service task if it's currently queued or running.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param taskName Name of the Task.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectTaskInner cancel(String groupName, String serviceName, String taskName);
+
+ /**
+ * The service tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. This
+ * method cancels a service task if it's currently queued or running.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param taskName Name of the Task.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response cancelWithResponse(
+ String groupName, String serviceName, String taskName, Context context);
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/ServicesClient.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/ServicesClient.java
new file mode 100644
index 000000000000..a9e15d273c59
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/ServicesClient.java
@@ -0,0 +1,565 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.datamigration.fluent.models.AvailableServiceSkuInner;
+import com.azure.resourcemanager.datamigration.fluent.models.DataMigrationServiceInner;
+import com.azure.resourcemanager.datamigration.fluent.models.DataMigrationServiceStatusResponseInner;
+import com.azure.resourcemanager.datamigration.fluent.models.NameAvailabilityResponseInner;
+import com.azure.resourcemanager.datamigration.models.NameAvailabilityRequest;
+
+/** An instance of this class provides access to all the operations defined in ServicesClient. */
+public interface ServicesClient {
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The PUT method
+ * creates a new service or updates an existing one. When a service is updated, existing child resources (i.e.
+ * tasks) are unaffected. Services currently support a single kind, "vm", which refers to a VM-based service,
+ * although other kinds may be added in the future. This method can change the kind, SKU, and network of the
+ * service, but if tasks are currently running (i.e. the service is busy), this will fail with 400 Bad Request
+ * ("ServiceIsBusy"). The provider will reply when successful with 200 OK or 201 Created. Long-running operations
+ * use the provisioningState property.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param parameters Information about the service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Database Migration Service resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, DataMigrationServiceInner> beginCreateOrUpdate(
+ String groupName, String serviceName, DataMigrationServiceInner parameters);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The PUT method
+ * creates a new service or updates an existing one. When a service is updated, existing child resources (i.e.
+ * tasks) are unaffected. Services currently support a single kind, "vm", which refers to a VM-based service,
+ * although other kinds may be added in the future. This method can change the kind, SKU, and network of the
+ * service, but if tasks are currently running (i.e. the service is busy), this will fail with 400 Bad Request
+ * ("ServiceIsBusy"). The provider will reply when successful with 200 OK or 201 Created. Long-running operations
+ * use the provisioningState property.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param parameters Information about the service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Database Migration Service resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, DataMigrationServiceInner> beginCreateOrUpdate(
+ String groupName, String serviceName, DataMigrationServiceInner parameters, Context context);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The PUT method
+ * creates a new service or updates an existing one. When a service is updated, existing child resources (i.e.
+ * tasks) are unaffected. Services currently support a single kind, "vm", which refers to a VM-based service,
+ * although other kinds may be added in the future. This method can change the kind, SKU, and network of the
+ * service, but if tasks are currently running (i.e. the service is busy), this will fail with 400 Bad Request
+ * ("ServiceIsBusy"). The provider will reply when successful with 200 OK or 201 Created. Long-running operations
+ * use the provisioningState property.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param parameters Information about the service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Database Migration Service resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DataMigrationServiceInner createOrUpdate(
+ String groupName, String serviceName, DataMigrationServiceInner parameters);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The PUT method
+ * creates a new service or updates an existing one. When a service is updated, existing child resources (i.e.
+ * tasks) are unaffected. Services currently support a single kind, "vm", which refers to a VM-based service,
+ * although other kinds may be added in the future. This method can change the kind, SKU, and network of the
+ * service, but if tasks are currently running (i.e. the service is busy), this will fail with 400 Bad Request
+ * ("ServiceIsBusy"). The provider will reply when successful with 200 OK or 201 Created. Long-running operations
+ * use the provisioningState property.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param parameters Information about the service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Database Migration Service resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DataMigrationServiceInner createOrUpdate(
+ String groupName, String serviceName, DataMigrationServiceInner parameters, Context context);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The GET method
+ * retrieves information about a service instance.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Database Migration Service resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DataMigrationServiceInner getByResourceGroup(String groupName, String serviceName);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The GET method
+ * retrieves information about a service instance.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Database Migration Service resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String groupName, String serviceName, Context context);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The DELETE method
+ * deletes a service. Any running tasks will be canceled.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param deleteRunningTasks Delete the resource even if it contains running tasks.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String groupName, String serviceName, Boolean deleteRunningTasks);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The DELETE method
+ * deletes a service. Any running tasks will be canceled.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param deleteRunningTasks Delete the resource even if it contains running tasks.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String groupName, String serviceName, Boolean deleteRunningTasks, Context context);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The DELETE method
+ * deletes a service. Any running tasks will be canceled.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param deleteRunningTasks Delete the resource even if it contains running tasks.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String groupName, String serviceName, Boolean deleteRunningTasks);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The DELETE method
+ * deletes a service. Any running tasks will be canceled.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String groupName, String serviceName);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The DELETE method
+ * deletes a service. Any running tasks will be canceled.
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param deleteRunningTasks Delete the resource even if it contains running tasks.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String groupName, String serviceName, Boolean deleteRunningTasks, Context context);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The PATCH method
+ * updates an existing service. This method can change the kind, SKU, and network of the service, but if tasks are
+ * currently running (i.e. the service is busy), this will fail with 400 Bad Request ("ServiceIsBusy").
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param parameters Information about the service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Database Migration Service resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, DataMigrationServiceInner> beginUpdate(
+ String groupName, String serviceName, DataMigrationServiceInner parameters);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The PATCH method
+ * updates an existing service. This method can change the kind, SKU, and network of the service, but if tasks are
+ * currently running (i.e. the service is busy), this will fail with 400 Bad Request ("ServiceIsBusy").
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param parameters Information about the service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Database Migration Service resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, DataMigrationServiceInner> beginUpdate(
+ String groupName, String serviceName, DataMigrationServiceInner parameters, Context context);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The PATCH method
+ * updates an existing service. This method can change the kind, SKU, and network of the service, but if tasks are
+ * currently running (i.e. the service is busy), this will fail with 400 Bad Request ("ServiceIsBusy").
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param parameters Information about the service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Database Migration Service resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DataMigrationServiceInner update(String groupName, String serviceName, DataMigrationServiceInner parameters);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. The PATCH method
+ * updates an existing service. This method can change the kind, SKU, and network of the service, but if tasks are
+ * currently running (i.e. the service is busy), this will fail with 400 Bad Request ("ServiceIsBusy").
+ *
+ * @param groupName Name of the resource group.
+ * @param serviceName Name of the service.
+ * @param parameters Information about the service.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a Database Migration Service resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DataMigrationServiceInner update(
+ String groupName, String serviceName, DataMigrationServiceInner parameters, Context context);
+
+ /**
+ * The services resource is the top-level resource that represents the Database 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return service health status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DataMigrationServiceStatusResponseInner checkStatus(String groupName, String serviceName);
+
+ /**
+ * The services resource is the top-level resource that represents the Database 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return service health status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkStatusWithResponse(
+ String groupName, String serviceName, Context context);
+
+ /**
+ * The services resource is the top-level resource that represents the Database 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginStart(String groupName, String serviceName);
+
+ /**
+ * The services resource is the top-level resource that represents the Database 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginStart(String groupName, String serviceName, Context context);
+
+ /**
+ * The services resource is the top-level resource that represents the Database 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void start(String groupName, String serviceName);
+
+ /**
+ * The services resource is the top-level resource that represents the Database 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void start(String groupName, String serviceName, Context context);
+
+ /**
+ * The services resource is the top-level resource that represents the Database 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginStop(String groupName, String serviceName);
+
+ /**
+ * The services resource is the top-level resource that represents the Database 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginStop(String groupName, String serviceName, Context context);
+
+ /**
+ * The services resource is the top-level resource that represents the Database 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String groupName, String serviceName);
+
+ /**
+ * The services resource is the top-level resource that represents the Database 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void stop(String groupName, String serviceName, Context context);
+
+ /**
+ * The services resource is the top-level resource that represents the Database 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of available SKUs.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listSkus(String groupName, String serviceName);
+
+ /**
+ * The services resource is the top-level resource that represents the Database 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of available SKUs.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listSkus(String groupName, String serviceName, Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return indicates whether a proposed resource name is available.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NameAvailabilityResponseInner checkChildrenNameAvailability(
+ String groupName, String serviceName, NameAvailabilityRequest parameters);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return indicates whether a proposed resource name is available.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkChildrenNameAvailabilityWithResponse(
+ String groupName, String serviceName, NameAvailabilityRequest parameters, Context context);
+
+ /**
+ * The Services resource is the top-level resource that represents the Database Migration Service. This method
+ * returns a list of service resources in a resource group.
+ *
+ * @param groupName Name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of service objects.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String groupName);
+
+ /**
+ * The Services resource is the top-level resource that represents the Database Migration Service. This method
+ * returns a list of service resources in a resource group.
+ *
+ * @param groupName Name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of service objects.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String groupName, Context context);
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. This method
+ * returns a list of service resources in a subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of service objects.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * The services resource is the top-level resource that represents the Database Migration Service. This method
+ * returns a list of service resources in a subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of service objects.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return indicates whether a proposed resource name is available.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NameAvailabilityResponseInner checkNameAvailability(String location, NameAvailabilityRequest parameters);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return indicates whether a proposed resource name is available.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkNameAvailabilityWithResponse(
+ String location, NameAvailabilityRequest parameters, Context context);
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/TasksClient.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/TasksClient.java
new file mode 100644
index 000000000000..3ca5c1e6e19f
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/TasksClient.java
@@ -0,0 +1,289 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.datamigration.fluent.models.CommandPropertiesInner;
+import com.azure.resourcemanager.datamigration.fluent.models.ProjectTaskInner;
+
+/** An instance of this class provides access to all the operations defined in TasksClient. */
+public interface TasksClient {
+ /**
+ * The services resource is the top-level resource that represents the Database 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of tasks.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String groupName, String serviceName, String projectName);
+
+ /**
+ * The services resource is the top-level resource that represents the Database 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.
+ * @param taskType Filter tasks by task type.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of tasks.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String groupName, String serviceName, String projectName, String taskType, Context context);
+
+ /**
+ * The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The PUT method
+ * creates a new task or updates an existing one, although since tasks have no mutable custom properties, there is
+ * little reason to update an existing one.
+ *
+ * @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.
+ * @param parameters Information about the task.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectTaskInner createOrUpdate(
+ String groupName, String serviceName, String projectName, String taskName, ProjectTaskInner parameters);
+
+ /**
+ * The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The PUT method
+ * creates a new task or updates an existing one, although since tasks have no mutable custom properties, there is
+ * little reason to update an existing one.
+ *
+ * @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.
+ * @param parameters Information about the task.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String groupName,
+ String serviceName,
+ String projectName,
+ String taskName,
+ ProjectTaskInner parameters,
+ Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectTaskInner get(String groupName, String serviceName, String projectName, String taskName);
+
+ /**
+ * 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.
+ * @param expand Expand the response.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String groupName, String serviceName, String projectName, String taskName, String expand, Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String groupName, String serviceName, String projectName, String taskName);
+
+ /**
+ * 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.
+ * @param deleteRunningTasks Delete the resource even if it contains running tasks.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(
+ String groupName,
+ String serviceName,
+ String projectName,
+ String taskName,
+ Boolean deleteRunningTasks,
+ Context context);
+
+ /**
+ * The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The PATCH
+ * method updates an existing task, but since tasks have no mutable custom properties, there is little reason to do
+ * so.
+ *
+ * @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.
+ * @param parameters Information about the task.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectTaskInner update(
+ String groupName, String serviceName, String projectName, String taskName, ProjectTaskInner parameters);
+
+ /**
+ * The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. The PATCH
+ * method updates an existing task, but since tasks have no mutable custom properties, there is little reason to do
+ * so.
+ *
+ * @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.
+ * @param parameters Information about the task.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String groupName,
+ String serviceName,
+ String projectName,
+ String taskName,
+ ProjectTaskInner parameters,
+ Context context);
+
+ /**
+ * 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.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProjectTaskInner cancel(String groupName, String serviceName, String projectName, String taskName);
+
+ /**
+ * 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.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a task resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response cancelWithResponse(
+ String groupName, String serviceName, String projectName, String taskName, Context context);
+
+ /**
+ * The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. This method
+ * executes a command on a running 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.
+ * @param parameters Command to execute.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for all types of DMS command properties.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CommandPropertiesInner command(
+ String groupName, String serviceName, String projectName, String taskName, CommandPropertiesInner parameters);
+
+ /**
+ * The tasks resource is a nested, proxy-only resource representing work performed by a DMS instance. This method
+ * executes a command on a running 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.
+ * @param parameters Command to execute.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for all types of DMS command properties.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response commandWithResponse(
+ String groupName,
+ String serviceName,
+ String projectName,
+ String taskName,
+ CommandPropertiesInner parameters,
+ Context context);
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/UsagesClient.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/UsagesClient.java
new file mode 100644
index 000000000000..4e8adef0cd7e
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/UsagesClient.java
@@ -0,0 +1,39 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.datamigration.fluent.models.QuotaInner;
+
+/** An instance of this class provides access to all the operations defined in UsagesClient. */
+public interface UsagesClient {
+ /**
+ * This method returns region-specific quotas and resource usage information for the Database Migration Service.
+ *
+ * @param location The Azure region of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of quota objects.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String location);
+
+ /**
+ * This method returns region-specific quotas and resource usage information for the Database Migration Service.
+ *
+ * @param location The Azure region of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return oData page of quota objects.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String location, Context context);
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/AvailableServiceSkuInner.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/AvailableServiceSkuInner.java
new file mode 100644
index 000000000000..d7fcbe65654d
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/AvailableServiceSkuInner.java
@@ -0,0 +1,110 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.datamigration.models.AvailableServiceSkuAutoGenerated;
+import com.azure.resourcemanager.datamigration.models.AvailableServiceSkuCapacity;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Describes the available service SKU. */
+@Fluent
+public final class AvailableServiceSkuInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AvailableServiceSkuInner.class);
+
+ /*
+ * The resource type, including the provider namespace
+ */
+ @JsonProperty(value = "resourceType")
+ private String resourceType;
+
+ /*
+ * SKU name, tier, etc.
+ */
+ @JsonProperty(value = "sku")
+ private AvailableServiceSkuAutoGenerated sku;
+
+ /*
+ * A description of the scaling capacities of the SKU
+ */
+ @JsonProperty(value = "capacity")
+ private AvailableServiceSkuCapacity capacity;
+
+ /**
+ * Get the resourceType property: The resource type, including the provider namespace.
+ *
+ * @return the resourceType value.
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Set the resourceType property: 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 the sku property: SKU name, tier, etc.
+ *
+ * @return the sku value.
+ */
+ public AvailableServiceSkuAutoGenerated sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the sku property: SKU name, tier, etc.
+ *
+ * @param sku the sku value to set.
+ * @return the AvailableServiceSkuInner object itself.
+ */
+ public AvailableServiceSkuInner withSku(AvailableServiceSkuAutoGenerated sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get the capacity property: A description of the scaling capacities of the SKU.
+ *
+ * @return the capacity value.
+ */
+ public AvailableServiceSkuCapacity capacity() {
+ return this.capacity;
+ }
+
+ /**
+ * Set the capacity property: 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (sku() != null) {
+ sku().validate();
+ }
+ if (capacity() != null) {
+ capacity().validate();
+ }
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/CommandPropertiesInner.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/CommandPropertiesInner.java
new file mode 100644
index 000000000000..75d1f7e49b93
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/CommandPropertiesInner.java
@@ -0,0 +1,83 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.management.exception.ManagementError;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.datamigration.models.CommandState;
+import com.azure.resourcemanager.datamigration.models.MigrateMISyncCompleteCommandProperties;
+import com.azure.resourcemanager.datamigration.models.MigrateSyncCompleteCommandProperties;
+import com.azure.resourcemanager.datamigration.models.MongoDbCancelCommand;
+import com.azure.resourcemanager.datamigration.models.MongoDbFinishCommand;
+import com.azure.resourcemanager.datamigration.models.MongoDbRestartCommand;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import java.util.List;
+
+/**
+ * Base class for all types of DMS command properties. If command is not supported by current client, this object is
+ * returned.
+ */
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.NAME,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "commandType",
+ defaultImpl = CommandPropertiesInner.class)
+@JsonTypeName("CommandProperties")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "Migrate.Sync.Complete.Database", value = MigrateSyncCompleteCommandProperties.class),
+ @JsonSubTypes.Type(
+ name = "Migrate.SqlServer.AzureDbSqlMi.Complete",
+ value = MigrateMISyncCompleteCommandProperties.class),
+ @JsonSubTypes.Type(name = "cancel", value = MongoDbCancelCommand.class),
+ @JsonSubTypes.Type(name = "finish", value = MongoDbFinishCommand.class),
+ @JsonSubTypes.Type(name = "restart", value = MongoDbRestartCommand.class)
+})
+@Immutable
+public class CommandPropertiesInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(CommandPropertiesInner.class);
+
+ /*
+ * Array of errors. This is ignored if submitted.
+ */
+ @JsonProperty(value = "errors", access = JsonProperty.Access.WRITE_ONLY)
+ private List errors;
+
+ /*
+ * The state of the command. This is ignored if submitted.
+ */
+ @JsonProperty(value = "state", access = JsonProperty.Access.WRITE_ONLY)
+ private CommandState state;
+
+ /**
+ * Get the errors property: Array of errors. This is ignored if submitted.
+ *
+ * @return the errors value.
+ */
+ public List errors() {
+ return this.errors;
+ }
+
+ /**
+ * Get the state property: The state of the command. This is ignored if submitted.
+ *
+ * @return the state value.
+ */
+ public CommandState state() {
+ return this.state;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/DataMigrationServiceInner.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/DataMigrationServiceInner.java
new file mode 100644
index 000000000000..b3d673d5ea32
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/DataMigrationServiceInner.java
@@ -0,0 +1,223 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.Resource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.datamigration.models.ServiceProvisioningState;
+import com.azure.resourcemanager.datamigration.models.ServiceSku;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** A Database Migration Service resource. */
+@JsonFlatten
+@Fluent
+public class DataMigrationServiceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DataMigrationServiceInner.class);
+
+ /*
+ * 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;
+
+ /*
+ * Service SKU
+ */
+ @JsonProperty(value = "sku")
+ private ServiceSku sku;
+
+ /*
+ * The resource's provisioning state
+ */
+ @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")
+ private String virtualSubnetId;
+
+ /*
+ * The ID of the Microsoft.Network/networkInterfaces resource which the
+ * service have
+ */
+ @JsonProperty(value = "properties.virtualNicId")
+ private String virtualNicId;
+
+ /**
+ * Get the etag property: HTTP strong entity tag value. Ignored if submitted.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: 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 kind property: The resource kind. Only 'vm' (the default) is supported.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the kind property: 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 sku property: Service SKU.
+ *
+ * @return the sku value.
+ */
+ public ServiceSku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the sku property: Service SKU.
+ *
+ * @param sku the sku value to set.
+ * @return the DataMigrationServiceInner object itself.
+ */
+ public DataMigrationServiceInner withSku(ServiceSku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The resource's provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public ServiceProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the publicKey property: 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 publicKey property: 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 virtualSubnetId property: 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 virtualSubnetId property: 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 the virtualNicId property: The ID of the Microsoft.Network/networkInterfaces resource which the service have.
+ *
+ * @return the virtualNicId value.
+ */
+ public String virtualNicId() {
+ return this.virtualNicId;
+ }
+
+ /**
+ * Set the virtualNicId property: The ID of the Microsoft.Network/networkInterfaces resource which the service have.
+ *
+ * @param virtualNicId the virtualNicId value to set.
+ * @return the DataMigrationServiceInner object itself.
+ */
+ public DataMigrationServiceInner withVirtualNicId(String virtualNicId) {
+ this.virtualNicId = virtualNicId;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DataMigrationServiceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public DataMigrationServiceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (sku() != null) {
+ sku().validate();
+ }
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/DataMigrationServiceStatusResponseInner.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/DataMigrationServiceStatusResponseInner.java
new file mode 100644
index 000000000000..b53702e4088b
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/DataMigrationServiceStatusResponseInner.java
@@ -0,0 +1,133 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Service health status. */
+@Fluent
+public final class DataMigrationServiceStatusResponseInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(DataMigrationServiceStatusResponseInner.class);
+
+ /*
+ * 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 agentVersion property: The DMS instance agent version.
+ *
+ * @return the agentVersion value.
+ */
+ public String agentVersion() {
+ return this.agentVersion;
+ }
+
+ /**
+ * Set the agentVersion property: 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 status property: 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 status property: 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 vmSize property: The services virtual machine size, such as 'Standard_D2_v2'.
+ *
+ * @return the vmSize value.
+ */
+ public String vmSize() {
+ return this.vmSize;
+ }
+
+ /**
+ * Set the vmSize property: 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 supportedTaskTypes property: The list of supported task types.
+ *
+ * @return the supportedTaskTypes value.
+ */
+ public List supportedTaskTypes() {
+ return this.supportedTaskTypes;
+ }
+
+ /**
+ * Set the supportedTaskTypes property: 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/FileStorageInfoInner.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/FileStorageInfoInner.java
new file mode 100644
index 000000000000..7c253e6c0ad0
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/FileStorageInfoInner.java
@@ -0,0 +1,77 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** File storage information. */
+@Fluent
+public final class FileStorageInfoInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(FileStorageInfoInner.class);
+
+ /*
+ * A URI that can be used to access the file content.
+ */
+ @JsonProperty(value = "uri")
+ private String uri;
+
+ /*
+ * Dictionary of
+ */
+ @JsonProperty(value = "headers")
+ private Map headers;
+
+ /**
+ * Get the uri property: A URI that can be used to access the file content.
+ *
+ * @return the uri value.
+ */
+ public String uri() {
+ return this.uri;
+ }
+
+ /**
+ * Set the uri property: A URI that can be used to access the file content.
+ *
+ * @param uri the uri value to set.
+ * @return the FileStorageInfoInner object itself.
+ */
+ public FileStorageInfoInner withUri(String uri) {
+ this.uri = uri;
+ return this;
+ }
+
+ /**
+ * Get the headers property: Dictionary of <string>.
+ *
+ * @return the headers value.
+ */
+ public Map headers() {
+ return this.headers;
+ }
+
+ /**
+ * Set the headers property: Dictionary of <string>.
+ *
+ * @param headers the headers value to set.
+ * @return the FileStorageInfoInner object itself.
+ */
+ public FileStorageInfoInner withHeaders(Map headers) {
+ this.headers = headers;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/NameAvailabilityResponseInner.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/NameAvailabilityResponseInner.java
new file mode 100644
index 000000000000..360029265a87
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/NameAvailabilityResponseInner.java
@@ -0,0 +1,105 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.datamigration.models.NameCheckFailureReason;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Indicates whether a proposed resource name is available. */
+@Fluent
+public final class NameAvailabilityResponseInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(NameAvailabilityResponseInner.class);
+
+ /*
+ * 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
+ */
+ @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 the nameAvailable property: 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 the nameAvailable property: 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 property: The reason why the name is not available, if nameAvailable is false.
+ *
+ * @return the reason value.
+ */
+ public NameCheckFailureReason reason() {
+ return this.reason;
+ }
+
+ /**
+ * Set the reason property: The reason why the name is not available, if nameAvailable is false.
+ *
+ * @param reason the reason value to set.
+ * @return the NameAvailabilityResponseInner object itself.
+ */
+ public NameAvailabilityResponseInner withReason(NameCheckFailureReason reason) {
+ this.reason = reason;
+ return this;
+ }
+
+ /**
+ * Get the message property: 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 message property: 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ProjectFileInner.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ProjectFileInner.java
new file mode 100644
index 000000000000..817fe6ab2a1b
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ProjectFileInner.java
@@ -0,0 +1,81 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.datamigration.models.ProjectFileProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** A file resource. */
+@Fluent
+public final class ProjectFileInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ProjectFileInner.class);
+
+ /*
+ * HTTP strong entity tag value. This is ignored if submitted.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /*
+ * Custom file properties
+ */
+ @JsonProperty(value = "properties")
+ private ProjectFileProperties properties;
+
+ /**
+ * Get the etag property: HTTP strong entity tag value. This is ignored if submitted.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: HTTP strong entity tag value. This is ignored if submitted.
+ *
+ * @param etag the etag value to set.
+ * @return the ProjectFileInner object itself.
+ */
+ public ProjectFileInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get the properties property: Custom file properties.
+ *
+ * @return the properties value.
+ */
+ public ProjectFileProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Custom file properties.
+ *
+ * @param properties the properties value to set.
+ * @return the ProjectFileInner object itself.
+ */
+ public ProjectFileInner withProperties(ProjectFileProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ProjectInner.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ProjectInner.java
new file mode 100644
index 000000000000..478836c6d79e
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ProjectInner.java
@@ -0,0 +1,218 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.Resource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.datamigration.models.ConnectionInfo;
+import com.azure.resourcemanager.datamigration.models.DatabaseInfo;
+import com.azure.resourcemanager.datamigration.models.ProjectProvisioningState;
+import com.azure.resourcemanager.datamigration.models.ProjectSourcePlatform;
+import com.azure.resourcemanager.datamigration.models.ProjectTargetPlatform;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+import java.util.List;
+import java.util.Map;
+
+/** A project resource. */
+@JsonFlatten
+@Fluent
+public class ProjectInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ProjectInner.class);
+
+ /*
+ * Source platform for the project
+ */
+ @JsonProperty(value = "properties.sourcePlatform")
+ private ProjectSourcePlatform sourcePlatform;
+
+ /*
+ * Target platform for the project
+ */
+ @JsonProperty(value = "properties.targetPlatform")
+ private ProjectTargetPlatform targetPlatform;
+
+ /*
+ * UTC Date and time when project was created
+ */
+ @JsonProperty(value = "properties.creationTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime 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
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProjectProvisioningState provisioningState;
+
+ /**
+ * Get the sourcePlatform property: Source platform for the project.
+ *
+ * @return the sourcePlatform value.
+ */
+ public ProjectSourcePlatform sourcePlatform() {
+ return this.sourcePlatform;
+ }
+
+ /**
+ * Set the sourcePlatform property: Source platform for the project.
+ *
+ * @param sourcePlatform the sourcePlatform value to set.
+ * @return the ProjectInner object itself.
+ */
+ public ProjectInner withSourcePlatform(ProjectSourcePlatform sourcePlatform) {
+ this.sourcePlatform = sourcePlatform;
+ return this;
+ }
+
+ /**
+ * Get the targetPlatform property: Target platform for the project.
+ *
+ * @return the targetPlatform value.
+ */
+ public ProjectTargetPlatform targetPlatform() {
+ return this.targetPlatform;
+ }
+
+ /**
+ * Set the targetPlatform property: Target platform for the project.
+ *
+ * @param targetPlatform the targetPlatform value to set.
+ * @return the ProjectInner object itself.
+ */
+ public ProjectInner withTargetPlatform(ProjectTargetPlatform targetPlatform) {
+ this.targetPlatform = targetPlatform;
+ return this;
+ }
+
+ /**
+ * Get the creationTime property: UTC Date and time when project was created.
+ *
+ * @return the creationTime value.
+ */
+ public OffsetDateTime creationTime() {
+ return this.creationTime;
+ }
+
+ /**
+ * Get the sourceConnectionInfo property: Information for connecting to source.
+ *
+ * @return the sourceConnectionInfo value.
+ */
+ public ConnectionInfo sourceConnectionInfo() {
+ return this.sourceConnectionInfo;
+ }
+
+ /**
+ * Set the sourceConnectionInfo property: 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 the targetConnectionInfo property: Information for connecting to target.
+ *
+ * @return the targetConnectionInfo value.
+ */
+ public ConnectionInfo targetConnectionInfo() {
+ return this.targetConnectionInfo;
+ }
+
+ /**
+ * Set the targetConnectionInfo property: 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 the databasesInfo property: List of DatabaseInfo.
+ *
+ * @return the databasesInfo value.
+ */
+ public List databasesInfo() {
+ return this.databasesInfo;
+ }
+
+ /**
+ * Set the databasesInfo property: 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 provisioningState property: The project's provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public ProjectProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProjectInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProjectInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (sourceConnectionInfo() != null) {
+ sourceConnectionInfo().validate();
+ }
+ if (targetConnectionInfo() != null) {
+ targetConnectionInfo().validate();
+ }
+ if (databasesInfo() != null) {
+ databasesInfo().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ProjectTaskInner.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ProjectTaskInner.java
new file mode 100644
index 000000000000..7e38d4be1d3d
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ProjectTaskInner.java
@@ -0,0 +1,81 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.datamigration.models.ProjectTaskProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** A task resource. */
+@Fluent
+public final class ProjectTaskInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ProjectTaskInner.class);
+
+ /*
+ * 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 the etag property: HTTP strong entity tag value. This is ignored if submitted.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: 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 the properties property: Custom task properties.
+ *
+ * @return the properties value.
+ */
+ public ProjectTaskProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: 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;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/QuotaInner.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/QuotaInner.java
new file mode 100644
index 000000000000..d5e768228b11
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/QuotaInner.java
@@ -0,0 +1,164 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.datamigration.models.QuotaName;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Describes a quota for or usage details about a resource. */
+@Fluent
+public final class QuotaInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(QuotaInner.class);
+
+ /*
+ * The current value of the quota. If null or missing, the current value
+ * cannot be determined in the context of the request.
+ */
+ @JsonProperty(value = "currentValue")
+ private Double currentValue;
+
+ /*
+ * The resource ID of the quota object
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /*
+ * The maximum value of the quota. If null or missing, the quota has no
+ * maximum, in which case it merely tracks usage.
+ */
+ @JsonProperty(value = "limit")
+ private Double limit;
+
+ /*
+ * The name of the quota
+ */
+ @JsonProperty(value = "name")
+ private QuotaName name;
+
+ /*
+ * The unit for the quota, such as Count, Bytes, BytesPerSecond, etc.
+ */
+ @JsonProperty(value = "unit")
+ private String unit;
+
+ /**
+ * Get the currentValue property: The current value of the quota. If null or missing, the current value cannot be
+ * determined in the context of the request.
+ *
+ * @return the currentValue value.
+ */
+ public Double currentValue() {
+ return this.currentValue;
+ }
+
+ /**
+ * Set the currentValue property: The current value of the quota. If null or missing, the current value cannot be
+ * determined in the context of the request.
+ *
+ * @param currentValue the currentValue value to set.
+ * @return the QuotaInner object itself.
+ */
+ public QuotaInner withCurrentValue(Double currentValue) {
+ this.currentValue = currentValue;
+ return this;
+ }
+
+ /**
+ * Get the id property: The resource ID of the quota object.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the id property: The resource ID of the quota object.
+ *
+ * @param id the id value to set.
+ * @return the QuotaInner object itself.
+ */
+ public QuotaInner withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the limit property: The maximum value of the quota. If null or missing, the quota has no maximum, in which
+ * case it merely tracks usage.
+ *
+ * @return the limit value.
+ */
+ public Double limit() {
+ return this.limit;
+ }
+
+ /**
+ * Set the limit property: The maximum value of the quota. If null or missing, the quota has no maximum, in which
+ * case it merely tracks usage.
+ *
+ * @param limit the limit value to set.
+ * @return the QuotaInner object itself.
+ */
+ public QuotaInner withLimit(Double limit) {
+ this.limit = limit;
+ return this;
+ }
+
+ /**
+ * Get the name property: The name of the quota.
+ *
+ * @return the name value.
+ */
+ public QuotaName name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: The name of the quota.
+ *
+ * @param name the name value to set.
+ * @return the QuotaInner object itself.
+ */
+ public QuotaInner withName(QuotaName name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the unit property: The unit for the quota, such as Count, Bytes, BytesPerSecond, etc.
+ *
+ * @return the unit value.
+ */
+ public String unit() {
+ return this.unit;
+ }
+
+ /**
+ * Set the unit property: The unit for the quota, such as Count, Bytes, BytesPerSecond, etc.
+ *
+ * @param unit the unit value to set.
+ * @return the QuotaInner object itself.
+ */
+ public QuotaInner withUnit(String unit) {
+ this.unit = unit;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (name() != null) {
+ name().validate();
+ }
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ResourceSkuInner.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ResourceSkuInner.java
new file mode 100644
index 000000000000..2fbc5472bd09
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ResourceSkuInner.java
@@ -0,0 +1,223 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.datamigration.models.ResourceSkuCapabilities;
+import com.azure.resourcemanager.datamigration.models.ResourceSkuCapacity;
+import com.azure.resourcemanager.datamigration.models.ResourceSkuCosts;
+import com.azure.resourcemanager.datamigration.models.ResourceSkuRestrictions;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Describes an available DMS SKU. */
+@Immutable
+public final class ResourceSkuInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ResourceSkuInner.class);
+
+ /*
+ * The type of resource the SKU applies to.
+ */
+ @JsonProperty(value = "resourceType", access = JsonProperty.Access.WRITE_ONLY)
+ private String resourceType;
+
+ /*
+ * The name of SKU.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Specifies the tier of DMS in a scale set.
+ */
+ @JsonProperty(value = "tier", access = JsonProperty.Access.WRITE_ONLY)
+ private String tier;
+
+ /*
+ * The Size of the SKU.
+ */
+ @JsonProperty(value = "size", access = JsonProperty.Access.WRITE_ONLY)
+ private String size;
+
+ /*
+ * The Family of this particular SKU.
+ */
+ @JsonProperty(value = "family", access = JsonProperty.Access.WRITE_ONLY)
+ private String family;
+
+ /*
+ * The Kind of resources that are supported in this SKU.
+ */
+ @JsonProperty(value = "kind", access = JsonProperty.Access.WRITE_ONLY)
+ private String kind;
+
+ /*
+ * Not used.
+ */
+ @JsonProperty(value = "capacity", access = JsonProperty.Access.WRITE_ONLY)
+ private ResourceSkuCapacity capacity;
+
+ /*
+ * The set of locations that the SKU is available.
+ */
+ @JsonProperty(value = "locations", access = JsonProperty.Access.WRITE_ONLY)
+ private List locations;
+
+ /*
+ * The api versions that support this SKU.
+ */
+ @JsonProperty(value = "apiVersions", access = JsonProperty.Access.WRITE_ONLY)
+ private List apiVersions;
+
+ /*
+ * Metadata for retrieving price info.
+ */
+ @JsonProperty(value = "costs", access = JsonProperty.Access.WRITE_ONLY)
+ private List costs;
+
+ /*
+ * A name value pair to describe the capability.
+ */
+ @JsonProperty(value = "capabilities", access = JsonProperty.Access.WRITE_ONLY)
+ private List capabilities;
+
+ /*
+ * The restrictions because of which SKU cannot be used. This is empty if
+ * there are no restrictions.
+ */
+ @JsonProperty(value = "restrictions", access = JsonProperty.Access.WRITE_ONLY)
+ private List restrictions;
+
+ /**
+ * Get the resourceType property: The type of resource the SKU applies to.
+ *
+ * @return the resourceType value.
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Get the name property: The name of SKU.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the tier property: Specifies the tier of DMS in a scale set.
+ *
+ * @return the tier value.
+ */
+ public String tier() {
+ return this.tier;
+ }
+
+ /**
+ * Get the size property: The Size of the SKU.
+ *
+ * @return the size value.
+ */
+ public String size() {
+ return this.size;
+ }
+
+ /**
+ * Get the family property: The Family of this particular SKU.
+ *
+ * @return the family value.
+ */
+ public String family() {
+ return this.family;
+ }
+
+ /**
+ * Get the kind property: The Kind of resources that are supported in this SKU.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Get the capacity property: Not used.
+ *
+ * @return the capacity value.
+ */
+ public ResourceSkuCapacity capacity() {
+ return this.capacity;
+ }
+
+ /**
+ * Get the locations property: The set of locations that the SKU is available.
+ *
+ * @return the locations value.
+ */
+ public List locations() {
+ return this.locations;
+ }
+
+ /**
+ * Get the apiVersions property: The api versions that support this SKU.
+ *
+ * @return the apiVersions value.
+ */
+ public List apiVersions() {
+ return this.apiVersions;
+ }
+
+ /**
+ * Get the costs property: Metadata for retrieving price info.
+ *
+ * @return the costs value.
+ */
+ public List costs() {
+ return this.costs;
+ }
+
+ /**
+ * Get the capabilities property: A name value pair to describe the capability.
+ *
+ * @return the capabilities value.
+ */
+ public List capabilities() {
+ return this.capabilities;
+ }
+
+ /**
+ * Get the restrictions property: The restrictions because of which SKU cannot be used. This is empty if there are
+ * no restrictions.
+ *
+ * @return the restrictions value.
+ */
+ public List restrictions() {
+ return this.restrictions;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (capacity() != null) {
+ capacity().validate();
+ }
+ if (costs() != null) {
+ costs().forEach(e -> e.validate());
+ }
+ if (capabilities() != null) {
+ capabilities().forEach(e -> e.validate());
+ }
+ if (restrictions() != null) {
+ restrictions().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ServiceOperationInner.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ServiceOperationInner.java
new file mode 100644
index 000000000000..0809e0e4d86f
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/ServiceOperationInner.java
@@ -0,0 +1,81 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.datamigration.models.ServiceOperationDisplay;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Description of an action supported by the Database Migration Service. */
+@Fluent
+public final class ServiceOperationInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ServiceOperationInner.class);
+
+ /*
+ * The fully qualified action name, e.g.
+ * Microsoft.DataMigration/services/read
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * Localized display text
+ */
+ @JsonProperty(value = "display")
+ private ServiceOperationDisplay display;
+
+ /**
+ * Get the name property: The fully qualified action name, e.g. Microsoft.DataMigration/services/read.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: The fully qualified action name, e.g. Microsoft.DataMigration/services/read.
+ *
+ * @param name the name value to set.
+ * @return the ServiceOperationInner object itself.
+ */
+ public ServiceOperationInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the display property: Localized display text.
+ *
+ * @return the display value.
+ */
+ public ServiceOperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Localized display text.
+ *
+ * @param display the display value to set.
+ * @return the ServiceOperationInner object itself.
+ */
+ public ServiceOperationInner withDisplay(ServiceOperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/package-info.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/package-info.java
new file mode 100644
index 000000000000..b1cbb58aa811
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/models/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the inner data models for DataMigrationManagementClient. Data Migration Client. */
+package com.azure.resourcemanager.datamigration.fluent.models;
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/package-info.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/package-info.java
new file mode 100644
index 000000000000..1eb3aad57c85
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/fluent/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the service clients for DataMigrationManagementClient. Data Migration Client. */
+package com.azure.resourcemanager.datamigration.fluent;
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/implementation/AvailableServiceSkuImpl.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/implementation/AvailableServiceSkuImpl.java
new file mode 100644
index 000000000000..e9c35aa62436
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/implementation/AvailableServiceSkuImpl.java
@@ -0,0 +1,43 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.implementation;
+
+import com.azure.resourcemanager.datamigration.fluent.models.AvailableServiceSkuInner;
+import com.azure.resourcemanager.datamigration.models.AvailableServiceSku;
+import com.azure.resourcemanager.datamigration.models.AvailableServiceSkuAutoGenerated;
+import com.azure.resourcemanager.datamigration.models.AvailableServiceSkuCapacity;
+
+public final class AvailableServiceSkuImpl implements AvailableServiceSku {
+ private AvailableServiceSkuInner innerObject;
+
+ private final com.azure.resourcemanager.datamigration.DataMigrationManager serviceManager;
+
+ AvailableServiceSkuImpl(
+ AvailableServiceSkuInner innerObject,
+ com.azure.resourcemanager.datamigration.DataMigrationManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String resourceType() {
+ return this.innerModel().resourceType();
+ }
+
+ public AvailableServiceSkuAutoGenerated sku() {
+ return this.innerModel().sku();
+ }
+
+ public AvailableServiceSkuCapacity capacity() {
+ return this.innerModel().capacity();
+ }
+
+ public AvailableServiceSkuInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.datamigration.DataMigrationManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/implementation/CommandPropertiesImpl.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/implementation/CommandPropertiesImpl.java
new file mode 100644
index 000000000000..5ae5c74ee66b
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/implementation/CommandPropertiesImpl.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.implementation;
+
+import com.azure.core.management.exception.ManagementError;
+import com.azure.resourcemanager.datamigration.fluent.models.CommandPropertiesInner;
+import com.azure.resourcemanager.datamigration.models.CommandProperties;
+import com.azure.resourcemanager.datamigration.models.CommandState;
+import java.util.Collections;
+import java.util.List;
+
+public final class CommandPropertiesImpl implements CommandProperties {
+ private CommandPropertiesInner innerObject;
+
+ private final com.azure.resourcemanager.datamigration.DataMigrationManager serviceManager;
+
+ CommandPropertiesImpl(
+ CommandPropertiesInner innerObject,
+ com.azure.resourcemanager.datamigration.DataMigrationManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public List errors() {
+ List inner = this.innerModel().errors();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public CommandState state() {
+ return this.innerModel().state();
+ }
+
+ public CommandPropertiesInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.datamigration.DataMigrationManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/implementation/DataMigrationManagementClientBuilder.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/implementation/DataMigrationManagementClientBuilder.java
new file mode 100644
index 000000000000..d28dc06eb2a3
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/implementation/DataMigrationManagementClientBuilder.java
@@ -0,0 +1,146 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.implementation;
+
+import com.azure.core.annotation.ServiceClientBuilder;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpPipelineBuilder;
+import com.azure.core.http.policy.CookiePolicy;
+import com.azure.core.http.policy.RetryPolicy;
+import com.azure.core.http.policy.UserAgentPolicy;
+import com.azure.core.management.AzureEnvironment;
+import com.azure.core.management.serializer.SerializerFactory;
+import com.azure.core.util.serializer.SerializerAdapter;
+import java.time.Duration;
+
+/** A builder for creating a new instance of the DataMigrationManagementClientImpl type. */
+@ServiceClientBuilder(serviceClients = {DataMigrationManagementClientImpl.class})
+public final class DataMigrationManagementClientBuilder {
+ /*
+ * Identifier of the subscription
+ */
+ private String subscriptionId;
+
+ /**
+ * Sets Identifier of the subscription.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the DataMigrationManagementClientBuilder.
+ */
+ public DataMigrationManagementClientBuilder subscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /*
+ * server parameter
+ */
+ private String endpoint;
+
+ /**
+ * Sets server parameter.
+ *
+ * @param endpoint the endpoint value.
+ * @return the DataMigrationManagementClientBuilder.
+ */
+ public DataMigrationManagementClientBuilder endpoint(String endpoint) {
+ this.endpoint = endpoint;
+ return this;
+ }
+
+ /*
+ * The environment to connect to
+ */
+ private AzureEnvironment environment;
+
+ /**
+ * Sets The environment to connect to.
+ *
+ * @param environment the environment value.
+ * @return the DataMigrationManagementClientBuilder.
+ */
+ public DataMigrationManagementClientBuilder environment(AzureEnvironment environment) {
+ this.environment = environment;
+ return this;
+ }
+
+ /*
+ * The default poll interval for long-running operation
+ */
+ private Duration defaultPollInterval;
+
+ /**
+ * Sets The default poll interval for long-running operation.
+ *
+ * @param defaultPollInterval the defaultPollInterval value.
+ * @return the DataMigrationManagementClientBuilder.
+ */
+ public DataMigrationManagementClientBuilder defaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval = defaultPollInterval;
+ return this;
+ }
+
+ /*
+ * The HTTP pipeline to send requests through
+ */
+ private HttpPipeline pipeline;
+
+ /**
+ * Sets The HTTP pipeline to send requests through.
+ *
+ * @param pipeline the pipeline value.
+ * @return the DataMigrationManagementClientBuilder.
+ */
+ public DataMigrationManagementClientBuilder pipeline(HttpPipeline pipeline) {
+ this.pipeline = pipeline;
+ return this;
+ }
+
+ /*
+ * The serializer to serialize an object into a string
+ */
+ private SerializerAdapter serializerAdapter;
+
+ /**
+ * Sets The serializer to serialize an object into a string.
+ *
+ * @param serializerAdapter the serializerAdapter value.
+ * @return the DataMigrationManagementClientBuilder.
+ */
+ public DataMigrationManagementClientBuilder serializerAdapter(SerializerAdapter serializerAdapter) {
+ this.serializerAdapter = serializerAdapter;
+ return this;
+ }
+
+ /**
+ * Builds an instance of DataMigrationManagementClientImpl with the provided parameters.
+ *
+ * @return an instance of DataMigrationManagementClientImpl.
+ */
+ public DataMigrationManagementClientImpl buildClient() {
+ if (endpoint == null) {
+ this.endpoint = "https://management.azure.com";
+ }
+ if (environment == null) {
+ this.environment = AzureEnvironment.AZURE;
+ }
+ if (defaultPollInterval == null) {
+ this.defaultPollInterval = Duration.ofSeconds(30);
+ }
+ if (pipeline == null) {
+ this.pipeline =
+ new HttpPipelineBuilder()
+ .policies(new UserAgentPolicy(), new RetryPolicy(), new CookiePolicy())
+ .build();
+ }
+ if (serializerAdapter == null) {
+ this.serializerAdapter = SerializerFactory.createDefaultManagementSerializerAdapter();
+ }
+ DataMigrationManagementClientImpl client =
+ new DataMigrationManagementClientImpl(
+ pipeline, serializerAdapter, defaultPollInterval, environment, subscriptionId, endpoint);
+ return client;
+ }
+}
diff --git a/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/implementation/DataMigrationManagementClientImpl.java b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/implementation/DataMigrationManagementClientImpl.java
new file mode 100644
index 000000000000..e803c79fbbd2
--- /dev/null
+++ b/sdk/datamigration/azure-resourcemanager-datamigration/src/main/java/com/azure/resourcemanager/datamigration/implementation/DataMigrationManagementClientImpl.java
@@ -0,0 +1,391 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.datamigration.implementation;
+
+import com.azure.core.annotation.ServiceClient;
+import com.azure.core.http.HttpHeaders;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.AzureEnvironment;
+import com.azure.core.management.exception.ManagementError;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.management.polling.PollerFactory;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.core.util.polling.AsyncPollResponse;
+import com.azure.core.util.polling.LongRunningOperationStatus;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.serializer.SerializerAdapter;
+import com.azure.core.util.serializer.SerializerEncoding;
+import com.azure.resourcemanager.datamigration.fluent.DataMigrationManagementClient;
+import com.azure.resourcemanager.datamigration.fluent.FilesClient;
+import com.azure.resourcemanager.datamigration.fluent.OperationsClient;
+import com.azure.resourcemanager.datamigration.fluent.ProjectsClient;
+import com.azure.resourcemanager.datamigration.fluent.ResourceSkusClient;
+import com.azure.resourcemanager.datamigration.fluent.ServiceTasksClient;
+import com.azure.resourcemanager.datamigration.fluent.ServicesClient;
+import com.azure.resourcemanager.datamigration.fluent.TasksClient;
+import com.azure.resourcemanager.datamigration.fluent.UsagesClient;
+import java.io.IOException;
+import java.lang.reflect.Type;
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.time.Duration;
+import java.util.Map;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/** Initializes a new instance of the DataMigrationManagementClientImpl type. */
+@ServiceClient(builder = DataMigrationManagementClientBuilder.class)
+public final class DataMigrationManagementClientImpl implements DataMigrationManagementClient {
+ private final ClientLogger logger = new ClientLogger(DataMigrationManagementClientImpl.class);
+
+ /** Identifier of the subscription. */
+ private final String subscriptionId;
+
+ /**
+ * Gets Identifier of the subscription.
+ *
+ * @return the subscriptionId value.
+ */
+ public String getSubscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /** server parameter. */
+ private final String endpoint;
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ public String getEndpoint() {
+ return this.endpoint;
+ }
+
+ /** Api Version. */
+ private final String apiVersion;
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ public String getApiVersion() {
+ return this.apiVersion;
+ }
+
+ /** The HTTP pipeline to send requests through. */
+ private final HttpPipeline httpPipeline;
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ public HttpPipeline getHttpPipeline() {
+ return this.httpPipeline;
+ }
+
+ /** The serializer to serialize an object into a string. */
+ private final SerializerAdapter serializerAdapter;
+
+ /**
+ * Gets The serializer to serialize an object into a string.
+ *
+ * @return the serializerAdapter value.
+ */
+ SerializerAdapter getSerializerAdapter() {
+ return this.serializerAdapter;
+ }
+
+ /** The default poll interval for long-running operation. */
+ private final Duration defaultPollInterval;
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ public Duration getDefaultPollInterval() {
+ return this.defaultPollInterval;
+ }
+
+ /** The ResourceSkusClient object to access its operations. */
+ private final ResourceSkusClient resourceSkus;
+
+ /**
+ * Gets the ResourceSkusClient object to access its operations.
+ *
+ * @return the ResourceSkusClient object.
+ */
+ public ResourceSkusClient getResourceSkus() {
+ return this.resourceSkus;
+ }
+
+ /** The ServicesClient object to access its operations. */
+ private final ServicesClient services;
+
+ /**
+ * Gets the ServicesClient object to access its operations.
+ *
+ * @return the ServicesClient object.
+ */
+ public ServicesClient getServices() {
+ return this.services;
+ }
+
+ /** The TasksClient object to access its operations. */
+ private final TasksClient tasks;
+
+ /**
+ * Gets the TasksClient object to access its operations.
+ *
+ * @return the TasksClient object.
+ */
+ public TasksClient getTasks() {
+ return this.tasks;
+ }
+
+ /** The ServiceTasksClient object to access its operations. */
+ private final ServiceTasksClient serviceTasks;
+
+ /**
+ * Gets the ServiceTasksClient object to access its operations.
+ *
+ * @return the ServiceTasksClient object.
+ */
+ public ServiceTasksClient getServiceTasks() {
+ return this.serviceTasks;
+ }
+
+ /** The ProjectsClient object to access its operations. */
+ private final ProjectsClient projects;
+
+ /**
+ * Gets the ProjectsClient object to access its operations.
+ *
+ * @return the ProjectsClient object.
+ */
+ public ProjectsClient getProjects() {
+ return this.projects;
+ }
+
+ /** The UsagesClient object to access its operations. */
+ private final UsagesClient usages;
+
+ /**
+ * Gets the UsagesClient object to access its operations.
+ *
+ * @return the UsagesClient object.
+ */
+ public UsagesClient getUsages() {
+ return this.usages;
+ }
+
+ /** The OperationsClient object to access its operations. */
+ private final OperationsClient operations;
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ public OperationsClient getOperations() {
+ return this.operations;
+ }
+
+ /** The FilesClient object to access its operations. */
+ private final FilesClient files;
+
+ /**
+ * Gets the FilesClient object to access its operations.
+ *
+ * @return the FilesClient object.
+ */
+ public FilesClient getFiles() {
+ return this.files;
+ }
+
+ /**
+ * Initializes an instance of DataMigrationManagementClient client.
+ *
+ * @param httpPipeline The HTTP pipeline to send requests through.
+ * @param serializerAdapter The serializer to serialize an object into a string.
+ * @param defaultPollInterval The default poll interval for long-running operation.
+ * @param environment The Azure environment.
+ * @param subscriptionId Identifier of the subscription.
+ * @param endpoint server parameter.
+ */
+ DataMigrationManagementClientImpl(
+ HttpPipeline httpPipeline,
+ SerializerAdapter serializerAdapter,
+ Duration defaultPollInterval,
+ AzureEnvironment environment,
+ String subscriptionId,
+ String endpoint) {
+ this.httpPipeline = httpPipeline;
+ this.serializerAdapter = serializerAdapter;
+ this.defaultPollInterval = defaultPollInterval;
+ this.subscriptionId = subscriptionId;
+ this.endpoint = endpoint;
+ this.apiVersion = "2018-07-15-preview";
+ this.resourceSkus = new ResourceSkusClientImpl(this);
+ this.services = new ServicesClientImpl(this);
+ this.tasks = new TasksClientImpl(this);
+ this.serviceTasks = new ServiceTasksClientImpl(this);
+ this.projects = new ProjectsClientImpl(this);
+ this.usages = new UsagesClientImpl(this);
+ this.operations = new OperationsClientImpl(this);
+ this.files = new FilesClientImpl(this);
+ }
+
+ /**
+ * Gets default client context.
+ *
+ * @return the default client context.
+ */
+ public Context getContext() {
+ return Context.NONE;
+ }
+
+ /**
+ * Merges default client context with provided context.
+ *
+ * @param context the context to be merged with default client context.
+ * @return the merged context.
+ */
+ public Context mergeContext(Context context) {
+ for (Map.Entry