diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index 3ee20839eb80..416d4b4cee73 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -198,6 +198,7 @@ com.azure.resourcemanager:azure-resourcemanager-loganalytics;1.0.0-beta.1;1.0.0-
com.azure.resourcemanager:azure-resourcemanager-eventgrid;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-healthbot;1.0.0-beta.1;1.0.0-beta.1
com.azure.resourcemanager:azure-resourcemanager-confluent;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-netapp;1.0.0-beta.1;1.0.0-beta.1
# Unreleased dependencies: Copy the entry from above, prepend "unreleased_" and remove the current
diff --git a/pom.xml b/pom.xml
index 0d1c2a17109a..cbc193a57ae3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -571,6 +571,7 @@
sdk/metricsadvisorsdk/monitorsdk/mysql
+ sdk/netappsdk/postgresqlsdk/recoveryservicessdk/relay
diff --git a/sdk/netapp/azure-resourcemanager-netapp/CHANGELOG.md b/sdk/netapp/azure-resourcemanager-netapp/CHANGELOG.md
new file mode 100644
index 000000000000..179621f3a7e1
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2021-01-29)
+
+- Azure Resource Manager NetApp client library for Java. This package contains Microsoft Azure SDK for NetApp Management SDK. Microsoft NetApp Azure Resource Provider specification. Package tag package-netapp-2020-11-01. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
diff --git a/sdk/netapp/azure-resourcemanager-netapp/README.md b/sdk/netapp/azure-resourcemanager-netapp/README.md
new file mode 100644
index 000000000000..7cf73ba09abe
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/README.md
@@ -0,0 +1,99 @@
+# Azure Resource Manager NetApp client library for Java
+
+Azure Resource Manager NetApp client library for Java.
+
+This package contains Microsoft Azure SDK for NetApp Management SDK. Microsoft NetApp Azure Resource Provider specification. Package tag package-netapp-2020-11-01. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
+
+## We'd love to hear your feedback
+
+We're always working on improving our products and the way we communicate with our users. So we'd love to learn what's working and how we can do better.
+
+If you haven't already, please take a few minutes to [complete this short survey][survey] we have put together.
+
+Thank you in advance for your collaboration. We really appreciate your time!
+
+## Documentation
+
+Various documentation is available to help you get started
+
+- [API reference documentation][docs]
+
+## Getting started
+
+### Prerequisites
+
+- [Java Development Kit (JDK)][jdk] with version 8 or above
+- [Azure Subscription][azure_subscription]
+
+### Adding the package to your product
+
+[//]: # ({x-version-update-start;com.azure.resourcemanager:azure-resourcemanager-netapp;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-netapp
+ 1.0.0-beta.1
+
+```
+[//]: # ({x-version-update-end})
+
+### Include the recommended packages
+
+Azure Management Libraries require a `TokenCredential` implementation for authentication and an `HttpClient` implementation for HTTP client.
+
+[Azure Identity][azure_identity] package and [Azure Core Netty HTTP][azure_core_http_netty] package provide the default implementation.
+
+### Authentication
+
+By default, Azure Active Directory token authentication depends on correct configure of following environment variables.
+
+- `AZURE_CLIENT_ID` for Azure client ID.
+- `AZURE_TENANT_ID` for Azure tenant ID.
+- `AZURE_CLIENT_SECRET` or `AZURE_CLIENT_CERTIFICATE_PATH` for client secret or client certificate.
+
+In addition, Azure subscription ID can be configured via environment variable `AZURE_SUBSCRIPTION_ID`.
+
+With above configuration, `azure` client can be authenticated by following code:
+
+```java
+AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
+TokenCredential credential = new DefaultAzureCredentialBuilder()
+ .authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
+ .build();
+NetAppManager manager = NetAppManager
+ .authenticate(credential, profile);
+```
+
+The sample code assumes global Azure. Please change `AzureEnvironment.AZURE` variable if otherwise.
+
+See [Authentication][authenticate] for more options.
+
+## Key concepts
+
+See [API design][design] for general introduction on design and key concepts on Azure Management Libraries.
+
+## Examples
+
+## Troubleshooting
+
+## Next steps
+
+## Contributing
+
+For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-java/blob/master/CONTRIBUTING.md).
+
+1. Fork it
+1. Create your feature branch (`git checkout -b my-new-feature`)
+1. Commit your changes (`git commit -am 'Add some feature'`)
+1. Push to the branch (`git push origin my-new-feature`)
+1. Create new Pull Request
+
+
+[survey]: https://microsoft.qualtrics.com/jfe/form/SV_ehN0lIk2FKEBkwd?Q_CHL=DOCS
+[docs]: https://azure.github.io/azure-sdk-for-java/
+[jdk]: https://docs.microsoft.com/java/azure/jdk/
+[azure_subscription]: https://azure.microsoft.com/free/
+[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/identity/azure-identity
+[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/core/azure-core-http-netty
+[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/AUTH.md
+[design]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/DESIGN.md
diff --git a/sdk/netapp/azure-resourcemanager-netapp/pom.xml b/sdk/netapp/azure-resourcemanager-netapp/pom.xml
new file mode 100644
index 000000000000..9aab95eb6e52
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/pom.xml
@@ -0,0 +1,62 @@
+
+ 4.0.0
+
+ com.azure
+ azure-client-sdk-parent
+ 1.7.0
+ ../../parents/azure-client-sdk-parent
+
+
+ com.azure.resourcemanager
+ azure-resourcemanager-netapp
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for NetApp Management
+ This package contains Microsoft Azure SDK for NetApp Management SDK. Microsoft NetApp Azure Resource Provider specification. Package tag package-netapp-2020-11-01. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt
+ https://github.com/Azure/azure-sdk-for-java
+
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+
+ https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+
+ microsoft
+ Microsoft
+
+
+
+ UTF-8
+
+
+
+
+ com.azure
+ azure-core-management
+ 1.1.0
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.5
+
+ true
+
+
+
+
+
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/NetAppManager.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/NetAppManager.java
new file mode 100644
index 000000000000..42303b91ab43
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/NetAppManager.java
@@ -0,0 +1,334 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp;
+
+import com.azure.core.credential.TokenCredential;
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpPipelineBuilder;
+import com.azure.core.http.policy.AddDatePolicy;
+import com.azure.core.http.policy.BearerTokenAuthenticationPolicy;
+import com.azure.core.http.policy.HttpLogOptions;
+import com.azure.core.http.policy.HttpLoggingPolicy;
+import com.azure.core.http.policy.HttpPipelinePolicy;
+import com.azure.core.http.policy.HttpPolicyProviders;
+import com.azure.core.http.policy.RequestIdPolicy;
+import com.azure.core.http.policy.RetryPolicy;
+import com.azure.core.http.policy.UserAgentPolicy;
+import com.azure.core.management.profile.AzureProfile;
+import com.azure.core.util.Configuration;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.netapp.fluent.NetAppManagementClient;
+import com.azure.resourcemanager.netapp.implementation.AccountBackupsImpl;
+import com.azure.resourcemanager.netapp.implementation.AccountsImpl;
+import com.azure.resourcemanager.netapp.implementation.BackupPoliciesImpl;
+import com.azure.resourcemanager.netapp.implementation.BackupsImpl;
+import com.azure.resourcemanager.netapp.implementation.NetAppManagementClientBuilder;
+import com.azure.resourcemanager.netapp.implementation.NetAppResourcesImpl;
+import com.azure.resourcemanager.netapp.implementation.OperationsImpl;
+import com.azure.resourcemanager.netapp.implementation.PoolsImpl;
+import com.azure.resourcemanager.netapp.implementation.SnapshotPoliciesImpl;
+import com.azure.resourcemanager.netapp.implementation.SnapshotsImpl;
+import com.azure.resourcemanager.netapp.implementation.VaultsImpl;
+import com.azure.resourcemanager.netapp.implementation.VolumesImpl;
+import com.azure.resourcemanager.netapp.models.AccountBackups;
+import com.azure.resourcemanager.netapp.models.Accounts;
+import com.azure.resourcemanager.netapp.models.BackupPolicies;
+import com.azure.resourcemanager.netapp.models.Backups;
+import com.azure.resourcemanager.netapp.models.NetAppResources;
+import com.azure.resourcemanager.netapp.models.Operations;
+import com.azure.resourcemanager.netapp.models.Pools;
+import com.azure.resourcemanager.netapp.models.SnapshotPolicies;
+import com.azure.resourcemanager.netapp.models.Snapshots;
+import com.azure.resourcemanager.netapp.models.Vaults;
+import com.azure.resourcemanager.netapp.models.Volumes;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/** Entry point to NetAppManager. Microsoft NetApp Azure Resource Provider specification. */
+public final class NetAppManager {
+ private Operations operations;
+
+ private NetAppResources netAppResources;
+
+ private Accounts accounts;
+
+ private Pools pools;
+
+ private Volumes volumes;
+
+ private Snapshots snapshots;
+
+ private SnapshotPolicies snapshotPolicies;
+
+ private AccountBackups accountBackups;
+
+ private Backups backups;
+
+ private BackupPolicies backupPolicies;
+
+ private Vaults vaults;
+
+ private final NetAppManagementClient clientObject;
+
+ private NetAppManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new NetAppManagementClientBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .subscriptionId(profile.getSubscriptionId())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of NetApp service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the NetApp service API instance.
+ */
+ public static NetAppManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ return configure().authenticate(credential, profile);
+ }
+
+ /**
+ * Gets a Configurable instance that can be used to create NetAppManager with optional configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new NetAppManager.Configurable();
+ }
+
+ /** The Configurable allowing configurations to be set. */
+ public static final class Configurable {
+ private final ClientLogger logger = new ClientLogger(Configurable.class);
+
+ private HttpClient httpClient;
+ private HttpLogOptions httpLogOptions;
+ private final List policies = new ArrayList<>();
+ private RetryPolicy retryPolicy;
+ private Duration defaultPollInterval;
+
+ private Configurable() {
+ }
+
+ /**
+ * Sets the http client.
+ *
+ * @param httpClient the HTTP client.
+ * @return the configurable object itself.
+ */
+ public Configurable withHttpClient(HttpClient httpClient) {
+ this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the logging options to the HTTP pipeline.
+ *
+ * @param httpLogOptions the HTTP log options.
+ * @return the configurable object itself.
+ */
+ public Configurable withLogOptions(HttpLogOptions httpLogOptions) {
+ this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Adds the pipeline policy to the HTTP pipeline.
+ *
+ * @param policy the HTTP pipeline policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withPolicy(HttpPipelinePolicy policy) {
+ this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Sets the retry policy to the HTTP pipeline.
+ *
+ * @param retryPolicy the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryPolicy(RetryPolicy retryPolicy) {
+ this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the default poll interval, used when service does not provide "Retry-After" header.
+ *
+ * @param defaultPollInterval the default poll interval.
+ * @return the configurable object itself.
+ */
+ public Configurable withDefaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval = Objects.requireNonNull(defaultPollInterval, "'retryPolicy' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw logger.logExceptionAsError(new IllegalArgumentException("'httpPipeline' cannot be negative"));
+ }
+ return this;
+ }
+
+ /**
+ * Creates an instance of NetApp service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the NetApp service API instance.
+ */
+ public NetAppManager 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.netapp")
+ .append("/")
+ .append("1.0.0-beta.1");
+ if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
+ userAgentBuilder
+ .append(" (")
+ .append(Configuration.getGlobalConfiguration().get("java.version"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.name"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.version"))
+ .append("; auto-generated)");
+ } else {
+ userAgentBuilder.append(" (auto-generated)");
+ }
+
+ if (retryPolicy == null) {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new RequestIdPolicy());
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies
+ .add(
+ new BearerTokenAuthenticationPolicy(
+ credential, profile.getEnvironment().getManagementEndpoint() + "/.default"));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline =
+ new HttpPipelineBuilder()
+ .httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new NetAppManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /** @return Resource collection API of Operations. */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /** @return Resource collection API of NetAppResources. */
+ public NetAppResources netAppResources() {
+ if (this.netAppResources == null) {
+ this.netAppResources = new NetAppResourcesImpl(clientObject.getNetAppResources(), this);
+ }
+ return netAppResources;
+ }
+
+ /** @return Resource collection API of Accounts. */
+ public Accounts accounts() {
+ if (this.accounts == null) {
+ this.accounts = new AccountsImpl(clientObject.getAccounts(), this);
+ }
+ return accounts;
+ }
+
+ /** @return Resource collection API of Pools. */
+ public Pools pools() {
+ if (this.pools == null) {
+ this.pools = new PoolsImpl(clientObject.getPools(), this);
+ }
+ return pools;
+ }
+
+ /** @return Resource collection API of Volumes. */
+ public Volumes volumes() {
+ if (this.volumes == null) {
+ this.volumes = new VolumesImpl(clientObject.getVolumes(), this);
+ }
+ return volumes;
+ }
+
+ /** @return Resource collection API of Snapshots. */
+ public Snapshots snapshots() {
+ if (this.snapshots == null) {
+ this.snapshots = new SnapshotsImpl(clientObject.getSnapshots(), this);
+ }
+ return snapshots;
+ }
+
+ /** @return Resource collection API of SnapshotPolicies. */
+ public SnapshotPolicies snapshotPolicies() {
+ if (this.snapshotPolicies == null) {
+ this.snapshotPolicies = new SnapshotPoliciesImpl(clientObject.getSnapshotPolicies(), this);
+ }
+ return snapshotPolicies;
+ }
+
+ /** @return Resource collection API of AccountBackups. */
+ public AccountBackups accountBackups() {
+ if (this.accountBackups == null) {
+ this.accountBackups = new AccountBackupsImpl(clientObject.getAccountBackups(), this);
+ }
+ return accountBackups;
+ }
+
+ /** @return Resource collection API of Backups. */
+ public Backups backups() {
+ if (this.backups == null) {
+ this.backups = new BackupsImpl(clientObject.getBackups(), this);
+ }
+ return backups;
+ }
+
+ /** @return Resource collection API of BackupPolicies. */
+ public BackupPolicies backupPolicies() {
+ if (this.backupPolicies == null) {
+ this.backupPolicies = new BackupPoliciesImpl(clientObject.getBackupPolicies(), this);
+ }
+ return backupPolicies;
+ }
+
+ /** @return Resource collection API of Vaults. */
+ public Vaults vaults() {
+ if (this.vaults == null) {
+ this.vaults = new VaultsImpl(clientObject.getVaults(), this);
+ }
+ return vaults;
+ }
+
+ /**
+ * @return Wrapped service client NetAppManagementClient providing direct access to the underlying auto-generated
+ * API implementation, based on Azure REST API.
+ */
+ public NetAppManagementClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/AccountBackupsClient.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/AccountBackupsClient.java
new file mode 100644
index 000000000000..f38463e7b902
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/AccountBackupsClient.java
@@ -0,0 +1,131 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.netapp.fluent.models.BackupInner;
+import com.azure.resourcemanager.netapp.fluent.models.BackupsListInner;
+
+/** An instance of this class provides access to all the operations defined in AccountBackupsClient. */
+public interface AccountBackupsClient {
+ /**
+ * List all Backups for a Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Backups.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupsListInner list(String resourceGroupName, String accountName);
+
+ /**
+ * List all Backups for a Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Backups.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listWithResponse(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Get Backup for a Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupName The name of the backup.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return backup for a Netapp Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupInner get(String resourceGroupName, String accountName, String backupName);
+
+ /**
+ * Get Backup for a Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupName The name of the backup.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return backup for a Netapp Account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String accountName, String backupName, Context context);
+
+ /**
+ * Delete Backup for a Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupName The name of the backup.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String accountName, String backupName);
+
+ /**
+ * Delete Backup for a Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupName The name of the backup.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String accountName, String backupName, Context context);
+
+ /**
+ * Delete Backup for a Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupName The name of the backup.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 accountName, String backupName);
+
+ /**
+ * Delete Backup for a Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupName The name of the backup.
+ * @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 accountName, String backupName, Context context);
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/AccountsClient.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/AccountsClient.java
new file mode 100644
index 000000000000..b3be7e6aea7f
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/AccountsClient.java
@@ -0,0 +1,244 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.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.netapp.fluent.models.NetAppAccountInner;
+import com.azure.resourcemanager.netapp.models.NetAppAccountPatch;
+
+/** An instance of this class provides access to all the operations defined in AccountsClient. */
+public interface AccountsClient {
+ /**
+ * List and describe all NetApp accounts in the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of NetApp account resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * List and describe all NetApp accounts in the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of NetApp account resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Get the NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 NetApp account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetAppAccountInner getByResourceGroup(String resourceGroupName, String accountName);
+
+ /**
+ * Get the NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @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 NetApp account.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Create or update the specified NetApp account within the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return netApp account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, NetAppAccountInner> beginCreateOrUpdate(
+ String resourceGroupName, String accountName, NetAppAccountInner body);
+
+ /**
+ * Create or update the specified NetApp account within the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return netApp account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, NetAppAccountInner> beginCreateOrUpdate(
+ String resourceGroupName, String accountName, NetAppAccountInner body, Context context);
+
+ /**
+ * Create or update the specified NetApp account within the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return netApp account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetAppAccountInner createOrUpdate(String resourceGroupName, String accountName, NetAppAccountInner body);
+
+ /**
+ * Create or update the specified NetApp account within the resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return netApp account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetAppAccountInner createOrUpdate(
+ String resourceGroupName, String accountName, NetAppAccountInner body, Context context);
+
+ /**
+ * Delete the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String accountName);
+
+ /**
+ * Delete the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Delete the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 accountName);
+
+ /**
+ * Delete the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @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 accountName, Context context);
+
+ /**
+ * Patch the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return netApp account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, NetAppAccountInner> beginUpdate(
+ String resourceGroupName, String accountName, NetAppAccountPatch body);
+
+ /**
+ * Patch the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return netApp account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, NetAppAccountInner> beginUpdate(
+ String resourceGroupName, String accountName, NetAppAccountPatch body, Context context);
+
+ /**
+ * Patch the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return netApp account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetAppAccountInner update(String resourceGroupName, String accountName, NetAppAccountPatch body);
+
+ /**
+ * Patch the specified NetApp account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param body NetApp Account object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return netApp account resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ NetAppAccountInner update(String resourceGroupName, String accountName, NetAppAccountPatch body, Context context);
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/BackupPoliciesClient.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/BackupPoliciesClient.java
new file mode 100644
index 000000000000..a56eeccc61ec
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/BackupPoliciesClient.java
@@ -0,0 +1,232 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.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.netapp.fluent.models.BackupPolicyInner;
+import com.azure.resourcemanager.netapp.models.BackupPolicyPatch;
+
+/** An instance of this class provides access to all the operations defined in BackupPoliciesClient. */
+public interface BackupPoliciesClient {
+ /**
+ * List backup policies for Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Backup Policies.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName);
+
+ /**
+ * List backup policies for Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Backup Policies.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Get a particular backup Policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupPolicyName Backup policy Name which uniquely identify backup policy.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a particular backup Policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupPolicyInner get(String resourceGroupName, String accountName, String backupPolicyName);
+
+ /**
+ * Get a particular backup Policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupPolicyName Backup policy Name which uniquely identify backup policy.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a particular backup Policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String accountName, String backupPolicyName, Context context);
+
+ /**
+ * Create a backup policy for Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupPolicyName Backup policy Name which uniquely identify backup policy.
+ * @param body Backup policy object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return backup policy information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, BackupPolicyInner> beginCreate(
+ String resourceGroupName, String accountName, String backupPolicyName, BackupPolicyInner body);
+
+ /**
+ * Create a backup policy for Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupPolicyName Backup policy Name which uniquely identify backup policy.
+ * @param body Backup policy object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return backup policy information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, BackupPolicyInner> beginCreate(
+ String resourceGroupName, String accountName, String backupPolicyName, BackupPolicyInner body, Context context);
+
+ /**
+ * Create a backup policy for Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupPolicyName Backup policy Name which uniquely identify backup policy.
+ * @param body Backup policy object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return backup policy information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupPolicyInner create(
+ String resourceGroupName, String accountName, String backupPolicyName, BackupPolicyInner body);
+
+ /**
+ * Create a backup policy for Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupPolicyName Backup policy Name which uniquely identify backup policy.
+ * @param body Backup policy object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return backup policy information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupPolicyInner create(
+ String resourceGroupName, String accountName, String backupPolicyName, BackupPolicyInner body, Context context);
+
+ /**
+ * Patch a backup policy for Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupPolicyName Backup policy Name which uniquely identify backup policy.
+ * @param body Backup policy object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return backup policy information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupPolicyInner update(
+ String resourceGroupName, String accountName, String backupPolicyName, BackupPolicyPatch body);
+
+ /**
+ * Patch a backup policy for Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupPolicyName Backup policy Name which uniquely identify backup policy.
+ * @param body Backup policy object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return backup policy information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String accountName, String backupPolicyName, BackupPolicyPatch body, Context context);
+
+ /**
+ * Delete backup policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupPolicyName Backup policy Name which uniquely identify backup policy.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String accountName, String backupPolicyName);
+
+ /**
+ * Delete backup policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupPolicyName Backup policy Name which uniquely identify backup policy.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String accountName, String backupPolicyName, Context context);
+
+ /**
+ * Delete backup policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupPolicyName Backup policy Name which uniquely identify backup policy.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String accountName, String backupPolicyName);
+
+ /**
+ * Delete backup policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param backupPolicyName Backup policy Name which uniquely identify backup policy.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String accountName, String backupPolicyName, Context context);
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/BackupsClient.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/BackupsClient.java
new file mode 100644
index 000000000000..f6d14e84f8a8
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/BackupsClient.java
@@ -0,0 +1,305 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.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.netapp.fluent.models.BackupInner;
+import com.azure.resourcemanager.netapp.models.BackupPatch;
+
+/** An instance of this class provides access to all the operations defined in BackupsClient. */
+public interface BackupsClient {
+ /**
+ * List all backups for a volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Backups.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * List all backups for a volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Backups.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String accountName, String poolName, String volumeName, Context context);
+
+ /**
+ * Get a particular backup of the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param backupName The name of the backup.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a particular backup of the volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupInner get(
+ String resourceGroupName, String accountName, String poolName, String volumeName, String backupName);
+
+ /**
+ * Get a particular backup of the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param backupName The name of the backup.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a particular backup of the volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String backupName,
+ Context context);
+
+ /**
+ * Create a backup for the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param backupName The name of the backup.
+ * @param body Backup object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return backup of a Volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, BackupInner> beginCreate(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String backupName,
+ BackupInner body);
+
+ /**
+ * Create a backup for the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param backupName The name of the backup.
+ * @param body Backup object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return backup of a Volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, BackupInner> beginCreate(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String backupName,
+ BackupInner body,
+ Context context);
+
+ /**
+ * Create a backup for the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param backupName The name of the backup.
+ * @param body Backup object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return backup of a Volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupInner create(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String backupName,
+ BackupInner body);
+
+ /**
+ * Create a backup for the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param backupName The name of the backup.
+ * @param body Backup object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return backup of a Volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupInner create(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String backupName,
+ BackupInner body,
+ Context context);
+
+ /**
+ * Patch a backup for the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param backupName The name of the backup.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return backup of a Volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ BackupInner update(
+ String resourceGroupName, String accountName, String poolName, String volumeName, String backupName);
+
+ /**
+ * Patch a backup for the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param backupName The name of the backup.
+ * @param body Backup object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return backup of a Volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String backupName,
+ BackupPatch body,
+ Context context);
+
+ /**
+ * Delete a backup of the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param backupName The name of the backup.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String accountName, String poolName, String volumeName, String backupName);
+
+ /**
+ * Delete a backup of the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param backupName The name of the backup.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String backupName,
+ Context context);
+
+ /**
+ * Delete a backup of the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param backupName The name of the backup.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 accountName, String poolName, String volumeName, String backupName);
+
+ /**
+ * Delete a backup of the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param backupName The name of the backup.
+ * @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 accountName,
+ String poolName,
+ String volumeName,
+ String backupName,
+ Context context);
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/NetAppManagementClient.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/NetAppManagementClient.java
new file mode 100644
index 000000000000..2a596c2c3844
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/NetAppManagementClient.java
@@ -0,0 +1,124 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for NetAppManagementClient class. */
+public interface NetAppManagementClient {
+ /**
+ * Gets Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms
+ * part of the URI for every service call.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ String getApiVersion();
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ HttpPipeline getHttpPipeline();
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ Duration getDefaultPollInterval();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the NetAppResourcesClient object to access its operations.
+ *
+ * @return the NetAppResourcesClient object.
+ */
+ NetAppResourcesClient getNetAppResources();
+
+ /**
+ * Gets the AccountsClient object to access its operations.
+ *
+ * @return the AccountsClient object.
+ */
+ AccountsClient getAccounts();
+
+ /**
+ * Gets the PoolsClient object to access its operations.
+ *
+ * @return the PoolsClient object.
+ */
+ PoolsClient getPools();
+
+ /**
+ * Gets the VolumesClient object to access its operations.
+ *
+ * @return the VolumesClient object.
+ */
+ VolumesClient getVolumes();
+
+ /**
+ * Gets the SnapshotsClient object to access its operations.
+ *
+ * @return the SnapshotsClient object.
+ */
+ SnapshotsClient getSnapshots();
+
+ /**
+ * Gets the SnapshotPoliciesClient object to access its operations.
+ *
+ * @return the SnapshotPoliciesClient object.
+ */
+ SnapshotPoliciesClient getSnapshotPolicies();
+
+ /**
+ * Gets the AccountBackupsClient object to access its operations.
+ *
+ * @return the AccountBackupsClient object.
+ */
+ AccountBackupsClient getAccountBackups();
+
+ /**
+ * Gets the BackupsClient object to access its operations.
+ *
+ * @return the BackupsClient object.
+ */
+ BackupsClient getBackups();
+
+ /**
+ * Gets the BackupPoliciesClient object to access its operations.
+ *
+ * @return the BackupPoliciesClient object.
+ */
+ BackupPoliciesClient getBackupPolicies();
+
+ /**
+ * Gets the VaultsClient object to access its operations.
+ *
+ * @return the VaultsClient object.
+ */
+ VaultsClient getVaults();
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/NetAppResourcesClient.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/NetAppResourcesClient.java
new file mode 100644
index 000000000000..764153916ae7
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/NetAppResourcesClient.java
@@ -0,0 +1,100 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.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.netapp.fluent.models.CheckAvailabilityResponseInner;
+import com.azure.resourcemanager.netapp.models.QuotaAvailabilityRequest;
+import com.azure.resourcemanager.netapp.models.ResourceNameAvailabilityRequest;
+
+/** An instance of this class provides access to all the operations defined in NetAppResourcesClient. */
+public interface NetAppResourcesClient {
+ /**
+ * Check if a resource name is available.
+ *
+ * @param location The location.
+ * @param body Name availability request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return information regarding availability of a resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CheckAvailabilityResponseInner checkNameAvailability(String location, ResourceNameAvailabilityRequest body);
+
+ /**
+ * Check if a resource name is available.
+ *
+ * @param location The location.
+ * @param body Name availability request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return information regarding availability of a resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkNameAvailabilityWithResponse(
+ String location, ResourceNameAvailabilityRequest body, Context context);
+
+ /**
+ * Check if a file path is available.
+ *
+ * @param location The location.
+ * @param body File path availability request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return information regarding availability of a resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CheckAvailabilityResponseInner checkFilePathAvailability(String location, ResourceNameAvailabilityRequest body);
+
+ /**
+ * Check if a file path is available.
+ *
+ * @param location The location.
+ * @param body File path availability request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return information regarding availability of a resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkFilePathAvailabilityWithResponse(
+ String location, ResourceNameAvailabilityRequest body, Context context);
+
+ /**
+ * Check if a quota is available.
+ *
+ * @param location The location.
+ * @param body Quota availability request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return information regarding availability of a resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CheckAvailabilityResponseInner checkQuotaAvailability(String location, QuotaAvailabilityRequest body);
+
+ /**
+ * Check if a quota is available.
+ *
+ * @param location The location.
+ * @param body Quota availability request.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return information regarding availability of a resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkQuotaAvailabilityWithResponse(
+ String location, QuotaAvailabilityRequest body, Context context);
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/OperationsClient.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/OperationsClient.java
new file mode 100644
index 000000000000..a894048f61e2
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/OperationsClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.netapp.fluent.models.OperationInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Lists all of the available Microsoft.NetApp Rest API 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 result of the request to list Cloud Volume operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the available Microsoft.NetApp Rest API 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 result of the request to list Cloud Volume operations.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/PoolsClient.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/PoolsClient.java
new file mode 100644
index 000000000000..d01a83d6b3a9
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/PoolsClient.java
@@ -0,0 +1,263 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.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.netapp.fluent.models.CapacityPoolInner;
+import com.azure.resourcemanager.netapp.models.CapacityPoolPatch;
+
+/** An instance of this class provides access to all the operations defined in PoolsClient. */
+public interface PoolsClient {
+ /**
+ * List all capacity pools in the NetApp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of capacity pool resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName);
+
+ /**
+ * List all capacity pools in the NetApp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of capacity pool resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Get details of the specified capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return details of the specified capacity pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CapacityPoolInner get(String resourceGroupName, String accountName, String poolName);
+
+ /**
+ * Get details of the specified capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return details of the specified capacity pool.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String accountName, String poolName, Context context);
+
+ /**
+ * Create or Update a capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param body Capacity pool object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return capacity pool resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, CapacityPoolInner> beginCreateOrUpdate(
+ String resourceGroupName, String accountName, String poolName, CapacityPoolInner body);
+
+ /**
+ * Create or Update a capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param body Capacity pool object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return capacity pool resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, CapacityPoolInner> beginCreateOrUpdate(
+ String resourceGroupName, String accountName, String poolName, CapacityPoolInner body, Context context);
+
+ /**
+ * Create or Update a capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param body Capacity pool object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return capacity pool resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CapacityPoolInner createOrUpdate(
+ String resourceGroupName, String accountName, String poolName, CapacityPoolInner body);
+
+ /**
+ * Create or Update a capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param body Capacity pool object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return capacity pool resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CapacityPoolInner createOrUpdate(
+ String resourceGroupName, String accountName, String poolName, CapacityPoolInner body, Context context);
+
+ /**
+ * Patch the specified capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param body Capacity pool object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return capacity pool resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, CapacityPoolInner> beginUpdate(
+ String resourceGroupName, String accountName, String poolName, CapacityPoolPatch body);
+
+ /**
+ * Patch the specified capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param body Capacity pool object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return capacity pool resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, CapacityPoolInner> beginUpdate(
+ String resourceGroupName, String accountName, String poolName, CapacityPoolPatch body, Context context);
+
+ /**
+ * Patch the specified capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param body Capacity pool object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return capacity pool resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CapacityPoolInner update(String resourceGroupName, String accountName, String poolName, CapacityPoolPatch body);
+
+ /**
+ * Patch the specified capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param body Capacity pool object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return capacity pool resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CapacityPoolInner update(
+ String resourceGroupName, String accountName, String poolName, CapacityPoolPatch body, Context context);
+
+ /**
+ * Delete the specified capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String accountName, String poolName);
+
+ /**
+ * Delete the specified capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String accountName, String poolName, Context context);
+
+ /**
+ * Delete the specified capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 accountName, String poolName);
+
+ /**
+ * Delete the specified capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @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 accountName, String poolName, Context context);
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/SnapshotPoliciesClient.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/SnapshotPoliciesClient.java
new file mode 100644
index 000000000000..4476cf5731c4
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/SnapshotPoliciesClient.java
@@ -0,0 +1,275 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.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.netapp.fluent.models.SnapshotPolicyInner;
+import com.azure.resourcemanager.netapp.fluent.models.SnapshotPolicyVolumeListInner;
+import com.azure.resourcemanager.netapp.models.SnapshotPolicyPatch;
+
+/** An instance of this class provides access to all the operations defined in SnapshotPoliciesClient. */
+public interface SnapshotPoliciesClient {
+ /**
+ * List snapshot policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Snapshot Policies.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName);
+
+ /**
+ * List snapshot policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Snapshot Policies.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, Context context);
+
+ /**
+ * Get a snapshot Policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param snapshotPolicyName The name of the snapshot policy target.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a snapshot Policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SnapshotPolicyInner get(String resourceGroupName, String accountName, String snapshotPolicyName);
+
+ /**
+ * Get a snapshot Policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param snapshotPolicyName The name of the snapshot policy target.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a snapshot Policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String accountName, String snapshotPolicyName, Context context);
+
+ /**
+ * Create a snapshot policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param snapshotPolicyName The name of the snapshot policy target.
+ * @param body Snapshot policy object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return snapshot policy information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SnapshotPolicyInner create(
+ String resourceGroupName, String accountName, String snapshotPolicyName, SnapshotPolicyInner body);
+
+ /**
+ * Create a snapshot policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param snapshotPolicyName The name of the snapshot policy target.
+ * @param body Snapshot policy object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return snapshot policy information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String snapshotPolicyName,
+ SnapshotPolicyInner body,
+ Context context);
+
+ /**
+ * Patch a snapshot policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param snapshotPolicyName The name of the snapshot policy target.
+ * @param body Snapshot policy object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return snapshot policy information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, SnapshotPolicyInner> beginUpdate(
+ String resourceGroupName, String accountName, String snapshotPolicyName, SnapshotPolicyPatch body);
+
+ /**
+ * Patch a snapshot policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param snapshotPolicyName The name of the snapshot policy target.
+ * @param body Snapshot policy object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return snapshot policy information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, SnapshotPolicyInner> beginUpdate(
+ String resourceGroupName,
+ String accountName,
+ String snapshotPolicyName,
+ SnapshotPolicyPatch body,
+ Context context);
+
+ /**
+ * Patch a snapshot policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param snapshotPolicyName The name of the snapshot policy target.
+ * @param body Snapshot policy object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return snapshot policy information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SnapshotPolicyInner update(
+ String resourceGroupName, String accountName, String snapshotPolicyName, SnapshotPolicyPatch body);
+
+ /**
+ * Patch a snapshot policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param snapshotPolicyName The name of the snapshot policy target.
+ * @param body Snapshot policy object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return snapshot policy information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SnapshotPolicyInner update(
+ String resourceGroupName,
+ String accountName,
+ String snapshotPolicyName,
+ SnapshotPolicyPatch body,
+ Context context);
+
+ /**
+ * Delete snapshot policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param snapshotPolicyName The name of the snapshot policy target.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String accountName, String snapshotPolicyName);
+
+ /**
+ * Delete snapshot policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param snapshotPolicyName The name of the snapshot policy target.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String accountName, String snapshotPolicyName, Context context);
+
+ /**
+ * Delete snapshot policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param snapshotPolicyName The name of the snapshot policy target.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 accountName, String snapshotPolicyName);
+
+ /**
+ * Delete snapshot policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param snapshotPolicyName The name of the snapshot policy target.
+ * @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 accountName, String snapshotPolicyName, Context context);
+
+ /**
+ * Get volumes associated with snapshot policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param snapshotPolicyName The name of the snapshot policy target.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return volumes associated with snapshot policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SnapshotPolicyVolumeListInner listVolumes(String resourceGroupName, String accountName, String snapshotPolicyName);
+
+ /**
+ * Get volumes associated with snapshot policy.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param snapshotPolicyName The name of the snapshot policy target.
+ * @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 volumes associated with snapshot policy.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listVolumesWithResponse(
+ String resourceGroupName, String accountName, String snapshotPolicyName, Context context);
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/SnapshotsClient.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/SnapshotsClient.java
new file mode 100644
index 000000000000..6212bdc858f8
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/SnapshotsClient.java
@@ -0,0 +1,358 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.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.netapp.fluent.models.SnapshotInner;
+
+/** An instance of this class provides access to all the operations defined in SnapshotsClient. */
+public interface SnapshotsClient {
+ /**
+ * List all snapshots associated with the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Snapshots.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * List all snapshots associated with the volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Snapshots.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(
+ String resourceGroupName, String accountName, String poolName, String volumeName, Context context);
+
+ /**
+ * Get details of the specified snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param snapshotName The name of the mount target.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return details of the specified snapshot.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SnapshotInner get(
+ String resourceGroupName, String accountName, String poolName, String volumeName, String snapshotName);
+
+ /**
+ * Get details of the specified snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param snapshotName The name of the mount target.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return details of the specified snapshot.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String snapshotName,
+ Context context);
+
+ /**
+ * Create the specified snapshot within the given volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param snapshotName The name of the mount target.
+ * @param body Snapshot object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return snapshot of a Volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, SnapshotInner> beginCreate(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String snapshotName,
+ SnapshotInner body);
+
+ /**
+ * Create the specified snapshot within the given volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param snapshotName The name of the mount target.
+ * @param body Snapshot object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return snapshot of a Volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, SnapshotInner> beginCreate(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String snapshotName,
+ SnapshotInner body,
+ Context context);
+
+ /**
+ * Create the specified snapshot within the given volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param snapshotName The name of the mount target.
+ * @param body Snapshot object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return snapshot of a Volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SnapshotInner create(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String snapshotName,
+ SnapshotInner body);
+
+ /**
+ * Create the specified snapshot within the given volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param snapshotName The name of the mount target.
+ * @param body Snapshot object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return snapshot of a Volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SnapshotInner create(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String snapshotName,
+ SnapshotInner body,
+ Context context);
+
+ /**
+ * Patch a snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param snapshotName The name of the mount target.
+ * @param body Snapshot object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return snapshot of a Volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, SnapshotInner> beginUpdate(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String snapshotName,
+ Object body);
+
+ /**
+ * Patch a snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param snapshotName The name of the mount target.
+ * @param body Snapshot object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return snapshot of a Volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, SnapshotInner> beginUpdate(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String snapshotName,
+ Object body,
+ Context context);
+
+ /**
+ * Patch a snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param snapshotName The name of the mount target.
+ * @param body Snapshot object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return snapshot of a Volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SnapshotInner update(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String snapshotName,
+ Object body);
+
+ /**
+ * Patch a snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param snapshotName The name of the mount target.
+ * @param body Snapshot object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return snapshot of a Volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SnapshotInner update(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String snapshotName,
+ Object body,
+ Context context);
+
+ /**
+ * Delete snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param snapshotName The name of the mount target.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String accountName, String poolName, String volumeName, String snapshotName);
+
+ /**
+ * Delete snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param snapshotName The name of the mount target.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ String snapshotName,
+ Context context);
+
+ /**
+ * Delete snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param snapshotName The name of the mount target.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 accountName, String poolName, String volumeName, String snapshotName);
+
+ /**
+ * Delete snapshot.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param snapshotName The name of the mount target.
+ * @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 accountName,
+ String poolName,
+ String volumeName,
+ String snapshotName,
+ Context context);
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/VaultsClient.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/VaultsClient.java
new file mode 100644
index 000000000000..e654be303462
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/VaultsClient.java
@@ -0,0 +1,41 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.netapp.fluent.models.VaultInner;
+
+/** An instance of this class provides access to all the operations defined in VaultsClient. */
+public interface VaultsClient {
+ /**
+ * List vaults for a Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Vaults.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName);
+
+ /**
+ * List vaults for a Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of Vaults.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, Context context);
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/VolumesClient.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/VolumesClient.java
new file mode 100644
index 000000000000..a847c28d7219
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/VolumesClient.java
@@ -0,0 +1,857 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.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.netapp.fluent.models.ReplicationStatusInner;
+import com.azure.resourcemanager.netapp.fluent.models.VolumeInner;
+import com.azure.resourcemanager.netapp.models.AuthorizeRequest;
+import com.azure.resourcemanager.netapp.models.BreakReplicationRequest;
+import com.azure.resourcemanager.netapp.models.PoolChangeRequest;
+import com.azure.resourcemanager.netapp.models.VolumePatch;
+import com.azure.resourcemanager.netapp.models.VolumeRevert;
+
+/** An instance of this class provides access to all the operations defined in VolumesClient. */
+public interface VolumesClient {
+ /**
+ * List all volumes within the capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of volume resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, String poolName);
+
+ /**
+ * List all volumes within the capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of volume resources.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String accountName, String poolName, Context context);
+
+ /**
+ * Get the details of the specified volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 specified volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VolumeInner get(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Get the details of the specified volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @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 specified volume.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String accountName, String poolName, String volumeName, Context context);
+
+ /**
+ * Create or update the specified volume within the capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Volume object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return volume resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, VolumeInner> beginCreateOrUpdate(
+ String resourceGroupName, String accountName, String poolName, String volumeName, VolumeInner body);
+
+ /**
+ * Create or update the specified volume within the capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Volume object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return volume resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, VolumeInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ VolumeInner body,
+ Context context);
+
+ /**
+ * Create or update the specified volume within the capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Volume object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return volume resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VolumeInner createOrUpdate(
+ String resourceGroupName, String accountName, String poolName, String volumeName, VolumeInner body);
+
+ /**
+ * Create or update the specified volume within the capacity pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Volume object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return volume resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VolumeInner createOrUpdate(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ VolumeInner body,
+ Context context);
+
+ /**
+ * Patch the specified volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Volume object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return volume resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, VolumeInner> beginUpdate(
+ String resourceGroupName, String accountName, String poolName, String volumeName, VolumePatch body);
+
+ /**
+ * Patch the specified volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Volume object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return volume resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, VolumeInner> beginUpdate(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ VolumePatch body,
+ Context context);
+
+ /**
+ * Patch the specified volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Volume object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return volume resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VolumeInner update(
+ String resourceGroupName, String accountName, String poolName, String volumeName, VolumePatch body);
+
+ /**
+ * Patch the specified volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Volume object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return volume resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ VolumeInner update(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ VolumePatch body,
+ Context context);
+
+ /**
+ * Delete the specified volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Delete the specified volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String accountName, String poolName, String volumeName, Context context);
+
+ /**
+ * Delete the specified volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 accountName, String poolName, String volumeName);
+
+ /**
+ * Delete the specified volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @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 accountName, String poolName, String volumeName, Context context);
+
+ /**
+ * Revert a volume to the snapshot specified in the body.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Object for snapshot to revert supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginRevert(
+ String resourceGroupName, String accountName, String poolName, String volumeName, VolumeRevert body);
+
+ /**
+ * Revert a volume to the snapshot specified in the body.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Object for snapshot to revert supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginRevert(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ VolumeRevert body,
+ Context context);
+
+ /**
+ * Revert a volume to the snapshot specified in the body.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Object for snapshot to revert supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void revert(String resourceGroupName, String accountName, String poolName, String volumeName, VolumeRevert body);
+
+ /**
+ * Revert a volume to the snapshot specified in the body.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Object for snapshot to revert supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void revert(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ VolumeRevert body,
+ Context context);
+
+ /**
+ * Break the replication connection on the destination volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Optional body to force break the replication.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginBreakReplication(
+ String resourceGroupName, String accountName, String poolName, String volumeName, BreakReplicationRequest body);
+
+ /**
+ * Break the replication connection on the destination volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Optional body to force break the replication.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginBreakReplication(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ BreakReplicationRequest body,
+ Context context);
+
+ /**
+ * Break the replication connection on the destination volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Optional body to force break the replication.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 breakReplication(
+ String resourceGroupName, String accountName, String poolName, String volumeName, BreakReplicationRequest body);
+
+ /**
+ * Break the replication connection on the destination volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 breakReplication(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Break the replication connection on the destination volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Optional body to force break the replication.
+ * @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 breakReplication(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ BreakReplicationRequest body,
+ Context context);
+
+ /**
+ * Get the status of the replication.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.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 status of the replication.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ReplicationStatusInner replicationStatus(
+ String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Get the status of the replication.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @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 status of the replication.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response replicationStatusWithResponse(
+ String resourceGroupName, String accountName, String poolName, String volumeName, Context context);
+
+ /**
+ * Resync the connection on the destination volume. If the operation is ran on the source volume it will
+ * reverse-resync the connection and sync from destination to source.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginResyncReplication(
+ String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Resync the connection on the destination volume. If the operation is ran on the source volume it will
+ * reverse-resync the connection and sync from destination to source.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginResyncReplication(
+ String resourceGroupName, String accountName, String poolName, String volumeName, Context context);
+
+ /**
+ * Resync the connection on the destination volume. If the operation is ran on the source volume it will
+ * reverse-resync the connection and sync from destination to source.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 resyncReplication(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Resync the connection on the destination volume. If the operation is ran on the source volume it will
+ * reverse-resync the connection and sync from destination to source.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @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 resyncReplication(
+ String resourceGroupName, String accountName, String poolName, String volumeName, Context context);
+
+ /**
+ * Delete the replication connection on the destination volume, and send release to the source replication.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeleteReplication(
+ String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Delete the replication connection on the destination volume, and send release to the source replication.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginDeleteReplication(
+ String resourceGroupName, String accountName, String poolName, String volumeName, Context context);
+
+ /**
+ * Delete the replication connection on the destination volume, and send release to the source replication.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 deleteReplication(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Delete the replication connection on the destination volume, and send release to the source replication.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @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 deleteReplication(
+ String resourceGroupName, String accountName, String poolName, String volumeName, Context context);
+
+ /**
+ * Authorize the replication connection on the source volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Authorize request object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginAuthorizeReplication(
+ String resourceGroupName, String accountName, String poolName, String volumeName, AuthorizeRequest body);
+
+ /**
+ * Authorize the replication connection on the source volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Authorize request object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginAuthorizeReplication(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ AuthorizeRequest body,
+ Context context);
+
+ /**
+ * Authorize the replication connection on the source volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Authorize request object supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void authorizeReplication(
+ String resourceGroupName, String accountName, String poolName, String volumeName, AuthorizeRequest body);
+
+ /**
+ * Authorize the replication connection on the source volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Authorize request object supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void authorizeReplication(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ AuthorizeRequest body,
+ Context context);
+
+ /**
+ * Re-Initializes the replication connection on the destination volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginReInitializeReplication(
+ String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Re-Initializes the replication connection on the destination volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginReInitializeReplication(
+ String resourceGroupName, String accountName, String poolName, String volumeName, Context context);
+
+ /**
+ * Re-Initializes the replication connection on the destination volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.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 reInitializeReplication(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Re-Initializes the replication connection on the destination volume.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @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 reInitializeReplication(
+ String resourceGroupName, String accountName, String poolName, String volumeName, Context context);
+
+ /**
+ * Moves volume to another pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Move volume to the pool supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginPoolChange(
+ String resourceGroupName, String accountName, String poolName, String volumeName, PoolChangeRequest body);
+
+ /**
+ * Moves volume to another pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Move volume to the pool supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SyncPoller, Void> beginPoolChange(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ PoolChangeRequest body,
+ Context context);
+
+ /**
+ * Moves volume to another pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Move volume to the pool supplied in the body of the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void poolChange(
+ String resourceGroupName, String accountName, String poolName, String volumeName, PoolChangeRequest body);
+
+ /**
+ * Moves volume to another pool.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account.
+ * @param poolName The name of the capacity pool.
+ * @param volumeName The name of the volume.
+ * @param body Move volume to the pool supplied in the body of the operation.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void poolChange(
+ String resourceGroupName,
+ String accountName,
+ String poolName,
+ String volumeName,
+ PoolChangeRequest body,
+ Context context);
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/BackupInner.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/BackupInner.java
new file mode 100644
index 000000000000..003ff018b511
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/BackupInner.java
@@ -0,0 +1,175 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Backup of a Volume. */
+@JsonFlatten
+@Fluent
+public class BackupInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupInner.class);
+
+ /*
+ * Resource location
+ */
+ @JsonProperty(value = "location", required = true)
+ private String location;
+
+ /*
+ * UUID v4 used to identify the Backup
+ */
+ @JsonProperty(value = "properties.backupId", access = JsonProperty.Access.WRITE_ONLY)
+ private String backupId;
+
+ /*
+ * The creation date of the backup
+ */
+ @JsonProperty(value = "properties.creationDate", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime creationDate;
+
+ /*
+ * Azure lifecycle management
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * Size of backup
+ */
+ @JsonProperty(value = "properties.size", access = JsonProperty.Access.WRITE_ONLY)
+ private Long size;
+
+ /*
+ * Label for backup
+ */
+ @JsonProperty(value = "properties.label")
+ private String label;
+
+ /*
+ * Type of backup adhoc or scheduled
+ */
+ @JsonProperty(value = "properties.backupType", access = JsonProperty.Access.WRITE_ONLY)
+ private String backupType;
+
+ /*
+ * Failure reason
+ */
+ @JsonProperty(value = "properties.failureReason", access = JsonProperty.Access.WRITE_ONLY)
+ private String failureReason;
+
+ /**
+ * Get the location property: Resource location.
+ *
+ * @return the location value.
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the location property: Resource location.
+ *
+ * @param location the location value to set.
+ * @return the BackupInner object itself.
+ */
+ public BackupInner withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the backupId property: UUID v4 used to identify the Backup.
+ *
+ * @return the backupId value.
+ */
+ public String backupId() {
+ return this.backupId;
+ }
+
+ /**
+ * Get the creationDate property: The creation date of the backup.
+ *
+ * @return the creationDate value.
+ */
+ public OffsetDateTime creationDate() {
+ return this.creationDate;
+ }
+
+ /**
+ * Get the provisioningState property: Azure lifecycle management.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the size property: Size of backup.
+ *
+ * @return the size value.
+ */
+ public Long size() {
+ return this.size;
+ }
+
+ /**
+ * Get the label property: Label for backup.
+ *
+ * @return the label value.
+ */
+ public String label() {
+ return this.label;
+ }
+
+ /**
+ * Set the label property: Label for backup.
+ *
+ * @param label the label value to set.
+ * @return the BackupInner object itself.
+ */
+ public BackupInner withLabel(String label) {
+ this.label = label;
+ return this;
+ }
+
+ /**
+ * Get the backupType property: Type of backup adhoc or scheduled.
+ *
+ * @return the backupType value.
+ */
+ public String backupType() {
+ return this.backupType;
+ }
+
+ /**
+ * Get the failureReason property: Failure reason.
+ *
+ * @return the failureReason value.
+ */
+ public String failureReason() {
+ return this.failureReason;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (location() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property location in model BackupInner"));
+ }
+ }
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/BackupPolicyInner.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/BackupPolicyInner.java
new file mode 100644
index 000000000000..131e35011e89
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/BackupPolicyInner.java
@@ -0,0 +1,244 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.Resource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.netapp.models.VolumeBackups;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Backup policy information. */
+@JsonFlatten
+@Fluent
+public class BackupPolicyInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupPolicyInner.class);
+
+ /*
+ * Azure lifecycle management
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * Daily backups count to keep
+ */
+ @JsonProperty(value = "properties.dailyBackupsToKeep")
+ private Integer dailyBackupsToKeep;
+
+ /*
+ * Weekly backups count to keep
+ */
+ @JsonProperty(value = "properties.weeklyBackupsToKeep")
+ private Integer weeklyBackupsToKeep;
+
+ /*
+ * Monthly backups count to keep
+ */
+ @JsonProperty(value = "properties.monthlyBackupsToKeep")
+ private Integer monthlyBackupsToKeep;
+
+ /*
+ * Yearly backups count to keep
+ */
+ @JsonProperty(value = "properties.yearlyBackupsToKeep")
+ private Integer yearlyBackupsToKeep;
+
+ /*
+ * Volumes using current backup policy
+ */
+ @JsonProperty(value = "properties.volumesAssigned")
+ private Integer volumesAssigned;
+
+ /*
+ * The property to decide policy is enabled or not
+ */
+ @JsonProperty(value = "properties.enabled")
+ private Boolean enabled;
+
+ /*
+ * A list of volumes assigned to this policy
+ */
+ @JsonProperty(value = "properties.volumeBackups")
+ private List volumeBackups;
+
+ /**
+ * Get the provisioningState property: Azure lifecycle management.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the dailyBackupsToKeep property: Daily backups count to keep.
+ *
+ * @return the dailyBackupsToKeep value.
+ */
+ public Integer dailyBackupsToKeep() {
+ return this.dailyBackupsToKeep;
+ }
+
+ /**
+ * Set the dailyBackupsToKeep property: Daily backups count to keep.
+ *
+ * @param dailyBackupsToKeep the dailyBackupsToKeep value to set.
+ * @return the BackupPolicyInner object itself.
+ */
+ public BackupPolicyInner withDailyBackupsToKeep(Integer dailyBackupsToKeep) {
+ this.dailyBackupsToKeep = dailyBackupsToKeep;
+ return this;
+ }
+
+ /**
+ * Get the weeklyBackupsToKeep property: Weekly backups count to keep.
+ *
+ * @return the weeklyBackupsToKeep value.
+ */
+ public Integer weeklyBackupsToKeep() {
+ return this.weeklyBackupsToKeep;
+ }
+
+ /**
+ * Set the weeklyBackupsToKeep property: Weekly backups count to keep.
+ *
+ * @param weeklyBackupsToKeep the weeklyBackupsToKeep value to set.
+ * @return the BackupPolicyInner object itself.
+ */
+ public BackupPolicyInner withWeeklyBackupsToKeep(Integer weeklyBackupsToKeep) {
+ this.weeklyBackupsToKeep = weeklyBackupsToKeep;
+ return this;
+ }
+
+ /**
+ * Get the monthlyBackupsToKeep property: Monthly backups count to keep.
+ *
+ * @return the monthlyBackupsToKeep value.
+ */
+ public Integer monthlyBackupsToKeep() {
+ return this.monthlyBackupsToKeep;
+ }
+
+ /**
+ * Set the monthlyBackupsToKeep property: Monthly backups count to keep.
+ *
+ * @param monthlyBackupsToKeep the monthlyBackupsToKeep value to set.
+ * @return the BackupPolicyInner object itself.
+ */
+ public BackupPolicyInner withMonthlyBackupsToKeep(Integer monthlyBackupsToKeep) {
+ this.monthlyBackupsToKeep = monthlyBackupsToKeep;
+ return this;
+ }
+
+ /**
+ * Get the yearlyBackupsToKeep property: Yearly backups count to keep.
+ *
+ * @return the yearlyBackupsToKeep value.
+ */
+ public Integer yearlyBackupsToKeep() {
+ return this.yearlyBackupsToKeep;
+ }
+
+ /**
+ * Set the yearlyBackupsToKeep property: Yearly backups count to keep.
+ *
+ * @param yearlyBackupsToKeep the yearlyBackupsToKeep value to set.
+ * @return the BackupPolicyInner object itself.
+ */
+ public BackupPolicyInner withYearlyBackupsToKeep(Integer yearlyBackupsToKeep) {
+ this.yearlyBackupsToKeep = yearlyBackupsToKeep;
+ return this;
+ }
+
+ /**
+ * Get the volumesAssigned property: Volumes using current backup policy.
+ *
+ * @return the volumesAssigned value.
+ */
+ public Integer volumesAssigned() {
+ return this.volumesAssigned;
+ }
+
+ /**
+ * Set the volumesAssigned property: Volumes using current backup policy.
+ *
+ * @param volumesAssigned the volumesAssigned value to set.
+ * @return the BackupPolicyInner object itself.
+ */
+ public BackupPolicyInner withVolumesAssigned(Integer volumesAssigned) {
+ this.volumesAssigned = volumesAssigned;
+ return this;
+ }
+
+ /**
+ * Get the enabled property: The property to decide policy is enabled or not.
+ *
+ * @return the enabled value.
+ */
+ public Boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set the enabled property: The property to decide policy is enabled or not.
+ *
+ * @param enabled the enabled value to set.
+ * @return the BackupPolicyInner object itself.
+ */
+ public BackupPolicyInner withEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Get the volumeBackups property: A list of volumes assigned to this policy.
+ *
+ * @return the volumeBackups value.
+ */
+ public List volumeBackups() {
+ return this.volumeBackups;
+ }
+
+ /**
+ * Set the volumeBackups property: A list of volumes assigned to this policy.
+ *
+ * @param volumeBackups the volumeBackups value to set.
+ * @return the BackupPolicyInner object itself.
+ */
+ public BackupPolicyInner withVolumeBackups(List volumeBackups) {
+ this.volumeBackups = volumeBackups;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BackupPolicyInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public BackupPolicyInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (volumeBackups() != null) {
+ volumeBackups().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/BackupsListInner.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/BackupsListInner.java
new file mode 100644
index 000000000000..2a57f3d69d2b
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/BackupsListInner.java
@@ -0,0 +1,54 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** List of Backups. */
+@Fluent
+public final class BackupsListInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(BackupsListInner.class);
+
+ /*
+ * A list of Backups
+ */
+ @JsonProperty(value = "value")
+ private List value;
+
+ /**
+ * Get the value property: A list of Backups.
+ *
+ * @return the value value.
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Set the value property: A list of Backups.
+ *
+ * @param value the value value to set.
+ * @return the BackupsListInner object itself.
+ */
+ public BackupsListInner withValue(List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (value() != null) {
+ value().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/CapacityPoolInner.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/CapacityPoolInner.java
new file mode 100644
index 000000000000..5bf7ad391794
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/CapacityPoolInner.java
@@ -0,0 +1,190 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.Resource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.netapp.models.QosType;
+import com.azure.resourcemanager.netapp.models.ServiceLevel;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Capacity pool resource. */
+@JsonFlatten
+@Fluent
+public class CapacityPoolInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(CapacityPoolInner.class);
+
+ /*
+ * UUID v4 used to identify the Pool
+ */
+ @JsonProperty(value = "properties.poolId", access = JsonProperty.Access.WRITE_ONLY)
+ private String poolId;
+
+ /*
+ * Provisioned size of the pool (in bytes). Allowed values are in 4TiB
+ * chunks (value must be multiply of 4398046511104).
+ */
+ @JsonProperty(value = "properties.size", required = true)
+ private long size;
+
+ /*
+ * The service level of the file system
+ */
+ @JsonProperty(value = "properties.serviceLevel", required = true)
+ private ServiceLevel serviceLevel;
+
+ /*
+ * Azure lifecycle management
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * Total throughput of pool in Mibps
+ */
+ @JsonProperty(value = "properties.totalThroughputMibps", access = JsonProperty.Access.WRITE_ONLY)
+ private Float totalThroughputMibps;
+
+ /*
+ * Utilized throughput of pool in Mibps
+ */
+ @JsonProperty(value = "properties.utilizedThroughputMibps", access = JsonProperty.Access.WRITE_ONLY)
+ private Float utilizedThroughputMibps;
+
+ /*
+ * The qos type of the pool
+ */
+ @JsonProperty(value = "properties.qosType")
+ private QosType qosType;
+
+ /**
+ * Get the poolId property: UUID v4 used to identify the Pool.
+ *
+ * @return the poolId value.
+ */
+ public String poolId() {
+ return this.poolId;
+ }
+
+ /**
+ * Get the size property: Provisioned size of the pool (in bytes). Allowed values are in 4TiB chunks (value must be
+ * multiply of 4398046511104).
+ *
+ * @return the size value.
+ */
+ public long size() {
+ return this.size;
+ }
+
+ /**
+ * Set the size property: Provisioned size of the pool (in bytes). Allowed values are in 4TiB chunks (value must be
+ * multiply of 4398046511104).
+ *
+ * @param size the size value to set.
+ * @return the CapacityPoolInner object itself.
+ */
+ public CapacityPoolInner withSize(long size) {
+ this.size = size;
+ return this;
+ }
+
+ /**
+ * Get the serviceLevel property: The service level of the file system.
+ *
+ * @return the serviceLevel value.
+ */
+ public ServiceLevel serviceLevel() {
+ return this.serviceLevel;
+ }
+
+ /**
+ * Set the serviceLevel property: The service level of the file system.
+ *
+ * @param serviceLevel the serviceLevel value to set.
+ * @return the CapacityPoolInner object itself.
+ */
+ public CapacityPoolInner withServiceLevel(ServiceLevel serviceLevel) {
+ this.serviceLevel = serviceLevel;
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: Azure lifecycle management.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the totalThroughputMibps property: Total throughput of pool in Mibps.
+ *
+ * @return the totalThroughputMibps value.
+ */
+ public Float totalThroughputMibps() {
+ return this.totalThroughputMibps;
+ }
+
+ /**
+ * Get the utilizedThroughputMibps property: Utilized throughput of pool in Mibps.
+ *
+ * @return the utilizedThroughputMibps value.
+ */
+ public Float utilizedThroughputMibps() {
+ return this.utilizedThroughputMibps;
+ }
+
+ /**
+ * Get the qosType property: The qos type of the pool.
+ *
+ * @return the qosType value.
+ */
+ public QosType qosType() {
+ return this.qosType;
+ }
+
+ /**
+ * Set the qosType property: The qos type of the pool.
+ *
+ * @param qosType the qosType value to set.
+ * @return the CapacityPoolInner object itself.
+ */
+ public CapacityPoolInner withQosType(QosType qosType) {
+ this.qosType = qosType;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public CapacityPoolInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public CapacityPoolInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (serviceLevel() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property serviceLevel in model CapacityPoolInner"));
+ }
+ }
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/CheckAvailabilityResponseInner.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/CheckAvailabilityResponseInner.java
new file mode 100644
index 000000000000..d161dbac43e7
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/CheckAvailabilityResponseInner.java
@@ -0,0 +1,120 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.netapp.models.InAvailabilityReasonType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Information regarding availability of a resource. */
+@Fluent
+public final class CheckAvailabilityResponseInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(CheckAvailabilityResponseInner.class);
+
+ /*
+ * true indicates name is valid and available.
+ * false indicates the name is invalid, unavailable, or both.
+ */
+ @JsonProperty(value = "isAvailable")
+ private Boolean isAvailable;
+
+ /*
+ * Invalid indicates the name provided does not match Azure
+ * App Service naming requirements. AlreadyExists indicates
+ * that the name is already in use and is therefore unavailable.
+ */
+ @JsonProperty(value = "reason")
+ private InAvailabilityReasonType reason;
+
+ /*
+ * If reason == invalid, provide the user with the reason why the given
+ * name is invalid, and provide the resource naming requirements so that
+ * the user can select a valid name. If reason == AlreadyExists, explain
+ * that resource name is already in use, and direct them to select a
+ * different name.
+ */
+ @JsonProperty(value = "message")
+ private String message;
+
+ /**
+ * Get the isAvailable property: <code>true</code> indicates name is valid and available.
+ * <code>false</code> indicates the name is invalid, unavailable, or both.
+ *
+ * @return the isAvailable value.
+ */
+ public Boolean isAvailable() {
+ return this.isAvailable;
+ }
+
+ /**
+ * Set the isAvailable property: <code>true</code> indicates name is valid and available.
+ * <code>false</code> indicates the name is invalid, unavailable, or both.
+ *
+ * @param isAvailable the isAvailable value to set.
+ * @return the CheckAvailabilityResponseInner object itself.
+ */
+ public CheckAvailabilityResponseInner withIsAvailable(Boolean isAvailable) {
+ this.isAvailable = isAvailable;
+ return this;
+ }
+
+ /**
+ * Get the reason property: <code>Invalid</code> indicates the name provided does not match Azure App
+ * Service naming requirements. <code>AlreadyExists</code> indicates that the name is already in use and
+ * is therefore unavailable.
+ *
+ * @return the reason value.
+ */
+ public InAvailabilityReasonType reason() {
+ return this.reason;
+ }
+
+ /**
+ * Set the reason property: <code>Invalid</code> indicates the name provided does not match Azure App
+ * Service naming requirements. <code>AlreadyExists</code> indicates that the name is already in use and
+ * is therefore unavailable.
+ *
+ * @param reason the reason value to set.
+ * @return the CheckAvailabilityResponseInner object itself.
+ */
+ public CheckAvailabilityResponseInner withReason(InAvailabilityReasonType reason) {
+ this.reason = reason;
+ return this;
+ }
+
+ /**
+ * Get the message property: If reason == invalid, provide the user with the reason why the given name is invalid,
+ * and provide the resource naming requirements so that the user can select a valid name. If reason ==
+ * AlreadyExists, explain that resource name is already in use, and direct them to select a different name.
+ *
+ * @return the message value.
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set the message property: If reason == invalid, provide the user with the reason why the given name is invalid,
+ * and provide the resource naming requirements so that the user can select a valid name. If reason ==
+ * AlreadyExists, explain that resource name is already in use, and direct them to select a different name.
+ *
+ * @param message the message value to set.
+ * @return the CheckAvailabilityResponseInner object itself.
+ */
+ public CheckAvailabilityResponseInner withMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/NetAppAccountInner.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/NetAppAccountInner.java
new file mode 100644
index 000000000000..d48ce96ad96c
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/NetAppAccountInner.java
@@ -0,0 +1,137 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.Resource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.netapp.models.AccountEncryption;
+import com.azure.resourcemanager.netapp.models.ActiveDirectory;
+import com.azure.resourcemanager.netapp.models.SystemData;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** NetApp account resource. */
+@JsonFlatten
+@Fluent
+public class NetAppAccountInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(NetAppAccountInner.class);
+
+ /*
+ * The system meta data relating to this resource.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /*
+ * Azure lifecycle management
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /*
+ * Active Directories
+ */
+ @JsonProperty(value = "properties.activeDirectories")
+ private List activeDirectories;
+
+ /*
+ * Encryption settings
+ */
+ @JsonProperty(value = "properties.encryption")
+ private AccountEncryption encryption;
+
+ /**
+ * Get the systemData property: The system meta data relating to this resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the provisioningState property: Azure lifecycle management.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the activeDirectories property: Active Directories.
+ *
+ * @return the activeDirectories value.
+ */
+ public List activeDirectories() {
+ return this.activeDirectories;
+ }
+
+ /**
+ * Set the activeDirectories property: Active Directories.
+ *
+ * @param activeDirectories the activeDirectories value to set.
+ * @return the NetAppAccountInner object itself.
+ */
+ public NetAppAccountInner withActiveDirectories(List activeDirectories) {
+ this.activeDirectories = activeDirectories;
+ return this;
+ }
+
+ /**
+ * Get the encryption property: Encryption settings.
+ *
+ * @return the encryption value.
+ */
+ public AccountEncryption encryption() {
+ return this.encryption;
+ }
+
+ /**
+ * Set the encryption property: Encryption settings.
+ *
+ * @param encryption the encryption value to set.
+ * @return the NetAppAccountInner object itself.
+ */
+ public NetAppAccountInner withEncryption(AccountEncryption encryption) {
+ this.encryption = encryption;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public NetAppAccountInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public NetAppAccountInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (systemData() != null) {
+ systemData().validate();
+ }
+ if (activeDirectories() != null) {
+ activeDirectories().forEach(e -> e.validate());
+ }
+ if (encryption() != null) {
+ encryption().validate();
+ }
+ }
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/OperationInner.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/OperationInner.java
new file mode 100644
index 000000000000..dac62f6efb59
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/OperationInner.java
@@ -0,0 +1,138 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.netapp.models.OperationDisplay;
+import com.azure.resourcemanager.netapp.models.ServiceSpecification;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Microsoft.NetApp REST API operation definition. */
+@JsonFlatten
+@Fluent
+public class OperationInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationInner.class);
+
+ /*
+ * Operation name: {provider}/{resource}/{operation}
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /*
+ * Display metadata associated with the operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /*
+ * The origin of operations.
+ */
+ @JsonProperty(value = "origin")
+ private String origin;
+
+ /*
+ * One property of operation, include metric specifications.
+ */
+ @JsonProperty(value = "properties.serviceSpecification")
+ private ServiceSpecification serviceSpecification;
+
+ /**
+ * Get the name property: Operation name: {provider}/{resource}/{operation}.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name property: Operation name: {provider}/{resource}/{operation}.
+ *
+ * @param name the name value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the display property: Display metadata associated with the operation.
+ *
+ * @return the display value.
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Display metadata associated with the 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 origin of operations.
+ *
+ * @return the origin value.
+ */
+ public String origin() {
+ return this.origin;
+ }
+
+ /**
+ * Set the origin property: The origin of operations.
+ *
+ * @param origin the origin value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withOrigin(String origin) {
+ this.origin = origin;
+ return this;
+ }
+
+ /**
+ * Get the serviceSpecification property: One property of operation, include metric specifications.
+ *
+ * @return the serviceSpecification value.
+ */
+ public ServiceSpecification serviceSpecification() {
+ return this.serviceSpecification;
+ }
+
+ /**
+ * Set the serviceSpecification property: One property of operation, include metric specifications.
+ *
+ * @param serviceSpecification the serviceSpecification value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withServiceSpecification(ServiceSpecification serviceSpecification) {
+ this.serviceSpecification = serviceSpecification;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ if (serviceSpecification() != null) {
+ serviceSpecification().validate();
+ }
+ }
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/ReplicationStatusInner.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/ReplicationStatusInner.java
new file mode 100644
index 000000000000..dfeae58906d3
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/ReplicationStatusInner.java
@@ -0,0 +1,156 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.netapp.models.MirrorState;
+import com.azure.resourcemanager.netapp.models.RelationshipStatus;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Replication status. */
+@Fluent
+public final class ReplicationStatusInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ReplicationStatusInner.class);
+
+ /*
+ * Replication health check
+ */
+ @JsonProperty(value = "healthy")
+ private Boolean healthy;
+
+ /*
+ * Status of the mirror relationship
+ */
+ @JsonProperty(value = "relationshipStatus")
+ private RelationshipStatus relationshipStatus;
+
+ /*
+ * The status of the replication
+ */
+ @JsonProperty(value = "mirrorState")
+ private MirrorState mirrorState;
+
+ /*
+ * The progress of the replication
+ */
+ @JsonProperty(value = "totalProgress")
+ private String totalProgress;
+
+ /*
+ * Displays error message if the replication is in an error state
+ */
+ @JsonProperty(value = "errorMessage")
+ private String errorMessage;
+
+ /**
+ * Get the healthy property: Replication health check.
+ *
+ * @return the healthy value.
+ */
+ public Boolean healthy() {
+ return this.healthy;
+ }
+
+ /**
+ * Set the healthy property: Replication health check.
+ *
+ * @param healthy the healthy value to set.
+ * @return the ReplicationStatusInner object itself.
+ */
+ public ReplicationStatusInner withHealthy(Boolean healthy) {
+ this.healthy = healthy;
+ return this;
+ }
+
+ /**
+ * Get the relationshipStatus property: Status of the mirror relationship.
+ *
+ * @return the relationshipStatus value.
+ */
+ public RelationshipStatus relationshipStatus() {
+ return this.relationshipStatus;
+ }
+
+ /**
+ * Set the relationshipStatus property: Status of the mirror relationship.
+ *
+ * @param relationshipStatus the relationshipStatus value to set.
+ * @return the ReplicationStatusInner object itself.
+ */
+ public ReplicationStatusInner withRelationshipStatus(RelationshipStatus relationshipStatus) {
+ this.relationshipStatus = relationshipStatus;
+ return this;
+ }
+
+ /**
+ * Get the mirrorState property: The status of the replication.
+ *
+ * @return the mirrorState value.
+ */
+ public MirrorState mirrorState() {
+ return this.mirrorState;
+ }
+
+ /**
+ * Set the mirrorState property: The status of the replication.
+ *
+ * @param mirrorState the mirrorState value to set.
+ * @return the ReplicationStatusInner object itself.
+ */
+ public ReplicationStatusInner withMirrorState(MirrorState mirrorState) {
+ this.mirrorState = mirrorState;
+ return this;
+ }
+
+ /**
+ * Get the totalProgress property: The progress of the replication.
+ *
+ * @return the totalProgress value.
+ */
+ public String totalProgress() {
+ return this.totalProgress;
+ }
+
+ /**
+ * Set the totalProgress property: The progress of the replication.
+ *
+ * @param totalProgress the totalProgress value to set.
+ * @return the ReplicationStatusInner object itself.
+ */
+ public ReplicationStatusInner withTotalProgress(String totalProgress) {
+ this.totalProgress = totalProgress;
+ return this;
+ }
+
+ /**
+ * Get the errorMessage property: Displays error message if the replication is in an error state.
+ *
+ * @return the errorMessage value.
+ */
+ public String errorMessage() {
+ return this.errorMessage;
+ }
+
+ /**
+ * Set the errorMessage property: Displays error message if the replication is in an error state.
+ *
+ * @param errorMessage the errorMessage value to set.
+ * @return the ReplicationStatusInner object itself.
+ */
+ public ReplicationStatusInner withErrorMessage(String errorMessage) {
+ this.errorMessage = errorMessage;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/SnapshotInner.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/SnapshotInner.java
new file mode 100644
index 000000000000..015ecaa3f7c4
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/SnapshotInner.java
@@ -0,0 +1,104 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Snapshot of a Volume. */
+@JsonFlatten
+@Fluent
+public class SnapshotInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(SnapshotInner.class);
+
+ /*
+ * Resource location
+ */
+ @JsonProperty(value = "location", required = true)
+ private String location;
+
+ /*
+ * UUID v4 used to identify the Snapshot
+ */
+ @JsonProperty(value = "properties.snapshotId", access = JsonProperty.Access.WRITE_ONLY)
+ private String snapshotId;
+
+ /*
+ * The creation date of the snapshot
+ */
+ @JsonProperty(value = "properties.created", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime created;
+
+ /*
+ * Azure lifecycle management
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the location property: Resource location.
+ *
+ * @return the location value.
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the location property: Resource location.
+ *
+ * @param location the location value to set.
+ * @return the SnapshotInner object itself.
+ */
+ public SnapshotInner withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the snapshotId property: UUID v4 used to identify the Snapshot.
+ *
+ * @return the snapshotId value.
+ */
+ public String snapshotId() {
+ return this.snapshotId;
+ }
+
+ /**
+ * Get the created property: The creation date of the snapshot.
+ *
+ * @return the created value.
+ */
+ public OffsetDateTime created() {
+ return this.created;
+ }
+
+ /**
+ * Get the provisioningState property: Azure lifecycle management.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (location() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property location in model SnapshotInner"));
+ }
+ }
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/SnapshotPolicyInner.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/SnapshotPolicyInner.java
new file mode 100644
index 000000000000..3cb6f10d9b7e
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/SnapshotPolicyInner.java
@@ -0,0 +1,203 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.annotation.JsonFlatten;
+import com.azure.core.management.Resource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.netapp.models.DailySchedule;
+import com.azure.resourcemanager.netapp.models.HourlySchedule;
+import com.azure.resourcemanager.netapp.models.MonthlySchedule;
+import com.azure.resourcemanager.netapp.models.WeeklySchedule;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Map;
+
+/** Snapshot policy information. */
+@JsonFlatten
+@Fluent
+public class SnapshotPolicyInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(SnapshotPolicyInner.class);
+
+ /*
+ * Schedule for hourly snapshots
+ */
+ @JsonProperty(value = "properties.hourlySchedule")
+ private HourlySchedule hourlySchedule;
+
+ /*
+ * Schedule for daily snapshots
+ */
+ @JsonProperty(value = "properties.dailySchedule")
+ private DailySchedule dailySchedule;
+
+ /*
+ * Schedule for weekly snapshots
+ */
+ @JsonProperty(value = "properties.weeklySchedule")
+ private WeeklySchedule weeklySchedule;
+
+ /*
+ * Schedule for monthly snapshots
+ */
+ @JsonProperty(value = "properties.monthlySchedule")
+ private MonthlySchedule monthlySchedule;
+
+ /*
+ * The property to decide policy is enabled or not
+ */
+ @JsonProperty(value = "properties.enabled")
+ private Boolean enabled;
+
+ /*
+ * Azure lifecycle management
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Get the hourlySchedule property: Schedule for hourly snapshots.
+ *
+ * @return the hourlySchedule value.
+ */
+ public HourlySchedule hourlySchedule() {
+ return this.hourlySchedule;
+ }
+
+ /**
+ * Set the hourlySchedule property: Schedule for hourly snapshots.
+ *
+ * @param hourlySchedule the hourlySchedule value to set.
+ * @return the SnapshotPolicyInner object itself.
+ */
+ public SnapshotPolicyInner withHourlySchedule(HourlySchedule hourlySchedule) {
+ this.hourlySchedule = hourlySchedule;
+ return this;
+ }
+
+ /**
+ * Get the dailySchedule property: Schedule for daily snapshots.
+ *
+ * @return the dailySchedule value.
+ */
+ public DailySchedule dailySchedule() {
+ return this.dailySchedule;
+ }
+
+ /**
+ * Set the dailySchedule property: Schedule for daily snapshots.
+ *
+ * @param dailySchedule the dailySchedule value to set.
+ * @return the SnapshotPolicyInner object itself.
+ */
+ public SnapshotPolicyInner withDailySchedule(DailySchedule dailySchedule) {
+ this.dailySchedule = dailySchedule;
+ return this;
+ }
+
+ /**
+ * Get the weeklySchedule property: Schedule for weekly snapshots.
+ *
+ * @return the weeklySchedule value.
+ */
+ public WeeklySchedule weeklySchedule() {
+ return this.weeklySchedule;
+ }
+
+ /**
+ * Set the weeklySchedule property: Schedule for weekly snapshots.
+ *
+ * @param weeklySchedule the weeklySchedule value to set.
+ * @return the SnapshotPolicyInner object itself.
+ */
+ public SnapshotPolicyInner withWeeklySchedule(WeeklySchedule weeklySchedule) {
+ this.weeklySchedule = weeklySchedule;
+ return this;
+ }
+
+ /**
+ * Get the monthlySchedule property: Schedule for monthly snapshots.
+ *
+ * @return the monthlySchedule value.
+ */
+ public MonthlySchedule monthlySchedule() {
+ return this.monthlySchedule;
+ }
+
+ /**
+ * Set the monthlySchedule property: Schedule for monthly snapshots.
+ *
+ * @param monthlySchedule the monthlySchedule value to set.
+ * @return the SnapshotPolicyInner object itself.
+ */
+ public SnapshotPolicyInner withMonthlySchedule(MonthlySchedule monthlySchedule) {
+ this.monthlySchedule = monthlySchedule;
+ return this;
+ }
+
+ /**
+ * Get the enabled property: The property to decide policy is enabled or not.
+ *
+ * @return the enabled value.
+ */
+ public Boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set the enabled property: The property to decide policy is enabled or not.
+ *
+ * @param enabled the enabled value to set.
+ * @return the SnapshotPolicyInner object itself.
+ */
+ public SnapshotPolicyInner withEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: Azure lifecycle management.
+ *
+ * @return the provisioningState value.
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SnapshotPolicyInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SnapshotPolicyInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (hourlySchedule() != null) {
+ hourlySchedule().validate();
+ }
+ if (dailySchedule() != null) {
+ dailySchedule().validate();
+ }
+ if (weeklySchedule() != null) {
+ weeklySchedule().validate();
+ }
+ if (monthlySchedule() != null) {
+ monthlySchedule().validate();
+ }
+ }
+}
diff --git a/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/SnapshotPolicyVolumeListInner.java b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/SnapshotPolicyVolumeListInner.java
new file mode 100644
index 000000000000..bddd1d41ee7f
--- /dev/null
+++ b/sdk/netapp/azure-resourcemanager-netapp/src/main/java/com/azure/resourcemanager/netapp/fluent/models/SnapshotPolicyVolumeListInner.java
@@ -0,0 +1,51 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.netapp.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Volumes associated with snapshot policy. */
+@Fluent
+public final class SnapshotPolicyVolumeListInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(SnapshotPolicyVolumeListInner.class);
+
+ /*
+ * List of volumes
+ */
+ @JsonProperty(value = "value")
+ private List