This setting has no effect, if retry policy is set via {@link #withRetryPolicy(RetryPolicy)}.
+ *
+ * @param retryOptions the retry options for the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryOptions(RetryOptions retryOptions) {
+ this.retryOptions = Objects.requireNonNull(retryOptions, "'retryOptions' 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, "'defaultPollInterval' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw LOGGER
+ .logExceptionAsError(new IllegalArgumentException("'defaultPollInterval' cannot be negative"));
+ }
+ return this;
+ }
+
+ /**
+ * Creates an instance of recoveryservicesdatareplication service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the recoveryservicesdatareplication service API instance.
+ */
+ public RecoveryservicesdatareplicationManager 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.recoveryservicesdatareplication")
+ .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 (scopes.isEmpty()) {
+ scopes.add(profile.getEnvironment().getManagementEndpoint() + "/.default");
+ }
+ if (retryPolicy == null) {
+ if (retryOptions != null) {
+ retryPolicy = new RetryPolicy(retryOptions);
+ } else {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ }
+ List Tracks the results of an asynchronous operation on the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param operationId The ID of an ongoing async 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 defines the operation status along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Tracks the results of an asynchronous operation on the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param operationId The ID of an ongoing async operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusInner get(String resourceGroupName, String fabricName, String fabricAgentName, String operationId);
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/DrasClient.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/DrasClient.java
new file mode 100644
index 000000000000..9cd00e37cd5a
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/DrasClient.java
@@ -0,0 +1,218 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesdatareplication.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.recoveryservicesdatareplication.fluent.models.DraModelInner;
+
+/** An instance of this class provides access to all the operations defined in DrasClient. */
+public interface DrasClient {
+ /**
+ * Gets the fabric agent (Dra).
+ *
+ * Gets the details of the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the fabric agent along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Gets the details of the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the fabric agent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DraModelInner get(String resourceGroupName, String fabricName, String fabricAgentName);
+
+ /**
+ * Puts the fabric agent (Dra).
+ *
+ * Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of dra model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param body Dra model.
+ * @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 {@link SyncPoller} for polling of dra model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return dra model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DraModelInner create(String resourceGroupName, String fabricName, String fabricAgentName);
+
+ /**
+ * Puts the fabric agent (Dra).
+ *
+ * Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param body Dra model.
+ * @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 dra model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ DraModelInner create(
+ String resourceGroupName, String fabricName, String fabricAgentName, DraModelInner body, Context context);
+
+ /**
+ * Deletes the fabric agent (Dra).
+ *
+ * Deletes the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Deletes the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Deletes the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String fabricName, String fabricAgentName);
+
+ /**
+ * Deletes the fabric agent (Dra).
+ *
+ * Deletes the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String fabricName, String fabricAgentName, Context context);
+
+ /**
+ * Lists the fabric agents (Dras).
+ *
+ * Gets the list of fabric agents in the given fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of fabric agents in the given fabric as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the list of fabric agents in the given fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of fabric agents in the given fabric as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the details of the alert configuration setting.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param emailConfigurationName The email configuration name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the alert configuration setting along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Gets the details of the alert configuration setting.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param emailConfigurationName The email configuration name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the alert configuration setting.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EmailConfigurationModelInner get(String resourceGroupName, String vaultName, String emailConfigurationName);
+
+ /**
+ * Creates email configuration settings.
+ *
+ * Creates an alert configuration setting for the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param emailConfigurationName The email configuration name.
+ * @param body EmailConfiguration model.
+ * @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 email configuration model along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Creates an alert configuration setting for the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param emailConfigurationName The email configuration name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return email configuration model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EmailConfigurationModelInner create(String resourceGroupName, String vaultName, String emailConfigurationName);
+
+ /**
+ * Lists the email configuration settings.
+ *
+ * Gets the list of alert configuration settings for the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of alert configuration settings for the given vault as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the list of alert configuration settings for the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of alert configuration settings for the given vault as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the details of the event.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param eventName The event name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the event along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Gets the details of the event.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param eventName The event name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the event.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EventModelInner get(String resourceGroupName, String vaultName, String eventName);
+
+ /**
+ * Lists the events.
+ *
+ * Gets the list of events in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of events in the given vault as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the list of events in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param filter Filter string.
+ * @param continuationToken Continuation token.
+ * @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 events in the given vault as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Tracks the results of an asynchronous operation on the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param operationId The ID of an ongoing async 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 defines the operation status along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Tracks the results of an asynchronous operation on the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param operationId The ID of an ongoing async operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusInner get(String resourceGroupName, String fabricName, String operationId);
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/FabricsClient.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/FabricsClient.java
new file mode 100644
index 000000000000..51a039432017
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/FabricsClient.java
@@ -0,0 +1,300 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesdatareplication.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.recoveryservicesdatareplication.fluent.models.FabricModelInner;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.FabricModelUpdate;
+
+/** An instance of this class provides access to all the operations defined in FabricsClient. */
+public interface FabricsClient {
+ /**
+ * Gets the fabric.
+ *
+ * Gets the details of the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the fabric along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Gets the details of the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the fabric.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FabricModelInner getByResourceGroup(String resourceGroupName, String fabricName);
+
+ /**
+ * Puts the fabric.
+ *
+ * Creates the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of fabric model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Creates the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param body Fabric properties.
+ * @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 {@link SyncPoller} for polling of fabric model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Creates the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return fabric model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FabricModelInner create(String resourceGroupName, String fabricName);
+
+ /**
+ * Puts the fabric.
+ *
+ * Creates the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param body Fabric properties.
+ * @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 fabric model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FabricModelInner create(String resourceGroupName, String fabricName, FabricModelInner body, Context context);
+
+ /**
+ * Updates the fabric.
+ *
+ * Performs update on the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of fabric model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Performs update on the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param body Fabric properties.
+ * @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 {@link SyncPoller} for polling of fabric model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Performs update on the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return fabric model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FabricModelInner update(String resourceGroupName, String fabricName);
+
+ /**
+ * Updates the fabric.
+ *
+ * Performs update on the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param body Fabric properties.
+ * @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 fabric model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ FabricModelInner update(String resourceGroupName, String fabricName, FabricModelUpdate body, Context context);
+
+ /**
+ * Deletes the fabric.
+ *
+ * Removes the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Removes the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Removes the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String fabricName);
+
+ /**
+ * Deletes the fabric.
+ *
+ * Removes the fabric.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String fabricName, Context context);
+
+ /**
+ * Lists the fabrics.
+ *
+ * Gets the list of fabrics in the given subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of fabrics in the given subscription as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the list of fabrics in the given subscription.
+ *
+ * @param continuationToken Continuation token from the previous call.
+ * @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 fabrics in the given subscription as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the list of fabrics in the given subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of fabrics in the given subscription and resource group as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the list of fabrics in the given subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param continuationToken Continuation token from the previous call.
+ * @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 fabrics in the given subscription and resource group as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the operations.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the operations as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the operations.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the operations as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the details of the policy.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param policyName The policy name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the policy along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Gets the details of the policy.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param policyName The policy name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PolicyModelInner get(String resourceGroupName, String vaultName, String policyName);
+
+ /**
+ * Puts the policy.
+ *
+ * Creates the policy.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param policyName The policy name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of policy model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Creates the policy.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param policyName The policy name.
+ * @param body Policy model.
+ * @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 {@link SyncPoller} for polling of policy model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Creates the policy.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param policyName The policy name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return policy model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PolicyModelInner create(String resourceGroupName, String vaultName, String policyName);
+
+ /**
+ * Puts the policy.
+ *
+ * Creates the policy.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param policyName The policy name.
+ * @param body Policy model.
+ * @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 policy model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PolicyModelInner create(
+ String resourceGroupName, String vaultName, String policyName, PolicyModelInner body, Context context);
+
+ /**
+ * Deletes the policy.
+ *
+ * Removes the policy.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param policyName The policy name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Removes the policy.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param policyName The policy name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Removes the policy.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param policyName The policy name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String vaultName, String policyName);
+
+ /**
+ * Deletes the policy.
+ *
+ * Removes the policy.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param policyName The policy name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String vaultName, String policyName, Context context);
+
+ /**
+ * Lists the policies.
+ *
+ * Gets the list of policies in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of policies in the given vault as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the list of policies in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of policies in the given vault as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Tracks the results of an asynchronous operation on the policy.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param policyName The policy name.
+ * @param operationId The ID of an ongoing async 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 defines the operation status along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Tracks the results of an asynchronous operation on the policy.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param policyName The policy name.
+ * @param operationId The ID of an ongoing async operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusInner get(String resourceGroupName, String vaultName, String policyName, String operationId);
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/ProtectedItemOperationStatusClient.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/ProtectedItemOperationStatusClient.java
new file mode 100644
index 000000000000..a8f78f60b39b
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/ProtectedItemOperationStatusClient.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.recoveryservicesdatareplication.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.recoveryservicesdatareplication.fluent.models.OperationStatusInner;
+
+/** An instance of this class provides access to all the operations defined in ProtectedItemOperationStatusClient. */
+public interface ProtectedItemOperationStatusClient {
+ /**
+ * Gets the protected item operation status.
+ *
+ * Tracks the results of an asynchronous operation on the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @param operationId The ID of an ongoing async 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 defines the operation status along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Tracks the results of an asynchronous operation on the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @param operationId The ID of an ongoing async operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusInner get(String resourceGroupName, String vaultName, String protectedItemName, String operationId);
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/ProtectedItemsClient.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/ProtectedItemsClient.java
new file mode 100644
index 000000000000..aa4130a45ef7
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/ProtectedItemsClient.java
@@ -0,0 +1,310 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesdatareplication.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.recoveryservicesdatareplication.fluent.models.PlannedFailoverModelInner;
+import com.azure.resourcemanager.recoveryservicesdatareplication.fluent.models.ProtectedItemModelInner;
+
+/** An instance of this class provides access to all the operations defined in ProtectedItemsClient. */
+public interface ProtectedItemsClient {
+ /**
+ * Gets the protected item.
+ *
+ * Gets the details of the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the protected item along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Gets the details of the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the protected item.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProtectedItemModelInner get(String resourceGroupName, String vaultName, String protectedItemName);
+
+ /**
+ * Puts the protected item.
+ *
+ * Creates the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of protected item model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Creates the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @param body Protected item model.
+ * @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 {@link SyncPoller} for polling of protected item model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Creates the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return protected item model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProtectedItemModelInner create(String resourceGroupName, String vaultName, String protectedItemName);
+
+ /**
+ * Puts the protected item.
+ *
+ * Creates the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @param body Protected item model.
+ * @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 protected item model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProtectedItemModelInner create(
+ String resourceGroupName,
+ String vaultName,
+ String protectedItemName,
+ ProtectedItemModelInner body,
+ Context context);
+
+ /**
+ * Deletes the protected item.
+ *
+ * Removes the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Removes the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @param forceDelete A flag indicating whether to do force delete or not.
+ * @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 {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Removes the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String vaultName, String protectedItemName);
+
+ /**
+ * Deletes the protected item.
+ *
+ * Removes the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @param forceDelete A flag indicating whether to do force delete or not.
+ * @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 resourceGroupName, String vaultName, String protectedItemName, Boolean forceDelete, Context context);
+
+ /**
+ * Lists the protected items.
+ *
+ * Gets the list of protected items in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of protected items in the given vault as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the list of protected items in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of protected items in the given vault as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Performs the planned failover on the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of planned failover model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Performs the planned failover on the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @param body Planned failover model.
+ * @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 {@link SyncPoller} for polling of planned failover model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Performs the planned failover on the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return planned failover model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PlannedFailoverModelInner plannedFailover(String resourceGroupName, String vaultName, String protectedItemName);
+
+ /**
+ * Performs planned failover.
+ *
+ * Performs the planned failover on the protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @param body Planned failover model.
+ * @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 planned failover model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ PlannedFailoverModelInner plannedFailover(
+ String resourceGroupName,
+ String vaultName,
+ String protectedItemName,
+ PlannedFailoverModelInner body,
+ Context context);
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/RecoveryPointsClient.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/RecoveryPointsClient.java
new file mode 100644
index 000000000000..69ad46dbaed2
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/RecoveryPointsClient.java
@@ -0,0 +1,90 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesdatareplication.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.recoveryservicesdatareplication.fluent.models.RecoveryPointModelInner;
+
+/** An instance of this class provides access to all the operations defined in RecoveryPointsClient. */
+public interface RecoveryPointsClient {
+ /**
+ * Gets the recovery point.
+ *
+ * Gets the details of the recovery point of a protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @param recoveryPointName The recovery point name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the recovery point of a protected item along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Gets the details of the recovery point of a protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @param recoveryPointName The recovery point name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the recovery point of a protected item.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RecoveryPointModelInner get(
+ String resourceGroupName, String vaultName, String protectedItemName, String recoveryPointName);
+
+ /**
+ * Lists the recovery points.
+ *
+ * Gets the list of recovery points of the given protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of recovery points of the given protected item as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the list of recovery points of the given protected item.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param protectedItemName The protected item name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of recovery points of the given protected item as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Tracks the results of an asynchronous operation on the replication extension.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param replicationExtensionName The replication extension name.
+ * @param operationId The ID of an ongoing async 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 defines the operation status along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Tracks the results of an asynchronous operation on the replication extension.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param replicationExtensionName The replication extension name.
+ * @param operationId The ID of an ongoing async operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusInner get(
+ String resourceGroupName, String vaultName, String replicationExtensionName, String operationId);
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/ReplicationExtensionsClient.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/ReplicationExtensionsClient.java
new file mode 100644
index 000000000000..e1eac7ec15fd
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/ReplicationExtensionsClient.java
@@ -0,0 +1,227 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesdatareplication.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.recoveryservicesdatareplication.fluent.models.ReplicationExtensionModelInner;
+
+/** An instance of this class provides access to all the operations defined in ReplicationExtensionsClient. */
+public interface ReplicationExtensionsClient {
+ /**
+ * Gets the replication extension.
+ *
+ * Gets the details of the replication extension.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param replicationExtensionName The replication extension name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the replication extension along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Gets the details of the replication extension.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param replicationExtensionName The replication extension name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the replication extension.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ReplicationExtensionModelInner get(String resourceGroupName, String vaultName, String replicationExtensionName);
+
+ /**
+ * Puts the replication extension.
+ *
+ * Creates the replication extension in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param replicationExtensionName The replication extension name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of replication extension model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Creates the replication extension in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param replicationExtensionName The replication extension name.
+ * @param body Replication extension model.
+ * @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 {@link SyncPoller} for polling of replication extension model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Creates the replication extension in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param replicationExtensionName The replication extension name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return replication extension model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ReplicationExtensionModelInner create(String resourceGroupName, String vaultName, String replicationExtensionName);
+
+ /**
+ * Puts the replication extension.
+ *
+ * Creates the replication extension in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param replicationExtensionName The replication extension name.
+ * @param body Replication extension model.
+ * @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 replication extension model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ReplicationExtensionModelInner create(
+ String resourceGroupName,
+ String vaultName,
+ String replicationExtensionName,
+ ReplicationExtensionModelInner body,
+ Context context);
+
+ /**
+ * Deletes the replication extension.
+ *
+ * Deletes the replication extension in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param replicationExtensionName The replication extension name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Deletes the replication extension in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param replicationExtensionName The replication extension name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Deletes the replication extension in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param replicationExtensionName The replication extension name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String vaultName, String replicationExtensionName);
+
+ /**
+ * Deletes the replication extension.
+ *
+ * Deletes the replication extension in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param replicationExtensionName The replication extension name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String vaultName, String replicationExtensionName, Context context);
+
+ /**
+ * Lists the replication extensions.
+ *
+ * Gets the list of replication extensions in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of replication extensions in the given vault as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the list of replication extensions in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of replication extensions in the given vault as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Checks the resource name availability.
+ *
+ * @param location The name of the Azure region.
+ * @param body Resource details.
+ * @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 check name availability response model along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Checks the resource name availability.
+ *
+ * @param location The name of the Azure region.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return check name availability response model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CheckNameAvailabilityResponseModelInner checkNameAvailability(String location);
+
+ /**
+ * Performs resource deployment validation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deploymentId Deployment Id.
+ * @param body Deployment preflight model.
+ * @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 deployment preflight model along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Tracks the results of an asynchronous operation on the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param operationId The ID of an ongoing async 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 defines the operation status along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Tracks the results of an asynchronous operation on the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param operationId The ID of an ongoing async operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusInner get(String resourceGroupName, String vaultName, String operationId);
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/VaultsClient.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/VaultsClient.java
new file mode 100644
index 000000000000..e68c5fe455ae
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/VaultsClient.java
@@ -0,0 +1,300 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesdatareplication.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.recoveryservicesdatareplication.fluent.models.VaultModelInner;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.VaultModelUpdate;
+
+/** An instance of this class provides access to all the operations defined in VaultsClient. */
+public interface VaultsClient {
+ /**
+ * Gets the vault.
+ *
+ * Gets the details of the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the vault along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Gets the details of the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the vault.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VaultModelInner getByResourceGroup(String resourceGroupName, String vaultName);
+
+ /**
+ * Puts the vault.
+ *
+ * Creates the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of vault model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Creates the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param body Vault properties.
+ * @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 {@link SyncPoller} for polling of vault model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Creates the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return vault model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VaultModelInner create(String resourceGroupName, String vaultName);
+
+ /**
+ * Puts the vault.
+ *
+ * Creates the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param body Vault properties.
+ * @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 vault model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VaultModelInner create(String resourceGroupName, String vaultName, VaultModelInner body, Context context);
+
+ /**
+ * Updates the vault.
+ *
+ * Performs update on the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of vault model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Performs update on the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param body Vault properties.
+ * @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 {@link SyncPoller} for polling of vault model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Performs update on the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return vault model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VaultModelInner update(String resourceGroupName, String vaultName);
+
+ /**
+ * Updates the vault.
+ *
+ * Performs update on the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param body Vault properties.
+ * @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 vault model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VaultModelInner update(String resourceGroupName, String vaultName, VaultModelUpdate body, Context context);
+
+ /**
+ * Deletes the vault.
+ *
+ * Removes the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Removes the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller Removes the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String vaultName);
+
+ /**
+ * Deletes the vault.
+ *
+ * Removes the vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String vaultName, Context context);
+
+ /**
+ * Lists the vaults.
+ *
+ * Gets the list of vaults in the given subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of vaults in the given subscription as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the list of vaults in the given subscription.
+ *
+ * @param continuationToken Continuation token from the previous call.
+ * @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 vaults in the given subscription as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the list of vaults in the given subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of vaults in the given subscription and resource group as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the list of vaults in the given subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param continuationToken Continuation token from the previous call.
+ * @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 vaults in the given subscription and resource group as paginated response with {@link
+ * PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Tracks the results of an asynchronous operation on the job.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param jobName The job (workflow) name.
+ * @param operationId The ID of an ongoing async 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 defines the operation status along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Tracks the results of an asynchronous operation on the job.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param jobName The job (workflow) name.
+ * @param operationId The ID of an ongoing async operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines the operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OperationStatusInner get(String resourceGroupName, String vaultName, String jobName, String operationId);
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/WorkflowsClient.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/WorkflowsClient.java
new file mode 100644
index 000000000000..acebd69ae35f
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/WorkflowsClient.java
@@ -0,0 +1,83 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesdatareplication.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.recoveryservicesdatareplication.fluent.models.WorkflowModelInner;
+
+/** An instance of this class provides access to all the operations defined in WorkflowsClient. */
+public interface WorkflowsClient {
+ /**
+ * Gets the job (workflow).
+ *
+ * Gets the details of the job.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param jobName The job (workflow) name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the job along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response Gets the details of the job.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param jobName The job (workflow) name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the details of the job.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WorkflowModelInner get(String resourceGroupName, String vaultName, String jobName);
+
+ /**
+ * Lists the jobs (workflows).
+ *
+ * Gets the list of jobs in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list of jobs in the given vault as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Gets the list of jobs in the given vault.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param vaultName The vault name.
+ * @param filter Filter string.
+ * @param continuationToken Continuation token.
+ * @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 jobs in the given vault as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable Details of a REST API operation, returned from the Resource Provider Operations API.
+ */
+@Fluent
+public final class OperationInner {
+ /*
+ * The name of the operation, as per Resource-Based Access Control (RBAC). Examples:
+ * "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action"
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for
+ * ARM/control-plane operations.
+ */
+ @JsonProperty(value = "isDataAction", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isDataAction;
+
+ /*
+ * Localized display information for this particular operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /*
+ * The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default
+ * value is "user,system"
+ */
+ @JsonProperty(value = "origin", access = JsonProperty.Access.WRITE_ONLY)
+ private Origin origin;
+
+ /*
+ * Enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs.
+ */
+ @JsonProperty(value = "actionType", access = JsonProperty.Access.WRITE_ONLY)
+ private ActionType actionType;
+
+ /** Creates an instance of OperationInner class. */
+ public OperationInner() {
+ }
+
+ /**
+ * Get the name property: The name of the operation, as per Resource-Based Access Control (RBAC). Examples:
+ * "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action".
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the isDataAction property: Whether the operation applies to data-plane. This is "true" for data-plane
+ * operations and "false" for ARM/control-plane operations.
+ *
+ * @return the isDataAction value.
+ */
+ public Boolean isDataAction() {
+ return this.isDataAction;
+ }
+
+ /**
+ * Get the display property: Localized display information for this particular operation.
+ *
+ * @return the display value.
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Localized display information for this particular operation.
+ *
+ * @param display the display value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withDisplay(OperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Get the origin property: The intended executor of the operation; as in Resource Based Access Control (RBAC) and
+ * audit logs UX. Default value is "user,system".
+ *
+ * @return the origin value.
+ */
+ public Origin origin() {
+ return this.origin;
+ }
+
+ /**
+ * Get the actionType property: Enum. Indicates the action type. "Internal" refers to actions that are for internal
+ * only APIs.
+ *
+ * @return the actionType value.
+ */
+ public ActionType actionType() {
+ return this.actionType;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ }
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/OperationStatusInner.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/OperationStatusInner.java
new file mode 100644
index 000000000000..5f2d68e766cb
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/OperationStatusInner.java
@@ -0,0 +1,157 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesdatareplication.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Defines the operation status. */
+@Fluent
+public final class OperationStatusInner {
+ /*
+ * Gets or sets the Id.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /*
+ * Gets or sets the operation name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * Gets or sets the status of the operation. ARM expects the terminal status to be one of
+ * Succeeded/ Failed/ Canceled. All other values imply that the operation is still running.
+ */
+ @JsonProperty(value = "status")
+ private String status;
+
+ /*
+ * Gets or sets the start time.
+ */
+ @JsonProperty(value = "startTime")
+ private String startTime;
+
+ /*
+ * Gets or sets the end time.
+ */
+ @JsonProperty(value = "endTime")
+ private String endTime;
+
+ /** Creates an instance of OperationStatusInner class. */
+ public OperationStatusInner() {
+ }
+
+ /**
+ * Get the id property: Gets or sets the Id.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the id property: Gets or sets the Id.
+ *
+ * @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: Gets or sets the operation name.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Gets or sets the operation name.
+ *
+ * @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: Gets or sets the status of the operation. ARM expects the terminal status to be one of
+ * Succeeded/ Failed/ Canceled. All other values imply that the operation is still running.
+ *
+ * @return the status value.
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status property: Gets or sets the status of the operation. ARM expects the terminal status to be one of
+ * Succeeded/ Failed/ Canceled. All other values imply that the operation is still running.
+ *
+ * @param status the status value to set.
+ * @return the OperationStatusInner object itself.
+ */
+ public OperationStatusInner withStatus(String status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the startTime property: Gets or sets the start time.
+ *
+ * @return the startTime value.
+ */
+ public String startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Set the startTime property: Gets or sets the start time.
+ *
+ * @param startTime the startTime value to set.
+ * @return the OperationStatusInner object itself.
+ */
+ public OperationStatusInner withStartTime(String startTime) {
+ this.startTime = startTime;
+ return this;
+ }
+
+ /**
+ * Get the endTime property: Gets or sets the end time.
+ *
+ * @return the endTime value.
+ */
+ public String endTime() {
+ return this.endTime;
+ }
+
+ /**
+ * Set the endTime property: Gets or sets the end time.
+ *
+ * @param endTime the endTime value to set.
+ * @return the OperationStatusInner object itself.
+ */
+ public OperationStatusInner withEndTime(String endTime) {
+ this.endTime = endTime;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/PlannedFailoverModelInner.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/PlannedFailoverModelInner.java
new file mode 100644
index 000000000000..41a00f4892cf
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/PlannedFailoverModelInner.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.recoveryservicesdatareplication.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.PlannedFailoverModelProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Planned failover model. */
+@Fluent
+public final class PlannedFailoverModelInner {
+ /*
+ * Planned failover model properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private PlannedFailoverModelProperties properties;
+
+ /** Creates an instance of PlannedFailoverModelInner class. */
+ public PlannedFailoverModelInner() {
+ }
+
+ /**
+ * Get the properties property: Planned failover model properties.
+ *
+ * @return the properties value.
+ */
+ public PlannedFailoverModelProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Planned failover model properties.
+ *
+ * @param properties the properties value to set.
+ * @return the PlannedFailoverModelInner object itself.
+ */
+ public PlannedFailoverModelInner withProperties(PlannedFailoverModelProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property properties in model PlannedFailoverModelInner"));
+ } else {
+ properties().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(PlannedFailoverModelInner.class);
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/PolicyModelInner.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/PolicyModelInner.java
new file mode 100644
index 000000000000..e8562adf874d
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/PolicyModelInner.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.recoveryservicesdatareplication.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.PolicyModelProperties;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.PolicyModelSystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Policy model. */
+@Fluent
+public final class PolicyModelInner extends ProxyResource {
+ /*
+ * Policy model properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private PolicyModelProperties properties;
+
+ /*
+ * The systemData property.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private PolicyModelSystemData systemData;
+
+ /** Creates an instance of PolicyModelInner class. */
+ public PolicyModelInner() {
+ }
+
+ /**
+ * Get the properties property: Policy model properties.
+ *
+ * @return the properties value.
+ */
+ public PolicyModelProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Policy model properties.
+ *
+ * @param properties the properties value to set.
+ * @return the PolicyModelInner object itself.
+ */
+ public PolicyModelInner withProperties(PolicyModelProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: The systemData property.
+ *
+ * @return the systemData value.
+ */
+ public PolicyModelSystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property properties in model PolicyModelInner"));
+ } else {
+ properties().validate();
+ }
+ if (systemData() != null) {
+ systemData().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(PolicyModelInner.class);
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/ProtectedItemModelInner.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/ProtectedItemModelInner.java
new file mode 100644
index 000000000000..e8369ef9259e
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/ProtectedItemModelInner.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.recoveryservicesdatareplication.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.ProtectedItemModelProperties;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.ProtectedItemModelSystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Protected item model. */
+@Fluent
+public final class ProtectedItemModelInner extends ProxyResource {
+ /*
+ * Protected item model properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private ProtectedItemModelProperties properties;
+
+ /*
+ * The systemData property.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private ProtectedItemModelSystemData systemData;
+
+ /** Creates an instance of ProtectedItemModelInner class. */
+ public ProtectedItemModelInner() {
+ }
+
+ /**
+ * Get the properties property: Protected item model properties.
+ *
+ * @return the properties value.
+ */
+ public ProtectedItemModelProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Protected item model properties.
+ *
+ * @param properties the properties value to set.
+ * @return the ProtectedItemModelInner object itself.
+ */
+ public ProtectedItemModelInner withProperties(ProtectedItemModelProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: The systemData property.
+ *
+ * @return the systemData value.
+ */
+ public ProtectedItemModelSystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property properties in model ProtectedItemModelInner"));
+ } else {
+ properties().validate();
+ }
+ if (systemData() != null) {
+ systemData().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(ProtectedItemModelInner.class);
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/RecoveryPointModelInner.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/RecoveryPointModelInner.java
new file mode 100644
index 000000000000..357a41eaeb54
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/RecoveryPointModelInner.java
@@ -0,0 +1,126 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesdatareplication.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.RecoveryPointModelProperties;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.RecoveryPointModelSystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Recovery point model. */
+@Fluent
+public final class RecoveryPointModelInner {
+ /*
+ * Recovery point model properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private RecoveryPointModelProperties properties;
+
+ /*
+ * Gets or sets the Id of the resource.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * Gets or sets the name of the resource.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Gets or sets the type of the resource.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * The systemData property.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private RecoveryPointModelSystemData systemData;
+
+ /** Creates an instance of RecoveryPointModelInner class. */
+ public RecoveryPointModelInner() {
+ }
+
+ /**
+ * Get the properties property: Recovery point model properties.
+ *
+ * @return the properties value.
+ */
+ public RecoveryPointModelProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Recovery point model properties.
+ *
+ * @param properties the properties value to set.
+ * @return the RecoveryPointModelInner object itself.
+ */
+ public RecoveryPointModelInner withProperties(RecoveryPointModelProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the id property: Gets or sets the Id of the resource.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: Gets or sets the name of the resource.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the type property: Gets or sets the type of the resource.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the systemData property: The systemData property.
+ *
+ * @return the systemData value.
+ */
+ public RecoveryPointModelSystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property properties in model RecoveryPointModelInner"));
+ } else {
+ properties().validate();
+ }
+ if (systemData() != null) {
+ systemData().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(RecoveryPointModelInner.class);
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/ReplicationExtensionModelInner.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/ReplicationExtensionModelInner.java
new file mode 100644
index 000000000000..68367291f832
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/ReplicationExtensionModelInner.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.recoveryservicesdatareplication.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.ReplicationExtensionModelProperties;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.ReplicationExtensionModelSystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Replication extension model. */
+@Fluent
+public final class ReplicationExtensionModelInner extends ProxyResource {
+ /*
+ * Replication extension model properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private ReplicationExtensionModelProperties properties;
+
+ /*
+ * The systemData property.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private ReplicationExtensionModelSystemData systemData;
+
+ /** Creates an instance of ReplicationExtensionModelInner class. */
+ public ReplicationExtensionModelInner() {
+ }
+
+ /**
+ * Get the properties property: Replication extension model properties.
+ *
+ * @return the properties value.
+ */
+ public ReplicationExtensionModelProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Replication extension model properties.
+ *
+ * @param properties the properties value to set.
+ * @return the ReplicationExtensionModelInner object itself.
+ */
+ public ReplicationExtensionModelInner withProperties(ReplicationExtensionModelProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: The systemData property.
+ *
+ * @return the systemData value.
+ */
+ public ReplicationExtensionModelSystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (properties() == null) {
+ throw LOGGER
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property properties in model ReplicationExtensionModelInner"));
+ } else {
+ properties().validate();
+ }
+ if (systemData() != null) {
+ systemData().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(ReplicationExtensionModelInner.class);
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/VaultModelInner.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/VaultModelInner.java
new file mode 100644
index 000000000000..17acfda23d04
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/fluent/models/VaultModelInner.java
@@ -0,0 +1,89 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.recoveryservicesdatareplication.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.VaultModelProperties;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.VaultModelSystemData;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Vault model. */
+@Fluent
+public final class VaultModelInner extends Resource {
+ /*
+ * Vault properties.
+ */
+ @JsonProperty(value = "properties")
+ private VaultModelProperties properties;
+
+ /*
+ * The systemData property.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private VaultModelSystemData systemData;
+
+ /** Creates an instance of VaultModelInner class. */
+ public VaultModelInner() {
+ }
+
+ /**
+ * Get the properties property: Vault properties.
+ *
+ * @return the properties value.
+ */
+ public VaultModelProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties property: Vault properties.
+ *
+ * @param properties the properties value to set.
+ * @return the VaultModelInner object itself.
+ */
+ public VaultModelInner withProperties(VaultModelProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the systemData property: The systemData property.
+ *
+ * @return the systemData value.
+ */
+ public VaultModelSystemData systemData() {
+ return this.systemData;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VaultModelInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public VaultModelInner withTags(Map Tracks the results of an asynchronous operation on the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param operationId The ID of an ongoing async 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 defines the operation status along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono Tracks the results of an asynchronous operation on the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param operationId The ID of an ongoing async 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 defines the operation status along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono Tracks the results of an asynchronous operation on the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param operationId The ID of an ongoing async 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 defines the operation status on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono Tracks the results of an asynchronous operation on the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param operationId The ID of an ongoing async 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 defines the operation status along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response Tracks the results of an asynchronous operation on the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param operationId The ID of an ongoing async 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 defines the operation status.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public OperationStatusInner get(
+ String resourceGroupName, String fabricName, String fabricAgentName, String operationId) {
+ return getWithResponse(resourceGroupName, fabricName, fabricAgentName, operationId, Context.NONE).getValue();
+ }
+}
diff --git a/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/implementation/DraOperationStatusImpl.java b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/implementation/DraOperationStatusImpl.java
new file mode 100644
index 000000000000..13c9fb16f781
--- /dev/null
+++ b/sdk/recoveryservicesdatareplication/azure-resourcemanager-recoveryservicesdatareplication/src/main/java/com/azure/resourcemanager/recoveryservicesdatareplication/implementation/DraOperationStatusImpl.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.recoveryservicesdatareplication.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.recoveryservicesdatareplication.fluent.DraOperationStatusClient;
+import com.azure.resourcemanager.recoveryservicesdatareplication.fluent.models.OperationStatusInner;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.DraOperationStatus;
+import com.azure.resourcemanager.recoveryservicesdatareplication.models.OperationStatus;
+
+public final class DraOperationStatusImpl implements DraOperationStatus {
+ private static final ClientLogger LOGGER = new ClientLogger(DraOperationStatusImpl.class);
+
+ private final DraOperationStatusClient innerClient;
+
+ private final com.azure.resourcemanager.recoveryservicesdatareplication.RecoveryservicesdatareplicationManager
+ serviceManager;
+
+ public DraOperationStatusImpl(
+ DraOperationStatusClient innerClient,
+ com.azure.resourcemanager.recoveryservicesdatareplication.RecoveryservicesdatareplicationManager
+ serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public Response Gets the details of the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @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 details of the fabric agent along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono Gets the details of the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @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 details of the fabric agent along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono Gets the details of the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @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 details of the fabric agent on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono Gets the details of the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @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 details of the fabric agent along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response Gets the details of the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @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 details of the fabric agent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public DraModelInner get(String resourceGroupName, String fabricName, String fabricAgentName) {
+ return getWithResponse(resourceGroupName, fabricName, fabricAgentName, Context.NONE).getValue();
+ }
+
+ /**
+ * Puts the fabric agent (Dra).
+ *
+ * Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param body Dra model.
+ * @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 dra model along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param body Dra model.
+ * @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 dra model along with {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param body Dra model.
+ * @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 {@link PollerFlux} for polling of dra model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @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 {@link PollerFlux} for polling of dra model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param body Dra model.
+ * @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 {@link PollerFlux} for polling of dra model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @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 {@link SyncPoller} for polling of dra model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param body Dra model.
+ * @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 {@link SyncPoller} for polling of dra model.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param body Dra model.
+ * @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 dra model on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @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 dra model on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param body Dra model.
+ * @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 dra model on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @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 dra model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public DraModelInner create(String resourceGroupName, String fabricName, String fabricAgentName) {
+ final DraModelInner body = null;
+ return createAsync(resourceGroupName, fabricName, fabricAgentName, body).block();
+ }
+
+ /**
+ * Puts the fabric agent (Dra).
+ *
+ * Creates the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @param body Dra model.
+ * @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 dra model.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public DraModelInner create(
+ String resourceGroupName, String fabricName, String fabricAgentName, DraModelInner body, Context context) {
+ return createAsync(resourceGroupName, fabricName, fabricAgentName, body, context).block();
+ }
+
+ /**
+ * Deletes the fabric agent (Dra).
+ *
+ * Deletes the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @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 {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono Deletes the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @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 {@link Response} on successful completion of {@link Mono}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono Deletes the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @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 {@link PollerFlux} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux Deletes the fabric agent.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param fabricName The fabric name.
+ * @param fabricAgentName The fabric agent (Dra) name.
+ * @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 {@link PollerFlux} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux