diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index b44b07684b8a..4a57074959f5 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -263,6 +263,7 @@ com.azure.resourcemanager:azure-resourcemanager-policyinsights;1.0.0-beta.1;1.0.
com.azure.resourcemanager:azure-resourcemanager-support;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-subscription;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-powerbidedicated;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-deploymentmanager;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 bdb9f1ed5eb1..98313581631d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -688,6 +688,7 @@
sdk/datafactorysdk/datamigrationsdk/delegatednetwork
+ sdk/deploymentmanagersdk/deviceupdatesdk/devspacessdk/devtestlabs
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/CHANGELOG.md b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/CHANGELOG.md
new file mode 100644
index 000000000000..ad7ae5c3bddd
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2021-04-20)
+
+- Azure Resource Manager Deployment client library for Java. This package contains Microsoft Azure SDK for Deployment Management SDK. REST APIs for orchestrating deployments using the Azure Deployment Manager (ADM). See https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-manager-overview for more information. Package tag package-2019-11-01-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/deploymentmanager/azure-resourcemanager-deploymentmanager/README.md b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/README.md
new file mode 100644
index 000000000000..a4d3f41de25a
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/README.md
@@ -0,0 +1,99 @@
+# Azure Resource Manager Deployment client library for Java
+
+Azure Resource Manager Deployment client library for Java.
+
+This package contains Microsoft Azure SDK for Deployment Management SDK. REST APIs for orchestrating deployments using the Azure Deployment Manager (ADM). See https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-manager-overview for more information. Package tag package-2019-11-01-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-deploymentmanager;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-deploymentmanager
+ 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();
+DeploymentManager manager = DeploymentManager
+ .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/deploymentmanager/azure-resourcemanager-deploymentmanager/pom.xml b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/pom.xml
new file mode 100644
index 000000000000..bf714d5ac979
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/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-deploymentmanager
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for Deployment Management
+ This package contains Microsoft Azure SDK for Deployment Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. REST APIs for orchestrating deployments using the Azure Deployment Manager (ADM). See https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-manager-overview for more information. Package tag package-2019-11-01-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.15.0
+
+
+ com.azure
+ azure-core-management
+ 1.2.1
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.5
+
+ true
+
+
+
+
+
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/DeploymentManager.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/DeploymentManager.java
new file mode 100644
index 000000000000..375add9b6ef6
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/DeploymentManager.java
@@ -0,0 +1,290 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager;
+
+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.deploymentmanager.fluent.AzureDeploymentManager;
+import com.azure.resourcemanager.deploymentmanager.implementation.ArtifactSourcesImpl;
+import com.azure.resourcemanager.deploymentmanager.implementation.AzureDeploymentManagerBuilder;
+import com.azure.resourcemanager.deploymentmanager.implementation.OperationsImpl;
+import com.azure.resourcemanager.deploymentmanager.implementation.RolloutsImpl;
+import com.azure.resourcemanager.deploymentmanager.implementation.ServiceTopologiesImpl;
+import com.azure.resourcemanager.deploymentmanager.implementation.ServiceUnitsImpl;
+import com.azure.resourcemanager.deploymentmanager.implementation.ServicesImpl;
+import com.azure.resourcemanager.deploymentmanager.implementation.StepsImpl;
+import com.azure.resourcemanager.deploymentmanager.models.ArtifactSources;
+import com.azure.resourcemanager.deploymentmanager.models.Operations;
+import com.azure.resourcemanager.deploymentmanager.models.Rollouts;
+import com.azure.resourcemanager.deploymentmanager.models.ServiceTopologies;
+import com.azure.resourcemanager.deploymentmanager.models.ServiceUnits;
+import com.azure.resourcemanager.deploymentmanager.models.Services;
+import com.azure.resourcemanager.deploymentmanager.models.Steps;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Entry point to DeploymentManager. REST APIs for orchestrating deployments using the Azure Deployment Manager (ADM).
+ * See https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-manager-overview for more information.
+ */
+public final class DeploymentManager {
+ private ServiceTopologies serviceTopologies;
+
+ private Services services;
+
+ private ServiceUnits serviceUnits;
+
+ private Steps steps;
+
+ private Rollouts rollouts;
+
+ private ArtifactSources artifactSources;
+
+ private Operations operations;
+
+ private final AzureDeploymentManager clientObject;
+
+ private DeploymentManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new AzureDeploymentManagerBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .subscriptionId(profile.getSubscriptionId())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of Deployment service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the Deployment service API instance.
+ */
+ public static DeploymentManager 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 DeploymentManager with optional configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new DeploymentManager.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 Deployment service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the Deployment service API instance.
+ */
+ public DeploymentManager 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.deploymentmanager")
+ .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"));
+ policies.addAll(this.policies);
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline =
+ new HttpPipelineBuilder()
+ .httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new DeploymentManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /** @return Resource collection API of ServiceTopologies. */
+ public ServiceTopologies serviceTopologies() {
+ if (this.serviceTopologies == null) {
+ this.serviceTopologies = new ServiceTopologiesImpl(clientObject.getServiceTopologies(), this);
+ }
+ return serviceTopologies;
+ }
+
+ /** @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 ServiceUnits. */
+ public ServiceUnits serviceUnits() {
+ if (this.serviceUnits == null) {
+ this.serviceUnits = new ServiceUnitsImpl(clientObject.getServiceUnits(), this);
+ }
+ return serviceUnits;
+ }
+
+ /** @return Resource collection API of Steps. */
+ public Steps steps() {
+ if (this.steps == null) {
+ this.steps = new StepsImpl(clientObject.getSteps(), this);
+ }
+ return steps;
+ }
+
+ /** @return Resource collection API of Rollouts. */
+ public Rollouts rollouts() {
+ if (this.rollouts == null) {
+ this.rollouts = new RolloutsImpl(clientObject.getRollouts(), this);
+ }
+ return rollouts;
+ }
+
+ /** @return Resource collection API of ArtifactSources. */
+ public ArtifactSources artifactSources() {
+ if (this.artifactSources == null) {
+ this.artifactSources = new ArtifactSourcesImpl(clientObject.getArtifactSources(), this);
+ }
+ return artifactSources;
+ }
+
+ /** @return Resource collection API of Operations. */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /**
+ * @return Wrapped service client AzureDeploymentManager providing direct access to the underlying auto-generated
+ * API implementation, based on Azure REST API.
+ */
+ public AzureDeploymentManager serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/ArtifactSourcesClient.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/ArtifactSourcesClient.java
new file mode 100644
index 000000000000..fffc4183b45e
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/ArtifactSourcesClient.java
@@ -0,0 +1,123 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.deploymentmanager.fluent.models.ArtifactSourceInner;
+import java.util.List;
+
+/** An instance of this class provides access to all the operations defined in ArtifactSourcesClient. */
+public interface ArtifactSourcesClient {
+ /**
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @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 resource that defines the source location where the artifacts are located.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ArtifactSourceInner createOrUpdate(String resourceGroupName, String artifactSourceName);
+
+ /**
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @param artifactSourceInfo Source object that defines the resource.
+ * @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 resource that defines the source location where the artifacts are located.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName, String artifactSourceName, ArtifactSourceInner artifactSourceInfo, Context context);
+
+ /**
+ * Gets an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @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 an artifact source.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ArtifactSourceInner getByResourceGroup(String resourceGroupName, String artifactSourceName);
+
+ /**
+ * Gets an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @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 an artifact source.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String artifactSourceName, Context context);
+
+ /**
+ * Deletes an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @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 resourceGroupName, String artifactSourceName);
+
+ /**
+ * Deletes an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @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 resourceGroupName, String artifactSourceName, Context context);
+
+ /**
+ * Lists the artifact sources in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 list of artifact sources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ List list(String resourceGroupName);
+
+ /**
+ * Lists the artifact sources in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 list of artifact sources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response> listWithResponse(String resourceGroupName, Context context);
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/AzureDeploymentManager.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/AzureDeploymentManager.java
new file mode 100644
index 000000000000..ab24c0463baa
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/AzureDeploymentManager.java
@@ -0,0 +1,96 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for AzureDeploymentManager class. */
+public interface AzureDeploymentManager {
+ /**
+ * Gets Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms
+ * part of the URI for every service call.
+ *
+ * @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 ServiceTopologiesClient object to access its operations.
+ *
+ * @return the ServiceTopologiesClient object.
+ */
+ ServiceTopologiesClient getServiceTopologies();
+
+ /**
+ * Gets the ServicesClient object to access its operations.
+ *
+ * @return the ServicesClient object.
+ */
+ ServicesClient getServices();
+
+ /**
+ * Gets the ServiceUnitsClient object to access its operations.
+ *
+ * @return the ServiceUnitsClient object.
+ */
+ ServiceUnitsClient getServiceUnits();
+
+ /**
+ * Gets the StepsClient object to access its operations.
+ *
+ * @return the StepsClient object.
+ */
+ StepsClient getSteps();
+
+ /**
+ * Gets the RolloutsClient object to access its operations.
+ *
+ * @return the RolloutsClient object.
+ */
+ RolloutsClient getRollouts();
+
+ /**
+ * Gets the ArtifactSourcesClient object to access its operations.
+ *
+ * @return the ArtifactSourcesClient object.
+ */
+ ArtifactSourcesClient getArtifactSources();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/OperationsClient.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/OperationsClient.java
new file mode 100644
index 000000000000..b7c13ede2daa
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/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.deploymentmanager.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.deploymentmanager.fluent.models.OperationsListInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Lists the supported operations.
+ *
+ * @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 operations response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationsListInner list();
+
+ /**
+ * Lists the supported operations.
+ *
+ * @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 operations response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listWithResponse(Context context);
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/RolloutsClient.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/RolloutsClient.java
new file mode 100644
index 000000000000..e1161735dd62
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/RolloutsClient.java
@@ -0,0 +1,237 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+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.deploymentmanager.fluent.models.RolloutInner;
+import com.azure.resourcemanager.deploymentmanager.fluent.models.RolloutRequestInner;
+import java.util.List;
+
+/** An instance of this class provides access to all the operations defined in RolloutsClient. */
+public interface RolloutsClient {
+ /**
+ * This is an asynchronous operation and can be polled to completion using the location header returned by this
+ * operation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @param rolloutRequest Source rollout request object that defines the rollout.
+ * @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 defines the PUT rollout request body.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, RolloutRequestInner> beginCreateOrUpdate(
+ String resourceGroupName, String rolloutName, RolloutRequestInner rolloutRequest);
+
+ /**
+ * This is an asynchronous operation and can be polled to completion using the location header returned by this
+ * operation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @param rolloutRequest Source rollout request object that defines the rollout.
+ * @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 defines the PUT rollout request body.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, RolloutRequestInner> beginCreateOrUpdate(
+ String resourceGroupName, String rolloutName, RolloutRequestInner rolloutRequest, Context context);
+
+ /**
+ * This is an asynchronous operation and can be polled to completion using the location header returned by this
+ * operation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @param rolloutRequest Source rollout request object that defines the rollout.
+ * @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 defines the PUT rollout request body.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RolloutRequestInner createOrUpdate(
+ String resourceGroupName, String rolloutName, RolloutRequestInner rolloutRequest);
+
+ /**
+ * This is an asynchronous operation and can be polled to completion using the location header returned by this
+ * operation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @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 defines the PUT rollout request body.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RolloutRequestInner createOrUpdate(String resourceGroupName, String rolloutName);
+
+ /**
+ * This is an asynchronous operation and can be polled to completion using the location header returned by this
+ * operation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @param rolloutRequest Source rollout request object that defines the rollout.
+ * @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 defines the PUT rollout request body.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RolloutRequestInner createOrUpdate(
+ String resourceGroupName, String rolloutName, RolloutRequestInner rolloutRequest, Context context);
+
+ /**
+ * Gets detailed information of a rollout.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @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 detailed information of a rollout.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RolloutInner getByResourceGroup(String resourceGroupName, String rolloutName);
+
+ /**
+ * Gets detailed information of a rollout.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @param retryAttempt Rollout retry attempt ordinal to get the result of. If not specified, result of the latest
+ * attempt will be returned.
+ * @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 detailed information of a rollout.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String rolloutName, Integer retryAttempt, Context context);
+
+ /**
+ * Only rollouts in terminal state can be deleted.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @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 resourceGroupName, String rolloutName);
+
+ /**
+ * Only rollouts in terminal state can be deleted.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @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 resourceGroupName, String rolloutName, Context context);
+
+ /**
+ * Only running rollouts can be canceled.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @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 defines the rollout.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RolloutInner cancel(String resourceGroupName, String rolloutName);
+
+ /**
+ * Only running rollouts can be canceled.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @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 defines the rollout.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response cancelWithResponse(String resourceGroupName, String rolloutName, Context context);
+
+ /**
+ * Only failed rollouts can be restarted.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @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 defines the rollout.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RolloutInner restart(String resourceGroupName, String rolloutName);
+
+ /**
+ * Only failed rollouts can be restarted.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param rolloutName The rollout name.
+ * @param skipSucceeded If true, will skip all succeeded steps so far in the rollout. If false, will execute the
+ * entire rollout again regardless of the current state of individual resources. Defaults to false if not
+ * specified.
+ * @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 defines the rollout.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response restartWithResponse(
+ String resourceGroupName, String rolloutName, Boolean skipSucceeded, Context context);
+
+ /**
+ * Lists the rollouts in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 list of rollouts.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ List list(String resourceGroupName);
+
+ /**
+ * Lists the rollouts in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 list of rollouts.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response> listWithResponse(String resourceGroupName, Context context);
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/ServiceTopologiesClient.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/ServiceTopologiesClient.java
new file mode 100644
index 000000000000..fb658dd12aa3
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/ServiceTopologiesClient.java
@@ -0,0 +1,128 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.deploymentmanager.fluent.models.ServiceTopologyResourceInner;
+import java.util.List;
+
+/** An instance of this class provides access to all the operations defined in ServiceTopologiesClient. */
+public interface ServiceTopologiesClient {
+ /**
+ * Synchronously creates a new service topology or updates an existing service topology.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceTopologyInfo Source topology object defines the resource.
+ * @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 resource representation of a service topology.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ServiceTopologyResourceInner createOrUpdate(
+ String resourceGroupName, String serviceTopologyName, ServiceTopologyResourceInner serviceTopologyInfo);
+
+ /**
+ * Synchronously creates a new service topology or updates an existing service topology.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceTopologyInfo Source topology object defines the resource.
+ * @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 resource representation of a service topology.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName,
+ String serviceTopologyName,
+ ServiceTopologyResourceInner serviceTopologyInfo,
+ Context context);
+
+ /**
+ * Gets the service topology.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @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 service topology.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ServiceTopologyResourceInner getByResourceGroup(String resourceGroupName, String serviceTopologyName);
+
+ /**
+ * Gets the service topology.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @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 service topology.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String serviceTopologyName, Context context);
+
+ /**
+ * Deletes the service topology.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @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 resourceGroupName, String serviceTopologyName);
+
+ /**
+ * Deletes the service topology.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @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 resourceGroupName, String serviceTopologyName, Context context);
+
+ /**
+ * Lists the service topologies in the resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 list of service topologies.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ List list(String resourceGroupName);
+
+ /**
+ * Lists the service topologies in the resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 list of service topologies.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response> listWithResponse(String resourceGroupName, Context context);
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/ServiceUnitsClient.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/ServiceUnitsClient.java
new file mode 100644
index 000000000000..e18a0cc4ba7d
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/ServiceUnitsClient.java
@@ -0,0 +1,211 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+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.deploymentmanager.fluent.models.ServiceUnitResourceInner;
+import java.util.List;
+
+/** An instance of this class provides access to all the operations defined in ServiceUnitsClient. */
+public interface ServiceUnitsClient {
+ /**
+ * This is an asynchronous operation and can be polled to completion using the operation resource returned by this
+ * operation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @param serviceUnitName The name of the service unit resource.
+ * @param serviceUnitInfo The service unit resource object.
+ * @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 represents the response of a service unit resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ServiceUnitResourceInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String serviceTopologyName,
+ String serviceName,
+ String serviceUnitName,
+ ServiceUnitResourceInner serviceUnitInfo);
+
+ /**
+ * This is an asynchronous operation and can be polled to completion using the operation resource returned by this
+ * operation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @param serviceUnitName The name of the service unit resource.
+ * @param serviceUnitInfo The service unit resource object.
+ * @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 represents the response of a service unit resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, ServiceUnitResourceInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String serviceTopologyName,
+ String serviceName,
+ String serviceUnitName,
+ ServiceUnitResourceInner serviceUnitInfo,
+ Context context);
+
+ /**
+ * This is an asynchronous operation and can be polled to completion using the operation resource returned by this
+ * operation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @param serviceUnitName The name of the service unit resource.
+ * @param serviceUnitInfo The service unit resource object.
+ * @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 represents the response of a service unit resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ServiceUnitResourceInner createOrUpdate(
+ String resourceGroupName,
+ String serviceTopologyName,
+ String serviceName,
+ String serviceUnitName,
+ ServiceUnitResourceInner serviceUnitInfo);
+
+ /**
+ * This is an asynchronous operation and can be polled to completion using the operation resource returned by this
+ * operation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @param serviceUnitName The name of the service unit resource.
+ * @param serviceUnitInfo The service unit resource object.
+ * @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 represents the response of a service unit resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ServiceUnitResourceInner createOrUpdate(
+ String resourceGroupName,
+ String serviceTopologyName,
+ String serviceName,
+ String serviceUnitName,
+ ServiceUnitResourceInner serviceUnitInfo,
+ Context context);
+
+ /**
+ * Gets the service unit.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @param serviceUnitName The name of the service unit resource.
+ * @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 service unit.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ServiceUnitResourceInner get(
+ String resourceGroupName, String serviceTopologyName, String serviceName, String serviceUnitName);
+
+ /**
+ * Gets the service unit.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @param serviceUnitName The name of the service unit resource.
+ * @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 service unit.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String serviceTopologyName,
+ String serviceName,
+ String serviceUnitName,
+ Context context);
+
+ /**
+ * Deletes the service unit.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @param serviceUnitName The name of the service unit resource.
+ * @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 resourceGroupName, String serviceTopologyName, String serviceName, String serviceUnitName);
+
+ /**
+ * Deletes the service unit.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @param serviceUnitName The name of the service unit resource.
+ * @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 resourceGroupName,
+ String serviceTopologyName,
+ String serviceName,
+ String serviceUnitName,
+ Context context);
+
+ /**
+ * Lists the service units under a service in the service topology.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @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 list of service units.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ List list(String resourceGroupName, String serviceTopologyName, String serviceName);
+
+ /**
+ * Lists the service units under a service in the service topology.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @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 list of service units.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response> listWithResponse(
+ String resourceGroupName, String serviceTopologyName, String serviceName, Context context);
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/ServicesClient.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/ServicesClient.java
new file mode 100644
index 000000000000..130e1d34a638
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/ServicesClient.java
@@ -0,0 +1,139 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.deploymentmanager.fluent.models.ServiceResourceInner;
+import java.util.List;
+
+/** An instance of this class provides access to all the operations defined in ServicesClient. */
+public interface ServicesClient {
+ /**
+ * Synchronously creates a new service or updates an existing service.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @param serviceInfo The service object.
+ * @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 resource representation of a service in a service topology.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ServiceResourceInner createOrUpdate(
+ String resourceGroupName, String serviceTopologyName, String serviceName, ServiceResourceInner serviceInfo);
+
+ /**
+ * Synchronously creates a new service or updates an existing service.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @param serviceInfo The service object.
+ * @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 resource representation of a service in a service topology.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName,
+ String serviceTopologyName,
+ String serviceName,
+ ServiceResourceInner serviceInfo,
+ Context context);
+
+ /**
+ * Gets the service.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @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 service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ServiceResourceInner get(String resourceGroupName, String serviceTopologyName, String serviceName);
+
+ /**
+ * Gets the service.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @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 service.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String serviceTopologyName, String serviceName, Context context);
+
+ /**
+ * Deletes the service.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @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 resourceGroupName, String serviceTopologyName, String serviceName);
+
+ /**
+ * Deletes the service.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @param serviceName The name of the service resource.
+ * @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 resourceGroupName, String serviceTopologyName, String serviceName, Context context);
+
+ /**
+ * Lists the services in the service topology.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @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 list of services.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ List list(String resourceGroupName, String serviceTopologyName);
+
+ /**
+ * Lists the services in the service topology.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param serviceTopologyName The name of the service topology .
+ * @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 list of services.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response> listWithResponse(
+ String resourceGroupName, String serviceTopologyName, Context context);
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/StepsClient.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/StepsClient.java
new file mode 100644
index 000000000000..d354d32b916a
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/StepsClient.java
@@ -0,0 +1,123 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.deploymentmanager.fluent.models.StepResourceInner;
+import java.util.List;
+
+/** An instance of this class provides access to all the operations defined in StepsClient. */
+public interface StepsClient {
+ /**
+ * Synchronously creates a new step or updates an existing step.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param stepName The name of the deployment step.
+ * @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 resource representation of a rollout step.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StepResourceInner createOrUpdate(String resourceGroupName, String stepName);
+
+ /**
+ * Synchronously creates a new step or updates an existing step.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param stepName The name of the deployment step.
+ * @param stepInfo The step object.
+ * @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 resource representation of a rollout step.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String resourceGroupName, String stepName, StepResourceInner stepInfo, Context context);
+
+ /**
+ * Gets the step.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param stepName The name of the deployment step.
+ * @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 step.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ StepResourceInner getByResourceGroup(String resourceGroupName, String stepName);
+
+ /**
+ * Gets the step.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param stepName The name of the deployment step.
+ * @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 step.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String stepName, Context context);
+
+ /**
+ * Deletes the step.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param stepName The name of the deployment step.
+ * @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 resourceGroupName, String stepName);
+
+ /**
+ * Deletes the step.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param stepName The name of the deployment step.
+ * @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 resourceGroupName, String stepName, Context context);
+
+ /**
+ * Lists the steps in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 list of steps.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ List list(String resourceGroupName);
+
+ /**
+ * Lists the steps in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 list of steps.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response> listWithResponse(String resourceGroupName, Context context);
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/ArtifactSourceInner.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/ArtifactSourceInner.java
new file mode 100644
index 000000000000..18bf9a1f0d75
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/ArtifactSourceInner.java
@@ -0,0 +1,138 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.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.deploymentmanager.models.Authentication;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The resource that defines the source location where the artifacts are located. */
+@JsonFlatten
+@Fluent
+public class ArtifactSourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ArtifactSourceInner.class);
+
+ /*
+ * The type of artifact source used.
+ */
+ @JsonProperty(value = "properties.sourceType")
+ private String sourceType;
+
+ /*
+ * The path from the location that the 'authentication' property [say, a
+ * SAS URI to the blob container] refers to, to the location of the
+ * artifacts. This can be used to differentiate different versions of the
+ * artifacts. Or, different types of artifacts like binaries or templates.
+ * The location referenced by the authentication property concatenated with
+ * this optional artifactRoot path forms the artifact source location where
+ * the artifacts are expected to be found.
+ */
+ @JsonProperty(value = "properties.artifactRoot")
+ private String artifactRoot;
+
+ /*
+ * The authentication method to use to access the artifact source.
+ */
+ @JsonProperty(value = "properties.authentication")
+ private Authentication authentication;
+
+ /**
+ * Get the sourceType property: The type of artifact source used.
+ *
+ * @return the sourceType value.
+ */
+ public String sourceType() {
+ return this.sourceType;
+ }
+
+ /**
+ * Set the sourceType property: The type of artifact source used.
+ *
+ * @param sourceType the sourceType value to set.
+ * @return the ArtifactSourceInner object itself.
+ */
+ public ArtifactSourceInner withSourceType(String sourceType) {
+ this.sourceType = sourceType;
+ return this;
+ }
+
+ /**
+ * Get the artifactRoot property: The path from the location that the 'authentication' property [say, a SAS URI to
+ * the blob container] refers to, to the location of the artifacts. This can be used to differentiate different
+ * versions of the artifacts. Or, different types of artifacts like binaries or templates. The location referenced
+ * by the authentication property concatenated with this optional artifactRoot path forms the artifact source
+ * location where the artifacts are expected to be found.
+ *
+ * @return the artifactRoot value.
+ */
+ public String artifactRoot() {
+ return this.artifactRoot;
+ }
+
+ /**
+ * Set the artifactRoot property: The path from the location that the 'authentication' property [say, a SAS URI to
+ * the blob container] refers to, to the location of the artifacts. This can be used to differentiate different
+ * versions of the artifacts. Or, different types of artifacts like binaries or templates. The location referenced
+ * by the authentication property concatenated with this optional artifactRoot path forms the artifact source
+ * location where the artifacts are expected to be found.
+ *
+ * @param artifactRoot the artifactRoot value to set.
+ * @return the ArtifactSourceInner object itself.
+ */
+ public ArtifactSourceInner withArtifactRoot(String artifactRoot) {
+ this.artifactRoot = artifactRoot;
+ return this;
+ }
+
+ /**
+ * Get the authentication property: The authentication method to use to access the artifact source.
+ *
+ * @return the authentication value.
+ */
+ public Authentication authentication() {
+ return this.authentication;
+ }
+
+ /**
+ * Set the authentication property: The authentication method to use to access the artifact source.
+ *
+ * @param authentication the authentication value to set.
+ * @return the ArtifactSourceInner object itself.
+ */
+ public ArtifactSourceInner withAuthentication(Authentication authentication) {
+ this.authentication = authentication;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ArtifactSourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ArtifactSourceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (authentication() != null) {
+ authentication().validate();
+ }
+ }
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/OperationsListInner.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/OperationsListInner.java
new file mode 100644
index 000000000000..61555aca17c2
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/OperationsListInner.java
@@ -0,0 +1,54 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.deploymentmanager.models.Operation;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The operations response. */
+@Fluent
+public final class OperationsListInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationsListInner.class);
+
+ /*
+ * The list of supported operations
+ */
+ @JsonProperty(value = "value")
+ private Operation value;
+
+ /**
+ * Get the value property: The list of supported operations.
+ *
+ * @return the value value.
+ */
+ public Operation value() {
+ return this.value;
+ }
+
+ /**
+ * Set the value property: The list of supported operations.
+ *
+ * @param value the value value to set.
+ * @return the OperationsListInner object itself.
+ */
+ public OperationsListInner withValue(Operation value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (value() != null) {
+ value().validate();
+ }
+ }
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/RolloutInner.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/RolloutInner.java
new file mode 100644
index 000000000000..16bf84f5e31a
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/RolloutInner.java
@@ -0,0 +1,255 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.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.deploymentmanager.models.Identity;
+import com.azure.resourcemanager.deploymentmanager.models.RolloutOperationInfo;
+import com.azure.resourcemanager.deploymentmanager.models.Service;
+import com.azure.resourcemanager.deploymentmanager.models.StepGroup;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Defines the rollout. */
+@JsonFlatten
+@Fluent
+public class RolloutInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(RolloutInner.class);
+
+ /*
+ * Identity for the resource.
+ */
+ @JsonProperty(value = "identity")
+ private Identity identity;
+
+ /*
+ * The version of the build being deployed.
+ */
+ @JsonProperty(value = "properties.buildVersion")
+ private String buildVersion;
+
+ /*
+ * The reference to the artifact source resource Id where the payload is
+ * located.
+ */
+ @JsonProperty(value = "properties.artifactSourceId")
+ private String artifactSourceId;
+
+ /*
+ * The resource Id of the service topology from which service units are
+ * being referenced in step groups to be deployed.
+ */
+ @JsonProperty(value = "properties.targetServiceTopologyId")
+ private String targetServiceTopologyId;
+
+ /*
+ * The list of step groups that define the orchestration.
+ */
+ @JsonProperty(value = "properties.stepGroups")
+ private List stepGroups;
+
+ /*
+ * The current status of the rollout.
+ */
+ @JsonProperty(value = "properties.status", access = JsonProperty.Access.WRITE_ONLY)
+ private String status;
+
+ /*
+ * The cardinal count of total number of retries performed on the rollout
+ * at a given time.
+ */
+ @JsonProperty(value = "properties.totalRetryAttempts", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer totalRetryAttempts;
+
+ /*
+ * Operational information of the rollout.
+ */
+ @JsonProperty(value = "properties.operationInfo", access = JsonProperty.Access.WRITE_ONLY)
+ private RolloutOperationInfo operationInfo;
+
+ /*
+ * The detailed information on the services being deployed.
+ */
+ @JsonProperty(value = "properties.services", access = JsonProperty.Access.WRITE_ONLY)
+ private List services;
+
+ /**
+ * Get the identity property: Identity for the resource.
+ *
+ * @return the identity value.
+ */
+ public Identity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity property: Identity for the resource.
+ *
+ * @param identity the identity value to set.
+ * @return the RolloutInner object itself.
+ */
+ public RolloutInner withIdentity(Identity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /**
+ * Get the buildVersion property: The version of the build being deployed.
+ *
+ * @return the buildVersion value.
+ */
+ public String buildVersion() {
+ return this.buildVersion;
+ }
+
+ /**
+ * Set the buildVersion property: The version of the build being deployed.
+ *
+ * @param buildVersion the buildVersion value to set.
+ * @return the RolloutInner object itself.
+ */
+ public RolloutInner withBuildVersion(String buildVersion) {
+ this.buildVersion = buildVersion;
+ return this;
+ }
+
+ /**
+ * Get the artifactSourceId property: The reference to the artifact source resource Id where the payload is located.
+ *
+ * @return the artifactSourceId value.
+ */
+ public String artifactSourceId() {
+ return this.artifactSourceId;
+ }
+
+ /**
+ * Set the artifactSourceId property: The reference to the artifact source resource Id where the payload is located.
+ *
+ * @param artifactSourceId the artifactSourceId value to set.
+ * @return the RolloutInner object itself.
+ */
+ public RolloutInner withArtifactSourceId(String artifactSourceId) {
+ this.artifactSourceId = artifactSourceId;
+ return this;
+ }
+
+ /**
+ * Get the targetServiceTopologyId property: The resource Id of the service topology from which service units are
+ * being referenced in step groups to be deployed.
+ *
+ * @return the targetServiceTopologyId value.
+ */
+ public String targetServiceTopologyId() {
+ return this.targetServiceTopologyId;
+ }
+
+ /**
+ * Set the targetServiceTopologyId property: The resource Id of the service topology from which service units are
+ * being referenced in step groups to be deployed.
+ *
+ * @param targetServiceTopologyId the targetServiceTopologyId value to set.
+ * @return the RolloutInner object itself.
+ */
+ public RolloutInner withTargetServiceTopologyId(String targetServiceTopologyId) {
+ this.targetServiceTopologyId = targetServiceTopologyId;
+ return this;
+ }
+
+ /**
+ * Get the stepGroups property: The list of step groups that define the orchestration.
+ *
+ * @return the stepGroups value.
+ */
+ public List stepGroups() {
+ return this.stepGroups;
+ }
+
+ /**
+ * Set the stepGroups property: The list of step groups that define the orchestration.
+ *
+ * @param stepGroups the stepGroups value to set.
+ * @return the RolloutInner object itself.
+ */
+ public RolloutInner withStepGroups(List stepGroups) {
+ this.stepGroups = stepGroups;
+ return this;
+ }
+
+ /**
+ * Get the status property: The current status of the rollout.
+ *
+ * @return the status value.
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Get the totalRetryAttempts property: The cardinal count of total number of retries performed on the rollout at a
+ * given time.
+ *
+ * @return the totalRetryAttempts value.
+ */
+ public Integer totalRetryAttempts() {
+ return this.totalRetryAttempts;
+ }
+
+ /**
+ * Get the operationInfo property: Operational information of the rollout.
+ *
+ * @return the operationInfo value.
+ */
+ public RolloutOperationInfo operationInfo() {
+ return this.operationInfo;
+ }
+
+ /**
+ * Get the services property: The detailed information on the services being deployed.
+ *
+ * @return the services value.
+ */
+ public List services() {
+ return this.services;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public RolloutInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public RolloutInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (identity() != null) {
+ identity().validate();
+ }
+ if (stepGroups() != null) {
+ stepGroups().forEach(e -> e.validate());
+ }
+ if (operationInfo() != null) {
+ operationInfo().validate();
+ }
+ if (services() != null) {
+ services().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/RolloutRequestInner.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/RolloutRequestInner.java
new file mode 100644
index 000000000000..528f39e1dbe6
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/RolloutRequestInner.java
@@ -0,0 +1,205 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.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.deploymentmanager.models.Identity;
+import com.azure.resourcemanager.deploymentmanager.models.StepGroup;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Defines the PUT rollout request body. */
+@JsonFlatten
+@Fluent
+public class RolloutRequestInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(RolloutRequestInner.class);
+
+ /*
+ * Identity for the resource.
+ */
+ @JsonProperty(value = "identity", required = true)
+ private Identity identity;
+
+ /*
+ * The version of the build being deployed.
+ */
+ @JsonProperty(value = "properties.buildVersion", required = true)
+ private String buildVersion;
+
+ /*
+ * The reference to the artifact source resource Id where the payload is
+ * located.
+ */
+ @JsonProperty(value = "properties.artifactSourceId")
+ private String artifactSourceId;
+
+ /*
+ * The resource Id of the service topology from which service units are
+ * being referenced in step groups to be deployed.
+ */
+ @JsonProperty(value = "properties.targetServiceTopologyId", required = true)
+ private String targetServiceTopologyId;
+
+ /*
+ * The list of step groups that define the orchestration.
+ */
+ @JsonProperty(value = "properties.stepGroups", required = true)
+ private List stepGroups;
+
+ /**
+ * Get the identity property: Identity for the resource.
+ *
+ * @return the identity value.
+ */
+ public Identity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity property: Identity for the resource.
+ *
+ * @param identity the identity value to set.
+ * @return the RolloutRequestInner object itself.
+ */
+ public RolloutRequestInner withIdentity(Identity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /**
+ * Get the buildVersion property: The version of the build being deployed.
+ *
+ * @return the buildVersion value.
+ */
+ public String buildVersion() {
+ return this.buildVersion;
+ }
+
+ /**
+ * Set the buildVersion property: The version of the build being deployed.
+ *
+ * @param buildVersion the buildVersion value to set.
+ * @return the RolloutRequestInner object itself.
+ */
+ public RolloutRequestInner withBuildVersion(String buildVersion) {
+ this.buildVersion = buildVersion;
+ return this;
+ }
+
+ /**
+ * Get the artifactSourceId property: The reference to the artifact source resource Id where the payload is located.
+ *
+ * @return the artifactSourceId value.
+ */
+ public String artifactSourceId() {
+ return this.artifactSourceId;
+ }
+
+ /**
+ * Set the artifactSourceId property: The reference to the artifact source resource Id where the payload is located.
+ *
+ * @param artifactSourceId the artifactSourceId value to set.
+ * @return the RolloutRequestInner object itself.
+ */
+ public RolloutRequestInner withArtifactSourceId(String artifactSourceId) {
+ this.artifactSourceId = artifactSourceId;
+ return this;
+ }
+
+ /**
+ * Get the targetServiceTopologyId property: The resource Id of the service topology from which service units are
+ * being referenced in step groups to be deployed.
+ *
+ * @return the targetServiceTopologyId value.
+ */
+ public String targetServiceTopologyId() {
+ return this.targetServiceTopologyId;
+ }
+
+ /**
+ * Set the targetServiceTopologyId property: The resource Id of the service topology from which service units are
+ * being referenced in step groups to be deployed.
+ *
+ * @param targetServiceTopologyId the targetServiceTopologyId value to set.
+ * @return the RolloutRequestInner object itself.
+ */
+ public RolloutRequestInner withTargetServiceTopologyId(String targetServiceTopologyId) {
+ this.targetServiceTopologyId = targetServiceTopologyId;
+ return this;
+ }
+
+ /**
+ * Get the stepGroups property: The list of step groups that define the orchestration.
+ *
+ * @return the stepGroups value.
+ */
+ public List stepGroups() {
+ return this.stepGroups;
+ }
+
+ /**
+ * Set the stepGroups property: The list of step groups that define the orchestration.
+ *
+ * @param stepGroups the stepGroups value to set.
+ * @return the RolloutRequestInner object itself.
+ */
+ public RolloutRequestInner withStepGroups(List stepGroups) {
+ this.stepGroups = stepGroups;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public RolloutRequestInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public RolloutRequestInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (identity() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property identity in model RolloutRequestInner"));
+ } else {
+ identity().validate();
+ }
+ if (buildVersion() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property buildVersion in model RolloutRequestInner"));
+ }
+ if (targetServiceTopologyId() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property targetServiceTopologyId in model RolloutRequestInner"));
+ }
+ if (stepGroups() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property stepGroups in model RolloutRequestInner"));
+ } else {
+ stepGroups().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/ServiceResourceInner.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/ServiceResourceInner.java
new file mode 100644
index 000000000000..e79ad40f9682
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/ServiceResourceInner.java
@@ -0,0 +1,112 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.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.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The resource representation of a service in a service topology. */
+@JsonFlatten
+@Fluent
+public class ServiceResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ServiceResourceInner.class);
+
+ /*
+ * The Azure location to which the resources in the service belong to or
+ * should be deployed to.
+ */
+ @JsonProperty(value = "properties.targetLocation", required = true)
+ private String targetLocation;
+
+ /*
+ * The subscription to which the resources in the service belong to or
+ * should be deployed to.
+ */
+ @JsonProperty(value = "properties.targetSubscriptionId", required = true)
+ private String targetSubscriptionId;
+
+ /**
+ * Get the targetLocation property: The Azure location to which the resources in the service belong to or should be
+ * deployed to.
+ *
+ * @return the targetLocation value.
+ */
+ public String targetLocation() {
+ return this.targetLocation;
+ }
+
+ /**
+ * Set the targetLocation property: The Azure location to which the resources in the service belong to or should be
+ * deployed to.
+ *
+ * @param targetLocation the targetLocation value to set.
+ * @return the ServiceResourceInner object itself.
+ */
+ public ServiceResourceInner withTargetLocation(String targetLocation) {
+ this.targetLocation = targetLocation;
+ return this;
+ }
+
+ /**
+ * Get the targetSubscriptionId property: The subscription to which the resources in the service belong to or should
+ * be deployed to.
+ *
+ * @return the targetSubscriptionId value.
+ */
+ public String targetSubscriptionId() {
+ return this.targetSubscriptionId;
+ }
+
+ /**
+ * Set the targetSubscriptionId property: The subscription to which the resources in the service belong to or should
+ * be deployed to.
+ *
+ * @param targetSubscriptionId the targetSubscriptionId value to set.
+ * @return the ServiceResourceInner object itself.
+ */
+ public ServiceResourceInner withTargetSubscriptionId(String targetSubscriptionId) {
+ this.targetSubscriptionId = targetSubscriptionId;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ServiceResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ServiceResourceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (targetLocation() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property targetLocation in model ServiceResourceInner"));
+ }
+ if (targetSubscriptionId() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property targetSubscriptionId in model ServiceResourceInner"));
+ }
+ }
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/ServiceTopologyResourceInner.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/ServiceTopologyResourceInner.java
new file mode 100644
index 000000000000..c496a72a722e
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/ServiceTopologyResourceInner.java
@@ -0,0 +1,71 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.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.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The resource representation of a service topology. */
+@JsonFlatten
+@Fluent
+public class ServiceTopologyResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ServiceTopologyResourceInner.class);
+
+ /*
+ * The resource Id of the artifact source that contains the artifacts that
+ * can be referenced in the service units.
+ */
+ @JsonProperty(value = "properties.artifactSourceId")
+ private String artifactSourceId;
+
+ /**
+ * Get the artifactSourceId property: The resource Id of the artifact source that contains the artifacts that can be
+ * referenced in the service units.
+ *
+ * @return the artifactSourceId value.
+ */
+ public String artifactSourceId() {
+ return this.artifactSourceId;
+ }
+
+ /**
+ * Set the artifactSourceId property: The resource Id of the artifact source that contains the artifacts that can be
+ * referenced in the service units.
+ *
+ * @param artifactSourceId the artifactSourceId value to set.
+ * @return the ServiceTopologyResourceInner object itself.
+ */
+ public ServiceTopologyResourceInner withArtifactSourceId(String artifactSourceId) {
+ this.artifactSourceId = artifactSourceId;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ServiceTopologyResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ServiceTopologyResourceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/ServiceUnitResourceInner.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/ServiceUnitResourceInner.java
new file mode 100644
index 000000000000..2472e2289699
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/ServiceUnitResourceInner.java
@@ -0,0 +1,140 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.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.deploymentmanager.models.DeploymentMode;
+import com.azure.resourcemanager.deploymentmanager.models.ServiceUnitArtifacts;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Represents the response of a service unit resource. */
+@JsonFlatten
+@Fluent
+public class ServiceUnitResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ServiceUnitResourceInner.class);
+
+ /*
+ * The Azure Resource Group to which the resources in the service unit
+ * belong to or should be deployed to.
+ */
+ @JsonProperty(value = "properties.targetResourceGroup", required = true)
+ private String targetResourceGroup;
+
+ /*
+ * Describes the type of ARM deployment to be performed on the resource.
+ */
+ @JsonProperty(value = "properties.deploymentMode", required = true)
+ private DeploymentMode deploymentMode;
+
+ /*
+ * The artifacts for the service unit.
+ */
+ @JsonProperty(value = "properties.artifacts")
+ private ServiceUnitArtifacts artifacts;
+
+ /**
+ * Get the targetResourceGroup property: The Azure Resource Group to which the resources in the service unit belong
+ * to or should be deployed to.
+ *
+ * @return the targetResourceGroup value.
+ */
+ public String targetResourceGroup() {
+ return this.targetResourceGroup;
+ }
+
+ /**
+ * Set the targetResourceGroup property: The Azure Resource Group to which the resources in the service unit belong
+ * to or should be deployed to.
+ *
+ * @param targetResourceGroup the targetResourceGroup value to set.
+ * @return the ServiceUnitResourceInner object itself.
+ */
+ public ServiceUnitResourceInner withTargetResourceGroup(String targetResourceGroup) {
+ this.targetResourceGroup = targetResourceGroup;
+ return this;
+ }
+
+ /**
+ * Get the deploymentMode property: Describes the type of ARM deployment to be performed on the resource.
+ *
+ * @return the deploymentMode value.
+ */
+ public DeploymentMode deploymentMode() {
+ return this.deploymentMode;
+ }
+
+ /**
+ * Set the deploymentMode property: Describes the type of ARM deployment to be performed on the resource.
+ *
+ * @param deploymentMode the deploymentMode value to set.
+ * @return the ServiceUnitResourceInner object itself.
+ */
+ public ServiceUnitResourceInner withDeploymentMode(DeploymentMode deploymentMode) {
+ this.deploymentMode = deploymentMode;
+ return this;
+ }
+
+ /**
+ * Get the artifacts property: The artifacts for the service unit.
+ *
+ * @return the artifacts value.
+ */
+ public ServiceUnitArtifacts artifacts() {
+ return this.artifacts;
+ }
+
+ /**
+ * Set the artifacts property: The artifacts for the service unit.
+ *
+ * @param artifacts the artifacts value to set.
+ * @return the ServiceUnitResourceInner object itself.
+ */
+ public ServiceUnitResourceInner withArtifacts(ServiceUnitArtifacts artifacts) {
+ this.artifacts = artifacts;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ServiceUnitResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ServiceUnitResourceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (targetResourceGroup() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property targetResourceGroup in model ServiceUnitResourceInner"));
+ }
+ if (deploymentMode() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property deploymentMode in model ServiceUnitResourceInner"));
+ }
+ if (artifacts() != null) {
+ artifacts().validate();
+ }
+ }
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/StepResourceInner.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/StepResourceInner.java
new file mode 100644
index 000000000000..3040041be1ef
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/StepResourceInner.java
@@ -0,0 +1,74 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.deploymentmanager.models.StepProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The resource representation of a rollout step. */
+@Fluent
+public final class StepResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(StepResourceInner.class);
+
+ /*
+ * The properties that define the step.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private StepProperties properties;
+
+ /**
+ * Get the properties property: The properties that define the step.
+ *
+ * @return the properties value.
+ */
+ public StepProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: The properties that define the step.
+ *
+ * @param properties the properties value to set.
+ * @return the StepResourceInner object itself.
+ */
+ public StepResourceInner withProperties(StepProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public StepResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public StepResourceInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property properties in model StepResourceInner"));
+ } else {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/package-info.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/package-info.java
new file mode 100644
index 000000000000..7cc5535347d8
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/models/package-info.java
@@ -0,0 +1,10 @@
+// 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 AzureDeploymentManager. REST APIs for orchestrating deployments using
+ * the Azure Deployment Manager (ADM). See
+ * https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-manager-overview for more information.
+ */
+package com.azure.resourcemanager.deploymentmanager.fluent.models;
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/package-info.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/package-info.java
new file mode 100644
index 000000000000..9230ccea9da4
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/fluent/package-info.java
@@ -0,0 +1,10 @@
+// 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 AzureDeploymentManager. REST APIs for orchestrating deployments using the
+ * Azure Deployment Manager (ADM). See
+ * https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-manager-overview for more information.
+ */
+package com.azure.resourcemanager.deploymentmanager.fluent;
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/ArtifactSourceImpl.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/ArtifactSourceImpl.java
new file mode 100644
index 000000000000..c3daf0df5962
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/ArtifactSourceImpl.java
@@ -0,0 +1,189 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.implementation;
+
+import com.azure.core.management.Region;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.deploymentmanager.fluent.models.ArtifactSourceInner;
+import com.azure.resourcemanager.deploymentmanager.models.ArtifactSource;
+import com.azure.resourcemanager.deploymentmanager.models.Authentication;
+import java.util.Collections;
+import java.util.Map;
+
+public final class ArtifactSourceImpl implements ArtifactSource, ArtifactSource.Definition, ArtifactSource.Update {
+ private ArtifactSourceInner innerObject;
+
+ private final com.azure.resourcemanager.deploymentmanager.DeploymentManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public String location() {
+ return this.innerModel().location();
+ }
+
+ public Map tags() {
+ Map inner = this.innerModel().tags();
+ if (inner != null) {
+ return Collections.unmodifiableMap(inner);
+ } else {
+ return Collections.emptyMap();
+ }
+ }
+
+ public String sourceType() {
+ return this.innerModel().sourceType();
+ }
+
+ public String artifactRoot() {
+ return this.innerModel().artifactRoot();
+ }
+
+ public Authentication authentication() {
+ return this.innerModel().authentication();
+ }
+
+ public Region region() {
+ return Region.fromName(this.regionName());
+ }
+
+ public String regionName() {
+ return this.location();
+ }
+
+ public ArtifactSourceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.deploymentmanager.DeploymentManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String artifactSourceName;
+
+ public ArtifactSourceImpl withExistingResourceGroup(String resourceGroupName) {
+ this.resourceGroupName = resourceGroupName;
+ return this;
+ }
+
+ public ArtifactSource create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getArtifactSources()
+ .createOrUpdateWithResponse(resourceGroupName, artifactSourceName, this.innerModel(), Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public ArtifactSource create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getArtifactSources()
+ .createOrUpdateWithResponse(resourceGroupName, artifactSourceName, this.innerModel(), context)
+ .getValue();
+ return this;
+ }
+
+ ArtifactSourceImpl(String name, com.azure.resourcemanager.deploymentmanager.DeploymentManager serviceManager) {
+ this.innerObject = new ArtifactSourceInner();
+ this.serviceManager = serviceManager;
+ this.artifactSourceName = name;
+ }
+
+ public ArtifactSourceImpl update() {
+ return this;
+ }
+
+ public ArtifactSource apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getArtifactSources()
+ .createOrUpdateWithResponse(resourceGroupName, artifactSourceName, this.innerModel(), Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public ArtifactSource apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getArtifactSources()
+ .createOrUpdateWithResponse(resourceGroupName, artifactSourceName, this.innerModel(), context)
+ .getValue();
+ return this;
+ }
+
+ ArtifactSourceImpl(
+ ArtifactSourceInner innerObject, com.azure.resourcemanager.deploymentmanager.DeploymentManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.artifactSourceName = Utils.getValueFromIdByName(innerObject.id(), "artifactSources");
+ }
+
+ public ArtifactSource refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getArtifactSources()
+ .getByResourceGroupWithResponse(resourceGroupName, artifactSourceName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public ArtifactSource refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getArtifactSources()
+ .getByResourceGroupWithResponse(resourceGroupName, artifactSourceName, context)
+ .getValue();
+ return this;
+ }
+
+ public ArtifactSourceImpl withRegion(Region location) {
+ this.innerModel().withLocation(location.toString());
+ return this;
+ }
+
+ public ArtifactSourceImpl withRegion(String location) {
+ this.innerModel().withLocation(location);
+ return this;
+ }
+
+ public ArtifactSourceImpl withTags(Map tags) {
+ this.innerModel().withTags(tags);
+ return this;
+ }
+
+ public ArtifactSourceImpl withSourceType(String sourceType) {
+ this.innerModel().withSourceType(sourceType);
+ return this;
+ }
+
+ public ArtifactSourceImpl withArtifactRoot(String artifactRoot) {
+ this.innerModel().withArtifactRoot(artifactRoot);
+ return this;
+ }
+
+ public ArtifactSourceImpl withAuthentication(Authentication authentication) {
+ this.innerModel().withAuthentication(authentication);
+ return this;
+ }
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/ArtifactSourcesClientImpl.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/ArtifactSourcesClientImpl.java
new file mode 100644
index 000000000000..958dd4083f08
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/ArtifactSourcesClientImpl.java
@@ -0,0 +1,736 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Put;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.deploymentmanager.fluent.ArtifactSourcesClient;
+import com.azure.resourcemanager.deploymentmanager.fluent.models.ArtifactSourceInner;
+import java.util.List;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in ArtifactSourcesClient. */
+public final class ArtifactSourcesClientImpl implements ArtifactSourcesClient {
+ private final ClientLogger logger = new ClientLogger(ArtifactSourcesClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final ArtifactSourcesService service;
+
+ /** The service client containing this operation class. */
+ private final AzureDeploymentManagerImpl client;
+
+ /**
+ * Initializes an instance of ArtifactSourcesClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ ArtifactSourcesClientImpl(AzureDeploymentManagerImpl client) {
+ this.service =
+ RestProxy.create(ArtifactSourcesService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AzureDeploymentManagerArtifactSources to be used by the proxy service
+ * to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "AzureDeploymentManag")
+ private interface ArtifactSourcesService {
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager"
+ + "/artifactSources/{artifactSourceName}")
+ @ExpectedResponses({201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("artifactSourceName") String artifactSourceName,
+ @QueryParam("api-version") String apiVersion,
+ @BodyParam("application/json") ArtifactSourceInner artifactSourceInfo,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager"
+ + "/artifactSources/{artifactSourceName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getByResourceGroup(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("artifactSourceName") String artifactSourceName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager"
+ + "/artifactSources/{artifactSourceName}")
+ @ExpectedResponses({200, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("artifactSourceName") String artifactSourceName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager"
+ + "/artifactSources")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @param artifactSourceInfo Source object that defines the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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 resource that defines the source location where the artifacts are located.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String artifactSourceName, ArtifactSourceInner artifactSourceInfo) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (artifactSourceName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter artifactSourceName is required and cannot be null."));
+ }
+ if (artifactSourceInfo != null) {
+ artifactSourceInfo.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ artifactSourceName,
+ this.client.getApiVersion(),
+ artifactSourceInfo,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @param artifactSourceInfo Source object that defines the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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 resource that defines the source location where the artifacts are located.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String artifactSourceName, ArtifactSourceInner artifactSourceInfo, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (artifactSourceName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter artifactSourceName is required and cannot be null."));
+ }
+ if (artifactSourceInfo != null) {
+ artifactSourceInfo.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ artifactSourceName,
+ this.client.getApiVersion(),
+ artifactSourceInfo,
+ accept,
+ context);
+ }
+
+ /**
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @param artifactSourceInfo Source object that defines the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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 resource that defines the source location where the artifacts are located.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName, String artifactSourceName, ArtifactSourceInner artifactSourceInfo) {
+ return createOrUpdateWithResponseAsync(resourceGroupName, artifactSourceName, artifactSourceInfo)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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 resource that defines the source location where the artifacts are located.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(String resourceGroupName, String artifactSourceName) {
+ final ArtifactSourceInner artifactSourceInfo = null;
+ return createOrUpdateWithResponseAsync(resourceGroupName, artifactSourceName, artifactSourceInfo)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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 resource that defines the source location where the artifacts are located.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ArtifactSourceInner createOrUpdate(String resourceGroupName, String artifactSourceName) {
+ final ArtifactSourceInner artifactSourceInfo = null;
+ return createOrUpdateAsync(resourceGroupName, artifactSourceName, artifactSourceInfo).block();
+ }
+
+ /**
+ * Synchronously creates a new artifact source or updates an existing artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @param artifactSourceInfo Source object that defines the resource.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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 resource that defines the source location where the artifacts are located.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response createOrUpdateWithResponse(
+ String resourceGroupName, String artifactSourceName, ArtifactSourceInner artifactSourceInfo, Context context) {
+ return createOrUpdateWithResponseAsync(resourceGroupName, artifactSourceName, artifactSourceInfo, context)
+ .block();
+ }
+
+ /**
+ * Gets an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an artifact source.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(
+ String resourceGroupName, String artifactSourceName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (artifactSourceName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter artifactSourceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .getByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ artifactSourceName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an artifact source.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(
+ String resourceGroupName, String artifactSourceName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (artifactSourceName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter artifactSourceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .getByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ artifactSourceName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an artifact source.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getByResourceGroupAsync(String resourceGroupName, String artifactSourceName) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, artifactSourceName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an artifact source.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ArtifactSourceInner getByResourceGroup(String resourceGroupName, String artifactSourceName) {
+ return getByResourceGroupAsync(resourceGroupName, artifactSourceName).block();
+ }
+
+ /**
+ * Gets an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an artifact source.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getByResourceGroupWithResponse(
+ String resourceGroupName, String artifactSourceName, Context context) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, artifactSourceName, context).block();
+ }
+
+ /**
+ * Deletes an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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)
+ private Mono> deleteWithResponseAsync(String resourceGroupName, String artifactSourceName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (artifactSourceName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter artifactSourceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ artifactSourceName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Deletes an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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)
+ private Mono> deleteWithResponseAsync(
+ String resourceGroupName, String artifactSourceName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (artifactSourceName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter artifactSourceName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ artifactSourceName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Deletes an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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)
+ private Mono deleteAsync(String resourceGroupName, String artifactSourceName) {
+ return deleteWithResponseAsync(resourceGroupName, artifactSourceName)
+ .flatMap((Response res) -> Mono.empty());
+ }
+
+ /**
+ * Deletes an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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)
+ public void delete(String resourceGroupName, String artifactSourceName) {
+ deleteAsync(resourceGroupName, artifactSourceName).block();
+ }
+
+ /**
+ * Deletes an artifact source.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param artifactSourceName The name of the artifact source.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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)
+ public Response deleteWithResponse(String resourceGroupName, String artifactSourceName, Context context) {
+ return deleteWithResponseAsync(resourceGroupName, artifactSourceName, context).block();
+ }
+
+ /**
+ * Lists the artifact sources in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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 list of artifact sources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> listWithResponseAsync(String resourceGroupName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Lists the artifact sources in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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 list of artifact sources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> listWithResponseAsync(String resourceGroupName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Lists the artifact sources in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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 list of artifact sources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listAsync(String resourceGroupName) {
+ return listWithResponseAsync(resourceGroupName)
+ .flatMap(
+ (Response> res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Lists the artifact sources in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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 list of artifact sources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public List list(String resourceGroupName) {
+ return listAsync(resourceGroupName).block();
+ }
+
+ /**
+ * Lists the artifact sources in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws 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 list of artifact sources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response> listWithResponse(String resourceGroupName, Context context) {
+ return listWithResponseAsync(resourceGroupName, context).block();
+ }
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/ArtifactSourcesImpl.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/ArtifactSourcesImpl.java
new file mode 100644
index 000000000000..3263cb1ee83a
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/ArtifactSourcesImpl.java
@@ -0,0 +1,188 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.implementation;
+
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.deploymentmanager.fluent.ArtifactSourcesClient;
+import com.azure.resourcemanager.deploymentmanager.fluent.models.ArtifactSourceInner;
+import com.azure.resourcemanager.deploymentmanager.models.ArtifactSource;
+import com.azure.resourcemanager.deploymentmanager.models.ArtifactSources;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public final class ArtifactSourcesImpl implements ArtifactSources {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ArtifactSourcesImpl.class);
+
+ private final ArtifactSourcesClient innerClient;
+
+ private final com.azure.resourcemanager.deploymentmanager.DeploymentManager serviceManager;
+
+ public ArtifactSourcesImpl(
+ ArtifactSourcesClient innerClient,
+ com.azure.resourcemanager.deploymentmanager.DeploymentManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public ArtifactSource getByResourceGroup(String resourceGroupName, String artifactSourceName) {
+ ArtifactSourceInner inner = this.serviceClient().getByResourceGroup(resourceGroupName, artifactSourceName);
+ if (inner != null) {
+ return new ArtifactSourceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getByResourceGroupWithResponse(
+ String resourceGroupName, String artifactSourceName, Context context) {
+ Response inner =
+ this.serviceClient().getByResourceGroupWithResponse(resourceGroupName, artifactSourceName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new ArtifactSourceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public void deleteByResourceGroup(String resourceGroupName, String artifactSourceName) {
+ this.serviceClient().delete(resourceGroupName, artifactSourceName);
+ }
+
+ public Response deleteWithResponse(String resourceGroupName, String artifactSourceName, Context context) {
+ return this.serviceClient().deleteWithResponse(resourceGroupName, artifactSourceName, context);
+ }
+
+ public List list(String resourceGroupName) {
+ List inner = this.serviceClient().list(resourceGroupName);
+ if (inner != null) {
+ return Collections
+ .unmodifiableList(
+ inner
+ .stream()
+ .map(inner1 -> new ArtifactSourceImpl(inner1, this.manager()))
+ .collect(Collectors.toList()));
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public Response> listWithResponse(String resourceGroupName, Context context) {
+ Response> inner = this.serviceClient().listWithResponse(resourceGroupName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ inner
+ .getValue()
+ .stream()
+ .map(inner1 -> new ArtifactSourceImpl(inner1, this.manager()))
+ .collect(Collectors.toList()));
+ } else {
+ return null;
+ }
+ }
+
+ public ArtifactSource getById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String artifactSourceName = Utils.getValueFromIdByName(id, "artifactSources");
+ if (artifactSourceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'artifactSources'.", id)));
+ }
+ return this.getByResourceGroupWithResponse(resourceGroupName, artifactSourceName, Context.NONE).getValue();
+ }
+
+ public Response getByIdWithResponse(String id, Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String artifactSourceName = Utils.getValueFromIdByName(id, "artifactSources");
+ if (artifactSourceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'artifactSources'.", id)));
+ }
+ return this.getByResourceGroupWithResponse(resourceGroupName, artifactSourceName, context);
+ }
+
+ public void deleteById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String artifactSourceName = Utils.getValueFromIdByName(id, "artifactSources");
+ if (artifactSourceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'artifactSources'.", id)));
+ }
+ this.deleteWithResponse(resourceGroupName, artifactSourceName, Context.NONE).getValue();
+ }
+
+ public Response deleteByIdWithResponse(String id, Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String artifactSourceName = Utils.getValueFromIdByName(id, "artifactSources");
+ if (artifactSourceName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'artifactSources'.", id)));
+ }
+ return this.deleteWithResponse(resourceGroupName, artifactSourceName, context);
+ }
+
+ private ArtifactSourcesClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.deploymentmanager.DeploymentManager manager() {
+ return this.serviceManager;
+ }
+
+ public ArtifactSourceImpl define(String name) {
+ return new ArtifactSourceImpl(name, this.manager());
+ }
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/AzureDeploymentManagerBuilder.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/AzureDeploymentManagerBuilder.java
new file mode 100644
index 000000000000..749309f9da1f
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/AzureDeploymentManagerBuilder.java
@@ -0,0 +1,149 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.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 AzureDeploymentManagerImpl type. */
+@ServiceClientBuilder(serviceClients = {AzureDeploymentManagerImpl.class})
+public final class AzureDeploymentManagerBuilder {
+ /*
+ * Subscription credentials which uniquely identify Microsoft Azure
+ * subscription. The subscription ID forms part of the URI for every
+ * service call.
+ */
+ private String subscriptionId;
+
+ /**
+ * Sets Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms
+ * part of the URI for every service call.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the AzureDeploymentManagerBuilder.
+ */
+ public AzureDeploymentManagerBuilder subscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /*
+ * server parameter
+ */
+ private String endpoint;
+
+ /**
+ * Sets server parameter.
+ *
+ * @param endpoint the endpoint value.
+ * @return the AzureDeploymentManagerBuilder.
+ */
+ public AzureDeploymentManagerBuilder 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 AzureDeploymentManagerBuilder.
+ */
+ public AzureDeploymentManagerBuilder 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 AzureDeploymentManagerBuilder.
+ */
+ public AzureDeploymentManagerBuilder 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 AzureDeploymentManagerBuilder.
+ */
+ public AzureDeploymentManagerBuilder 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 AzureDeploymentManagerBuilder.
+ */
+ public AzureDeploymentManagerBuilder serializerAdapter(SerializerAdapter serializerAdapter) {
+ this.serializerAdapter = serializerAdapter;
+ return this;
+ }
+
+ /**
+ * Builds an instance of AzureDeploymentManagerImpl with the provided parameters.
+ *
+ * @return an instance of AzureDeploymentManagerImpl.
+ */
+ public AzureDeploymentManagerImpl 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();
+ }
+ AzureDeploymentManagerImpl client =
+ new AzureDeploymentManagerImpl(
+ pipeline, serializerAdapter, defaultPollInterval, environment, subscriptionId, endpoint);
+ return client;
+ }
+}
diff --git a/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/AzureDeploymentManagerImpl.java b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/AzureDeploymentManagerImpl.java
new file mode 100644
index 000000000000..e4f27d4c4ae5
--- /dev/null
+++ b/sdk/deploymentmanager/azure-resourcemanager-deploymentmanager/src/main/java/com/azure/resourcemanager/deploymentmanager/implementation/AzureDeploymentManagerImpl.java
@@ -0,0 +1,382 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.deploymentmanager.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.deploymentmanager.fluent.ArtifactSourcesClient;
+import com.azure.resourcemanager.deploymentmanager.fluent.AzureDeploymentManager;
+import com.azure.resourcemanager.deploymentmanager.fluent.OperationsClient;
+import com.azure.resourcemanager.deploymentmanager.fluent.RolloutsClient;
+import com.azure.resourcemanager.deploymentmanager.fluent.ServiceTopologiesClient;
+import com.azure.resourcemanager.deploymentmanager.fluent.ServiceUnitsClient;
+import com.azure.resourcemanager.deploymentmanager.fluent.ServicesClient;
+import com.azure.resourcemanager.deploymentmanager.fluent.StepsClient;
+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 AzureDeploymentManagerImpl type. */
+@ServiceClient(builder = AzureDeploymentManagerBuilder.class)
+public final class AzureDeploymentManagerImpl implements AzureDeploymentManager {
+ private final ClientLogger logger = new ClientLogger(AzureDeploymentManagerImpl.class);
+
+ /**
+ * Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of
+ * the URI for every service call.
+ */
+ private final String subscriptionId;
+
+ /**
+ * Gets Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms
+ * part of the URI for every service call.
+ *
+ * @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 ServiceTopologiesClient object to access its operations. */
+ private final ServiceTopologiesClient serviceTopologies;
+
+ /**
+ * Gets the ServiceTopologiesClient object to access its operations.
+ *
+ * @return the ServiceTopologiesClient object.
+ */
+ public ServiceTopologiesClient getServiceTopologies() {
+ return this.serviceTopologies;
+ }
+
+ /** 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 ServiceUnitsClient object to access its operations. */
+ private final ServiceUnitsClient serviceUnits;
+
+ /**
+ * Gets the ServiceUnitsClient object to access its operations.
+ *
+ * @return the ServiceUnitsClient object.
+ */
+ public ServiceUnitsClient getServiceUnits() {
+ return this.serviceUnits;
+ }
+
+ /** The StepsClient object to access its operations. */
+ private final StepsClient steps;
+
+ /**
+ * Gets the StepsClient object to access its operations.
+ *
+ * @return the StepsClient object.
+ */
+ public StepsClient getSteps() {
+ return this.steps;
+ }
+
+ /** The RolloutsClient object to access its operations. */
+ private final RolloutsClient rollouts;
+
+ /**
+ * Gets the RolloutsClient object to access its operations.
+ *
+ * @return the RolloutsClient object.
+ */
+ public RolloutsClient getRollouts() {
+ return this.rollouts;
+ }
+
+ /** The ArtifactSourcesClient object to access its operations. */
+ private final ArtifactSourcesClient artifactSources;
+
+ /**
+ * Gets the ArtifactSourcesClient object to access its operations.
+ *
+ * @return the ArtifactSourcesClient object.
+ */
+ public ArtifactSourcesClient getArtifactSources() {
+ return this.artifactSources;
+ }
+
+ /** 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;
+ }
+
+ /**
+ * Initializes an instance of AzureDeploymentManager 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 Subscription credentials which uniquely identify Microsoft Azure subscription. The
+ * subscription ID forms part of the URI for every service call.
+ * @param endpoint server parameter.
+ */
+ AzureDeploymentManagerImpl(
+ 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 = "2019-11-01-preview";
+ this.serviceTopologies = new ServiceTopologiesClientImpl(this);
+ this.services = new ServicesClientImpl(this);
+ this.serviceUnits = new ServiceUnitsClientImpl(this);
+ this.steps = new StepsClientImpl(this);
+ this.rollouts = new RolloutsClientImpl(this);
+ this.artifactSources = new ArtifactSourcesClientImpl(this);
+ this.operations = new OperationsClientImpl(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