diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index a0227c2b9ee22..f157f97d008b1 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -200,6 +200,7 @@ com.azure.resourcemanager:azure-resourcemanager-loganalytics;1.0.0-beta.1;1.0.0-
com.azure.resourcemanager:azure-resourcemanager-eventgrid;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-healthbot;1.0.0-beta.1;1.0.0-beta.1
com.azure.resourcemanager:azure-resourcemanager-confluent;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-recoveryservicesbackup;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 3d84dd84ceb34..fae600ef1f081 100644
--- a/pom.xml
+++ b/pom.xml
@@ -585,6 +585,7 @@
sdk/postgresql
sdk/quantum
sdk/recoveryservices
+ sdk/recoveryservicesbackup
sdk/relay
sdk/resourcemanager
sdk/schemaregistry
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/CHANGELOG.md b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/CHANGELOG.md
new file mode 100644
index 0000000000000..6dcbc38a040ad
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2021-02-06)
+
+- Azure Resource Manager RecoveryServicesBackup client library for Java. This package contains Microsoft Azure SDK for RecoveryServicesBackup Management SDK. Open API 2.0 Specs for Azure RecoveryServices Backup service. Package tag package-2021-01. 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/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/README.md b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/README.md
new file mode 100644
index 0000000000000..14921d0bb8e66
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/README.md
@@ -0,0 +1,99 @@
+# Azure Resource Manager RecoveryServicesBackup client library for Java
+
+Azure Resource Manager RecoveryServicesBackup client library for Java.
+
+This package contains Microsoft Azure SDK for RecoveryServicesBackup Management SDK. Open API 2.0 Specs for Azure RecoveryServices Backup service. Package tag package-2021-01. 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-recoveryservicesbackup;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-recoveryservicesbackup
+ 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();
+RecoveryServicesBackupManager manager = RecoveryServicesBackupManager
+ .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/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/pom.xml b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/pom.xml
new file mode 100644
index 0000000000000..9ad0615ce35ad
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/pom.xml
@@ -0,0 +1,62 @@
+
+ 4.0.0
+
+ com.azure
+ azure-client-sdk-parent
+ 1.7.0
+ ../../parents/azure-client-sdk-parent
+
+
+ com.azure.resourcemanager
+ azure-resourcemanager-recoveryservicesbackup
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for RecoveryServicesBackup Management
+ This package contains Microsoft Azure SDK for RecoveryServicesBackup Management SDK. Open API 2.0 Specs for Azure RecoveryServices Backup service. Package tag package-2021-01. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt
+ 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-management
+ 1.1.0
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.5
+
+ true
+
+
+
+
+
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/RecoveryServicesBackupManager.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/RecoveryServicesBackupManager.java
new file mode 100644
index 0000000000000..232009bf64d24
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/RecoveryServicesBackupManager.java
@@ -0,0 +1,851 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup;
+
+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.recoveryservicesbackup.fluent.RecoveryServicesBackupClient;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.AadPropertiesOperationsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupCrrJobDetailsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupCrrJobsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupEnginesImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupJobsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupOperationResultsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupOperationStatusesImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupPoliciesImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupProtectableItemsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupProtectedItemsCrrsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupProtectedItemsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupProtectionContainersImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupProtectionIntentsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupResourceEncryptionConfigsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupResourceStorageConfigsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupResourceVaultConfigsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupStatusImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupUsageSummariesImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupWorkloadItemsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BackupsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.BmsPrepareDataMoveOperationResultsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.CrossRegionRestoresImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.CrrOperationResultsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.CrrOperationStatusImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.ExportJobsOperationResultsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.FeatureSupportsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.ItemLevelRecoveryConnectionsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.JobCancellationsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.JobDetailsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.JobOperationResultsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.JobsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.OperationsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.OperationsOperationsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.PrivateEndpointConnectionsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.PrivateEndpointsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.ProtectableContainersImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.ProtectedItemOperationResultsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.ProtectedItemOperationStatusesImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.ProtectedItemsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.ProtectionContainerOperationResultsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.ProtectionContainerRefreshOperationResultsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.ProtectionContainersImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.ProtectionIntentsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.ProtectionPoliciesImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.ProtectionPolicyOperationResultsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.ProtectionPolicyOperationStatusesImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.RecoveryPointsCrrsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.RecoveryPointsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.RecoveryPointsRecommendedForMovesImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.RecoveryServicesBackupClientBuilder;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.ResourceProvidersImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.RestoresImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.implementation.SecurityPINsImpl;
+import com.azure.resourcemanager.recoveryservicesbackup.models.AadPropertiesOperations;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupCrrJobDetails;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupCrrJobs;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupEngines;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupJobs;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupOperationResults;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupOperationStatuses;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupPolicies;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupProtectableItems;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupProtectedItems;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupProtectedItemsCrrs;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupProtectionContainers;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupProtectionIntents;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupResourceEncryptionConfigs;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupResourceStorageConfigs;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupResourceVaultConfigs;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupStatus;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupUsageSummaries;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupWorkloadItems;
+import com.azure.resourcemanager.recoveryservicesbackup.models.Backups;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BmsPrepareDataMoveOperationResults;
+import com.azure.resourcemanager.recoveryservicesbackup.models.CrossRegionRestores;
+import com.azure.resourcemanager.recoveryservicesbackup.models.CrrOperationResults;
+import com.azure.resourcemanager.recoveryservicesbackup.models.CrrOperationStatus;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ExportJobsOperationResults;
+import com.azure.resourcemanager.recoveryservicesbackup.models.FeatureSupports;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ItemLevelRecoveryConnections;
+import com.azure.resourcemanager.recoveryservicesbackup.models.JobCancellations;
+import com.azure.resourcemanager.recoveryservicesbackup.models.JobDetails;
+import com.azure.resourcemanager.recoveryservicesbackup.models.JobOperationResults;
+import com.azure.resourcemanager.recoveryservicesbackup.models.Jobs;
+import com.azure.resourcemanager.recoveryservicesbackup.models.Operations;
+import com.azure.resourcemanager.recoveryservicesbackup.models.OperationsOperations;
+import com.azure.resourcemanager.recoveryservicesbackup.models.PrivateEndpointConnections;
+import com.azure.resourcemanager.recoveryservicesbackup.models.PrivateEndpoints;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectableContainers;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectedItemOperationResults;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectedItemOperationStatuses;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectedItems;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectionContainerOperationResults;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectionContainerRefreshOperationResults;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectionContainers;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectionIntents;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectionPolicies;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectionPolicyOperationResults;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectionPolicyOperationStatuses;
+import com.azure.resourcemanager.recoveryservicesbackup.models.RecoveryPoints;
+import com.azure.resourcemanager.recoveryservicesbackup.models.RecoveryPointsCrrs;
+import com.azure.resourcemanager.recoveryservicesbackup.models.RecoveryPointsRecommendedForMoves;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ResourceProviders;
+import com.azure.resourcemanager.recoveryservicesbackup.models.Restores;
+import com.azure.resourcemanager.recoveryservicesbackup.models.SecurityPINs;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/** Entry point to RecoveryServicesBackupManager. Open API 2.0 Specs for Azure RecoveryServices Backup service. */
+public final class RecoveryServicesBackupManager {
+ private BackupResourceVaultConfigs backupResourceVaultConfigs;
+
+ private BackupResourceEncryptionConfigs backupResourceEncryptionConfigs;
+
+ private PrivateEndpointConnections privateEndpointConnections;
+
+ private PrivateEndpoints privateEndpoints;
+
+ private ResourceProviders resourceProviders;
+
+ private BmsPrepareDataMoveOperationResults bmsPrepareDataMoveOperationResults;
+
+ private ProtectedItems protectedItems;
+
+ private ProtectedItemOperationResults protectedItemOperationResults;
+
+ private RecoveryPoints recoveryPoints;
+
+ private Restores restores;
+
+ private BackupPolicies backupPolicies;
+
+ private ProtectionPolicies protectionPolicies;
+
+ private ProtectionPolicyOperationResults protectionPolicyOperationResults;
+
+ private BackupJobs backupJobs;
+
+ private JobDetails jobDetails;
+
+ private JobCancellations jobCancellations;
+
+ private JobOperationResults jobOperationResults;
+
+ private ExportJobsOperationResults exportJobsOperationResults;
+
+ private Jobs jobs;
+
+ private BackupProtectedItems backupProtectedItems;
+
+ private Operations operations;
+
+ private BackupEngines backupEngines;
+
+ private ProtectionContainerRefreshOperationResults protectionContainerRefreshOperationResults;
+
+ private ProtectableContainers protectableContainers;
+
+ private ProtectionContainers protectionContainers;
+
+ private BackupWorkloadItems backupWorkloadItems;
+
+ private ProtectionContainerOperationResults protectionContainerOperationResults;
+
+ private Backups backups;
+
+ private ProtectedItemOperationStatuses protectedItemOperationStatuses;
+
+ private ItemLevelRecoveryConnections itemLevelRecoveryConnections;
+
+ private BackupOperationResults backupOperationResults;
+
+ private BackupOperationStatuses backupOperationStatuses;
+
+ private ProtectionPolicyOperationStatuses protectionPolicyOperationStatuses;
+
+ private BackupProtectableItems backupProtectableItems;
+
+ private BackupProtectionContainers backupProtectionContainers;
+
+ private SecurityPINs securityPINs;
+
+ private RecoveryPointsRecommendedForMoves recoveryPointsRecommendedForMoves;
+
+ private AadPropertiesOperations aadPropertiesOperations;
+
+ private CrossRegionRestores crossRegionRestores;
+
+ private BackupCrrJobDetails backupCrrJobDetails;
+
+ private BackupCrrJobs backupCrrJobs;
+
+ private CrrOperationResults crrOperationResults;
+
+ private CrrOperationStatus crrOperationStatus;
+
+ private BackupResourceStorageConfigs backupResourceStorageConfigs;
+
+ private RecoveryPointsCrrs recoveryPointsCrrs;
+
+ private BackupProtectedItemsCrrs backupProtectedItemsCrrs;
+
+ private ProtectionIntents protectionIntents;
+
+ private BackupStatus backupStatus;
+
+ private FeatureSupports featureSupports;
+
+ private BackupProtectionIntents backupProtectionIntents;
+
+ private BackupUsageSummaries backupUsageSummaries;
+
+ private OperationsOperations operationsOperations;
+
+ private final RecoveryServicesBackupClient clientObject;
+
+ private RecoveryServicesBackupManager(
+ HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new RecoveryServicesBackupClientBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .subscriptionId(profile.getSubscriptionId())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of RecoveryServicesBackup service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the RecoveryServicesBackup service API instance.
+ */
+ public static RecoveryServicesBackupManager 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 RecoveryServicesBackupManager with optional
+ * configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new RecoveryServicesBackupManager.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 RecoveryServicesBackup service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the RecoveryServicesBackup service API instance.
+ */
+ public RecoveryServicesBackupManager 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.recoveryservicesbackup")
+ .append("/")
+ .append("1.0.0-beta.1");
+ if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
+ userAgentBuilder
+ .append(" (")
+ .append(Configuration.getGlobalConfiguration().get("java.version"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.name"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.version"))
+ .append("; auto-generated)");
+ } else {
+ userAgentBuilder.append(" (auto-generated)");
+ }
+
+ if (retryPolicy == null) {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new RequestIdPolicy());
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies
+ .add(
+ new BearerTokenAuthenticationPolicy(
+ credential, profile.getEnvironment().getManagementEndpoint() + "/.default"));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline =
+ new HttpPipelineBuilder()
+ .httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new RecoveryServicesBackupManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /** @return Resource collection API of BackupResourceVaultConfigs. */
+ public BackupResourceVaultConfigs backupResourceVaultConfigs() {
+ if (this.backupResourceVaultConfigs == null) {
+ this.backupResourceVaultConfigs =
+ new BackupResourceVaultConfigsImpl(clientObject.getBackupResourceVaultConfigs(), this);
+ }
+ return backupResourceVaultConfigs;
+ }
+
+ /** @return Resource collection API of BackupResourceEncryptionConfigs. */
+ public BackupResourceEncryptionConfigs backupResourceEncryptionConfigs() {
+ if (this.backupResourceEncryptionConfigs == null) {
+ this.backupResourceEncryptionConfigs =
+ new BackupResourceEncryptionConfigsImpl(clientObject.getBackupResourceEncryptionConfigs(), this);
+ }
+ return backupResourceEncryptionConfigs;
+ }
+
+ /** @return Resource collection API of PrivateEndpointConnections. */
+ public PrivateEndpointConnections privateEndpointConnections() {
+ if (this.privateEndpointConnections == null) {
+ this.privateEndpointConnections =
+ new PrivateEndpointConnectionsImpl(clientObject.getPrivateEndpointConnections(), this);
+ }
+ return privateEndpointConnections;
+ }
+
+ /** @return Resource collection API of PrivateEndpoints. */
+ public PrivateEndpoints privateEndpoints() {
+ if (this.privateEndpoints == null) {
+ this.privateEndpoints = new PrivateEndpointsImpl(clientObject.getPrivateEndpoints(), this);
+ }
+ return privateEndpoints;
+ }
+
+ /** @return Resource collection API of ResourceProviders. */
+ public ResourceProviders resourceProviders() {
+ if (this.resourceProviders == null) {
+ this.resourceProviders = new ResourceProvidersImpl(clientObject.getResourceProviders(), this);
+ }
+ return resourceProviders;
+ }
+
+ /** @return Resource collection API of BmsPrepareDataMoveOperationResults. */
+ public BmsPrepareDataMoveOperationResults bmsPrepareDataMoveOperationResults() {
+ if (this.bmsPrepareDataMoveOperationResults == null) {
+ this.bmsPrepareDataMoveOperationResults =
+ new BmsPrepareDataMoveOperationResultsImpl(clientObject.getBmsPrepareDataMoveOperationResults(), this);
+ }
+ return bmsPrepareDataMoveOperationResults;
+ }
+
+ /** @return Resource collection API of ProtectedItems. */
+ public ProtectedItems protectedItems() {
+ if (this.protectedItems == null) {
+ this.protectedItems = new ProtectedItemsImpl(clientObject.getProtectedItems(), this);
+ }
+ return protectedItems;
+ }
+
+ /** @return Resource collection API of ProtectedItemOperationResults. */
+ public ProtectedItemOperationResults protectedItemOperationResults() {
+ if (this.protectedItemOperationResults == null) {
+ this.protectedItemOperationResults =
+ new ProtectedItemOperationResultsImpl(clientObject.getProtectedItemOperationResults(), this);
+ }
+ return protectedItemOperationResults;
+ }
+
+ /** @return Resource collection API of RecoveryPoints. */
+ public RecoveryPoints recoveryPoints() {
+ if (this.recoveryPoints == null) {
+ this.recoveryPoints = new RecoveryPointsImpl(clientObject.getRecoveryPoints(), this);
+ }
+ return recoveryPoints;
+ }
+
+ /** @return Resource collection API of Restores. */
+ public Restores restores() {
+ if (this.restores == null) {
+ this.restores = new RestoresImpl(clientObject.getRestores(), this);
+ }
+ return restores;
+ }
+
+ /** @return Resource collection API of BackupPolicies. */
+ public BackupPolicies backupPolicies() {
+ if (this.backupPolicies == null) {
+ this.backupPolicies = new BackupPoliciesImpl(clientObject.getBackupPolicies(), this);
+ }
+ return backupPolicies;
+ }
+
+ /** @return Resource collection API of ProtectionPolicies. */
+ public ProtectionPolicies protectionPolicies() {
+ if (this.protectionPolicies == null) {
+ this.protectionPolicies = new ProtectionPoliciesImpl(clientObject.getProtectionPolicies(), this);
+ }
+ return protectionPolicies;
+ }
+
+ /** @return Resource collection API of ProtectionPolicyOperationResults. */
+ public ProtectionPolicyOperationResults protectionPolicyOperationResults() {
+ if (this.protectionPolicyOperationResults == null) {
+ this.protectionPolicyOperationResults =
+ new ProtectionPolicyOperationResultsImpl(clientObject.getProtectionPolicyOperationResults(), this);
+ }
+ return protectionPolicyOperationResults;
+ }
+
+ /** @return Resource collection API of BackupJobs. */
+ public BackupJobs backupJobs() {
+ if (this.backupJobs == null) {
+ this.backupJobs = new BackupJobsImpl(clientObject.getBackupJobs(), this);
+ }
+ return backupJobs;
+ }
+
+ /** @return Resource collection API of JobDetails. */
+ public JobDetails jobDetails() {
+ if (this.jobDetails == null) {
+ this.jobDetails = new JobDetailsImpl(clientObject.getJobDetails(), this);
+ }
+ return jobDetails;
+ }
+
+ /** @return Resource collection API of JobCancellations. */
+ public JobCancellations jobCancellations() {
+ if (this.jobCancellations == null) {
+ this.jobCancellations = new JobCancellationsImpl(clientObject.getJobCancellations(), this);
+ }
+ return jobCancellations;
+ }
+
+ /** @return Resource collection API of JobOperationResults. */
+ public JobOperationResults jobOperationResults() {
+ if (this.jobOperationResults == null) {
+ this.jobOperationResults = new JobOperationResultsImpl(clientObject.getJobOperationResults(), this);
+ }
+ return jobOperationResults;
+ }
+
+ /** @return Resource collection API of ExportJobsOperationResults. */
+ public ExportJobsOperationResults exportJobsOperationResults() {
+ if (this.exportJobsOperationResults == null) {
+ this.exportJobsOperationResults =
+ new ExportJobsOperationResultsImpl(clientObject.getExportJobsOperationResults(), this);
+ }
+ return exportJobsOperationResults;
+ }
+
+ /** @return Resource collection API of Jobs. */
+ public Jobs jobs() {
+ if (this.jobs == null) {
+ this.jobs = new JobsImpl(clientObject.getJobs(), this);
+ }
+ return jobs;
+ }
+
+ /** @return Resource collection API of BackupProtectedItems. */
+ public BackupProtectedItems backupProtectedItems() {
+ if (this.backupProtectedItems == null) {
+ this.backupProtectedItems = new BackupProtectedItemsImpl(clientObject.getBackupProtectedItems(), this);
+ }
+ return backupProtectedItems;
+ }
+
+ /** @return Resource collection API of Operations. */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /** @return Resource collection API of BackupEngines. */
+ public BackupEngines backupEngines() {
+ if (this.backupEngines == null) {
+ this.backupEngines = new BackupEnginesImpl(clientObject.getBackupEngines(), this);
+ }
+ return backupEngines;
+ }
+
+ /** @return Resource collection API of ProtectionContainerRefreshOperationResults. */
+ public ProtectionContainerRefreshOperationResults protectionContainerRefreshOperationResults() {
+ if (this.protectionContainerRefreshOperationResults == null) {
+ this.protectionContainerRefreshOperationResults =
+ new ProtectionContainerRefreshOperationResultsImpl(
+ clientObject.getProtectionContainerRefreshOperationResults(), this);
+ }
+ return protectionContainerRefreshOperationResults;
+ }
+
+ /** @return Resource collection API of ProtectableContainers. */
+ public ProtectableContainers protectableContainers() {
+ if (this.protectableContainers == null) {
+ this.protectableContainers = new ProtectableContainersImpl(clientObject.getProtectableContainers(), this);
+ }
+ return protectableContainers;
+ }
+
+ /** @return Resource collection API of ProtectionContainers. */
+ public ProtectionContainers protectionContainers() {
+ if (this.protectionContainers == null) {
+ this.protectionContainers = new ProtectionContainersImpl(clientObject.getProtectionContainers(), this);
+ }
+ return protectionContainers;
+ }
+
+ /** @return Resource collection API of BackupWorkloadItems. */
+ public BackupWorkloadItems backupWorkloadItems() {
+ if (this.backupWorkloadItems == null) {
+ this.backupWorkloadItems = new BackupWorkloadItemsImpl(clientObject.getBackupWorkloadItems(), this);
+ }
+ return backupWorkloadItems;
+ }
+
+ /** @return Resource collection API of ProtectionContainerOperationResults. */
+ public ProtectionContainerOperationResults protectionContainerOperationResults() {
+ if (this.protectionContainerOperationResults == null) {
+ this.protectionContainerOperationResults =
+ new ProtectionContainerOperationResultsImpl(
+ clientObject.getProtectionContainerOperationResults(), this);
+ }
+ return protectionContainerOperationResults;
+ }
+
+ /** @return Resource collection API of Backups. */
+ public Backups backups() {
+ if (this.backups == null) {
+ this.backups = new BackupsImpl(clientObject.getBackups(), this);
+ }
+ return backups;
+ }
+
+ /** @return Resource collection API of ProtectedItemOperationStatuses. */
+ public ProtectedItemOperationStatuses protectedItemOperationStatuses() {
+ if (this.protectedItemOperationStatuses == null) {
+ this.protectedItemOperationStatuses =
+ new ProtectedItemOperationStatusesImpl(clientObject.getProtectedItemOperationStatuses(), this);
+ }
+ return protectedItemOperationStatuses;
+ }
+
+ /** @return Resource collection API of ItemLevelRecoveryConnections. */
+ public ItemLevelRecoveryConnections itemLevelRecoveryConnections() {
+ if (this.itemLevelRecoveryConnections == null) {
+ this.itemLevelRecoveryConnections =
+ new ItemLevelRecoveryConnectionsImpl(clientObject.getItemLevelRecoveryConnections(), this);
+ }
+ return itemLevelRecoveryConnections;
+ }
+
+ /** @return Resource collection API of BackupOperationResults. */
+ public BackupOperationResults backupOperationResults() {
+ if (this.backupOperationResults == null) {
+ this.backupOperationResults =
+ new BackupOperationResultsImpl(clientObject.getBackupOperationResults(), this);
+ }
+ return backupOperationResults;
+ }
+
+ /** @return Resource collection API of BackupOperationStatuses. */
+ public BackupOperationStatuses backupOperationStatuses() {
+ if (this.backupOperationStatuses == null) {
+ this.backupOperationStatuses =
+ new BackupOperationStatusesImpl(clientObject.getBackupOperationStatuses(), this);
+ }
+ return backupOperationStatuses;
+ }
+
+ /** @return Resource collection API of ProtectionPolicyOperationStatuses. */
+ public ProtectionPolicyOperationStatuses protectionPolicyOperationStatuses() {
+ if (this.protectionPolicyOperationStatuses == null) {
+ this.protectionPolicyOperationStatuses =
+ new ProtectionPolicyOperationStatusesImpl(clientObject.getProtectionPolicyOperationStatuses(), this);
+ }
+ return protectionPolicyOperationStatuses;
+ }
+
+ /** @return Resource collection API of BackupProtectableItems. */
+ public BackupProtectableItems backupProtectableItems() {
+ if (this.backupProtectableItems == null) {
+ this.backupProtectableItems =
+ new BackupProtectableItemsImpl(clientObject.getBackupProtectableItems(), this);
+ }
+ return backupProtectableItems;
+ }
+
+ /** @return Resource collection API of BackupProtectionContainers. */
+ public BackupProtectionContainers backupProtectionContainers() {
+ if (this.backupProtectionContainers == null) {
+ this.backupProtectionContainers =
+ new BackupProtectionContainersImpl(clientObject.getBackupProtectionContainers(), this);
+ }
+ return backupProtectionContainers;
+ }
+
+ /** @return Resource collection API of SecurityPINs. */
+ public SecurityPINs securityPINs() {
+ if (this.securityPINs == null) {
+ this.securityPINs = new SecurityPINsImpl(clientObject.getSecurityPINs(), this);
+ }
+ return securityPINs;
+ }
+
+ /** @return Resource collection API of RecoveryPointsRecommendedForMoves. */
+ public RecoveryPointsRecommendedForMoves recoveryPointsRecommendedForMoves() {
+ if (this.recoveryPointsRecommendedForMoves == null) {
+ this.recoveryPointsRecommendedForMoves =
+ new RecoveryPointsRecommendedForMovesImpl(clientObject.getRecoveryPointsRecommendedForMoves(), this);
+ }
+ return recoveryPointsRecommendedForMoves;
+ }
+
+ /** @return Resource collection API of AadPropertiesOperations. */
+ public AadPropertiesOperations aadPropertiesOperations() {
+ if (this.aadPropertiesOperations == null) {
+ this.aadPropertiesOperations =
+ new AadPropertiesOperationsImpl(clientObject.getAadPropertiesOperations(), this);
+ }
+ return aadPropertiesOperations;
+ }
+
+ /** @return Resource collection API of CrossRegionRestores. */
+ public CrossRegionRestores crossRegionRestores() {
+ if (this.crossRegionRestores == null) {
+ this.crossRegionRestores = new CrossRegionRestoresImpl(clientObject.getCrossRegionRestores(), this);
+ }
+ return crossRegionRestores;
+ }
+
+ /** @return Resource collection API of BackupCrrJobDetails. */
+ public BackupCrrJobDetails backupCrrJobDetails() {
+ if (this.backupCrrJobDetails == null) {
+ this.backupCrrJobDetails = new BackupCrrJobDetailsImpl(clientObject.getBackupCrrJobDetails(), this);
+ }
+ return backupCrrJobDetails;
+ }
+
+ /** @return Resource collection API of BackupCrrJobs. */
+ public BackupCrrJobs backupCrrJobs() {
+ if (this.backupCrrJobs == null) {
+ this.backupCrrJobs = new BackupCrrJobsImpl(clientObject.getBackupCrrJobs(), this);
+ }
+ return backupCrrJobs;
+ }
+
+ /** @return Resource collection API of CrrOperationResults. */
+ public CrrOperationResults crrOperationResults() {
+ if (this.crrOperationResults == null) {
+ this.crrOperationResults = new CrrOperationResultsImpl(clientObject.getCrrOperationResults(), this);
+ }
+ return crrOperationResults;
+ }
+
+ /** @return Resource collection API of CrrOperationStatus. */
+ public CrrOperationStatus crrOperationStatus() {
+ if (this.crrOperationStatus == null) {
+ this.crrOperationStatus = new CrrOperationStatusImpl(clientObject.getCrrOperationStatus(), this);
+ }
+ return crrOperationStatus;
+ }
+
+ /** @return Resource collection API of BackupResourceStorageConfigs. */
+ public BackupResourceStorageConfigs backupResourceStorageConfigs() {
+ if (this.backupResourceStorageConfigs == null) {
+ this.backupResourceStorageConfigs =
+ new BackupResourceStorageConfigsImpl(clientObject.getBackupResourceStorageConfigs(), this);
+ }
+ return backupResourceStorageConfigs;
+ }
+
+ /** @return Resource collection API of RecoveryPointsCrrs. */
+ public RecoveryPointsCrrs recoveryPointsCrrs() {
+ if (this.recoveryPointsCrrs == null) {
+ this.recoveryPointsCrrs = new RecoveryPointsCrrsImpl(clientObject.getRecoveryPointsCrrs(), this);
+ }
+ return recoveryPointsCrrs;
+ }
+
+ /** @return Resource collection API of BackupProtectedItemsCrrs. */
+ public BackupProtectedItemsCrrs backupProtectedItemsCrrs() {
+ if (this.backupProtectedItemsCrrs == null) {
+ this.backupProtectedItemsCrrs =
+ new BackupProtectedItemsCrrsImpl(clientObject.getBackupProtectedItemsCrrs(), this);
+ }
+ return backupProtectedItemsCrrs;
+ }
+
+ /** @return Resource collection API of ProtectionIntents. */
+ public ProtectionIntents protectionIntents() {
+ if (this.protectionIntents == null) {
+ this.protectionIntents = new ProtectionIntentsImpl(clientObject.getProtectionIntents(), this);
+ }
+ return protectionIntents;
+ }
+
+ /** @return Resource collection API of BackupStatus. */
+ public BackupStatus backupStatus() {
+ if (this.backupStatus == null) {
+ this.backupStatus = new BackupStatusImpl(clientObject.getBackupStatus(), this);
+ }
+ return backupStatus;
+ }
+
+ /** @return Resource collection API of FeatureSupports. */
+ public FeatureSupports featureSupports() {
+ if (this.featureSupports == null) {
+ this.featureSupports = new FeatureSupportsImpl(clientObject.getFeatureSupports(), this);
+ }
+ return featureSupports;
+ }
+
+ /** @return Resource collection API of BackupProtectionIntents. */
+ public BackupProtectionIntents backupProtectionIntents() {
+ if (this.backupProtectionIntents == null) {
+ this.backupProtectionIntents =
+ new BackupProtectionIntentsImpl(clientObject.getBackupProtectionIntents(), this);
+ }
+ return backupProtectionIntents;
+ }
+
+ /** @return Resource collection API of BackupUsageSummaries. */
+ public BackupUsageSummaries backupUsageSummaries() {
+ if (this.backupUsageSummaries == null) {
+ this.backupUsageSummaries = new BackupUsageSummariesImpl(clientObject.getBackupUsageSummaries(), this);
+ }
+ return backupUsageSummaries;
+ }
+
+ /** @return Resource collection API of OperationsOperations. */
+ public OperationsOperations operationsOperations() {
+ if (this.operationsOperations == null) {
+ this.operationsOperations = new OperationsOperationsImpl(clientObject.getOperationsOperations(), this);
+ }
+ return operationsOperations;
+ }
+
+ /**
+ * @return Wrapped service client RecoveryServicesBackupClient providing direct access to the underlying
+ * auto-generated API implementation, based on Azure REST API.
+ */
+ public RecoveryServicesBackupClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/AadPropertiesOperationsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/AadPropertiesOperationsClient.java
new file mode 100644
index 0000000000000..5a5f7431a9eaa
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/AadPropertiesOperationsClient.java
@@ -0,0 +1,39 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.AadPropertiesResourceInner;
+
+/** An instance of this class provides access to all the operations defined in AadPropertiesOperationsClient. */
+public interface AadPropertiesOperationsClient {
+ /**
+ * Fetches the AAD properties from target region BCM stamp.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @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)
+ AadPropertiesResourceInner get(String azureRegion);
+
+ /**
+ * Fetches the AAD properties from target region BCM stamp.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @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 getWithResponse(String azureRegion, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupCrrJobDetailsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupCrrJobDetailsClient.java
new file mode 100644
index 0000000000000..c5c5b84baf21c
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupCrrJobDetailsClient.java
@@ -0,0 +1,42 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.JobResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.CrrJobRequest;
+
+/** An instance of this class provides access to all the operations defined in BackupCrrJobDetailsClient. */
+public interface BackupCrrJobDetailsClient {
+ /**
+ * Get CRR job details from target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters CRR Job request.
+ * @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 cRR job details from target region.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ JobResourceInner get(String azureRegion, CrrJobRequest parameters);
+
+ /**
+ * Get CRR job details from target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters CRR Job request.
+ * @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 cRR job details from target region.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String azureRegion, CrrJobRequest parameters, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupCrrJobsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupCrrJobsClient.java
new file mode 100644
index 0000000000000..2f119b05a218b
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupCrrJobsClient.java
@@ -0,0 +1,45 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.JobResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.CrrJobRequest;
+
+/** An instance of this class provides access to all the operations defined in BackupCrrJobsClient. */
+public interface BackupCrrJobsClient {
+ /**
+ * Gets the list of CRR jobs from the target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Backup CRR Job request.
+ * @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 CRR jobs from the target region.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String azureRegion, CrrJobRequest parameters);
+
+ /**
+ * Gets the list of CRR jobs from the target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Backup CRR Job request.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 CRR jobs from the target region.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String azureRegion, CrrJobRequest parameters, String filter, String skipToken, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupEnginesClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupEnginesClient.java
new file mode 100644
index 0000000000000..ece131b53fe10
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupEnginesClient.java
@@ -0,0 +1,82 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.BackupEngineBaseResourceInner;
+
+/** An instance of this class provides access to all the operations defined in BackupEnginesClient. */
+public interface BackupEnginesClient {
+ /**
+ * Backup management servers registered to Recovery Services Vault. Returns a pageable list of servers.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of BackupEngineBase resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String vaultName, String resourceGroupName);
+
+ /**
+ * Backup management servers registered to Recovery Services Vault. Returns a pageable list of servers.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of BackupEngineBase resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context);
+
+ /**
+ * Returns backup management server registered to Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param backupEngineName Name of the backup management server.
+ * @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 base backup engine class.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupEngineBaseResourceInner get(String vaultName, String resourceGroupName, String backupEngineName);
+
+ /**
+ * Returns backup management server registered to Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param backupEngineName Name of the backup management server.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 base backup engine class.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String backupEngineName,
+ String filter,
+ String skipToken,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupJobsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupJobsClient.java
new file mode 100644
index 0000000000000..c3236f4ef44d9
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupJobsClient.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.JobResourceInner;
+
+/** An instance of this class provides access to all the operations defined in BackupJobsClient. */
+public interface BackupJobsClient {
+ /**
+ * Provides a pageable list of jobs.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of Job resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String vaultName, String resourceGroupName);
+
+ /**
+ * Provides a pageable list of jobs.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of Job resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupOperationResultsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupOperationResultsClient.java
new file mode 100644
index 0000000000000..efa15dd900c51
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupOperationResultsClient.java
@@ -0,0 +1,47 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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;
+
+/** An instance of this class provides access to all the operations defined in BackupOperationResultsClient. */
+public interface BackupOperationResultsClient {
+ /**
+ * Provides the status of the delete operations such as deleting backed up item. Once the operation has started, the
+ * status code in the response would be Accepted. It will continue to be in this state till it reaches completion.
+ * On successful completion, the status code will be OK. This method expects OperationID as an argument. OperationID
+ * is part of the Location header of the operation response.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void get(String vaultName, String resourceGroupName, String operationId);
+
+ /**
+ * Provides the status of the delete operations such as deleting backed up item. Once the operation has started, the
+ * status code in the response would be Accepted. It will continue to be in this state till it reaches completion.
+ * On successful completion, the status code will be OK. This method expects OperationID as an argument. OperationID
+ * is part of the Location header of the operation response.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String vaultName, String resourceGroupName, String operationId, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupOperationStatusesClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupOperationStatusesClient.java
new file mode 100644
index 0000000000000..e02edfa9f241f
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupOperationStatusesClient.java
@@ -0,0 +1,48 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.OperationStatusInner;
+
+/** An instance of this class provides access to all the operations defined in BackupOperationStatusesClient. */
+public interface BackupOperationStatusesClient {
+ /**
+ * Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed
+ * or failed. You can refer to the OperationStatus enum for all the possible states of an operation. Some operations
+ * create jobs. This method returns the list of jobs when the operation is complete.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusInner get(String vaultName, String resourceGroupName, String operationId);
+
+ /**
+ * Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed
+ * or failed. You can refer to the OperationStatus enum for all the possible states of an operation. Some operations
+ * create jobs. This method returns the list of jobs when the operation is complete.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName, String resourceGroupName, String operationId, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupPoliciesClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupPoliciesClient.java
new file mode 100644
index 0000000000000..7c4b5689d4d94
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupPoliciesClient.java
@@ -0,0 +1,45 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.ProtectionPolicyResourceInner;
+
+/** An instance of this class provides access to all the operations defined in BackupPoliciesClient. */
+public interface BackupPoliciesClient {
+ /**
+ * Lists of backup policies associated with Recovery Services Vault. API provides pagination parameters to fetch
+ * scoped results.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of ProtectionPolicy resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String vaultName, String resourceGroupName);
+
+ /**
+ * Lists of backup policies associated with Recovery Services Vault. API provides pagination parameters to fetch
+ * scoped results.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @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 list of ProtectionPolicy resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectableItemsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectableItemsClient.java
new file mode 100644
index 0000000000000..ba0d9d66ee339
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectableItemsClient.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.WorkloadProtectableItemResourceInner;
+
+/** An instance of this class provides access to all the operations defined in BackupProtectableItemsClient. */
+public interface BackupProtectableItemsClient {
+ /**
+ * Provides a pageable list of protectable objects within your subscription according to the query filter and the
+ * pagination parameters.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of WorkloadProtectableItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String vaultName, String resourceGroupName);
+
+ /**
+ * Provides a pageable list of protectable objects within your subscription according to the query filter and the
+ * pagination parameters.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of WorkloadProtectableItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectedItemsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectedItemsClient.java
new file mode 100644
index 0000000000000..b00a0d24f856b
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectedItemsClient.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.ProtectedItemResourceInner;
+
+/** An instance of this class provides access to all the operations defined in BackupProtectedItemsClient. */
+public interface BackupProtectedItemsClient {
+ /**
+ * Provides a pageable list of all items that are backed up within a vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of ProtectedItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String vaultName, String resourceGroupName);
+
+ /**
+ * Provides a pageable list of all items that are backed up within a vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of ProtectedItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectedItemsCrrsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectedItemsCrrsClient.java
new file mode 100644
index 0000000000000..c6a27d9105b0b
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectedItemsCrrsClient.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.ProtectedItemResourceInner;
+
+/** An instance of this class provides access to all the operations defined in BackupProtectedItemsCrrsClient. */
+public interface BackupProtectedItemsCrrsClient {
+ /**
+ * Provides a pageable list of all items that are backed up within a vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of ProtectedItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String vaultName, String resourceGroupName);
+
+ /**
+ * Provides a pageable list of all items that are backed up within a vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of ProtectedItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectionContainersClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectionContainersClient.java
new file mode 100644
index 0000000000000..bb350177a2951
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectionContainersClient.java
@@ -0,0 +1,43 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.ProtectionContainerResourceInner;
+
+/** An instance of this class provides access to all the operations defined in BackupProtectionContainersClient. */
+public interface BackupProtectionContainersClient {
+ /**
+ * Lists the containers registered to Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of ProtectionContainer resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String vaultName, String resourceGroupName);
+
+ /**
+ * Lists the containers registered to Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @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 list of ProtectionContainer resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectionIntentsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectionIntentsClient.java
new file mode 100644
index 0000000000000..d4551f9d2418e
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupProtectionIntentsClient.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.ProtectionIntentResourceInner;
+
+/** An instance of this class provides access to all the operations defined in BackupProtectionIntentsClient. */
+public interface BackupProtectionIntentsClient {
+ /**
+ * Provides a pageable list of all intents that are present within a vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of ProtectionIntent resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String vaultName, String resourceGroupName);
+
+ /**
+ * Provides a pageable list of all intents that are present within a vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of ProtectionIntent resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupResourceEncryptionConfigsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupResourceEncryptionConfigsClient.java
new file mode 100644
index 0000000000000..f3a81d0a093f3
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupResourceEncryptionConfigsClient.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.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.BackupResourceEncryptionConfigResourceInner;
+
+/** An instance of this class provides access to all the operations defined in BackupResourceEncryptionConfigsClient. */
+public interface BackupResourceEncryptionConfigsClient {
+ /**
+ * Fetches Vault Encryption config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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)
+ BackupResourceEncryptionConfigResourceInner get(String vaultName, String resourceGroupName);
+
+ /**
+ * Fetches Vault Encryption config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 getWithResponse(
+ String vaultName, String resourceGroupName, Context context);
+
+ /**
+ * Updates Vault encryption config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Vault encryption input config request.
+ * @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 update(String vaultName, String resourceGroupName, BackupResourceEncryptionConfigResourceInner parameters);
+
+ /**
+ * Updates Vault encryption config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Vault encryption input config request.
+ * @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 updateWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ BackupResourceEncryptionConfigResourceInner parameters,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupResourceStorageConfigsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupResourceStorageConfigsClient.java
new file mode 100644
index 0000000000000..bade3bb243375
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupResourceStorageConfigsClient.java
@@ -0,0 +1,102 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.BackupResourceConfigResourceInner;
+
+/** An instance of this class provides access to all the operations defined in BackupResourceStorageConfigsClient. */
+public interface BackupResourceStorageConfigsClient {
+ /**
+ * Fetches resource storage config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 storage details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupResourceConfigResourceInner get(String vaultName, String resourceGroupName);
+
+ /**
+ * Fetches resource storage config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 storage details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName, String resourceGroupName, Context context);
+
+ /**
+ * Updates vault storage model type.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Vault storage config request.
+ * @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 storage details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupResourceConfigResourceInner update(
+ String vaultName, String resourceGroupName, BackupResourceConfigResourceInner parameters);
+
+ /**
+ * Updates vault storage model type.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Vault storage config request.
+ * @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 storage details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String vaultName, String resourceGroupName, BackupResourceConfigResourceInner parameters, Context context);
+
+ /**
+ * Updates vault storage model type.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Vault storage config request.
+ * @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 patch(String vaultName, String resourceGroupName, BackupResourceConfigResourceInner parameters);
+
+ /**
+ * Updates vault storage model type.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Vault storage config request.
+ * @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 patchWithResponse(
+ String vaultName, String resourceGroupName, BackupResourceConfigResourceInner parameters, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupResourceVaultConfigsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupResourceVaultConfigsClient.java
new file mode 100644
index 0000000000000..c0764d3b3788a
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupResourceVaultConfigsClient.java
@@ -0,0 +1,104 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.BackupResourceVaultConfigResourceInner;
+
+/** An instance of this class provides access to all the operations defined in BackupResourceVaultConfigsClient. */
+public interface BackupResourceVaultConfigsClient {
+ /**
+ * Fetches resource vault config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 backup resource vault config details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupResourceVaultConfigResourceInner get(String vaultName, String resourceGroupName);
+
+ /**
+ * Fetches resource vault config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 backup resource vault config details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName, String resourceGroupName, Context context);
+
+ /**
+ * Updates vault security config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters resource config request.
+ * @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 backup resource vault config details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupResourceVaultConfigResourceInner update(
+ String vaultName, String resourceGroupName, BackupResourceVaultConfigResourceInner parameters);
+
+ /**
+ * Updates vault security config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters resource config request.
+ * @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 backup resource vault config details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String vaultName, String resourceGroupName, BackupResourceVaultConfigResourceInner parameters, Context context);
+
+ /**
+ * Updates vault security config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters resource config request.
+ * @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 backup resource vault config details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupResourceVaultConfigResourceInner put(
+ String vaultName, String resourceGroupName, BackupResourceVaultConfigResourceInner parameters);
+
+ /**
+ * Updates vault security config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters resource config request.
+ * @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 backup resource vault config details.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response putWithResponse(
+ String vaultName, String resourceGroupName, BackupResourceVaultConfigResourceInner parameters, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupStatusClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupStatusClient.java
new file mode 100644
index 0000000000000..5949293c1695e
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupStatusClient.java
@@ -0,0 +1,43 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.BackupStatusResponseInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupStatusRequest;
+
+/** An instance of this class provides access to all the operations defined in BackupStatusClient. */
+public interface BackupStatusClient {
+ /**
+ * Get the container backup status.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Container Backup Status Request.
+ * @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 container backup status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupStatusResponseInner get(String azureRegion, BackupStatusRequest parameters);
+
+ /**
+ * Get the container backup status.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Container Backup Status Request.
+ * @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 container backup status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String azureRegion, BackupStatusRequest parameters, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupUsageSummariesClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupUsageSummariesClient.java
new file mode 100644
index 0000000000000..ef9b4b1040002
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupUsageSummariesClient.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.BackupManagementUsageInner;
+
+/** An instance of this class provides access to all the operations defined in BackupUsageSummariesClient. */
+public interface BackupUsageSummariesClient {
+ /**
+ * Fetches the backup management usage summaries of the vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 backup management usage for vault.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String vaultName, String resourceGroupName);
+
+ /**
+ * Fetches the backup management usage summaries of the vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 backup management usage for vault.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupWorkloadItemsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupWorkloadItemsClient.java
new file mode 100644
index 0000000000000..78a40f032db3b
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupWorkloadItemsClient.java
@@ -0,0 +1,57 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.WorkloadItemResourceInner;
+
+/** An instance of this class provides access to all the operations defined in BackupWorkloadItemsClient. */
+public interface BackupWorkloadItemsClient {
+ /**
+ * Provides a pageable list of workload item of a specific container according to the query filter and the
+ * pagination parameters.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the container.
+ * @param containerName Name of the container.
+ * @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 list of WorkloadItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName, String resourceGroupName, String fabricName, String containerName);
+
+ /**
+ * Provides a pageable list of workload item of a specific container according to the query filter and the
+ * pagination parameters.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the container.
+ * @param containerName Name of the container.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of WorkloadItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String filter,
+ String skipToken,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupsClient.java
new file mode 100644
index 0000000000000..d77df5429027f
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BackupsClient.java
@@ -0,0 +1,63 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.models.BackupRequestResource;
+
+/** An instance of this class provides access to all the operations defined in BackupsClient. */
+public interface BackupsClient {
+ /**
+ * Triggers backup for specified backed up item. This is an asynchronous operation. To know the status of the
+ * operation, call GetProtectedItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backup item.
+ * @param containerName Container name associated with the backup item.
+ * @param protectedItemName Backup item for which backup needs to be triggered.
+ * @param parameters resource backup request.
+ * @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 trigger(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ BackupRequestResource parameters);
+
+ /**
+ * Triggers backup for specified backed up item. This is an asynchronous operation. To know the status of the
+ * operation, call GetProtectedItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backup item.
+ * @param containerName Container name associated with the backup item.
+ * @param protectedItemName Backup item for which backup needs to be triggered.
+ * @param parameters resource backup request.
+ * @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 triggerWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ BackupRequestResource parameters,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BmsPrepareDataMoveOperationResultsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BmsPrepareDataMoveOperationResultsClient.java
new file mode 100644
index 0000000000000..56a4281def008
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/BmsPrepareDataMoveOperationResultsClient.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.VaultStorageConfigOperationResultResponseInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in BmsPrepareDataMoveOperationResultsClient.
+ */
+public interface BmsPrepareDataMoveOperationResultsClient {
+ /**
+ * Fetches Operation Result for Prepare Data Move.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId The operationId parameter.
+ * @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 operation result response for Vault Storage Config.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VaultStorageConfigOperationResultResponseInner get(String vaultName, String resourceGroupName, String operationId);
+
+ /**
+ * Fetches Operation Result for Prepare Data Move.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId The operationId parameter.
+ * @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 operation result response for Vault Storage Config.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName, String resourceGroupName, String operationId, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/CrossRegionRestoresClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/CrossRegionRestoresClient.java
new file mode 100644
index 0000000000000..205895fb11ea4
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/CrossRegionRestoresClient.java
@@ -0,0 +1,68 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.recoveryservicesbackup.models.CrossRegionRestoreRequest;
+
+/** An instance of this class provides access to all the operations defined in CrossRegionRestoresClient. */
+public interface CrossRegionRestoresClient {
+ /**
+ * Restores the specified backed up data in a different region as compared to where the data is backed up.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters resource cross region restore request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginTrigger(String azureRegion, CrossRegionRestoreRequest parameters);
+
+ /**
+ * Restores the specified backed up data in a different region as compared to where the data is backed up.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters resource cross region restore request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginTrigger(
+ String azureRegion, CrossRegionRestoreRequest parameters, Context context);
+
+ /**
+ * Restores the specified backed up data in a different region as compared to where the data is backed up.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters resource cross region restore request.
+ * @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 trigger(String azureRegion, CrossRegionRestoreRequest parameters);
+
+ /**
+ * Restores the specified backed up data in a different region as compared to where the data is backed up.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters resource cross region restore request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void trigger(String azureRegion, CrossRegionRestoreRequest parameters, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/CrrOperationResultsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/CrrOperationResultsClient.java
new file mode 100644
index 0000000000000..7a7e412099f7c
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/CrrOperationResultsClient.java
@@ -0,0 +1,35 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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;
+
+/** An instance of this class provides access to all the operations defined in CrrOperationResultsClient. */
+public interface CrrOperationResultsClient {
+ /**
+ * @param azureRegion Azure region to hit Api.
+ * @param operationId The operationId parameter.
+ * @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 get(String azureRegion, String operationId);
+
+ /**
+ * @param azureRegion Azure region to hit Api.
+ * @param operationId The operationId parameter.
+ * @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 getWithResponse(String azureRegion, String operationId, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/CrrOperationStatusClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/CrrOperationStatusClient.java
new file mode 100644
index 0000000000000..4ebd835ffe0f4
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/CrrOperationStatusClient.java
@@ -0,0 +1,37 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.OperationStatusInner;
+
+/** An instance of this class provides access to all the operations defined in CrrOperationStatusClient. */
+public interface CrrOperationStatusClient {
+ /**
+ * @param azureRegion Azure region to hit Api.
+ * @param operationId The operationId parameter.
+ * @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 operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusInner get(String azureRegion, String operationId);
+
+ /**
+ * @param azureRegion Azure region to hit Api.
+ * @param operationId The operationId parameter.
+ * @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 operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String azureRegion, String operationId, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ExportJobsOperationResultsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ExportJobsOperationResultsClient.java
new file mode 100644
index 0000000000000..bbeea6859e666
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ExportJobsOperationResultsClient.java
@@ -0,0 +1,48 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.OperationResultInfoBaseResourceInner;
+
+/** An instance of this class provides access to all the operations defined in ExportJobsOperationResultsClient. */
+public interface ExportJobsOperationResultsClient {
+ /**
+ * Gets the operation result of operation triggered by Export Jobs API. If the operation is successful, then it also
+ * contains URL of a Blob and a SAS key to access the same. The blob contains exported jobs in JSON serialized
+ * format.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the export job.
+ * @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 operation result of operation triggered by Export Jobs API.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationResultInfoBaseResourceInner get(String vaultName, String resourceGroupName, String operationId);
+
+ /**
+ * Gets the operation result of operation triggered by Export Jobs API. If the operation is successful, then it also
+ * contains URL of a Blob and a SAS key to access the same. The blob contains exported jobs in JSON serialized
+ * format.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the export job.
+ * @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 operation result of operation triggered by Export Jobs API.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName, String resourceGroupName, String operationId, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/FeatureSupportsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/FeatureSupportsClient.java
new file mode 100644
index 0000000000000..d61578d11ae23
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/FeatureSupportsClient.java
@@ -0,0 +1,43 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.AzureVMResourceFeatureSupportResponseInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.FeatureSupportRequest;
+
+/** An instance of this class provides access to all the operations defined in FeatureSupportsClient. */
+public interface FeatureSupportsClient {
+ /**
+ * It will validate if given feature with resource properties is supported in service.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Feature support request 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 response for feature support requests for Azure IaasVm.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AzureVMResourceFeatureSupportResponseInner validate(String azureRegion, FeatureSupportRequest parameters);
+
+ /**
+ * It will validate if given feature with resource properties is supported in service.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Feature support request 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 response for feature support requests for Azure IaasVm.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response validateWithResponse(
+ String azureRegion, FeatureSupportRequest parameters, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ItemLevelRecoveryConnectionsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ItemLevelRecoveryConnectionsClient.java
new file mode 100644
index 0000000000000..c07e2975602fd
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ItemLevelRecoveryConnectionsClient.java
@@ -0,0 +1,122 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.models.IlrRequestResource;
+
+/** An instance of this class provides access to all the operations defined in ItemLevelRecoveryConnectionsClient. */
+public interface ItemLevelRecoveryConnectionsClient {
+ /**
+ * Provisions a script which invokes an iSCSI connection to the backup data. Executing this script opens a file
+ * explorer displaying all the recoverable files and folders. This is an asynchronous operation. To know the status
+ * of provisioning, call GetProtectedItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up items.
+ * @param containerName Container name associated with the backed up items.
+ * @param protectedItemName Backed up item name whose files/folders are to be restored.
+ * @param recoveryPointId Recovery point ID which represents backed up data. iSCSI connection will be provisioned
+ * for this backed up data.
+ * @param parameters resource ILR request.
+ * @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 provision(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId,
+ IlrRequestResource parameters);
+
+ /**
+ * Provisions a script which invokes an iSCSI connection to the backup data. Executing this script opens a file
+ * explorer displaying all the recoverable files and folders. This is an asynchronous operation. To know the status
+ * of provisioning, call GetProtectedItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up items.
+ * @param containerName Container name associated with the backed up items.
+ * @param protectedItemName Backed up item name whose files/folders are to be restored.
+ * @param recoveryPointId Recovery point ID which represents backed up data. iSCSI connection will be provisioned
+ * for this backed up data.
+ * @param parameters resource ILR request.
+ * @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 provisionWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId,
+ IlrRequestResource parameters,
+ Context context);
+
+ /**
+ * Revokes an iSCSI connection which can be used to download a script. Executing this script opens a file explorer
+ * displaying all recoverable files and folders. This is an asynchronous operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up items.
+ * @param containerName Container name associated with the backed up items.
+ * @param protectedItemName Backed up item name whose files/folders are to be restored.
+ * @param recoveryPointId Recovery point ID which represents backed up data. iSCSI connection will be revoked for
+ * this backed up data.
+ * @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 revoke(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId);
+
+ /**
+ * Revokes an iSCSI connection which can be used to download a script. Executing this script opens a file explorer
+ * displaying all recoverable files and folders. This is an asynchronous operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up items.
+ * @param containerName Container name associated with the backed up items.
+ * @param protectedItemName Backed up item name whose files/folders are to be restored.
+ * @param recoveryPointId Recovery point ID which represents backed up data. iSCSI connection will be revoked for
+ * this backed up data.
+ * @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 revokeWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/JobCancellationsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/JobCancellationsClient.java
new file mode 100644
index 0000000000000..fcce8ba4d74b0
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/JobCancellationsClient.java
@@ -0,0 +1,43 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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;
+
+/** An instance of this class provides access to all the operations defined in JobCancellationsClient. */
+public interface JobCancellationsClient {
+ /**
+ * Cancels a job. This is an asynchronous operation. To know the status of the cancellation, call
+ * GetCancelOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param jobName Name of the job to cancel.
+ * @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 trigger(String vaultName, String resourceGroupName, String jobName);
+
+ /**
+ * Cancels a job. This is an asynchronous operation. To know the status of the cancellation, call
+ * GetCancelOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param jobName Name of the job to cancel.
+ * @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 triggerWithResponse(String vaultName, String resourceGroupName, String jobName, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/JobDetailsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/JobDetailsClient.java
new file mode 100644
index 0000000000000..eafbd31563caa
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/JobDetailsClient.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.JobResourceInner;
+
+/** An instance of this class provides access to all the operations defined in JobDetailsClient. */
+public interface JobDetailsClient {
+ /**
+ * Gets extended information associated with the job.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param jobName Name of the job whose details are to be fetched.
+ * @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 extended information associated with the job.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ JobResourceInner get(String vaultName, String resourceGroupName, String jobName);
+
+ /**
+ * Gets extended information associated with the job.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param jobName Name of the job whose details are to be fetched.
+ * @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 extended information associated with the job.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName, String resourceGroupName, String jobName, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/JobOperationResultsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/JobOperationResultsClient.java
new file mode 100644
index 0000000000000..9a260eb3d74a4
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/JobOperationResultsClient.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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;
+
+/** An instance of this class provides access to all the operations defined in JobOperationResultsClient. */
+public interface JobOperationResultsClient {
+ /**
+ * Fetches the result of any operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param jobName Job name whose operation result has to be fetched.
+ * @param operationId OperationID which represents the operation whose result has to be fetched.
+ * @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 get(String vaultName, String resourceGroupName, String jobName, String operationId);
+
+ /**
+ * Fetches the result of any operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param jobName Job name whose operation result has to be fetched.
+ * @param operationId OperationID which represents the operation whose result has to be fetched.
+ * @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 getWithResponse(
+ String vaultName, String resourceGroupName, String jobName, String operationId, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/JobsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/JobsClient.java
new file mode 100644
index 0000000000000..08bb167037d0d
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/JobsClient.java
@@ -0,0 +1,40 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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;
+
+/** An instance of this class provides access to all the operations defined in JobsClient. */
+public interface JobsClient {
+ /**
+ * Triggers export of jobs specified by filters and returns an OperationID to track.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 export(String vaultName, String resourceGroupName);
+
+ /**
+ * Triggers export of jobs specified by filters and returns an OperationID to track.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @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 exportWithResponse(String vaultName, String resourceGroupName, String filter, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/OperationsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/OperationsClient.java
new file mode 100644
index 0000000000000..81d4d9b71a78f
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/OperationsClient.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.ValidateOperationsResponseInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ValidateOperationRequest;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Validate operation for specified backed up item. This is a synchronous operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters resource validate operation request.
+ * @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)
+ ValidateOperationsResponseInner validate(
+ String vaultName, String resourceGroupName, ValidateOperationRequest parameters);
+
+ /**
+ * Validate operation for specified backed up item. This is a synchronous operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters resource validate operation request.
+ * @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 validateWithResponse(
+ String vaultName, String resourceGroupName, ValidateOperationRequest parameters, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/OperationsOperationsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/OperationsOperationsClient.java
new file mode 100644
index 0000000000000..69497872e4fa0
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/OperationsOperationsClient.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.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.ClientDiscoveryValueForSingleApiInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsOperationsClient. */
+public interface OperationsOperationsClient {
+ /**
+ * Returns the list of available 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 operations List response which contains list of available APIs.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Returns the list of available 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 operations List response which contains list of available APIs.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/PrivateEndpointConnectionsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/PrivateEndpointConnectionsClient.java
new file mode 100644
index 0000000000000..3aeaf4c01a7f5
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/PrivateEndpointConnectionsClient.java
@@ -0,0 +1,185 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.PrivateEndpointConnectionResourceInner;
+
+/** An instance of this class provides access to all the operations defined in PrivateEndpointConnectionsClient. */
+public interface PrivateEndpointConnectionsClient {
+ /**
+ * Get Private Endpoint Connection. This call is made by Backup Admin.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @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 private Endpoint Connection.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionResourceInner get(
+ String vaultName, String resourceGroupName, String privateEndpointConnectionName);
+
+ /**
+ * Get Private Endpoint Connection. This call is made by Backup Admin.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @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 private Endpoint Connection.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName, String resourceGroupName, String privateEndpointConnectionName, Context context);
+
+ /**
+ * Approve or Reject Private Endpoint requests. This call is made by Backup Admin.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param parameters Request body for 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 private Endpoint Connection Response Properties.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, PrivateEndpointConnectionResourceInner> beginPut(
+ String vaultName,
+ String resourceGroupName,
+ String privateEndpointConnectionName,
+ PrivateEndpointConnectionResourceInner parameters);
+
+ /**
+ * Approve or Reject Private Endpoint requests. This call is made by Backup Admin.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param parameters Request body for operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return private Endpoint Connection Response Properties.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, PrivateEndpointConnectionResourceInner> beginPut(
+ String vaultName,
+ String resourceGroupName,
+ String privateEndpointConnectionName,
+ PrivateEndpointConnectionResourceInner parameters,
+ Context context);
+
+ /**
+ * Approve or Reject Private Endpoint requests. This call is made by Backup Admin.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param parameters Request body for 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 private Endpoint Connection Response Properties.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionResourceInner put(
+ String vaultName,
+ String resourceGroupName,
+ String privateEndpointConnectionName,
+ PrivateEndpointConnectionResourceInner parameters);
+
+ /**
+ * Approve or Reject Private Endpoint requests. This call is made by Backup Admin.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param parameters Request body for operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return private Endpoint Connection Response Properties.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PrivateEndpointConnectionResourceInner put(
+ String vaultName,
+ String resourceGroupName,
+ String privateEndpointConnectionName,
+ PrivateEndpointConnectionResourceInner parameters,
+ Context context);
+
+ /**
+ * Delete Private Endpoint requests. This call is made by Backup Admin.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String vaultName, String resourceGroupName, String privateEndpointConnectionName);
+
+ /**
+ * Delete Private Endpoint requests. This call is made by Backup Admin.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String vaultName, String resourceGroupName, String privateEndpointConnectionName, Context context);
+
+ /**
+ * Delete Private Endpoint requests. This call is made by Backup Admin.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @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 vaultName, String resourceGroupName, String privateEndpointConnectionName);
+
+ /**
+ * Delete Private Endpoint requests. This call is made by Backup Admin.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String vaultName, String resourceGroupName, String privateEndpointConnectionName, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/PrivateEndpointsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/PrivateEndpointsClient.java
new file mode 100644
index 0000000000000..5ea4b56039669
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/PrivateEndpointsClient.java
@@ -0,0 +1,51 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.OperationStatusInner;
+
+/** An instance of this class provides access to all the operations defined in PrivateEndpointsClient. */
+public interface PrivateEndpointsClient {
+ /**
+ * Gets the operation status for a private endpoint connection.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param operationId Operation id.
+ * @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 operation status for a private endpoint connection.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusInner getOperationStatus(
+ String vaultName, String resourceGroupName, String privateEndpointConnectionName, String operationId);
+
+ /**
+ * Gets the operation status for a private endpoint connection.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @param operationId Operation id.
+ * @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 operation status for a private endpoint connection.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getOperationStatusWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String privateEndpointConnectionName,
+ String operationId,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectableContainersClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectableContainersClient.java
new file mode 100644
index 0000000000000..56c872748deb8
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectableContainersClient.java
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.ProtectableContainerResourceInner;
+
+/** An instance of this class provides access to all the operations defined in ProtectableContainersClient. */
+public interface ProtectableContainersClient {
+ /**
+ * Lists the containers that can be registered to Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName The fabricName parameter.
+ * @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 list of ProtectableContainer resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName, String resourceGroupName, String fabricName);
+
+ /**
+ * Lists the containers that can be registered to Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName The fabricName parameter.
+ * @param filter OData filter options.
+ * @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 list of ProtectableContainer resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName, String resourceGroupName, String fabricName, String filter, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectedItemOperationResultsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectedItemOperationResultsClient.java
new file mode 100644
index 0000000000000..0a3d66dac4df2
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectedItemOperationResultsClient.java
@@ -0,0 +1,62 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.ProtectedItemResourceInner;
+
+/** An instance of this class provides access to all the operations defined in ProtectedItemOperationResultsClient. */
+public interface ProtectedItemOperationResultsClient {
+ /**
+ * Fetches the result of any operation on the backup item.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backup item.
+ * @param containerName Container name associated with the backup item.
+ * @param protectedItemName Backup item name whose details are to be fetched.
+ * @param operationId OperationID which represents the operation whose result needs to be fetched.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup items.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProtectedItemResourceInner get(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String operationId);
+
+ /**
+ * Fetches the result of any operation on the backup item.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backup item.
+ * @param containerName Container name associated with the backup item.
+ * @param protectedItemName Backup item name whose details are to be fetched.
+ * @param operationId OperationID which represents the operation whose result needs to be fetched.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup items.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String operationId,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectedItemOperationStatusesClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectedItemOperationStatusesClient.java
new file mode 100644
index 0000000000000..43f8579559d96
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectedItemOperationStatusesClient.java
@@ -0,0 +1,66 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.OperationStatusInner;
+
+/** An instance of this class provides access to all the operations defined in ProtectedItemOperationStatusesClient. */
+public interface ProtectedItemOperationStatusesClient {
+ /**
+ * Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed
+ * or failed. You can refer to the OperationStatus enum for all the possible states of the operation. Some
+ * operations create jobs. This method returns the list of jobs associated with the operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backup item.
+ * @param containerName Container name associated with the backup item.
+ * @param protectedItemName Backup item name whose details are to be fetched.
+ * @param operationId OperationID represents the operation whose status needs to be fetched.
+ * @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 operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusInner get(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String operationId);
+
+ /**
+ * Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed
+ * or failed. You can refer to the OperationStatus enum for all the possible states of the operation. Some
+ * operations create jobs. This method returns the list of jobs associated with the operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backup item.
+ * @param containerName Container name associated with the backup item.
+ * @param protectedItemName Backup item name whose details are to be fetched.
+ * @param operationId OperationID represents the operation whose status needs to be fetched.
+ * @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 operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String operationId,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectedItemsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectedItemsClient.java
new file mode 100644
index 0000000000000..f3791d7c3e99d
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectedItemsClient.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.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.ProtectedItemResourceInner;
+
+/** An instance of this class provides access to all the operations defined in ProtectedItemsClient. */
+public interface ProtectedItemsClient {
+ /**
+ * Provides the details of the backed up item. This is an asynchronous operation. To know the status of the
+ * operation, call the GetItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up item.
+ * @param containerName Container name associated with the backed up item.
+ * @param protectedItemName Backed up item name whose details are to be fetched.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup items.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProtectedItemResourceInner get(
+ String vaultName, String resourceGroupName, String fabricName, String containerName, String protectedItemName);
+
+ /**
+ * Provides the details of the backed up item. This is an asynchronous operation. To know the status of the
+ * operation, call the GetItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up item.
+ * @param containerName Container name associated with the backed up item.
+ * @param protectedItemName Backed up item name whose details are to be fetched.
+ * @param filter OData filter options.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup items.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String filter,
+ Context context);
+
+ /**
+ * Enables backup of an item or to modifies the backup policy information of an already backed up item. This is an
+ * asynchronous operation. To know the status of the operation, call the GetItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backup item.
+ * @param containerName Container name associated with the backup item.
+ * @param protectedItemName Item name to be backed up.
+ * @param parameters resource backed up item.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup items.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProtectedItemResourceInner createOrUpdate(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ ProtectedItemResourceInner parameters);
+
+ /**
+ * Enables backup of an item or to modifies the backup policy information of an already backed up item. This is an
+ * asynchronous operation. To know the status of the operation, call the GetItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backup item.
+ * @param containerName Container name associated with the backup item.
+ * @param protectedItemName Item name to be backed up.
+ * @param parameters resource backed up item.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup items.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ ProtectedItemResourceInner parameters,
+ Context context);
+
+ /**
+ * Used to disable backup of an item within a container. This is an asynchronous operation. To know the status of
+ * the request, call the GetItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up item.
+ * @param containerName Container name associated with the backed up item.
+ * @param protectedItemName Backed up item to be deleted.
+ * @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 vaultName, String resourceGroupName, String fabricName, String containerName, String protectedItemName);
+
+ /**
+ * Used to disable backup of an item within a container. This is an asynchronous operation. To know the status of
+ * the request, call the GetItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up item.
+ * @param containerName Container name associated with the backed up item.
+ * @param protectedItemName Backed up item to be deleted.
+ * @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 vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionContainerOperationResultsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionContainerOperationResultsClient.java
new file mode 100644
index 0000000000000..d99b36fc10da8
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionContainerOperationResultsClient.java
@@ -0,0 +1,56 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.ProtectionContainerResourceInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in ProtectionContainerOperationResultsClient.
+ */
+public interface ProtectionContainerOperationResultsClient {
+ /**
+ * Fetches the result of any operation on the container.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the container.
+ * @param containerName Container name whose information should be fetched.
+ * @param operationId Operation ID which represents the operation whose result needs to be fetched.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for container with backup items.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProtectionContainerResourceInner get(
+ String vaultName, String resourceGroupName, String fabricName, String containerName, String operationId);
+
+ /**
+ * Fetches the result of any operation on the container.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the container.
+ * @param containerName Container name whose information should be fetched.
+ * @param operationId Operation ID which represents the operation whose result needs to be fetched.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for container with backup items.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String operationId,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionContainerRefreshOperationResultsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionContainerRefreshOperationResultsClient.java
new file mode 100644
index 0000000000000..6df731ab73bff
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionContainerRefreshOperationResultsClient.java
@@ -0,0 +1,47 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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;
+
+/**
+ * An instance of this class provides access to all the operations defined in
+ * ProtectionContainerRefreshOperationResultsClient.
+ */
+public interface ProtectionContainerRefreshOperationResultsClient {
+ /**
+ * Provides the result of the refresh operation triggered by the BeginRefresh operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the container.
+ * @param operationId Operation ID associated with the operation whose result needs to be fetched.
+ * @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 get(String vaultName, String resourceGroupName, String fabricName, String operationId);
+
+ /**
+ * Provides the result of the refresh operation triggered by the BeginRefresh operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the container.
+ * @param operationId Operation ID associated with the operation whose result needs to be fetched.
+ * @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 getWithResponse(
+ String vaultName, String resourceGroupName, String fabricName, String operationId, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionContainersClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionContainersClient.java
new file mode 100644
index 0000000000000..8098d46a28159
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionContainersClient.java
@@ -0,0 +1,197 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.ProtectionContainerResourceInner;
+
+/** An instance of this class provides access to all the operations defined in ProtectionContainersClient. */
+public interface ProtectionContainersClient {
+ /**
+ * Gets details of the specific container registered to your Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Name of the fabric where the container belongs.
+ * @param containerName Name of the container whose details need to be fetched.
+ * @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 details of the specific container registered to your Recovery Services Vault.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProtectionContainerResourceInner get(
+ String vaultName, String resourceGroupName, String fabricName, String containerName);
+
+ /**
+ * Gets details of the specific container registered to your Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Name of the fabric where the container belongs.
+ * @param containerName Name of the container whose details need to be fetched.
+ * @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 details of the specific container registered to your Recovery Services Vault.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName, String resourceGroupName, String fabricName, String containerName, Context context);
+
+ /**
+ * Registers the container with Recovery Services vault. This is an asynchronous operation. To track the operation
+ * status, use location header to call get latest status of the operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the container.
+ * @param containerName Name of the container to be registered.
+ * @param parameters Request body for operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for container with backup items.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProtectionContainerResourceInner register(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ ProtectionContainerResourceInner parameters);
+
+ /**
+ * Registers the container with Recovery Services vault. This is an asynchronous operation. To track the operation
+ * status, use location header to call get latest status of the operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the container.
+ * @param containerName Name of the container to be registered.
+ * @param parameters Request body for operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for container with backup items.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response registerWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ ProtectionContainerResourceInner parameters,
+ Context context);
+
+ /**
+ * Unregisters the given container from your Recovery Services Vault. This is an asynchronous operation. To
+ * determine whether the backend service has finished processing the request, call Get Container Operation Result
+ * API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Name of the fabric where the container belongs.
+ * @param containerName Name of the container which needs to be unregistered from the Recovery Services Vault.
+ * @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 unregister(String vaultName, String resourceGroupName, String fabricName, String containerName);
+
+ /**
+ * Unregisters the given container from your Recovery Services Vault. This is an asynchronous operation. To
+ * determine whether the backend service has finished processing the request, call Get Container Operation Result
+ * API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Name of the fabric where the container belongs.
+ * @param containerName Name of the container which needs to be unregistered from the Recovery Services Vault.
+ * @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 unregisterWithResponse(
+ String vaultName, String resourceGroupName, String fabricName, String containerName, Context context);
+
+ /**
+ * This is an async operation and the results should be tracked using location header or Azure-async-url.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric Name associated with the container.
+ * @param containerName Name of the container in which inquiry needs to be triggered.
+ * @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 inquire(String vaultName, String resourceGroupName, String fabricName, String containerName);
+
+ /**
+ * This is an async operation and the results should be tracked using location header or Azure-async-url.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric Name associated with the container.
+ * @param containerName Name of the container in which inquiry needs to be triggered.
+ * @param filter OData filter options.
+ * @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 inquireWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String filter,
+ Context context);
+
+ /**
+ * Discovers all the containers in the subscription that can be backed up to Recovery Services Vault. This is an
+ * asynchronous operation. To know the status of the operation, call GetRefreshOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated the container.
+ * @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 refresh(String vaultName, String resourceGroupName, String fabricName);
+
+ /**
+ * Discovers all the containers in the subscription that can be backed up to Recovery Services Vault. This is an
+ * asynchronous operation. To know the status of the operation, call GetRefreshOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated the container.
+ * @param filter OData filter options.
+ * @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 refreshWithResponse(
+ String vaultName, String resourceGroupName, String fabricName, String filter, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionIntentsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionIntentsClient.java
new file mode 100644
index 0000000000000..fe9a828426732
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionIntentsClient.java
@@ -0,0 +1,156 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.PreValidateEnableBackupResponseInner;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.ProtectionIntentResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.PreValidateEnableBackupRequest;
+
+/** An instance of this class provides access to all the operations defined in ProtectionIntentsClient. */
+public interface ProtectionIntentsClient {
+ /**
+ * It will validate followings 1. Vault capacity 2. VM is already protected 3. Any VM related configuration passed
+ * in properties.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Enable backup validation request on Virtual Machine.
+ * @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 response contract for enable backup validation request.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PreValidateEnableBackupResponseInner validate(String azureRegion, PreValidateEnableBackupRequest parameters);
+
+ /**
+ * It will validate followings 1. Vault capacity 2. VM is already protected 3. Any VM related configuration passed
+ * in properties.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Enable backup validation request on Virtual Machine.
+ * @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 response contract for enable backup validation request.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response validateWithResponse(
+ String azureRegion, PreValidateEnableBackupRequest parameters, Context context);
+
+ /**
+ * Provides the details of the protection intent up item. This is an asynchronous operation. To know the status of
+ * the operation, call the GetItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up item.
+ * @param intentObjectName Backed up item name whose details are to be fetched.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup ProtectionIntent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProtectionIntentResourceInner get(
+ String vaultName, String resourceGroupName, String fabricName, String intentObjectName);
+
+ /**
+ * Provides the details of the protection intent up item. This is an asynchronous operation. To know the status of
+ * the operation, call the GetItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up item.
+ * @param intentObjectName Backed up item name whose details are to be fetched.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup ProtectionIntent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName, String resourceGroupName, String fabricName, String intentObjectName, Context context);
+
+ /**
+ * Create Intent for Enabling backup of an item. This is a synchronous operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backup item.
+ * @param intentObjectName Intent object name.
+ * @param parameters resource backed up item.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup ProtectionIntent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProtectionIntentResourceInner createOrUpdate(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String intentObjectName,
+ ProtectionIntentResourceInner parameters);
+
+ /**
+ * Create Intent for Enabling backup of an item. This is a synchronous operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backup item.
+ * @param intentObjectName Intent object name.
+ * @param parameters resource backed up item.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup ProtectionIntent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String intentObjectName,
+ ProtectionIntentResourceInner parameters,
+ Context context);
+
+ /**
+ * Used to remove intent from an item.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the intent.
+ * @param intentObjectName Intent to be deleted.
+ * @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 vaultName, String resourceGroupName, String fabricName, String intentObjectName);
+
+ /**
+ * Used to remove intent from an item.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the intent.
+ * @param intentObjectName Intent to be deleted.
+ * @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 vaultName, String resourceGroupName, String fabricName, String intentObjectName, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionPoliciesClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionPoliciesClient.java
new file mode 100644
index 0000000000000..c3b32d225f8f2
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionPoliciesClient.java
@@ -0,0 +1,148 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.ProtectionPolicyResourceInner;
+
+/** An instance of this class provides access to all the operations defined in ProtectionPoliciesClient. */
+public interface ProtectionPoliciesClient {
+ /**
+ * Provides the details of the backup policies associated to Recovery Services Vault. This is an asynchronous
+ * operation. Status of the operation can be fetched using GetPolicyOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param policyName Backup policy information to be fetched.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProtectionPolicyResourceInner get(String vaultName, String resourceGroupName, String policyName);
+
+ /**
+ * Provides the details of the backup policies associated to Recovery Services Vault. This is an asynchronous
+ * operation. Status of the operation can be fetched using GetPolicyOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param policyName Backup policy information to be fetched.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName, String resourceGroupName, String policyName, Context context);
+
+ /**
+ * Creates or modifies a backup policy. This is an asynchronous operation. Status of the operation can be fetched
+ * using GetPolicyOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param policyName Backup policy to be created.
+ * @param parameters resource backup policy.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProtectionPolicyResourceInner createOrUpdate(
+ String vaultName, String resourceGroupName, String policyName, ProtectionPolicyResourceInner parameters);
+
+ /**
+ * Creates or modifies a backup policy. This is an asynchronous operation. Status of the operation can be fetched
+ * using GetPolicyOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param policyName Backup policy to be created.
+ * @param parameters resource backup policy.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createOrUpdateWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String policyName,
+ ProtectionPolicyResourceInner parameters,
+ Context context);
+
+ /**
+ * Deletes specified backup policy from your Recovery Services Vault. This is an asynchronous operation. Status of
+ * the operation can be fetched using GetProtectionPolicyOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param policyName Backup policy to be deleted.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String vaultName, String resourceGroupName, String policyName);
+
+ /**
+ * Deletes specified backup policy from your Recovery Services Vault. This is an asynchronous operation. Status of
+ * the operation can be fetched using GetProtectionPolicyOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param policyName Backup policy to be deleted.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String vaultName, String resourceGroupName, String policyName, Context context);
+
+ /**
+ * Deletes specified backup policy from your Recovery Services Vault. This is an asynchronous operation. Status of
+ * the operation can be fetched using GetProtectionPolicyOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param policyName Backup policy to be deleted.
+ * @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 vaultName, String resourceGroupName, String policyName);
+
+ /**
+ * Deletes specified backup policy from your Recovery Services Vault. This is an asynchronous operation. Status of
+ * the operation can be fetched using GetProtectionPolicyOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param policyName Backup policy to be deleted.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String vaultName, String resourceGroupName, String policyName, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionPolicyOperationResultsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionPolicyOperationResultsClient.java
new file mode 100644
index 0000000000000..a9bf770534ebc
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionPolicyOperationResultsClient.java
@@ -0,0 +1,49 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.ProtectionPolicyResourceInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in ProtectionPolicyOperationResultsClient.
+ */
+public interface ProtectionPolicyOperationResultsClient {
+ /**
+ * Provides the result of an operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param policyName Backup policy name whose operation's result needs to be fetched.
+ * @param operationId Operation ID which represents the operation whose result needs to be fetched.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProtectionPolicyResourceInner get(
+ String vaultName, String resourceGroupName, String policyName, String operationId);
+
+ /**
+ * Provides the result of an operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param policyName Backup policy name whose operation's result needs to be fetched.
+ * @param operationId Operation ID which represents the operation whose result needs to be fetched.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName, String resourceGroupName, String policyName, String operationId, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionPolicyOperationStatusesClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionPolicyOperationStatusesClient.java
new file mode 100644
index 0000000000000..12df7f98e31ee
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ProtectionPolicyOperationStatusesClient.java
@@ -0,0 +1,52 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.OperationStatusInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in ProtectionPolicyOperationStatusesClient.
+ */
+public interface ProtectionPolicyOperationStatusesClient {
+ /**
+ * Provides the status of the asynchronous operations like backup, restore. The status can be in progress, completed
+ * or failed. You can refer to the Operation Status enum for all the possible states of an operation. Some
+ * operations create jobs. This method returns the list of jobs associated with operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param policyName Backup policy name whose operation's status needs to be fetched.
+ * @param operationId Operation ID which represents an operation whose status needs to be fetched.
+ * @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 operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusInner get(String vaultName, String resourceGroupName, String policyName, String operationId);
+
+ /**
+ * Provides the status of the asynchronous operations like backup, restore. The status can be in progress, completed
+ * or failed. You can refer to the Operation Status enum for all the possible states of an operation. Some
+ * operations create jobs. This method returns the list of jobs associated with operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param policyName Backup policy name whose operation's status needs to be fetched.
+ * @param operationId Operation ID which represents an operation whose status needs to be fetched.
+ * @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 operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName, String resourceGroupName, String policyName, String operationId, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RecoveryPointsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RecoveryPointsClient.java
new file mode 100644
index 0000000000000..37306762572bc
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RecoveryPointsClient.java
@@ -0,0 +1,161 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.AadPropertiesResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.CrrAccessTokenResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.RecoveryPointResourceInner;
+
+/** An instance of this class provides access to all the operations defined in RecoveryPointsClient. */
+public interface RecoveryPointsClient {
+ /**
+ * Lists the backup copies for the backed up item.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up item.
+ * @param containerName Container name associated with the backed up item.
+ * @param protectedItemName Backed up item whose backup copies are to be fetched.
+ * @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 list of RecoveryPoint resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName, String resourceGroupName, String fabricName, String containerName, String protectedItemName);
+
+ /**
+ * Lists the backup copies for the backed up item.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up item.
+ * @param containerName Container name associated with the backed up item.
+ * @param protectedItemName Backed up item whose backup copies are to be fetched.
+ * @param filter OData filter options.
+ * @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 list of RecoveryPoint resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String filter,
+ Context context);
+
+ /**
+ * Provides the information of the backed up data identified using RecoveryPointID. This is an asynchronous
+ * operation. To know the status of the operation, call the GetProtectedItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with backed up item.
+ * @param containerName Container name associated with backed up item.
+ * @param protectedItemName Backed up item name whose backup data needs to be fetched.
+ * @param recoveryPointId RecoveryPointID represents the backed up data to be fetched.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup copies.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RecoveryPointResourceInner get(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId);
+
+ /**
+ * Provides the information of the backed up data identified using RecoveryPointID. This is an asynchronous
+ * operation. To know the status of the operation, call the GetProtectedItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with backed up item.
+ * @param containerName Container name associated with backed up item.
+ * @param protectedItemName Backed up item name whose backup data needs to be fetched.
+ * @param recoveryPointId RecoveryPointID represents the backed up data to be fetched.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return base class for backup copies.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId,
+ Context context);
+
+ /**
+ * Returns the Access token for communication between BMS and Protection service.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the container.
+ * @param containerName Name of the container.
+ * @param protectedItemName Name of the Protected Item.
+ * @param recoveryPointId Recovery Point Id.
+ * @param parameters Get Access Token request.
+ * @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)
+ CrrAccessTokenResourceInner getAccessToken(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId,
+ AadPropertiesResourceInner parameters);
+
+ /**
+ * Returns the Access token for communication between BMS and Protection service.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the container.
+ * @param containerName Name of the container.
+ * @param protectedItemName Name of the Protected Item.
+ * @param recoveryPointId Recovery Point Id.
+ * @param parameters Get Access Token request.
+ * @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 getAccessTokenWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId,
+ AadPropertiesResourceInner parameters,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RecoveryPointsCrrsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RecoveryPointsCrrsClient.java
new file mode 100644
index 0000000000000..aec79d56dfecb
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RecoveryPointsCrrsClient.java
@@ -0,0 +1,56 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.RecoveryPointResourceInner;
+
+/** An instance of this class provides access to all the operations defined in RecoveryPointsCrrsClient. */
+public interface RecoveryPointsCrrsClient {
+ /**
+ * Lists the backup copies for the backed up item.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up item.
+ * @param containerName Container name associated with the backed up item.
+ * @param protectedItemName Backed up item whose backup copies are to be fetched.
+ * @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 list of RecoveryPoint resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName, String resourceGroupName, String fabricName, String containerName, String protectedItemName);
+
+ /**
+ * Lists the backup copies for the backed up item.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up item.
+ * @param containerName Container name associated with the backed up item.
+ * @param protectedItemName Backed up item whose backup copies are to be fetched.
+ * @param filter OData filter options.
+ * @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 list of RecoveryPoint resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String filter,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RecoveryPointsRecommendedForMovesClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RecoveryPointsRecommendedForMovesClient.java
new file mode 100644
index 0000000000000..102993ff1a865
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RecoveryPointsRecommendedForMovesClient.java
@@ -0,0 +1,65 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.RecoveryPointResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ListRecoveryPointsRecommendedForMoveRequest;
+
+/**
+ * An instance of this class provides access to all the operations defined in RecoveryPointsRecommendedForMovesClient.
+ */
+public interface RecoveryPointsRecommendedForMovesClient {
+ /**
+ * Lists the recovery points recommended for move to another tier.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName The fabricName parameter.
+ * @param containerName The containerName parameter.
+ * @param protectedItemName The protectedItemName parameter.
+ * @param parameters List Recovery points Recommended for Move Request.
+ * @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 list of RecoveryPoint resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ ListRecoveryPointsRecommendedForMoveRequest parameters);
+
+ /**
+ * Lists the recovery points recommended for move to another tier.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName The fabricName parameter.
+ * @param containerName The containerName parameter.
+ * @param protectedItemName The protectedItemName parameter.
+ * @param parameters List Recovery points Recommended for Move Request.
+ * @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 list of RecoveryPoint resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ ListRecoveryPointsRecommendedForMoveRequest parameters,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RecoveryServicesBackupClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RecoveryServicesBackupClient.java
new file mode 100644
index 0000000000000..3c47df3873806
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RecoveryServicesBackupClient.java
@@ -0,0 +1,403 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for RecoveryServicesBackupClient class. */
+public interface RecoveryServicesBackupClient {
+ /**
+ * Gets The subscription Id.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * 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 BackupResourceVaultConfigsClient object to access its operations.
+ *
+ * @return the BackupResourceVaultConfigsClient object.
+ */
+ BackupResourceVaultConfigsClient getBackupResourceVaultConfigs();
+
+ /**
+ * Gets the BackupResourceEncryptionConfigsClient object to access its operations.
+ *
+ * @return the BackupResourceEncryptionConfigsClient object.
+ */
+ BackupResourceEncryptionConfigsClient getBackupResourceEncryptionConfigs();
+
+ /**
+ * Gets the PrivateEndpointConnectionsClient object to access its operations.
+ *
+ * @return the PrivateEndpointConnectionsClient object.
+ */
+ PrivateEndpointConnectionsClient getPrivateEndpointConnections();
+
+ /**
+ * Gets the PrivateEndpointsClient object to access its operations.
+ *
+ * @return the PrivateEndpointsClient object.
+ */
+ PrivateEndpointsClient getPrivateEndpoints();
+
+ /**
+ * Gets the ResourceProvidersClient object to access its operations.
+ *
+ * @return the ResourceProvidersClient object.
+ */
+ ResourceProvidersClient getResourceProviders();
+
+ /**
+ * Gets the BmsPrepareDataMoveOperationResultsClient object to access its operations.
+ *
+ * @return the BmsPrepareDataMoveOperationResultsClient object.
+ */
+ BmsPrepareDataMoveOperationResultsClient getBmsPrepareDataMoveOperationResults();
+
+ /**
+ * Gets the ProtectedItemsClient object to access its operations.
+ *
+ * @return the ProtectedItemsClient object.
+ */
+ ProtectedItemsClient getProtectedItems();
+
+ /**
+ * Gets the ProtectedItemOperationResultsClient object to access its operations.
+ *
+ * @return the ProtectedItemOperationResultsClient object.
+ */
+ ProtectedItemOperationResultsClient getProtectedItemOperationResults();
+
+ /**
+ * Gets the RecoveryPointsClient object to access its operations.
+ *
+ * @return the RecoveryPointsClient object.
+ */
+ RecoveryPointsClient getRecoveryPoints();
+
+ /**
+ * Gets the RestoresClient object to access its operations.
+ *
+ * @return the RestoresClient object.
+ */
+ RestoresClient getRestores();
+
+ /**
+ * Gets the BackupPoliciesClient object to access its operations.
+ *
+ * @return the BackupPoliciesClient object.
+ */
+ BackupPoliciesClient getBackupPolicies();
+
+ /**
+ * Gets the ProtectionPoliciesClient object to access its operations.
+ *
+ * @return the ProtectionPoliciesClient object.
+ */
+ ProtectionPoliciesClient getProtectionPolicies();
+
+ /**
+ * Gets the ProtectionPolicyOperationResultsClient object to access its operations.
+ *
+ * @return the ProtectionPolicyOperationResultsClient object.
+ */
+ ProtectionPolicyOperationResultsClient getProtectionPolicyOperationResults();
+
+ /**
+ * Gets the BackupJobsClient object to access its operations.
+ *
+ * @return the BackupJobsClient object.
+ */
+ BackupJobsClient getBackupJobs();
+
+ /**
+ * Gets the JobDetailsClient object to access its operations.
+ *
+ * @return the JobDetailsClient object.
+ */
+ JobDetailsClient getJobDetails();
+
+ /**
+ * Gets the JobCancellationsClient object to access its operations.
+ *
+ * @return the JobCancellationsClient object.
+ */
+ JobCancellationsClient getJobCancellations();
+
+ /**
+ * Gets the JobOperationResultsClient object to access its operations.
+ *
+ * @return the JobOperationResultsClient object.
+ */
+ JobOperationResultsClient getJobOperationResults();
+
+ /**
+ * Gets the ExportJobsOperationResultsClient object to access its operations.
+ *
+ * @return the ExportJobsOperationResultsClient object.
+ */
+ ExportJobsOperationResultsClient getExportJobsOperationResults();
+
+ /**
+ * Gets the JobsClient object to access its operations.
+ *
+ * @return the JobsClient object.
+ */
+ JobsClient getJobs();
+
+ /**
+ * Gets the BackupProtectedItemsClient object to access its operations.
+ *
+ * @return the BackupProtectedItemsClient object.
+ */
+ BackupProtectedItemsClient getBackupProtectedItems();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the BackupEnginesClient object to access its operations.
+ *
+ * @return the BackupEnginesClient object.
+ */
+ BackupEnginesClient getBackupEngines();
+
+ /**
+ * Gets the ProtectionContainerRefreshOperationResultsClient object to access its operations.
+ *
+ * @return the ProtectionContainerRefreshOperationResultsClient object.
+ */
+ ProtectionContainerRefreshOperationResultsClient getProtectionContainerRefreshOperationResults();
+
+ /**
+ * Gets the ProtectableContainersClient object to access its operations.
+ *
+ * @return the ProtectableContainersClient object.
+ */
+ ProtectableContainersClient getProtectableContainers();
+
+ /**
+ * Gets the ProtectionContainersClient object to access its operations.
+ *
+ * @return the ProtectionContainersClient object.
+ */
+ ProtectionContainersClient getProtectionContainers();
+
+ /**
+ * Gets the BackupWorkloadItemsClient object to access its operations.
+ *
+ * @return the BackupWorkloadItemsClient object.
+ */
+ BackupWorkloadItemsClient getBackupWorkloadItems();
+
+ /**
+ * Gets the ProtectionContainerOperationResultsClient object to access its operations.
+ *
+ * @return the ProtectionContainerOperationResultsClient object.
+ */
+ ProtectionContainerOperationResultsClient getProtectionContainerOperationResults();
+
+ /**
+ * Gets the BackupsClient object to access its operations.
+ *
+ * @return the BackupsClient object.
+ */
+ BackupsClient getBackups();
+
+ /**
+ * Gets the ProtectedItemOperationStatusesClient object to access its operations.
+ *
+ * @return the ProtectedItemOperationStatusesClient object.
+ */
+ ProtectedItemOperationStatusesClient getProtectedItemOperationStatuses();
+
+ /**
+ * Gets the ItemLevelRecoveryConnectionsClient object to access its operations.
+ *
+ * @return the ItemLevelRecoveryConnectionsClient object.
+ */
+ ItemLevelRecoveryConnectionsClient getItemLevelRecoveryConnections();
+
+ /**
+ * Gets the BackupOperationResultsClient object to access its operations.
+ *
+ * @return the BackupOperationResultsClient object.
+ */
+ BackupOperationResultsClient getBackupOperationResults();
+
+ /**
+ * Gets the BackupOperationStatusesClient object to access its operations.
+ *
+ * @return the BackupOperationStatusesClient object.
+ */
+ BackupOperationStatusesClient getBackupOperationStatuses();
+
+ /**
+ * Gets the ProtectionPolicyOperationStatusesClient object to access its operations.
+ *
+ * @return the ProtectionPolicyOperationStatusesClient object.
+ */
+ ProtectionPolicyOperationStatusesClient getProtectionPolicyOperationStatuses();
+
+ /**
+ * Gets the BackupProtectableItemsClient object to access its operations.
+ *
+ * @return the BackupProtectableItemsClient object.
+ */
+ BackupProtectableItemsClient getBackupProtectableItems();
+
+ /**
+ * Gets the BackupProtectionContainersClient object to access its operations.
+ *
+ * @return the BackupProtectionContainersClient object.
+ */
+ BackupProtectionContainersClient getBackupProtectionContainers();
+
+ /**
+ * Gets the SecurityPINsClient object to access its operations.
+ *
+ * @return the SecurityPINsClient object.
+ */
+ SecurityPINsClient getSecurityPINs();
+
+ /**
+ * Gets the RecoveryPointsRecommendedForMovesClient object to access its operations.
+ *
+ * @return the RecoveryPointsRecommendedForMovesClient object.
+ */
+ RecoveryPointsRecommendedForMovesClient getRecoveryPointsRecommendedForMoves();
+
+ /**
+ * Gets the AadPropertiesOperationsClient object to access its operations.
+ *
+ * @return the AadPropertiesOperationsClient object.
+ */
+ AadPropertiesOperationsClient getAadPropertiesOperations();
+
+ /**
+ * Gets the CrossRegionRestoresClient object to access its operations.
+ *
+ * @return the CrossRegionRestoresClient object.
+ */
+ CrossRegionRestoresClient getCrossRegionRestores();
+
+ /**
+ * Gets the BackupCrrJobDetailsClient object to access its operations.
+ *
+ * @return the BackupCrrJobDetailsClient object.
+ */
+ BackupCrrJobDetailsClient getBackupCrrJobDetails();
+
+ /**
+ * Gets the BackupCrrJobsClient object to access its operations.
+ *
+ * @return the BackupCrrJobsClient object.
+ */
+ BackupCrrJobsClient getBackupCrrJobs();
+
+ /**
+ * Gets the CrrOperationResultsClient object to access its operations.
+ *
+ * @return the CrrOperationResultsClient object.
+ */
+ CrrOperationResultsClient getCrrOperationResults();
+
+ /**
+ * Gets the CrrOperationStatusClient object to access its operations.
+ *
+ * @return the CrrOperationStatusClient object.
+ */
+ CrrOperationStatusClient getCrrOperationStatus();
+
+ /**
+ * Gets the BackupResourceStorageConfigsClient object to access its operations.
+ *
+ * @return the BackupResourceStorageConfigsClient object.
+ */
+ BackupResourceStorageConfigsClient getBackupResourceStorageConfigs();
+
+ /**
+ * Gets the RecoveryPointsCrrsClient object to access its operations.
+ *
+ * @return the RecoveryPointsCrrsClient object.
+ */
+ RecoveryPointsCrrsClient getRecoveryPointsCrrs();
+
+ /**
+ * Gets the BackupProtectedItemsCrrsClient object to access its operations.
+ *
+ * @return the BackupProtectedItemsCrrsClient object.
+ */
+ BackupProtectedItemsCrrsClient getBackupProtectedItemsCrrs();
+
+ /**
+ * Gets the ProtectionIntentsClient object to access its operations.
+ *
+ * @return the ProtectionIntentsClient object.
+ */
+ ProtectionIntentsClient getProtectionIntents();
+
+ /**
+ * Gets the BackupStatusClient object to access its operations.
+ *
+ * @return the BackupStatusClient object.
+ */
+ BackupStatusClient getBackupStatus();
+
+ /**
+ * Gets the FeatureSupportsClient object to access its operations.
+ *
+ * @return the FeatureSupportsClient object.
+ */
+ FeatureSupportsClient getFeatureSupports();
+
+ /**
+ * Gets the BackupProtectionIntentsClient object to access its operations.
+ *
+ * @return the BackupProtectionIntentsClient object.
+ */
+ BackupProtectionIntentsClient getBackupProtectionIntents();
+
+ /**
+ * Gets the BackupUsageSummariesClient object to access its operations.
+ *
+ * @return the BackupUsageSummariesClient object.
+ */
+ BackupUsageSummariesClient getBackupUsageSummaries();
+
+ /**
+ * Gets the OperationsOperationsClient object to access its operations.
+ *
+ * @return the OperationsOperationsClient object.
+ */
+ OperationsOperationsClient getOperationsOperations();
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ResourceProvidersClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ResourceProvidersClient.java
new file mode 100644
index 0000000000000..3b758f9f69e2f
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/ResourceProvidersClient.java
@@ -0,0 +1,269 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.OperationStatusInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.MoveRPAcrossTiersRequest;
+import com.azure.resourcemanager.recoveryservicesbackup.models.PrepareDataMoveRequest;
+import com.azure.resourcemanager.recoveryservicesbackup.models.TriggerDataMoveRequest;
+
+/** An instance of this class provides access to all the operations defined in ResourceProvidersClient. */
+public interface ResourceProvidersClient {
+ /**
+ * Fetches operation status for data move operation on vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId The operationId parameter.
+ * @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 operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusInner getOperationStatus(String vaultName, String resourceGroupName, String operationId);
+
+ /**
+ * Fetches operation status for data move operation on vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId The operationId parameter.
+ * @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 operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getOperationStatusWithResponse(
+ String vaultName, String resourceGroupName, String operationId, Context context);
+
+ /**
+ * Prepares source vault for Data Move operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Prepare data move request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginBmsPrepareDataMove(
+ String vaultName, String resourceGroupName, PrepareDataMoveRequest parameters);
+
+ /**
+ * Prepares source vault for Data Move operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Prepare data move request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginBmsPrepareDataMove(
+ String vaultName, String resourceGroupName, PrepareDataMoveRequest parameters, Context context);
+
+ /**
+ * Prepares source vault for Data Move operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Prepare data move request.
+ * @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 bmsPrepareDataMove(String vaultName, String resourceGroupName, PrepareDataMoveRequest parameters);
+
+ /**
+ * Prepares source vault for Data Move operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Prepare data move request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void bmsPrepareDataMove(
+ String vaultName, String resourceGroupName, PrepareDataMoveRequest parameters, Context context);
+
+ /**
+ * Triggers Data Move Operation on target vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Trigger data move request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginBmsTriggerDataMove(
+ String vaultName, String resourceGroupName, TriggerDataMoveRequest parameters);
+
+ /**
+ * Triggers Data Move Operation on target vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Trigger data move request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginBmsTriggerDataMove(
+ String vaultName, String resourceGroupName, TriggerDataMoveRequest parameters, Context context);
+
+ /**
+ * Triggers Data Move Operation on target vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Trigger data move request.
+ * @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 bmsTriggerDataMove(String vaultName, String resourceGroupName, TriggerDataMoveRequest parameters);
+
+ /**
+ * Triggers Data Move Operation on target vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Trigger data move request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void bmsTriggerDataMove(
+ String vaultName, String resourceGroupName, TriggerDataMoveRequest parameters, Context context);
+
+ /**
+ * Move recovery point from one datastore to another store.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName The fabricName parameter.
+ * @param containerName The containerName parameter.
+ * @param protectedItemName The protectedItemName parameter.
+ * @param recoveryPointId The recoveryPointId parameter.
+ * @param parameters Move Resource Across Tiers Request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginMoveRecoveryPoint(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId,
+ MoveRPAcrossTiersRequest parameters);
+
+ /**
+ * Move recovery point from one datastore to another store.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName The fabricName parameter.
+ * @param containerName The containerName parameter.
+ * @param protectedItemName The protectedItemName parameter.
+ * @param recoveryPointId The recoveryPointId parameter.
+ * @param parameters Move Resource Across Tiers Request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginMoveRecoveryPoint(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId,
+ MoveRPAcrossTiersRequest parameters,
+ Context context);
+
+ /**
+ * Move recovery point from one datastore to another store.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName The fabricName parameter.
+ * @param containerName The containerName parameter.
+ * @param protectedItemName The protectedItemName parameter.
+ * @param recoveryPointId The recoveryPointId parameter.
+ * @param parameters Move Resource Across Tiers Request.
+ * @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 moveRecoveryPoint(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId,
+ MoveRPAcrossTiersRequest parameters);
+
+ /**
+ * Move recovery point from one datastore to another store.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName The fabricName parameter.
+ * @param containerName The containerName parameter.
+ * @param protectedItemName The protectedItemName parameter.
+ * @param recoveryPointId The recoveryPointId parameter.
+ * @param parameters Move Resource Across Tiers Request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void moveRecoveryPoint(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId,
+ MoveRPAcrossTiersRequest parameters,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RestoresClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RestoresClient.java
new file mode 100644
index 0000000000000..de7f8b5894512
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/RestoresClient.java
@@ -0,0 +1,121 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.recoveryservicesbackup.models.RestoreRequestResource;
+
+/** An instance of this class provides access to all the operations defined in RestoresClient. */
+public interface RestoresClient {
+ /**
+ * Restores the specified backed up data. This is an asynchronous operation. To know the status of this API call,
+ * use GetProtectedItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up items.
+ * @param containerName Container name associated with the backed up items.
+ * @param protectedItemName Backed up item to be restored.
+ * @param recoveryPointId Recovery point ID which represents the backed up data to be restored.
+ * @param parameters resource restore request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginTrigger(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId,
+ RestoreRequestResource parameters);
+
+ /**
+ * Restores the specified backed up data. This is an asynchronous operation. To know the status of this API call,
+ * use GetProtectedItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up items.
+ * @param containerName Container name associated with the backed up items.
+ * @param protectedItemName Backed up item to be restored.
+ * @param recoveryPointId Recovery point ID which represents the backed up data to be restored.
+ * @param parameters resource restore request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginTrigger(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId,
+ RestoreRequestResource parameters,
+ Context context);
+
+ /**
+ * Restores the specified backed up data. This is an asynchronous operation. To know the status of this API call,
+ * use GetProtectedItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up items.
+ * @param containerName Container name associated with the backed up items.
+ * @param protectedItemName Backed up item to be restored.
+ * @param recoveryPointId Recovery point ID which represents the backed up data to be restored.
+ * @param parameters resource restore request.
+ * @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 trigger(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId,
+ RestoreRequestResource parameters);
+
+ /**
+ * Restores the specified backed up data. This is an asynchronous operation. To know the status of this API call,
+ * use GetProtectedItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up items.
+ * @param containerName Container name associated with the backed up items.
+ * @param protectedItemName Backed up item to be restored.
+ * @param recoveryPointId Recovery point ID which represents the backed up data to be restored.
+ * @param parameters resource restore request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void trigger(
+ String vaultName,
+ String resourceGroupName,
+ String fabricName,
+ String containerName,
+ String protectedItemName,
+ String recoveryPointId,
+ RestoreRequestResource parameters,
+ Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/SecurityPINsClient.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/SecurityPINsClient.java
new file mode 100644
index 0000000000000..6365bdedc379e
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/SecurityPINsClient.java
@@ -0,0 +1,41 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.fluent.models.TokenInformationInner;
+
+/** An instance of this class provides access to all the operations defined in SecurityPINsClient. */
+public interface SecurityPINsClient {
+ /**
+ * Get the security PIN.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 security PIN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ TokenInformationInner get(String vaultName, String resourceGroupName);
+
+ /**
+ * Get the security PIN.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 security PIN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String vaultName, String resourceGroupName, Context context);
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/AadPropertiesResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/AadPropertiesResourceInner.java
new file mode 100644
index 0000000000000..bc98b5015b8a0
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/AadPropertiesResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.AadProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The AadPropertiesResource model. */
+@Fluent
+public final class AadPropertiesResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AadPropertiesResourceInner.class);
+
+ /*
+ * AADPropertiesResource properties
+ */
+ @JsonProperty(value = "properties")
+ private AadProperties properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: AADPropertiesResource properties.
+ *
+ * @return the properties value.
+ */
+ public AadProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: AADPropertiesResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the AadPropertiesResourceInner object itself.
+ */
+ public AadPropertiesResourceInner withProperties(AadProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the AadPropertiesResourceInner object itself.
+ */
+ public AadPropertiesResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public AadPropertiesResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public AadPropertiesResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/AzureVMResourceFeatureSupportResponseInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/AzureVMResourceFeatureSupportResponseInner.java
new file mode 100644
index 0000000000000..269f01dfa15cd
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/AzureVMResourceFeatureSupportResponseInner.java
@@ -0,0 +1,51 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesbackup.models.SupportStatus;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Response for feature support requests for Azure IaasVm. */
+@Fluent
+public final class AzureVMResourceFeatureSupportResponseInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AzureVMResourceFeatureSupportResponseInner.class);
+
+ /*
+ * Support status of feature
+ */
+ @JsonProperty(value = "supportStatus")
+ private SupportStatus supportStatus;
+
+ /**
+ * Get the supportStatus property: Support status of feature.
+ *
+ * @return the supportStatus value.
+ */
+ public SupportStatus supportStatus() {
+ return this.supportStatus;
+ }
+
+ /**
+ * Set the supportStatus property: Support status of feature.
+ *
+ * @param supportStatus the supportStatus value to set.
+ * @return the AzureVMResourceFeatureSupportResponseInner object itself.
+ */
+ public AzureVMResourceFeatureSupportResponseInner withSupportStatus(SupportStatus supportStatus) {
+ this.supportStatus = supportStatus;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupEngineBaseResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupEngineBaseResourceInner.java
new file mode 100644
index 0000000000000..5aa3a3284b550
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupEngineBaseResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.BackupEngineBase;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The base backup engine class. All workload specific backup engines derive from this class. */
+@Fluent
+public final class BackupEngineBaseResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupEngineBaseResourceInner.class);
+
+ /*
+ * BackupEngineBaseResource properties
+ */
+ @JsonProperty(value = "properties")
+ private BackupEngineBase properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: BackupEngineBaseResource properties.
+ *
+ * @return the properties value.
+ */
+ public BackupEngineBase properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: BackupEngineBaseResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the BackupEngineBaseResourceInner object itself.
+ */
+ public BackupEngineBaseResourceInner withProperties(BackupEngineBase properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the BackupEngineBaseResourceInner object itself.
+ */
+ public BackupEngineBaseResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BackupEngineBaseResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BackupEngineBaseResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupManagementUsageInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupManagementUsageInner.java
new file mode 100644
index 0000000000000..f04ef49104d2b
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupManagementUsageInner.java
@@ -0,0 +1,186 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesbackup.models.NameInfo;
+import com.azure.resourcemanager.recoveryservicesbackup.models.UsagesUnit;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Backup management usages of a vault. */
+@Fluent
+public final class BackupManagementUsageInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupManagementUsageInner.class);
+
+ /*
+ * Unit of the usage.
+ */
+ @JsonProperty(value = "unit")
+ private UsagesUnit unit;
+
+ /*
+ * Quota period of usage.
+ */
+ @JsonProperty(value = "quotaPeriod")
+ private String quotaPeriod;
+
+ /*
+ * Next reset time of usage.
+ */
+ @JsonProperty(value = "nextResetTime")
+ private OffsetDateTime nextResetTime;
+
+ /*
+ * Current value of usage.
+ */
+ @JsonProperty(value = "currentValue")
+ private Long currentValue;
+
+ /*
+ * Limit of usage.
+ */
+ @JsonProperty(value = "limit")
+ private Long limit;
+
+ /*
+ * Name of usage.
+ */
+ @JsonProperty(value = "name")
+ private NameInfo name;
+
+ /**
+ * Get the unit property: Unit of the usage.
+ *
+ * @return the unit value.
+ */
+ public UsagesUnit unit() {
+ return this.unit;
+ }
+
+ /**
+ * Set the unit property: Unit of the usage.
+ *
+ * @param unit the unit value to set.
+ * @return the BackupManagementUsageInner object itself.
+ */
+ public BackupManagementUsageInner withUnit(UsagesUnit unit) {
+ this.unit = unit;
+ return this;
+ }
+
+ /**
+ * Get the quotaPeriod property: Quota period of usage.
+ *
+ * @return the quotaPeriod value.
+ */
+ public String quotaPeriod() {
+ return this.quotaPeriod;
+ }
+
+ /**
+ * Set the quotaPeriod property: Quota period of usage.
+ *
+ * @param quotaPeriod the quotaPeriod value to set.
+ * @return the BackupManagementUsageInner object itself.
+ */
+ public BackupManagementUsageInner withQuotaPeriod(String quotaPeriod) {
+ this.quotaPeriod = quotaPeriod;
+ return this;
+ }
+
+ /**
+ * Get the nextResetTime property: Next reset time of usage.
+ *
+ * @return the nextResetTime value.
+ */
+ public OffsetDateTime nextResetTime() {
+ return this.nextResetTime;
+ }
+
+ /**
+ * Set the nextResetTime property: Next reset time of usage.
+ *
+ * @param nextResetTime the nextResetTime value to set.
+ * @return the BackupManagementUsageInner object itself.
+ */
+ public BackupManagementUsageInner withNextResetTime(OffsetDateTime nextResetTime) {
+ this.nextResetTime = nextResetTime;
+ return this;
+ }
+
+ /**
+ * Get the currentValue property: Current value of usage.
+ *
+ * @return the currentValue value.
+ */
+ public Long currentValue() {
+ return this.currentValue;
+ }
+
+ /**
+ * Set the currentValue property: Current value of usage.
+ *
+ * @param currentValue the currentValue value to set.
+ * @return the BackupManagementUsageInner object itself.
+ */
+ public BackupManagementUsageInner withCurrentValue(Long currentValue) {
+ this.currentValue = currentValue;
+ return this;
+ }
+
+ /**
+ * Get the limit property: Limit of usage.
+ *
+ * @return the limit value.
+ */
+ public Long limit() {
+ return this.limit;
+ }
+
+ /**
+ * Set the limit property: Limit of usage.
+ *
+ * @param limit the limit value to set.
+ * @return the BackupManagementUsageInner object itself.
+ */
+ public BackupManagementUsageInner withLimit(Long limit) {
+ this.limit = limit;
+ return this;
+ }
+
+ /**
+ * Get the name property: Name of usage.
+ *
+ * @return the name value.
+ */
+ public NameInfo name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Name of usage.
+ *
+ * @param name the name value to set.
+ * @return the BackupManagementUsageInner object itself.
+ */
+ public BackupManagementUsageInner withName(NameInfo name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (name() != null) {
+ name().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupResourceConfigResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupResourceConfigResourceInner.java
new file mode 100644
index 0000000000000..6bdfc58c9455f
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupResourceConfigResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.BackupResourceConfig;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The resource storage details. */
+@Fluent
+public final class BackupResourceConfigResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupResourceConfigResourceInner.class);
+
+ /*
+ * BackupResourceConfigResource properties
+ */
+ @JsonProperty(value = "properties")
+ private BackupResourceConfig properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: BackupResourceConfigResource properties.
+ *
+ * @return the properties value.
+ */
+ public BackupResourceConfig properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: BackupResourceConfigResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the BackupResourceConfigResourceInner object itself.
+ */
+ public BackupResourceConfigResourceInner withProperties(BackupResourceConfig properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the BackupResourceConfigResourceInner object itself.
+ */
+ public BackupResourceConfigResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BackupResourceConfigResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BackupResourceConfigResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupResourceEncryptionConfigResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupResourceEncryptionConfigResourceInner.java
new file mode 100644
index 0000000000000..13013f6d80689
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupResourceEncryptionConfigResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.BackupResourceEncryptionConfig;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The BackupResourceEncryptionConfigResource model. */
+@Fluent
+public final class BackupResourceEncryptionConfigResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupResourceEncryptionConfigResourceInner.class);
+
+ /*
+ * BackupResourceEncryptionConfigResource properties
+ */
+ @JsonProperty(value = "properties")
+ private BackupResourceEncryptionConfig properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: BackupResourceEncryptionConfigResource properties.
+ *
+ * @return the properties value.
+ */
+ public BackupResourceEncryptionConfig properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: BackupResourceEncryptionConfigResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the BackupResourceEncryptionConfigResourceInner object itself.
+ */
+ public BackupResourceEncryptionConfigResourceInner withProperties(BackupResourceEncryptionConfig properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the BackupResourceEncryptionConfigResourceInner object itself.
+ */
+ public BackupResourceEncryptionConfigResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BackupResourceEncryptionConfigResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BackupResourceEncryptionConfigResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupResourceVaultConfigResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupResourceVaultConfigResourceInner.java
new file mode 100644
index 0000000000000..3b9884e2807a4
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupResourceVaultConfigResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.BackupResourceVaultConfig;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Backup resource vault config details. */
+@Fluent
+public final class BackupResourceVaultConfigResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupResourceVaultConfigResourceInner.class);
+
+ /*
+ * BackupResourceVaultConfigResource properties
+ */
+ @JsonProperty(value = "properties")
+ private BackupResourceVaultConfig properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: BackupResourceVaultConfigResource properties.
+ *
+ * @return the properties value.
+ */
+ public BackupResourceVaultConfig properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: BackupResourceVaultConfigResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the BackupResourceVaultConfigResourceInner object itself.
+ */
+ public BackupResourceVaultConfigResourceInner withProperties(BackupResourceVaultConfig properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the BackupResourceVaultConfigResourceInner object itself.
+ */
+ public BackupResourceVaultConfigResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BackupResourceVaultConfigResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BackupResourceVaultConfigResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupStatusResponseInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupStatusResponseInner.java
new file mode 100644
index 0000000000000..710cd4fd9fb33
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/BackupStatusResponseInner.java
@@ -0,0 +1,266 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesbackup.models.FabricName;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectionStatus;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** BackupStatus response. */
+@Fluent
+public final class BackupStatusResponseInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupStatusResponseInner.class);
+
+ /*
+ * Specifies whether the container is registered or not
+ */
+ @JsonProperty(value = "protectionStatus")
+ private ProtectionStatus protectionStatus;
+
+ /*
+ * Specifies the arm resource id of the vault
+ */
+ @JsonProperty(value = "vaultId")
+ private String vaultId;
+
+ /*
+ * Specifies the fabric name - Azure or AD
+ */
+ @JsonProperty(value = "fabricName")
+ private FabricName fabricName;
+
+ /*
+ * Specifies the product specific container name. E.g.
+ * iaasvmcontainer;iaasvmcontainer;csname;vmname.
+ */
+ @JsonProperty(value = "containerName")
+ private String containerName;
+
+ /*
+ * Specifies the product specific ds name. E.g.
+ * vm;iaasvmcontainer;csname;vmname.
+ */
+ @JsonProperty(value = "protectedItemName")
+ private String protectedItemName;
+
+ /*
+ * ErrorCode in case of intent failed
+ */
+ @JsonProperty(value = "errorCode")
+ private String errorCode;
+
+ /*
+ * ErrorMessage in case of intent failed.
+ */
+ @JsonProperty(value = "errorMessage")
+ private String errorMessage;
+
+ /*
+ * Specifies the policy name which is used for protection
+ */
+ @JsonProperty(value = "policyName")
+ private String policyName;
+
+ /*
+ * Container registration status
+ */
+ @JsonProperty(value = "registrationStatus")
+ private String registrationStatus;
+
+ /**
+ * Get the protectionStatus property: Specifies whether the container is registered or not.
+ *
+ * @return the protectionStatus value.
+ */
+ public ProtectionStatus protectionStatus() {
+ return this.protectionStatus;
+ }
+
+ /**
+ * Set the protectionStatus property: Specifies whether the container is registered or not.
+ *
+ * @param protectionStatus the protectionStatus value to set.
+ * @return the BackupStatusResponseInner object itself.
+ */
+ public BackupStatusResponseInner withProtectionStatus(ProtectionStatus protectionStatus) {
+ this.protectionStatus = protectionStatus;
+ return this;
+ }
+
+ /**
+ * Get the vaultId property: Specifies the arm resource id of the vault.
+ *
+ * @return the vaultId value.
+ */
+ public String vaultId() {
+ return this.vaultId;
+ }
+
+ /**
+ * Set the vaultId property: Specifies the arm resource id of the vault.
+ *
+ * @param vaultId the vaultId value to set.
+ * @return the BackupStatusResponseInner object itself.
+ */
+ public BackupStatusResponseInner withVaultId(String vaultId) {
+ this.vaultId = vaultId;
+ return this;
+ }
+
+ /**
+ * Get the fabricName property: Specifies the fabric name - Azure or AD.
+ *
+ * @return the fabricName value.
+ */
+ public FabricName fabricName() {
+ return this.fabricName;
+ }
+
+ /**
+ * Set the fabricName property: Specifies the fabric name - Azure or AD.
+ *
+ * @param fabricName the fabricName value to set.
+ * @return the BackupStatusResponseInner object itself.
+ */
+ public BackupStatusResponseInner withFabricName(FabricName fabricName) {
+ this.fabricName = fabricName;
+ return this;
+ }
+
+ /**
+ * Get the containerName property: Specifies the product specific container name. E.g.
+ * iaasvmcontainer;iaasvmcontainer;csname;vmname.
+ *
+ * @return the containerName value.
+ */
+ public String containerName() {
+ return this.containerName;
+ }
+
+ /**
+ * Set the containerName property: Specifies the product specific container name. E.g.
+ * iaasvmcontainer;iaasvmcontainer;csname;vmname.
+ *
+ * @param containerName the containerName value to set.
+ * @return the BackupStatusResponseInner object itself.
+ */
+ public BackupStatusResponseInner withContainerName(String containerName) {
+ this.containerName = containerName;
+ return this;
+ }
+
+ /**
+ * Get the protectedItemName property: Specifies the product specific ds name. E.g.
+ * vm;iaasvmcontainer;csname;vmname.
+ *
+ * @return the protectedItemName value.
+ */
+ public String protectedItemName() {
+ return this.protectedItemName;
+ }
+
+ /**
+ * Set the protectedItemName property: Specifies the product specific ds name. E.g.
+ * vm;iaasvmcontainer;csname;vmname.
+ *
+ * @param protectedItemName the protectedItemName value to set.
+ * @return the BackupStatusResponseInner object itself.
+ */
+ public BackupStatusResponseInner withProtectedItemName(String protectedItemName) {
+ this.protectedItemName = protectedItemName;
+ return this;
+ }
+
+ /**
+ * Get the errorCode property: ErrorCode in case of intent failed.
+ *
+ * @return the errorCode value.
+ */
+ public String errorCode() {
+ return this.errorCode;
+ }
+
+ /**
+ * Set the errorCode property: ErrorCode in case of intent failed.
+ *
+ * @param errorCode the errorCode value to set.
+ * @return the BackupStatusResponseInner object itself.
+ */
+ public BackupStatusResponseInner withErrorCode(String errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get the errorMessage property: ErrorMessage in case of intent failed.
+ *
+ * @return the errorMessage value.
+ */
+ public String errorMessage() {
+ return this.errorMessage;
+ }
+
+ /**
+ * Set the errorMessage property: ErrorMessage in case of intent failed.
+ *
+ * @param errorMessage the errorMessage value to set.
+ * @return the BackupStatusResponseInner object itself.
+ */
+ public BackupStatusResponseInner withErrorMessage(String errorMessage) {
+ this.errorMessage = errorMessage;
+ return this;
+ }
+
+ /**
+ * Get the policyName property: Specifies the policy name which is used for protection.
+ *
+ * @return the policyName value.
+ */
+ public String policyName() {
+ return this.policyName;
+ }
+
+ /**
+ * Set the policyName property: Specifies the policy name which is used for protection.
+ *
+ * @param policyName the policyName value to set.
+ * @return the BackupStatusResponseInner object itself.
+ */
+ public BackupStatusResponseInner withPolicyName(String policyName) {
+ this.policyName = policyName;
+ return this;
+ }
+
+ /**
+ * Get the registrationStatus property: Container registration status.
+ *
+ * @return the registrationStatus value.
+ */
+ public String registrationStatus() {
+ return this.registrationStatus;
+ }
+
+ /**
+ * Set the registrationStatus property: Container registration status.
+ *
+ * @param registrationStatus the registrationStatus value to set.
+ * @return the BackupStatusResponseInner object itself.
+ */
+ public BackupStatusResponseInner withRegistrationStatus(String registrationStatus) {
+ this.registrationStatus = registrationStatus;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ClientDiscoveryValueForSingleApiInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ClientDiscoveryValueForSingleApiInner.java
new file mode 100644
index 0000000000000..082db679fb8e3
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ClientDiscoveryValueForSingleApiInner.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.recoveryservicesbackup.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ClientDiscoveryDisplay;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ClientDiscoveryForProperties;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Available operation details. */
+@Fluent
+public final class ClientDiscoveryValueForSingleApiInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ClientDiscoveryValueForSingleApiInner.class);
+
+ /*
+ * Name of the Operation.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * Contains the localized display information for this particular operation
+ */
+ @JsonProperty(value = "display")
+ private ClientDiscoveryDisplay display;
+
+ /*
+ * The intended executor of the operation;governs the display of the
+ * operation in the RBAC UX and the audit logs UX
+ */
+ @JsonProperty(value = "origin")
+ private String origin;
+
+ /*
+ * ShoeBox properties for the given operation.
+ */
+ @JsonProperty(value = "properties")
+ private ClientDiscoveryForProperties properties;
+
+ /**
+ * Get the name property: Name of the Operation.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Name of the Operation.
+ *
+ * @param name the name value to set.
+ * @return the ClientDiscoveryValueForSingleApiInner object itself.
+ */
+ public ClientDiscoveryValueForSingleApiInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the display property: Contains the localized display information for this particular operation.
+ *
+ * @return the display value.
+ */
+ public ClientDiscoveryDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Contains the localized display information for this particular operation.
+ *
+ * @param display the display value to set.
+ * @return the ClientDiscoveryValueForSingleApiInner object itself.
+ */
+ public ClientDiscoveryValueForSingleApiInner withDisplay(ClientDiscoveryDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Get the origin property: The intended executor of the operation;governs the display of the operation in the RBAC
+ * UX and the audit logs UX.
+ *
+ * @return the origin value.
+ */
+ public String origin() {
+ return this.origin;
+ }
+
+ /**
+ * Set the origin property: The intended executor of the operation;governs the display of the operation in the RBAC
+ * UX and the audit logs UX.
+ *
+ * @param origin the origin value to set.
+ * @return the ClientDiscoveryValueForSingleApiInner object itself.
+ */
+ public ClientDiscoveryValueForSingleApiInner withOrigin(String origin) {
+ this.origin = origin;
+ return this;
+ }
+
+ /**
+ * Get the properties property: ShoeBox properties for the given operation.
+ *
+ * @return the properties value.
+ */
+ public ClientDiscoveryForProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: ShoeBox properties for the given operation.
+ *
+ * @param properties the properties value to set.
+ * @return the ClientDiscoveryValueForSingleApiInner object itself.
+ */
+ public ClientDiscoveryValueForSingleApiInner withProperties(ClientDiscoveryForProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/CrrAccessTokenResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/CrrAccessTokenResourceInner.java
new file mode 100644
index 0000000000000..0cd561edb40c8
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/CrrAccessTokenResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.CrrAccessToken;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** The CrrAccessTokenResource model. */
+@Fluent
+public final class CrrAccessTokenResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(CrrAccessTokenResourceInner.class);
+
+ /*
+ * CrrAccessTokenResource properties
+ */
+ @JsonProperty(value = "properties")
+ private CrrAccessToken properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: CrrAccessTokenResource properties.
+ *
+ * @return the properties value.
+ */
+ public CrrAccessToken properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: CrrAccessTokenResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the CrrAccessTokenResourceInner object itself.
+ */
+ public CrrAccessTokenResourceInner withProperties(CrrAccessToken properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the CrrAccessTokenResourceInner object itself.
+ */
+ public CrrAccessTokenResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public CrrAccessTokenResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public CrrAccessTokenResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/JobResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/JobResourceInner.java
new file mode 100644
index 0000000000000..72455badea161
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/JobResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.Job;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Defines workload agnostic properties for a job. */
+@Fluent
+public final class JobResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(JobResourceInner.class);
+
+ /*
+ * JobResource properties
+ */
+ @JsonProperty(value = "properties")
+ private Job properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: JobResource properties.
+ *
+ * @return the properties value.
+ */
+ public Job properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: JobResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the JobResourceInner object itself.
+ */
+ public JobResourceInner withProperties(Job properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the JobResourceInner object itself.
+ */
+ public JobResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public JobResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public JobResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/OperationResultInfoBaseResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/OperationResultInfoBaseResourceInner.java
new file mode 100644
index 0000000000000..5837812b445e8
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/OperationResultInfoBaseResourceInner.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.recoveryservicesbackup.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesbackup.models.HttpStatusCode;
+import com.azure.resourcemanager.recoveryservicesbackup.models.OperationResultInfoBase;
+import com.azure.resourcemanager.recoveryservicesbackup.models.OperationWorkerResponse;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Base class for operation result info. */
+@Fluent
+public final class OperationResultInfoBaseResourceInner extends OperationWorkerResponse {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationResultInfoBaseResourceInner.class);
+
+ /*
+ * OperationResultInfoBaseResource operation
+ */
+ @JsonProperty(value = "operation")
+ private OperationResultInfoBase operation;
+
+ /**
+ * Get the operation property: OperationResultInfoBaseResource operation.
+ *
+ * @return the operation value.
+ */
+ public OperationResultInfoBase operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set the operation property: OperationResultInfoBaseResource operation.
+ *
+ * @param operation the operation value to set.
+ * @return the OperationResultInfoBaseResourceInner object itself.
+ */
+ public OperationResultInfoBaseResourceInner withOperation(OperationResultInfoBase operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public OperationResultInfoBaseResourceInner withStatusCode(HttpStatusCode statusCode) {
+ super.withStatusCode(statusCode);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public OperationResultInfoBaseResourceInner withHeaders(Map> headers) {
+ super.withHeaders(headers);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (operation() != null) {
+ operation().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/OperationStatusInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/OperationStatusInner.java
new file mode 100644
index 0000000000000..4c6a10b70a9b2
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/OperationStatusInner.java
@@ -0,0 +1,216 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesbackup.models.OperationStatusError;
+import com.azure.resourcemanager.recoveryservicesbackup.models.OperationStatusExtendedInfo;
+import com.azure.resourcemanager.recoveryservicesbackup.models.OperationStatusValues;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Operation status. */
+@Fluent
+public final class OperationStatusInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationStatusInner.class);
+
+ /*
+ * ID of the operation.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /*
+ * Name of the operation.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * Operation status.
+ */
+ @JsonProperty(value = "status")
+ private OperationStatusValues status;
+
+ /*
+ * Operation start time. Format: ISO-8601.
+ */
+ @JsonProperty(value = "startTime")
+ private OffsetDateTime startTime;
+
+ /*
+ * Operation end time. Format: ISO-8601.
+ */
+ @JsonProperty(value = "endTime")
+ private OffsetDateTime endTime;
+
+ /*
+ * Error information related to this operation.
+ */
+ @JsonProperty(value = "error")
+ private OperationStatusError error;
+
+ /*
+ * Additional information associated with this operation.
+ */
+ @JsonProperty(value = "properties")
+ private OperationStatusExtendedInfo properties;
+
+ /**
+ * Get the id property: ID of the operation.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the id property: ID of the operation.
+ *
+ * @param id the id value to set.
+ * @return the OperationStatusInner object itself.
+ */
+ public OperationStatusInner withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the name property: Name of the operation.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Name of the operation.
+ *
+ * @param name the name value to set.
+ * @return the OperationStatusInner object itself.
+ */
+ public OperationStatusInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the status property: Operation status.
+ *
+ * @return the status value.
+ */
+ public OperationStatusValues status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status property: Operation status.
+ *
+ * @param status the status value to set.
+ * @return the OperationStatusInner object itself.
+ */
+ public OperationStatusInner withStatus(OperationStatusValues status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the startTime property: Operation start time. Format: ISO-8601.
+ *
+ * @return the startTime value.
+ */
+ public OffsetDateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Set the startTime property: Operation start time. Format: ISO-8601.
+ *
+ * @param startTime the startTime value to set.
+ * @return the OperationStatusInner object itself.
+ */
+ public OperationStatusInner withStartTime(OffsetDateTime startTime) {
+ this.startTime = startTime;
+ return this;
+ }
+
+ /**
+ * Get the endTime property: Operation end time. Format: ISO-8601.
+ *
+ * @return the endTime value.
+ */
+ public OffsetDateTime endTime() {
+ return this.endTime;
+ }
+
+ /**
+ * Set the endTime property: Operation end time. Format: ISO-8601.
+ *
+ * @param endTime the endTime value to set.
+ * @return the OperationStatusInner object itself.
+ */
+ public OperationStatusInner withEndTime(OffsetDateTime endTime) {
+ this.endTime = endTime;
+ return this;
+ }
+
+ /**
+ * Get the error property: Error information related to this operation.
+ *
+ * @return the error value.
+ */
+ public OperationStatusError error() {
+ return this.error;
+ }
+
+ /**
+ * Set the error property: Error information related to this operation.
+ *
+ * @param error the error value to set.
+ * @return the OperationStatusInner object itself.
+ */
+ public OperationStatusInner withError(OperationStatusError error) {
+ this.error = error;
+ return this;
+ }
+
+ /**
+ * Get the properties property: Additional information associated with this operation.
+ *
+ * @return the properties value.
+ */
+ public OperationStatusExtendedInfo properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Additional information associated with this operation.
+ *
+ * @param properties the properties value to set.
+ * @return the OperationStatusInner object itself.
+ */
+ public OperationStatusInner withProperties(OperationStatusExtendedInfo properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (error() != null) {
+ error().validate();
+ }
+ if (properties() != null) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/PreValidateEnableBackupResponseInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/PreValidateEnableBackupResponseInner.java
new file mode 100644
index 0000000000000..8b461be53b2cc
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/PreValidateEnableBackupResponseInner.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.recoveryservicesbackup.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ValidationStatus;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Response contract for enable backup validation request. */
+@Fluent
+public final class PreValidateEnableBackupResponseInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(PreValidateEnableBackupResponseInner.class);
+
+ /*
+ * Validation Status
+ */
+ @JsonProperty(value = "status")
+ private ValidationStatus status;
+
+ /*
+ * Response error code
+ */
+ @JsonProperty(value = "errorCode")
+ private String errorCode;
+
+ /*
+ * Response error message
+ */
+ @JsonProperty(value = "errorMessage")
+ private String errorMessage;
+
+ /*
+ * Recommended action for user
+ */
+ @JsonProperty(value = "recommendation")
+ private String recommendation;
+
+ /*
+ * Specifies the product specific container name. E.g.
+ * iaasvmcontainer;iaasvmcontainer;rgname;vmname. This is required
+ * for portal
+ */
+ @JsonProperty(value = "containerName")
+ private String containerName;
+
+ /*
+ * Specifies the product specific ds name. E.g.
+ * vm;iaasvmcontainer;rgname;vmname. This is required for portal
+ */
+ @JsonProperty(value = "protectedItemName")
+ private String protectedItemName;
+
+ /**
+ * Get the status property: Validation Status.
+ *
+ * @return the status value.
+ */
+ public ValidationStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status property: Validation Status.
+ *
+ * @param status the status value to set.
+ * @return the PreValidateEnableBackupResponseInner object itself.
+ */
+ public PreValidateEnableBackupResponseInner withStatus(ValidationStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the errorCode property: Response error code.
+ *
+ * @return the errorCode value.
+ */
+ public String errorCode() {
+ return this.errorCode;
+ }
+
+ /**
+ * Set the errorCode property: Response error code.
+ *
+ * @param errorCode the errorCode value to set.
+ * @return the PreValidateEnableBackupResponseInner object itself.
+ */
+ public PreValidateEnableBackupResponseInner withErrorCode(String errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get the errorMessage property: Response error message.
+ *
+ * @return the errorMessage value.
+ */
+ public String errorMessage() {
+ return this.errorMessage;
+ }
+
+ /**
+ * Set the errorMessage property: Response error message.
+ *
+ * @param errorMessage the errorMessage value to set.
+ * @return the PreValidateEnableBackupResponseInner object itself.
+ */
+ public PreValidateEnableBackupResponseInner withErrorMessage(String errorMessage) {
+ this.errorMessage = errorMessage;
+ return this;
+ }
+
+ /**
+ * Get the recommendation property: Recommended action for user.
+ *
+ * @return the recommendation value.
+ */
+ public String recommendation() {
+ return this.recommendation;
+ }
+
+ /**
+ * Set the recommendation property: Recommended action for user.
+ *
+ * @param recommendation the recommendation value to set.
+ * @return the PreValidateEnableBackupResponseInner object itself.
+ */
+ public PreValidateEnableBackupResponseInner withRecommendation(String recommendation) {
+ this.recommendation = recommendation;
+ return this;
+ }
+
+ /**
+ * Get the containerName property: Specifies the product specific container name. E.g.
+ * iaasvmcontainer;iaasvmcontainer;rgname;vmname. This is required for portal.
+ *
+ * @return the containerName value.
+ */
+ public String containerName() {
+ return this.containerName;
+ }
+
+ /**
+ * Set the containerName property: Specifies the product specific container name. E.g.
+ * iaasvmcontainer;iaasvmcontainer;rgname;vmname. This is required for portal.
+ *
+ * @param containerName the containerName value to set.
+ * @return the PreValidateEnableBackupResponseInner object itself.
+ */
+ public PreValidateEnableBackupResponseInner withContainerName(String containerName) {
+ this.containerName = containerName;
+ return this;
+ }
+
+ /**
+ * Get the protectedItemName property: Specifies the product specific ds name. E.g.
+ * vm;iaasvmcontainer;rgname;vmname. This is required for portal.
+ *
+ * @return the protectedItemName value.
+ */
+ public String protectedItemName() {
+ return this.protectedItemName;
+ }
+
+ /**
+ * Set the protectedItemName property: Specifies the product specific ds name. E.g.
+ * vm;iaasvmcontainer;rgname;vmname. This is required for portal.
+ *
+ * @param protectedItemName the protectedItemName value to set.
+ * @return the PreValidateEnableBackupResponseInner object itself.
+ */
+ public PreValidateEnableBackupResponseInner withProtectedItemName(String protectedItemName) {
+ this.protectedItemName = protectedItemName;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/PrivateEndpointConnectionResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/PrivateEndpointConnectionResourceInner.java
new file mode 100644
index 0000000000000..4058c4f23ad88
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/PrivateEndpointConnectionResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.PrivateEndpointConnection;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Private Endpoint Connection Response Properties. */
+@Fluent
+public final class PrivateEndpointConnectionResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(PrivateEndpointConnectionResourceInner.class);
+
+ /*
+ * PrivateEndpointConnectionResource properties
+ */
+ @JsonProperty(value = "properties")
+ private PrivateEndpointConnection properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: PrivateEndpointConnectionResource properties.
+ *
+ * @return the properties value.
+ */
+ public PrivateEndpointConnection properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: PrivateEndpointConnectionResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the PrivateEndpointConnectionResourceInner object itself.
+ */
+ public PrivateEndpointConnectionResourceInner withProperties(PrivateEndpointConnection properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the PrivateEndpointConnectionResourceInner object itself.
+ */
+ public PrivateEndpointConnectionResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public PrivateEndpointConnectionResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public PrivateEndpointConnectionResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectableContainerResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectableContainerResourceInner.java
new file mode 100644
index 0000000000000..615587b63db1b
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectableContainerResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.ProtectableContainer;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Protectable Container Class. */
+@Fluent
+public final class ProtectableContainerResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ProtectableContainerResourceInner.class);
+
+ /*
+ * ProtectableContainerResource properties
+ */
+ @JsonProperty(value = "properties")
+ private ProtectableContainer properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: ProtectableContainerResource properties.
+ *
+ * @return the properties value.
+ */
+ public ProtectableContainer properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: ProtectableContainerResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the ProtectableContainerResourceInner object itself.
+ */
+ public ProtectableContainerResourceInner withProperties(ProtectableContainer properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the ProtectableContainerResourceInner object itself.
+ */
+ public ProtectableContainerResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProtectableContainerResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProtectableContainerResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectedItemResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectedItemResourceInner.java
new file mode 100644
index 0000000000000..81c28b077929a
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectedItemResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.ProtectedItem;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Base class for backup items. */
+@Fluent
+public final class ProtectedItemResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ProtectedItemResourceInner.class);
+
+ /*
+ * ProtectedItemResource properties
+ */
+ @JsonProperty(value = "properties")
+ private ProtectedItem properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: ProtectedItemResource properties.
+ *
+ * @return the properties value.
+ */
+ public ProtectedItem properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: ProtectedItemResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the ProtectedItemResourceInner object itself.
+ */
+ public ProtectedItemResourceInner withProperties(ProtectedItem properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the ProtectedItemResourceInner object itself.
+ */
+ public ProtectedItemResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProtectedItemResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProtectedItemResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectionContainerResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectionContainerResourceInner.java
new file mode 100644
index 0000000000000..31c441e1e896f
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectionContainerResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.ProtectionContainer;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Base class for container with backup items. Containers with specific workloads are derived from this class. */
+@Fluent
+public final class ProtectionContainerResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ProtectionContainerResourceInner.class);
+
+ /*
+ * ProtectionContainerResource properties
+ */
+ @JsonProperty(value = "properties")
+ private ProtectionContainer properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: ProtectionContainerResource properties.
+ *
+ * @return the properties value.
+ */
+ public ProtectionContainer properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: ProtectionContainerResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the ProtectionContainerResourceInner object itself.
+ */
+ public ProtectionContainerResourceInner withProperties(ProtectionContainer properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the ProtectionContainerResourceInner object itself.
+ */
+ public ProtectionContainerResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProtectionContainerResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProtectionContainerResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectionIntentResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectionIntentResourceInner.java
new file mode 100644
index 0000000000000..260803ecc5fe7
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectionIntentResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.ProtectionIntent;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Base class for backup ProtectionIntent. */
+@Fluent
+public final class ProtectionIntentResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ProtectionIntentResourceInner.class);
+
+ /*
+ * ProtectionIntentResource properties
+ */
+ @JsonProperty(value = "properties")
+ private ProtectionIntent properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: ProtectionIntentResource properties.
+ *
+ * @return the properties value.
+ */
+ public ProtectionIntent properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: ProtectionIntentResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the ProtectionIntentResourceInner object itself.
+ */
+ public ProtectionIntentResourceInner withProperties(ProtectionIntent properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the ProtectionIntentResourceInner object itself.
+ */
+ public ProtectionIntentResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProtectionIntentResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProtectionIntentResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectionPolicyResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectionPolicyResourceInner.java
new file mode 100644
index 0000000000000..81680cb88e9f1
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ProtectionPolicyResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.ProtectionPolicy;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Base class for backup policy. Workload-specific backup policies are derived from this class. */
+@Fluent
+public final class ProtectionPolicyResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ProtectionPolicyResourceInner.class);
+
+ /*
+ * ProtectionPolicyResource properties
+ */
+ @JsonProperty(value = "properties")
+ private ProtectionPolicy properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: ProtectionPolicyResource properties.
+ *
+ * @return the properties value.
+ */
+ public ProtectionPolicy properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: ProtectionPolicyResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the ProtectionPolicyResourceInner object itself.
+ */
+ public ProtectionPolicyResourceInner withProperties(ProtectionPolicy properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the ProtectionPolicyResourceInner object itself.
+ */
+ public ProtectionPolicyResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProtectionPolicyResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ProtectionPolicyResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/RecoveryPointResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/RecoveryPointResourceInner.java
new file mode 100644
index 0000000000000..4d4a437fb64eb
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/RecoveryPointResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.RecoveryPoint;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Base class for backup copies. Workload-specific backup copies are derived from this class. */
+@Fluent
+public final class RecoveryPointResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(RecoveryPointResourceInner.class);
+
+ /*
+ * RecoveryPointResource properties
+ */
+ @JsonProperty(value = "properties")
+ private RecoveryPoint properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: RecoveryPointResource properties.
+ *
+ * @return the properties value.
+ */
+ public RecoveryPoint properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: RecoveryPointResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the RecoveryPointResourceInner object itself.
+ */
+ public RecoveryPointResourceInner withProperties(RecoveryPoint properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the RecoveryPointResourceInner object itself.
+ */
+ public RecoveryPointResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public RecoveryPointResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public RecoveryPointResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/TokenInformationInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/TokenInformationInner.java
new file mode 100644
index 0000000000000..9d3e6c6b73565
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/TokenInformationInner.java
@@ -0,0 +1,102 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The token information details. */
+@Fluent
+public final class TokenInformationInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(TokenInformationInner.class);
+
+ /*
+ * Token value.
+ */
+ @JsonProperty(value = "token")
+ private String token;
+
+ /*
+ * Expiry time of token.
+ */
+ @JsonProperty(value = "expiryTimeInUtcTicks")
+ private Long expiryTimeInUtcTicks;
+
+ /*
+ * Security PIN
+ */
+ @JsonProperty(value = "securityPIN")
+ private String securityPin;
+
+ /**
+ * Get the token property: Token value.
+ *
+ * @return the token value.
+ */
+ public String token() {
+ return this.token;
+ }
+
+ /**
+ * Set the token property: Token value.
+ *
+ * @param token the token value to set.
+ * @return the TokenInformationInner object itself.
+ */
+ public TokenInformationInner withToken(String token) {
+ this.token = token;
+ return this;
+ }
+
+ /**
+ * Get the expiryTimeInUtcTicks property: Expiry time of token.
+ *
+ * @return the expiryTimeInUtcTicks value.
+ */
+ public Long expiryTimeInUtcTicks() {
+ return this.expiryTimeInUtcTicks;
+ }
+
+ /**
+ * Set the expiryTimeInUtcTicks property: Expiry time of token.
+ *
+ * @param expiryTimeInUtcTicks the expiryTimeInUtcTicks value to set.
+ * @return the TokenInformationInner object itself.
+ */
+ public TokenInformationInner withExpiryTimeInUtcTicks(Long expiryTimeInUtcTicks) {
+ this.expiryTimeInUtcTicks = expiryTimeInUtcTicks;
+ return this;
+ }
+
+ /**
+ * Get the securityPin property: Security PIN.
+ *
+ * @return the securityPin value.
+ */
+ public String securityPin() {
+ return this.securityPin;
+ }
+
+ /**
+ * Set the securityPin property: Security PIN.
+ *
+ * @param securityPin the securityPin value to set.
+ * @return the TokenInformationInner object itself.
+ */
+ public TokenInformationInner withSecurityPin(String securityPin) {
+ this.securityPin = securityPin;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ValidateOperationsResponseInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ValidateOperationsResponseInner.java
new file mode 100644
index 0000000000000..695c39f49a5dd
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/ValidateOperationsResponseInner.java
@@ -0,0 +1,55 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ValidateOperationResponse;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The ValidateOperationsResponse model. */
+@Fluent
+public final class ValidateOperationsResponseInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ValidateOperationsResponseInner.class);
+
+ /*
+ * Base class for validate operation response.
+ */
+ @JsonProperty(value = "validateOperationResponse")
+ private ValidateOperationResponse validateOperationResponse;
+
+ /**
+ * Get the validateOperationResponse property: Base class for validate operation response.
+ *
+ * @return the validateOperationResponse value.
+ */
+ public ValidateOperationResponse validateOperationResponse() {
+ return this.validateOperationResponse;
+ }
+
+ /**
+ * Set the validateOperationResponse property: Base class for validate operation response.
+ *
+ * @param validateOperationResponse the validateOperationResponse value to set.
+ * @return the ValidateOperationsResponseInner object itself.
+ */
+ public ValidateOperationsResponseInner withValidateOperationResponse(
+ ValidateOperationResponse validateOperationResponse) {
+ this.validateOperationResponse = validateOperationResponse;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (validateOperationResponse() != null) {
+ validateOperationResponse().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/VaultStorageConfigOperationResultResponseInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/VaultStorageConfigOperationResultResponseInner.java
new file mode 100644
index 0000000000000..d1c3cbc093ffb
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/VaultStorageConfigOperationResultResponseInner.java
@@ -0,0 +1,35 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesbackup.models.PrepareDataMoveResponse;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/** Operation result response for Vault Storage Config. */
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.NAME,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "objectType",
+ defaultImpl = VaultStorageConfigOperationResultResponseInner.class)
+@JsonTypeName("VaultStorageConfigOperationResultResponse")
+@JsonSubTypes({@JsonSubTypes.Type(name = "PrepareDataMoveResponse", value = PrepareDataMoveResponse.class)})
+@Immutable
+public class VaultStorageConfigOperationResultResponseInner {
+ @JsonIgnore
+ private final ClientLogger logger = new ClientLogger(VaultStorageConfigOperationResultResponseInner.class);
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/WorkloadItemResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/WorkloadItemResourceInner.java
new file mode 100644
index 0000000000000..863bd60091e69
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/WorkloadItemResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.WorkloadItem;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Base class for backup item. Workload-specific backup items are derived from this class. */
+@Fluent
+public final class WorkloadItemResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(WorkloadItemResourceInner.class);
+
+ /*
+ * WorkloadItemResource properties
+ */
+ @JsonProperty(value = "properties")
+ private WorkloadItem properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: WorkloadItemResource properties.
+ *
+ * @return the properties value.
+ */
+ public WorkloadItem properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: WorkloadItemResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the WorkloadItemResourceInner object itself.
+ */
+ public WorkloadItemResourceInner withProperties(WorkloadItem properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the WorkloadItemResourceInner object itself.
+ */
+ public WorkloadItemResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public WorkloadItemResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public WorkloadItemResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/WorkloadProtectableItemResourceInner.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/WorkloadProtectableItemResourceInner.java
new file mode 100644
index 0000000000000..60624ef562c3f
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/WorkloadProtectableItemResourceInner.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.recoveryservicesbackup.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.recoveryservicesbackup.models.WorkloadProtectableItem;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Base class for backup item. Workload-specific backup items are derived from this class. */
+@Fluent
+public final class WorkloadProtectableItemResourceInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(WorkloadProtectableItemResourceInner.class);
+
+ /*
+ * WorkloadProtectableItemResource properties
+ */
+ @JsonProperty(value = "properties")
+ private WorkloadProtectableItem properties;
+
+ /*
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String etag;
+
+ /**
+ * Get the properties property: WorkloadProtectableItemResource properties.
+ *
+ * @return the properties value.
+ */
+ public WorkloadProtectableItem properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: WorkloadProtectableItemResource properties.
+ *
+ * @param properties the properties value to set.
+ * @return the WorkloadProtectableItemResourceInner object itself.
+ */
+ public WorkloadProtectableItemResourceInner withProperties(WorkloadProtectableItem properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the etag property: Optional ETag.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set the etag property: Optional ETag.
+ *
+ * @param etag the etag value to set.
+ * @return the WorkloadProtectableItemResourceInner object itself.
+ */
+ public WorkloadProtectableItemResourceInner withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public WorkloadProtectableItemResourceInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public WorkloadProtectableItemResourceInner 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) {
+ properties().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/package-info.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/package-info.java
new file mode 100644
index 0000000000000..867ac2c9c5930
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/models/package-info.java
@@ -0,0 +1,9 @@
+// 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 RecoveryServicesBackupClient. Open API 2.0 Specs for Azure
+ * RecoveryServices Backup service.
+ */
+package com.azure.resourcemanager.recoveryservicesbackup.fluent.models;
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/package-info.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/package-info.java
new file mode 100644
index 0000000000000..2f192edb59868
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/fluent/package-info.java
@@ -0,0 +1,9 @@
+// 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 RecoveryServicesBackupClient. Open API 2.0 Specs for Azure
+ * RecoveryServices Backup service.
+ */
+package com.azure.resourcemanager.recoveryservicesbackup.fluent;
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/AadPropertiesOperationsClientImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/AadPropertiesOperationsClientImpl.java
new file mode 100644
index 0000000000000..508b34178a01b
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/AadPropertiesOperationsClientImpl.java
@@ -0,0 +1,199 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+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.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.recoveryservicesbackup.fluent.AadPropertiesOperationsClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.AadPropertiesResourceInner;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in AadPropertiesOperationsClient. */
+public final class AadPropertiesOperationsClientImpl implements AadPropertiesOperationsClient {
+ private final ClientLogger logger = new ClientLogger(AadPropertiesOperationsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final AadPropertiesOperationsService service;
+
+ /** The service client containing this operation class. */
+ private final RecoveryServicesBackupClientImpl client;
+
+ /**
+ * Initializes an instance of AadPropertiesOperationsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AadPropertiesOperationsClientImpl(RecoveryServicesBackupClientImpl client) {
+ this.service =
+ RestProxy
+ .create(AadPropertiesOperationsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RecoveryServicesBackupClientAadPropertiesOperations to be used by the
+ * proxy service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RecoveryServicesBack")
+ private interface AadPropertiesOperationsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}"
+ + "/backupAadProperties")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("azureRegion") String azureRegion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Fetches the AAD properties from target region BCM stamp.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @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)
+ private Mono> getWithResponseAsync(String azureRegion) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (azureRegion == null) {
+ return Mono.error(new IllegalArgumentException("Parameter azureRegion 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."));
+ }
+ final String apiVersion = "2018-12-20";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ apiVersion,
+ azureRegion,
+ this.client.getSubscriptionId(),
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Fetches the AAD properties from target region BCM stamp.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @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)
+ private Mono> getWithResponseAsync(String azureRegion, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (azureRegion == null) {
+ return Mono.error(new IllegalArgumentException("Parameter azureRegion 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."));
+ }
+ final String apiVersion = "2018-12-20";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(this.client.getEndpoint(), apiVersion, azureRegion, this.client.getSubscriptionId(), accept, context);
+ }
+
+ /**
+ * Fetches the AAD properties from target region BCM stamp.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @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)
+ private Mono getAsync(String azureRegion) {
+ return getWithResponseAsync(azureRegion)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Fetches the AAD properties from target region BCM stamp.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @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 AadPropertiesResourceInner get(String azureRegion) {
+ return getAsync(azureRegion).block();
+ }
+
+ /**
+ * Fetches the AAD properties from target region BCM stamp.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @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 getWithResponse(String azureRegion, Context context) {
+ return getWithResponseAsync(azureRegion, context).block();
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/AadPropertiesOperationsImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/AadPropertiesOperationsImpl.java
new file mode 100644
index 0000000000000..289c0f409c0ff
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/AadPropertiesOperationsImpl.java
@@ -0,0 +1,60 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.RecoveryServicesBackupManager;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.AadPropertiesOperationsClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.AadPropertiesResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.AadPropertiesOperations;
+import com.azure.resourcemanager.recoveryservicesbackup.models.AadPropertiesResource;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class AadPropertiesOperationsImpl implements AadPropertiesOperations {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AadPropertiesOperationsImpl.class);
+
+ private final AadPropertiesOperationsClient innerClient;
+
+ private final RecoveryServicesBackupManager serviceManager;
+
+ public AadPropertiesOperationsImpl(
+ AadPropertiesOperationsClient innerClient, RecoveryServicesBackupManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public AadPropertiesResource get(String azureRegion) {
+ AadPropertiesResourceInner inner = this.serviceClient().get(azureRegion);
+ if (inner != null) {
+ return new AadPropertiesResourceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(String azureRegion, Context context) {
+ Response inner = this.serviceClient().getWithResponse(azureRegion, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AadPropertiesResourceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private AadPropertiesOperationsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private RecoveryServicesBackupManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/AadPropertiesResourceImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/AadPropertiesResourceImpl.java
new file mode 100644
index 0000000000000..eb9c34d27f923
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/AadPropertiesResourceImpl.java
@@ -0,0 +1,64 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+import com.azure.resourcemanager.recoveryservicesbackup.RecoveryServicesBackupManager;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.AadPropertiesResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.AadProperties;
+import com.azure.resourcemanager.recoveryservicesbackup.models.AadPropertiesResource;
+import java.util.Collections;
+import java.util.Map;
+
+public final class AadPropertiesResourceImpl implements AadPropertiesResource {
+ private AadPropertiesResourceInner innerObject;
+
+ private final RecoveryServicesBackupManager serviceManager;
+
+ AadPropertiesResourceImpl(AadPropertiesResourceInner innerObject, RecoveryServicesBackupManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = 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 AadProperties properties() {
+ return this.innerModel().properties();
+ }
+
+ public String etag() {
+ return this.innerModel().etag();
+ }
+
+ public AadPropertiesResourceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private RecoveryServicesBackupManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/AzureVMResourceFeatureSupportResponseImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/AzureVMResourceFeatureSupportResponseImpl.java
new file mode 100644
index 0000000000000..04098e5f3c3dc
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/AzureVMResourceFeatureSupportResponseImpl.java
@@ -0,0 +1,34 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+import com.azure.resourcemanager.recoveryservicesbackup.RecoveryServicesBackupManager;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.AzureVMResourceFeatureSupportResponseInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.AzureVMResourceFeatureSupportResponse;
+import com.azure.resourcemanager.recoveryservicesbackup.models.SupportStatus;
+
+public final class AzureVMResourceFeatureSupportResponseImpl implements AzureVMResourceFeatureSupportResponse {
+ private AzureVMResourceFeatureSupportResponseInner innerObject;
+
+ private final RecoveryServicesBackupManager serviceManager;
+
+ AzureVMResourceFeatureSupportResponseImpl(
+ AzureVMResourceFeatureSupportResponseInner innerObject, RecoveryServicesBackupManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public SupportStatus supportStatus() {
+ return this.innerModel().supportStatus();
+ }
+
+ public AzureVMResourceFeatureSupportResponseInner innerModel() {
+ return this.innerObject;
+ }
+
+ private RecoveryServicesBackupManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupCrrJobDetailsClientImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupCrrJobDetailsClientImpl.java
new file mode 100644
index 0000000000000..f9681047b06fe
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupCrrJobDetailsClientImpl.java
@@ -0,0 +1,224 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.ExpectedResponses;
+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.Post;
+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.recoveryservicesbackup.fluent.BackupCrrJobDetailsClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.JobResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.CrrJobRequest;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in BackupCrrJobDetailsClient. */
+public final class BackupCrrJobDetailsClientImpl implements BackupCrrJobDetailsClient {
+ private final ClientLogger logger = new ClientLogger(BackupCrrJobDetailsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final BackupCrrJobDetailsService service;
+
+ /** The service client containing this operation class. */
+ private final RecoveryServicesBackupClientImpl client;
+
+ /**
+ * Initializes an instance of BackupCrrJobDetailsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ BackupCrrJobDetailsClientImpl(RecoveryServicesBackupClientImpl client) {
+ this.service =
+ RestProxy.create(BackupCrrJobDetailsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RecoveryServicesBackupClientBackupCrrJobDetails to be used by the
+ * proxy service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RecoveryServicesBack")
+ private interface BackupCrrJobDetailsService {
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupCrrJob")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("azureRegion") String azureRegion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @BodyParam("application/json") CrrJobRequest parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Get CRR job details from target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters CRR Job request.
+ * @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 cRR job details from target region.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(String azureRegion, CrrJobRequest parameters) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (azureRegion == null) {
+ return Mono.error(new IllegalArgumentException("Parameter azureRegion 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 (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String apiVersion = "2018-12-20";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ apiVersion,
+ azureRegion,
+ this.client.getSubscriptionId(),
+ parameters,
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Get CRR job details from target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters CRR Job request.
+ * @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 cRR job details from target region.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String azureRegion, CrrJobRequest parameters, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (azureRegion == null) {
+ return Mono.error(new IllegalArgumentException("Parameter azureRegion 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 (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String apiVersion = "2018-12-20";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ apiVersion,
+ azureRegion,
+ this.client.getSubscriptionId(),
+ parameters,
+ accept,
+ context);
+ }
+
+ /**
+ * Get CRR job details from target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters CRR Job request.
+ * @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 cRR job details from target region.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(String azureRegion, CrrJobRequest parameters) {
+ return getWithResponseAsync(azureRegion, parameters)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Get CRR job details from target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters CRR Job request.
+ * @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 cRR job details from target region.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public JobResourceInner get(String azureRegion, CrrJobRequest parameters) {
+ return getAsync(azureRegion, parameters).block();
+ }
+
+ /**
+ * Get CRR job details from target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters CRR Job request.
+ * @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 cRR job details from target region.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(String azureRegion, CrrJobRequest parameters, Context context) {
+ return getWithResponseAsync(azureRegion, parameters, context).block();
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupCrrJobDetailsImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupCrrJobDetailsImpl.java
new file mode 100644
index 0000000000000..8637359de6a32
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupCrrJobDetailsImpl.java
@@ -0,0 +1,61 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.RecoveryServicesBackupManager;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.BackupCrrJobDetailsClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.JobResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupCrrJobDetails;
+import com.azure.resourcemanager.recoveryservicesbackup.models.CrrJobRequest;
+import com.azure.resourcemanager.recoveryservicesbackup.models.JobResource;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class BackupCrrJobDetailsImpl implements BackupCrrJobDetails {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupCrrJobDetailsImpl.class);
+
+ private final BackupCrrJobDetailsClient innerClient;
+
+ private final RecoveryServicesBackupManager serviceManager;
+
+ public BackupCrrJobDetailsImpl(
+ BackupCrrJobDetailsClient innerClient, RecoveryServicesBackupManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public JobResource get(String azureRegion, CrrJobRequest parameters) {
+ JobResourceInner inner = this.serviceClient().get(azureRegion, parameters);
+ if (inner != null) {
+ return new JobResourceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(String azureRegion, CrrJobRequest parameters, Context context) {
+ Response inner = this.serviceClient().getWithResponse(azureRegion, parameters, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new JobResourceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private BackupCrrJobDetailsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private RecoveryServicesBackupManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupCrrJobsClientImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupCrrJobsClientImpl.java
new file mode 100644
index 0000000000000..5bac8c160c57d
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupCrrJobsClientImpl.java
@@ -0,0 +1,383 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+import com.azure.core.annotation.BodyParam;
+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.Post;
+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.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+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.recoveryservicesbackup.fluent.BackupCrrJobsClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.JobResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.CrrJobRequest;
+import com.azure.resourcemanager.recoveryservicesbackup.models.JobResourceList;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in BackupCrrJobsClient. */
+public final class BackupCrrJobsClientImpl implements BackupCrrJobsClient {
+ private final ClientLogger logger = new ClientLogger(BackupCrrJobsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final BackupCrrJobsService service;
+
+ /** The service client containing this operation class. */
+ private final RecoveryServicesBackupClientImpl client;
+
+ /**
+ * Initializes an instance of BackupCrrJobsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ BackupCrrJobsClientImpl(RecoveryServicesBackupClientImpl client) {
+ this.service =
+ RestProxy.create(BackupCrrJobsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RecoveryServicesBackupClientBackupCrrJobs to be used by the proxy
+ * service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RecoveryServicesBack")
+ private interface BackupCrrJobsService {
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}"
+ + "/backupCrrJobs")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("azureRegion") String azureRegion,
+ @PathParam("subscriptionId") String subscriptionId,
+ @QueryParam("$filter") String filter,
+ @QueryParam("$skipToken") String skipToken,
+ @BodyParam("application/json") CrrJobRequest parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Gets the list of CRR jobs from the target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Backup CRR Job request.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 CRR jobs from the target region.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String azureRegion, CrrJobRequest parameters, String filter, String skipToken) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (azureRegion == null) {
+ return Mono.error(new IllegalArgumentException("Parameter azureRegion 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 (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String apiVersion = "2018-12-20";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ apiVersion,
+ azureRegion,
+ this.client.getSubscriptionId(),
+ filter,
+ skipToken,
+ parameters,
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Gets the list of CRR jobs from the target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Backup CRR Job request.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 CRR jobs from the target region.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String azureRegion, CrrJobRequest parameters, String filter, String skipToken, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (azureRegion == null) {
+ return Mono.error(new IllegalArgumentException("Parameter azureRegion 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 (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String apiVersion = "2018-12-20";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ apiVersion,
+ azureRegion,
+ this.client.getSubscriptionId(),
+ filter,
+ skipToken,
+ parameters,
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Gets the list of CRR jobs from the target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Backup CRR Job request.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 CRR jobs from the target region.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String azureRegion, CrrJobRequest parameters, String filter, String skipToken) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(azureRegion, parameters, filter, skipToken),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Gets the list of CRR jobs from the target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Backup CRR Job request.
+ * @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 CRR jobs from the target region.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String azureRegion, CrrJobRequest parameters) {
+ final String filter = null;
+ final String skipToken = null;
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(azureRegion, parameters, filter, skipToken),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Gets the list of CRR jobs from the target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Backup CRR Job request.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 CRR jobs from the target region.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String azureRegion, CrrJobRequest parameters, String filter, String skipToken, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(azureRegion, parameters, filter, skipToken, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Gets the list of CRR jobs from the target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Backup CRR Job request.
+ * @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 CRR jobs from the target region.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String azureRegion, CrrJobRequest parameters) {
+ final String filter = null;
+ final String skipToken = null;
+ return new PagedIterable<>(listAsync(azureRegion, parameters, filter, skipToken));
+ }
+
+ /**
+ * Gets the list of CRR jobs from the target region.
+ *
+ * @param azureRegion Azure region to hit Api.
+ * @param parameters Backup CRR Job request.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 CRR jobs from the target region.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String azureRegion, CrrJobRequest parameters, String filter, String skipToken, Context context) {
+ return new PagedIterable<>(listAsync(azureRegion, parameters, filter, skipToken, context));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @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 list of Job resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @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 list of Job resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupCrrJobsImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupCrrJobsImpl.java
new file mode 100644
index 0000000000000..f8445880ec199
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupCrrJobsImpl.java
@@ -0,0 +1,49 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesbackup.RecoveryServicesBackupManager;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.BackupCrrJobsClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.JobResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupCrrJobs;
+import com.azure.resourcemanager.recoveryservicesbackup.models.CrrJobRequest;
+import com.azure.resourcemanager.recoveryservicesbackup.models.JobResource;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class BackupCrrJobsImpl implements BackupCrrJobs {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupCrrJobsImpl.class);
+
+ private final BackupCrrJobsClient innerClient;
+
+ private final RecoveryServicesBackupManager serviceManager;
+
+ public BackupCrrJobsImpl(BackupCrrJobsClient innerClient, RecoveryServicesBackupManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(String azureRegion, CrrJobRequest parameters) {
+ PagedIterable inner = this.serviceClient().list(azureRegion, parameters);
+ return inner.mapPage(inner1 -> new JobResourceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(
+ String azureRegion, CrrJobRequest parameters, String filter, String skipToken, Context context) {
+ PagedIterable inner =
+ this.serviceClient().list(azureRegion, parameters, filter, skipToken, context);
+ return inner.mapPage(inner1 -> new JobResourceImpl(inner1, this.manager()));
+ }
+
+ private BackupCrrJobsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private RecoveryServicesBackupManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupEngineBaseResourceImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupEngineBaseResourceImpl.java
new file mode 100644
index 0000000000000..207a1eab128b4
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupEngineBaseResourceImpl.java
@@ -0,0 +1,65 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+import com.azure.resourcemanager.recoveryservicesbackup.RecoveryServicesBackupManager;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.BackupEngineBaseResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupEngineBase;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupEngineBaseResource;
+import java.util.Collections;
+import java.util.Map;
+
+public final class BackupEngineBaseResourceImpl implements BackupEngineBaseResource {
+ private BackupEngineBaseResourceInner innerObject;
+
+ private final RecoveryServicesBackupManager serviceManager;
+
+ BackupEngineBaseResourceImpl(
+ BackupEngineBaseResourceInner innerObject, RecoveryServicesBackupManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = 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 BackupEngineBase properties() {
+ return this.innerModel().properties();
+ }
+
+ public String etag() {
+ return this.innerModel().etag();
+ }
+
+ public BackupEngineBaseResourceInner innerModel() {
+ return this.innerObject;
+ }
+
+ private RecoveryServicesBackupManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupEnginesClientImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupEnginesClientImpl.java
new file mode 100644
index 0000000000000..9a48b5271c3ad
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupEnginesClientImpl.java
@@ -0,0 +1,615 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+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.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.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+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.recoveryservicesbackup.fluent.BackupEnginesClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.BackupEngineBaseResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupEngineBaseResourceList;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in BackupEnginesClient. */
+public final class BackupEnginesClientImpl implements BackupEnginesClient {
+ private final ClientLogger logger = new ClientLogger(BackupEnginesClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final BackupEnginesService service;
+
+ /** The service client containing this operation class. */
+ private final RecoveryServicesBackupClientImpl client;
+
+ /**
+ * Initializes an instance of BackupEnginesClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ BackupEnginesClientImpl(RecoveryServicesBackupClientImpl client) {
+ this.service =
+ RestProxy.create(BackupEnginesService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RecoveryServicesBackupClientBackupEngines to be used by the proxy
+ * service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RecoveryServicesBack")
+ private interface BackupEnginesService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices"
+ + "/vaults/{vaultName}/backupEngines")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("vaultName") String vaultName,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @QueryParam("$filter") String filter,
+ @QueryParam("$skipToken") String skipToken,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices"
+ + "/vaults/{vaultName}/backupEngines/{backupEngineName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("vaultName") String vaultName,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("backupEngineName") String backupEngineName,
+ @QueryParam("$filter") String filter,
+ @QueryParam("$skipToken") String skipToken,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Backup management servers registered to Recovery Services Vault. Returns a pageable list of servers.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of BackupEngineBase resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String vaultName, String resourceGroupName, String filter, String skipToken) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ filter,
+ skipToken,
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Backup management servers registered to Recovery Services Vault. Returns a pageable list of servers.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of BackupEngineBase resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ filter,
+ skipToken,
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Backup management servers registered to Recovery Services Vault. Returns a pageable list of servers.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of BackupEngineBase resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String vaultName, String resourceGroupName, String filter, String skipToken) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(vaultName, resourceGroupName, filter, skipToken),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Backup management servers registered to Recovery Services Vault. Returns a pageable list of servers.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of BackupEngineBase resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String vaultName, String resourceGroupName) {
+ final String filter = null;
+ final String skipToken = null;
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(vaultName, resourceGroupName, filter, skipToken),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Backup management servers registered to Recovery Services Vault. Returns a pageable list of servers.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of BackupEngineBase resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(vaultName, resourceGroupName, filter, skipToken, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Backup management servers registered to Recovery Services Vault. Returns a pageable list of servers.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of BackupEngineBase resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String vaultName, String resourceGroupName) {
+ final String filter = null;
+ final String skipToken = null;
+ return new PagedIterable<>(listAsync(vaultName, resourceGroupName, filter, skipToken));
+ }
+
+ /**
+ * Backup management servers registered to Recovery Services Vault. Returns a pageable list of servers.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of BackupEngineBase resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context) {
+ return new PagedIterable<>(listAsync(vaultName, resourceGroupName, filter, skipToken, context));
+ }
+
+ /**
+ * Returns backup management server registered to Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param backupEngineName Name of the backup management server.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 base backup engine class.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String vaultName, String resourceGroupName, String backupEngineName, String filter, String skipToken) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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 (backupEngineName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter backupEngineName is required and cannot be null."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ backupEngineName,
+ filter,
+ skipToken,
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Returns backup management server registered to Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param backupEngineName Name of the backup management server.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 base backup engine class.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String vaultName,
+ String resourceGroupName,
+ String backupEngineName,
+ String filter,
+ String skipToken,
+ Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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 (backupEngineName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter backupEngineName is required and cannot be null."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ backupEngineName,
+ filter,
+ skipToken,
+ accept,
+ context);
+ }
+
+ /**
+ * Returns backup management server registered to Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param backupEngineName Name of the backup management server.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 base backup engine class.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(
+ String vaultName, String resourceGroupName, String backupEngineName, String filter, String skipToken) {
+ return getWithResponseAsync(vaultName, resourceGroupName, backupEngineName, filter, skipToken)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Returns backup management server registered to Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param backupEngineName Name of the backup management server.
+ * @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 base backup engine class.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(
+ String vaultName, String resourceGroupName, String backupEngineName) {
+ final String filter = null;
+ final String skipToken = null;
+ return getWithResponseAsync(vaultName, resourceGroupName, backupEngineName, filter, skipToken)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Returns backup management server registered to Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param backupEngineName Name of the backup management server.
+ * @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 base backup engine class.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public BackupEngineBaseResourceInner get(String vaultName, String resourceGroupName, String backupEngineName) {
+ final String filter = null;
+ final String skipToken = null;
+ return getAsync(vaultName, resourceGroupName, backupEngineName, filter, skipToken).block();
+ }
+
+ /**
+ * Returns backup management server registered to Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param backupEngineName Name of the backup management server.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 base backup engine class.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String backupEngineName,
+ String filter,
+ String skipToken,
+ Context context) {
+ return getWithResponseAsync(vaultName, resourceGroupName, backupEngineName, filter, skipToken, context).block();
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @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 list of BackupEngineBase resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @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 list of BackupEngineBase resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(
+ String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupEnginesImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupEnginesImpl.java
new file mode 100644
index 0000000000000..bbe3053570bc3
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupEnginesImpl.java
@@ -0,0 +1,81 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+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.recoveryservicesbackup.RecoveryServicesBackupManager;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.BackupEnginesClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.BackupEngineBaseResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupEngineBaseResource;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupEngines;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class BackupEnginesImpl implements BackupEngines {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupEnginesImpl.class);
+
+ private final BackupEnginesClient innerClient;
+
+ private final RecoveryServicesBackupManager serviceManager;
+
+ public BackupEnginesImpl(BackupEnginesClient innerClient, RecoveryServicesBackupManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(String vaultName, String resourceGroupName) {
+ PagedIterable inner = this.serviceClient().list(vaultName, resourceGroupName);
+ return inner.mapPage(inner1 -> new BackupEngineBaseResourceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context) {
+ PagedIterable inner =
+ this.serviceClient().list(vaultName, resourceGroupName, filter, skipToken, context);
+ return inner.mapPage(inner1 -> new BackupEngineBaseResourceImpl(inner1, this.manager()));
+ }
+
+ public BackupEngineBaseResource get(String vaultName, String resourceGroupName, String backupEngineName) {
+ BackupEngineBaseResourceInner inner = this.serviceClient().get(vaultName, resourceGroupName, backupEngineName);
+ if (inner != null) {
+ return new BackupEngineBaseResourceImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String vaultName,
+ String resourceGroupName,
+ String backupEngineName,
+ String filter,
+ String skipToken,
+ Context context) {
+ Response inner =
+ this
+ .serviceClient()
+ .getWithResponse(vaultName, resourceGroupName, backupEngineName, filter, skipToken, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new BackupEngineBaseResourceImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private BackupEnginesClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private RecoveryServicesBackupManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupJobsClientImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupJobsClientImpl.java
new file mode 100644
index 0000000000000..3a26824656978
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupJobsClientImpl.java
@@ -0,0 +1,378 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+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.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.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+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.recoveryservicesbackup.fluent.BackupJobsClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.JobResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.JobResourceList;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in BackupJobsClient. */
+public final class BackupJobsClientImpl implements BackupJobsClient {
+ private final ClientLogger logger = new ClientLogger(BackupJobsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final BackupJobsService service;
+
+ /** The service client containing this operation class. */
+ private final RecoveryServicesBackupClientImpl client;
+
+ /**
+ * Initializes an instance of BackupJobsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ BackupJobsClientImpl(RecoveryServicesBackupClientImpl client) {
+ this.service =
+ RestProxy.create(BackupJobsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RecoveryServicesBackupClientBackupJobs to be used by the proxy
+ * service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RecoveryServicesBack")
+ private interface BackupJobsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices"
+ + "/vaults/{vaultName}/backupJobs")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("vaultName") String vaultName,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @QueryParam("$filter") String filter,
+ @QueryParam("$skipToken") String skipToken,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Provides a pageable list of jobs.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of Job resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String vaultName, String resourceGroupName, String filter, String skipToken) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ filter,
+ skipToken,
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Provides a pageable list of jobs.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of Job resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ filter,
+ skipToken,
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Provides a pageable list of jobs.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of Job resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String vaultName, String resourceGroupName, String filter, String skipToken) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(vaultName, resourceGroupName, filter, skipToken),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Provides a pageable list of jobs.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of Job resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String vaultName, String resourceGroupName) {
+ final String filter = null;
+ final String skipToken = null;
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(vaultName, resourceGroupName, filter, skipToken),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Provides a pageable list of jobs.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of Job resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(vaultName, resourceGroupName, filter, skipToken, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Provides a pageable list of jobs.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of Job resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String vaultName, String resourceGroupName) {
+ final String filter = null;
+ final String skipToken = null;
+ return new PagedIterable<>(listAsync(vaultName, resourceGroupName, filter, skipToken));
+ }
+
+ /**
+ * Provides a pageable list of jobs.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of Job resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context) {
+ return new PagedIterable<>(listAsync(vaultName, resourceGroupName, filter, skipToken, context));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @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 list of Job resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @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 list of Job resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupJobsImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupJobsImpl.java
new file mode 100644
index 0000000000000..235385c98bea9
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupJobsImpl.java
@@ -0,0 +1,48 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesbackup.RecoveryServicesBackupManager;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.BackupJobsClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.JobResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupJobs;
+import com.azure.resourcemanager.recoveryservicesbackup.models.JobResource;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class BackupJobsImpl implements BackupJobs {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupJobsImpl.class);
+
+ private final BackupJobsClient innerClient;
+
+ private final RecoveryServicesBackupManager serviceManager;
+
+ public BackupJobsImpl(BackupJobsClient innerClient, RecoveryServicesBackupManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(String vaultName, String resourceGroupName) {
+ PagedIterable inner = this.serviceClient().list(vaultName, resourceGroupName);
+ return inner.mapPage(inner1 -> new JobResourceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context) {
+ PagedIterable inner =
+ this.serviceClient().list(vaultName, resourceGroupName, filter, skipToken, context);
+ return inner.mapPage(inner1 -> new JobResourceImpl(inner1, this.manager()));
+ }
+
+ private BackupJobsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private RecoveryServicesBackupManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupManagementUsageImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupManagementUsageImpl.java
new file mode 100644
index 0000000000000..afe5d42c01a56
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupManagementUsageImpl.java
@@ -0,0 +1,55 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+import com.azure.resourcemanager.recoveryservicesbackup.RecoveryServicesBackupManager;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.BackupManagementUsageInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupManagementUsage;
+import com.azure.resourcemanager.recoveryservicesbackup.models.NameInfo;
+import com.azure.resourcemanager.recoveryservicesbackup.models.UsagesUnit;
+import java.time.OffsetDateTime;
+
+public final class BackupManagementUsageImpl implements BackupManagementUsage {
+ private BackupManagementUsageInner innerObject;
+
+ private final RecoveryServicesBackupManager serviceManager;
+
+ BackupManagementUsageImpl(BackupManagementUsageInner innerObject, RecoveryServicesBackupManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public UsagesUnit unit() {
+ return this.innerModel().unit();
+ }
+
+ public String quotaPeriod() {
+ return this.innerModel().quotaPeriod();
+ }
+
+ public OffsetDateTime nextResetTime() {
+ return this.innerModel().nextResetTime();
+ }
+
+ public Long currentValue() {
+ return this.innerModel().currentValue();
+ }
+
+ public Long limit() {
+ return this.innerModel().limit();
+ }
+
+ public NameInfo name() {
+ return this.innerModel().name();
+ }
+
+ public BackupManagementUsageInner innerModel() {
+ return this.innerObject;
+ }
+
+ private RecoveryServicesBackupManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupOperationResultsClientImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupOperationResultsClientImpl.java
new file mode 100644
index 0000000000000..354dadb8a3de0
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupOperationResultsClientImpl.java
@@ -0,0 +1,243 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+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.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.recoveryservicesbackup.fluent.BackupOperationResultsClient;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in BackupOperationResultsClient. */
+public final class BackupOperationResultsClientImpl implements BackupOperationResultsClient {
+ private final ClientLogger logger = new ClientLogger(BackupOperationResultsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final BackupOperationResultsService service;
+
+ /** The service client containing this operation class. */
+ private final RecoveryServicesBackupClientImpl client;
+
+ /**
+ * Initializes an instance of BackupOperationResultsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ BackupOperationResultsClientImpl(RecoveryServicesBackupClientImpl client) {
+ this.service =
+ RestProxy
+ .create(BackupOperationResultsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RecoveryServicesBackupClientBackupOperationResults to be used by the
+ * proxy service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RecoveryServicesBack")
+ private interface BackupOperationResultsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices"
+ + "/vaults/{vaultName}/backupOperationResults/{operationId}")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("vaultName") String vaultName,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("operationId") String operationId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Provides the status of the delete operations such as deleting backed up item. Once the operation has started, the
+ * status code in the response would be Accepted. It will continue to be in this state till it reaches completion.
+ * On successful completion, the status code will be OK. This method expects OperationID as an argument. OperationID
+ * is part of the Location header of the operation response.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the 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> getWithResponseAsync(String vaultName, String resourceGroupName, String operationId) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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 (operationId == null) {
+ return Mono.error(new IllegalArgumentException("Parameter operationId is required and cannot be null."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ operationId,
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Provides the status of the delete operations such as deleting backed up item. Once the operation has started, the
+ * status code in the response would be Accepted. It will continue to be in this state till it reaches completion.
+ * On successful completion, the status code will be OK. This method expects OperationID as an argument. OperationID
+ * is part of the Location header of the operation response.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the operation.
+ * @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> getWithResponseAsync(
+ String vaultName, String resourceGroupName, String operationId, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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 (operationId == null) {
+ return Mono.error(new IllegalArgumentException("Parameter operationId is required and cannot be null."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ operationId,
+ accept,
+ context);
+ }
+
+ /**
+ * Provides the status of the delete operations such as deleting backed up item. Once the operation has started, the
+ * status code in the response would be Accepted. It will continue to be in this state till it reaches completion.
+ * On successful completion, the status code will be OK. This method expects OperationID as an argument. OperationID
+ * is part of the Location header of the operation response.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the 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 getAsync(String vaultName, String resourceGroupName, String operationId) {
+ return getWithResponseAsync(vaultName, resourceGroupName, operationId)
+ .flatMap((Response res) -> Mono.empty());
+ }
+
+ /**
+ * Provides the status of the delete operations such as deleting backed up item. Once the operation has started, the
+ * status code in the response would be Accepted. It will continue to be in this state till it reaches completion.
+ * On successful completion, the status code will be OK. This method expects OperationID as an argument. OperationID
+ * is part of the Location header of the operation response.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the 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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void get(String vaultName, String resourceGroupName, String operationId) {
+ getAsync(vaultName, resourceGroupName, operationId).block();
+ }
+
+ /**
+ * Provides the status of the delete operations such as deleting backed up item. Once the operation has started, the
+ * status code in the response would be Accepted. It will continue to be in this state till it reaches completion.
+ * On successful completion, the status code will be OK. This method expects OperationID as an argument. OperationID
+ * is part of the Location header of the operation response.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the operation.
+ * @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 getWithResponse(
+ String vaultName, String resourceGroupName, String operationId, Context context) {
+ return getWithResponseAsync(vaultName, resourceGroupName, operationId, context).block();
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupOperationResultsImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupOperationResultsImpl.java
new file mode 100644
index 0000000000000..71736be1ae949
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupOperationResultsImpl.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesbackup.RecoveryServicesBackupManager;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.BackupOperationResultsClient;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupOperationResults;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class BackupOperationResultsImpl implements BackupOperationResults {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupOperationResultsImpl.class);
+
+ private final BackupOperationResultsClient innerClient;
+
+ private final RecoveryServicesBackupManager serviceManager;
+
+ public BackupOperationResultsImpl(
+ BackupOperationResultsClient innerClient, RecoveryServicesBackupManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public void get(String vaultName, String resourceGroupName, String operationId) {
+ this.serviceClient().get(vaultName, resourceGroupName, operationId);
+ }
+
+ public Response getWithResponse(
+ String vaultName, String resourceGroupName, String operationId, Context context) {
+ return this.serviceClient().getWithResponse(vaultName, resourceGroupName, operationId, context);
+ }
+
+ private BackupOperationResultsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private RecoveryServicesBackupManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupOperationStatusesClientImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupOperationStatusesClientImpl.java
new file mode 100644
index 0000000000000..18742909e863d
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupOperationStatusesClientImpl.java
@@ -0,0 +1,248 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+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.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.recoveryservicesbackup.fluent.BackupOperationStatusesClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.OperationStatusInner;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in BackupOperationStatusesClient. */
+public final class BackupOperationStatusesClientImpl implements BackupOperationStatusesClient {
+ private final ClientLogger logger = new ClientLogger(BackupOperationStatusesClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final BackupOperationStatusesService service;
+
+ /** The service client containing this operation class. */
+ private final RecoveryServicesBackupClientImpl client;
+
+ /**
+ * Initializes an instance of BackupOperationStatusesClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ BackupOperationStatusesClientImpl(RecoveryServicesBackupClientImpl client) {
+ this.service =
+ RestProxy
+ .create(BackupOperationStatusesService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RecoveryServicesBackupClientBackupOperationStatuses to be used by the
+ * proxy service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RecoveryServicesBack")
+ private interface BackupOperationStatusesService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices"
+ + "/vaults/{vaultName}/backupOperations/{operationId}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("vaultName") String vaultName,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("operationId") String operationId,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed
+ * or failed. You can refer to the OperationStatus enum for all the possible states of an operation. Some operations
+ * create jobs. This method returns the list of jobs when the operation is complete.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the 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 operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String vaultName, String resourceGroupName, String operationId) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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 (operationId == null) {
+ return Mono.error(new IllegalArgumentException("Parameter operationId is required and cannot be null."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ operationId,
+ accept,
+ context))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed
+ * or failed. You can refer to the OperationStatus enum for all the possible states of an operation. Some operations
+ * create jobs. This method returns the list of jobs when the operation is complete.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the operation.
+ * @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 operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String vaultName, String resourceGroupName, String operationId, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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 (operationId == null) {
+ return Mono.error(new IllegalArgumentException("Parameter operationId is required and cannot be null."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ operationId,
+ accept,
+ context);
+ }
+
+ /**
+ * Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed
+ * or failed. You can refer to the OperationStatus enum for all the possible states of an operation. Some operations
+ * create jobs. This method returns the list of jobs when the operation is complete.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the 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 operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(String vaultName, String resourceGroupName, String operationId) {
+ return getWithResponseAsync(vaultName, resourceGroupName, operationId)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed
+ * or failed. You can refer to the OperationStatus enum for all the possible states of an operation. Some operations
+ * create jobs. This method returns the list of jobs when the operation is complete.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the 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 operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public OperationStatusInner get(String vaultName, String resourceGroupName, String operationId) {
+ return getAsync(vaultName, resourceGroupName, operationId).block();
+ }
+
+ /**
+ * Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed
+ * or failed. You can refer to the OperationStatus enum for all the possible states of an operation. Some operations
+ * create jobs. This method returns the list of jobs when the operation is complete.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the operation.
+ * @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 operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(
+ String vaultName, String resourceGroupName, String operationId, Context context) {
+ return getWithResponseAsync(vaultName, resourceGroupName, operationId, context).block();
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupOperationStatusesImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupOperationStatusesImpl.java
new file mode 100644
index 0000000000000..96fb5a913e8fc
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupOperationStatusesImpl.java
@@ -0,0 +1,62 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.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.recoveryservicesbackup.RecoveryServicesBackupManager;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.BackupOperationStatusesClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.OperationStatusInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupOperationStatuses;
+import com.azure.resourcemanager.recoveryservicesbackup.models.OperationStatus;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class BackupOperationStatusesImpl implements BackupOperationStatuses {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupOperationStatusesImpl.class);
+
+ private final BackupOperationStatusesClient innerClient;
+
+ private final RecoveryServicesBackupManager serviceManager;
+
+ public BackupOperationStatusesImpl(
+ BackupOperationStatusesClient innerClient, RecoveryServicesBackupManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public OperationStatus get(String vaultName, String resourceGroupName, String operationId) {
+ OperationStatusInner inner = this.serviceClient().get(vaultName, resourceGroupName, operationId);
+ if (inner != null) {
+ return new OperationStatusImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(
+ String vaultName, String resourceGroupName, String operationId, Context context) {
+ Response inner =
+ this.serviceClient().getWithResponse(vaultName, resourceGroupName, operationId, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new OperationStatusImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private BackupOperationStatusesClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private RecoveryServicesBackupManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupPoliciesClientImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupPoliciesClientImpl.java
new file mode 100644
index 0000000000000..9f58a9f3ea5e5
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupPoliciesClientImpl.java
@@ -0,0 +1,376 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+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.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.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+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.recoveryservicesbackup.fluent.BackupPoliciesClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.ProtectionPolicyResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectionPolicyResourceList;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in BackupPoliciesClient. */
+public final class BackupPoliciesClientImpl implements BackupPoliciesClient {
+ private final ClientLogger logger = new ClientLogger(BackupPoliciesClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final BackupPoliciesService service;
+
+ /** The service client containing this operation class. */
+ private final RecoveryServicesBackupClientImpl client;
+
+ /**
+ * Initializes an instance of BackupPoliciesClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ BackupPoliciesClientImpl(RecoveryServicesBackupClientImpl client) {
+ this.service =
+ RestProxy.create(BackupPoliciesService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RecoveryServicesBackupClientBackupPolicies to be used by the proxy
+ * service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RecoveryServicesBack")
+ private interface BackupPoliciesService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices"
+ + "/vaults/{vaultName}/backupPolicies")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("vaultName") String vaultName,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @QueryParam("$filter") String filter,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Lists of backup policies associated with Recovery Services Vault. API provides pagination parameters to fetch
+ * scoped results.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @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 list of ProtectionPolicy resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String vaultName, String resourceGroupName, String filter) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ filter,
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Lists of backup policies associated with Recovery Services Vault. API provides pagination parameters to fetch
+ * scoped results.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @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 list of ProtectionPolicy resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String vaultName, String resourceGroupName, String filter, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ filter,
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists of backup policies associated with Recovery Services Vault. API provides pagination parameters to fetch
+ * scoped results.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @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 list of ProtectionPolicy resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String vaultName, String resourceGroupName, String filter) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(vaultName, resourceGroupName, filter),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists of backup policies associated with Recovery Services Vault. API provides pagination parameters to fetch
+ * scoped results.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of ProtectionPolicy resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String vaultName, String resourceGroupName) {
+ final String filter = null;
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(vaultName, resourceGroupName, filter),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists of backup policies associated with Recovery Services Vault. API provides pagination parameters to fetch
+ * scoped results.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @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 list of ProtectionPolicy resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String vaultName, String resourceGroupName, String filter, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(vaultName, resourceGroupName, filter, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists of backup policies associated with Recovery Services Vault. API provides pagination parameters to fetch
+ * scoped results.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of ProtectionPolicy resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String vaultName, String resourceGroupName) {
+ final String filter = null;
+ return new PagedIterable<>(listAsync(vaultName, resourceGroupName, filter));
+ }
+
+ /**
+ * Lists of backup policies associated with Recovery Services Vault. API provides pagination parameters to fetch
+ * scoped results.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @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 list of ProtectionPolicy resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, Context context) {
+ return new PagedIterable<>(listAsync(vaultName, resourceGroupName, filter, context));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @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 list of ProtectionPolicy resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @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 list of ProtectionPolicy resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(
+ String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupPoliciesImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupPoliciesImpl.java
new file mode 100644
index 0000000000000..cd463a2d66c2b
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupPoliciesImpl.java
@@ -0,0 +1,48 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesbackup.RecoveryServicesBackupManager;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.BackupPoliciesClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.ProtectionPolicyResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupPolicies;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectionPolicyResource;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class BackupPoliciesImpl implements BackupPolicies {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupPoliciesImpl.class);
+
+ private final BackupPoliciesClient innerClient;
+
+ private final RecoveryServicesBackupManager serviceManager;
+
+ public BackupPoliciesImpl(BackupPoliciesClient innerClient, RecoveryServicesBackupManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(String vaultName, String resourceGroupName) {
+ PagedIterable inner = this.serviceClient().list(vaultName, resourceGroupName);
+ return inner.mapPage(inner1 -> new ProtectionPolicyResourceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, Context context) {
+ PagedIterable inner =
+ this.serviceClient().list(vaultName, resourceGroupName, filter, context);
+ return inner.mapPage(inner1 -> new ProtectionPolicyResourceImpl(inner1, this.manager()));
+ }
+
+ private BackupPoliciesClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private RecoveryServicesBackupManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupProtectableItemsClientImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupProtectableItemsClientImpl.java
new file mode 100644
index 0000000000000..d8eba3d04b695
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupProtectableItemsClientImpl.java
@@ -0,0 +1,387 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+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.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.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+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.recoveryservicesbackup.fluent.BackupProtectableItemsClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.WorkloadProtectableItemResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.WorkloadProtectableItemResourceList;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in BackupProtectableItemsClient. */
+public final class BackupProtectableItemsClientImpl implements BackupProtectableItemsClient {
+ private final ClientLogger logger = new ClientLogger(BackupProtectableItemsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final BackupProtectableItemsService service;
+
+ /** The service client containing this operation class. */
+ private final RecoveryServicesBackupClientImpl client;
+
+ /**
+ * Initializes an instance of BackupProtectableItemsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ BackupProtectableItemsClientImpl(RecoveryServicesBackupClientImpl client) {
+ this.service =
+ RestProxy
+ .create(BackupProtectableItemsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RecoveryServicesBackupClientBackupProtectableItems to be used by the
+ * proxy service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RecoveryServicesBack")
+ private interface BackupProtectableItemsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices"
+ + "/vaults/{vaultName}/backupProtectableItems")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("vaultName") String vaultName,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @QueryParam("$filter") String filter,
+ @QueryParam("$skipToken") String skipToken,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Provides a pageable list of protectable objects within your subscription according to the query filter and the
+ * pagination parameters.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of WorkloadProtectableItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String vaultName, String resourceGroupName, String filter, String skipToken) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ filter,
+ skipToken,
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Provides a pageable list of protectable objects within your subscription according to the query filter and the
+ * pagination parameters.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of WorkloadProtectableItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ filter,
+ skipToken,
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Provides a pageable list of protectable objects within your subscription according to the query filter and the
+ * pagination parameters.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of WorkloadProtectableItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String vaultName, String resourceGroupName, String filter, String skipToken) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(vaultName, resourceGroupName, filter, skipToken),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Provides a pageable list of protectable objects within your subscription according to the query filter and the
+ * pagination parameters.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of WorkloadProtectableItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(String vaultName, String resourceGroupName) {
+ final String filter = null;
+ final String skipToken = null;
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(vaultName, resourceGroupName, filter, skipToken),
+ nextLink -> listNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Provides a pageable list of protectable objects within your subscription according to the query filter and the
+ * pagination parameters.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of WorkloadProtectableItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(vaultName, resourceGroupName, filter, skipToken, context),
+ nextLink -> listNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Provides a pageable list of protectable objects within your subscription according to the query filter and the
+ * pagination parameters.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @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 list of WorkloadProtectableItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(String vaultName, String resourceGroupName) {
+ final String filter = null;
+ final String skipToken = null;
+ return new PagedIterable<>(listAsync(vaultName, resourceGroupName, filter, skipToken));
+ }
+
+ /**
+ * Provides a pageable list of protectable objects within your subscription according to the query filter and the
+ * pagination parameters.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of WorkloadProtectableItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context) {
+ return new PagedIterable<>(listAsync(vaultName, resourceGroupName, filter, skipToken, context));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @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 list of WorkloadProtectableItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @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 list of WorkloadProtectableItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listNextSinglePageAsync(
+ String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupProtectableItemsImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupProtectableItemsImpl.java
new file mode 100644
index 0000000000000..cd13e6b2d72ca
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupProtectableItemsImpl.java
@@ -0,0 +1,50 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesbackup.RecoveryServicesBackupManager;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.BackupProtectableItemsClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.WorkloadProtectableItemResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.BackupProtectableItems;
+import com.azure.resourcemanager.recoveryservicesbackup.models.WorkloadProtectableItemResource;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class BackupProtectableItemsImpl implements BackupProtectableItems {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupProtectableItemsImpl.class);
+
+ private final BackupProtectableItemsClient innerClient;
+
+ private final RecoveryServicesBackupManager serviceManager;
+
+ public BackupProtectableItemsImpl(
+ BackupProtectableItemsClient innerClient, RecoveryServicesBackupManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(String vaultName, String resourceGroupName) {
+ PagedIterable inner =
+ this.serviceClient().list(vaultName, resourceGroupName);
+ return inner.mapPage(inner1 -> new WorkloadProtectableItemResourceImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(
+ String vaultName, String resourceGroupName, String filter, String skipToken, Context context) {
+ PagedIterable inner =
+ this.serviceClient().list(vaultName, resourceGroupName, filter, skipToken, context);
+ return inner.mapPage(inner1 -> new WorkloadProtectableItemResourceImpl(inner1, this.manager()));
+ }
+
+ private BackupProtectableItemsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private RecoveryServicesBackupManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupProtectedItemsClientImpl.java b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupProtectedItemsClientImpl.java
new file mode 100644
index 0000000000000..8d7d42e126eaf
--- /dev/null
+++ b/sdk/recoveryservicesbackup/azure-resourcemanager-recoveryservicesbackup/src/main/java/com/azure/resourcemanager/recoveryservicesbackup/implementation/BackupProtectedItemsClientImpl.java
@@ -0,0 +1,379 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesbackup.implementation;
+
+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.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.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+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.recoveryservicesbackup.fluent.BackupProtectedItemsClient;
+import com.azure.resourcemanager.recoveryservicesbackup.fluent.models.ProtectedItemResourceInner;
+import com.azure.resourcemanager.recoveryservicesbackup.models.ProtectedItemResourceList;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in BackupProtectedItemsClient. */
+public final class BackupProtectedItemsClientImpl implements BackupProtectedItemsClient {
+ private final ClientLogger logger = new ClientLogger(BackupProtectedItemsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final BackupProtectedItemsService service;
+
+ /** The service client containing this operation class. */
+ private final RecoveryServicesBackupClientImpl client;
+
+ /**
+ * Initializes an instance of BackupProtectedItemsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ BackupProtectedItemsClientImpl(RecoveryServicesBackupClientImpl client) {
+ this.service =
+ RestProxy
+ .create(BackupProtectedItemsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for RecoveryServicesBackupClientBackupProtectedItems to be used by the
+ * proxy service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "RecoveryServicesBack")
+ private interface BackupProtectedItemsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices"
+ + "/vaults/{vaultName}/backupProtectedItems")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("vaultName") String vaultName,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @PathParam("subscriptionId") String subscriptionId,
+ @QueryParam("$filter") String filter,
+ @QueryParam("$skipToken") String skipToken,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Provides a pageable list of all items that are backed up within a vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of ProtectedItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ String vaultName, String resourceGroupName, String filter, String skipToken) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (vaultName == null) {
+ return Mono.error(new IllegalArgumentException("Parameter vaultName is required and cannot be null."));
+ }
+ if (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName 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."));
+ }
+ final String apiVersion = "2021-01-01";
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ apiVersion,
+ vaultName,
+ resourceGroupName,
+ this.client.getSubscriptionId(),
+ filter,
+ skipToken,
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext())));
+ }
+
+ /**
+ * Provides a pageable list of all items that are backed up within a vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param filter OData filter options.
+ * @param skipToken skipToken Filter.
+ * @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 list of ProtectedItem resources.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono