diff --git a/sdk/netapp/mgmt-v2020_07_01/pom.xml b/sdk/netapp/mgmt-v2020_07_01/pom.xml
new file mode 100644
index 0000000000000..09e4efe49700b
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.netapp.v2020_07_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-netapp
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for NetApp Management
+ This package contains Microsoft NetApp Management SDK.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+ 1.6.5
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.7
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+
* Copyright (c) Microsoft Corporation. All rights reserved.
+
* Licensed under the MIT License. See License.txt in the project root for
+
* license information.
+
*/
+ ]]>
+
+
+
+
+
+
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/AccountBackups.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/AccountBackups.java
new file mode 100644
index 0000000000000..6dd60f3118f10
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/AccountBackups.java
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.AccountBackupsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing AccountBackups.
+ */
+public interface AccountBackups extends HasInner {
+ /**
+ * List Backups for a Netapp Account.
+ * 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
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Get Backup for a Netapp Account.
+ * 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
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName, String backupName);
+
+ /**
+ * Delete Backup for a Netapp Account.
+ * 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
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String accountName, String backupName);
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Accounts.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Accounts.java
new file mode 100644
index 0000000000000..6e5cc6501f327
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Accounts.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.AccountsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Accounts.
+ */
+public interface Accounts extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, HasInner {
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ActiveDirectory.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ActiveDirectory.java
new file mode 100644
index 0000000000000..885db98afdee0
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ActiveDirectory.java
@@ -0,0 +1,371 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Active Directory.
+ */
+public class ActiveDirectory {
+ /**
+ * Id of the Active Directory.
+ */
+ @JsonProperty(value = "activeDirectoryId")
+ private String activeDirectoryId;
+
+ /**
+ * Username of Active Directory domain administrator.
+ */
+ @JsonProperty(value = "username")
+ private String username;
+
+ /**
+ * Plain text password of Active Directory domain administrator, value is
+ * masked in the response.
+ */
+ @JsonProperty(value = "password")
+ private String password;
+
+ /**
+ * Name of the Active Directory domain.
+ */
+ @JsonProperty(value = "domain")
+ private String domain;
+
+ /**
+ * Comma separated list of DNS server IP addresses (IPv4 only) for the
+ * Active Directory domain.
+ */
+ @JsonProperty(value = "dns")
+ private String dns;
+
+ /**
+ * Status of the Active Directory. Possible values include: 'Created',
+ * 'InUse', 'Deleted', 'Error', 'Updating'.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private ActiveDirectoryStatus status;
+
+ /**
+ * Any details in regards to the Status of the Active Directory.
+ */
+ @JsonProperty(value = "statusDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private String statusDetails;
+
+ /**
+ * NetBIOS name of the SMB server. This name will be registered as a
+ * computer account in the AD and used to mount volumes.
+ */
+ @JsonProperty(value = "smbServerName")
+ private String smbServerName;
+
+ /**
+ * The Organizational Unit (OU) within the Windows Active Directory.
+ */
+ @JsonProperty(value = "organizationalUnit")
+ private String organizationalUnit;
+
+ /**
+ * The Active Directory site the service will limit Domain Controller
+ * discovery to.
+ */
+ @JsonProperty(value = "site")
+ private String site;
+
+ /**
+ * Users to be added to the Built-in Backup Operator active directory
+ * group. A list of unique usernames without domain specifier.
+ */
+ @JsonProperty(value = "backupOperators")
+ private List backupOperators;
+
+ /**
+ * kdc server IP addresses for the active directory machine. This optional
+ * parameter is used only while creating kerberos volume.
+ */
+ @JsonProperty(value = "kdcIP")
+ private String kdcIP;
+
+ /**
+ * Name of the active directory machine. This optional parameter is used
+ * only while creating kerberos volume.
+ */
+ @JsonProperty(value = "adName")
+ private String adName;
+
+ /**
+ * When LDAP over SSL/TLS is enabled, the LDAP client is required to have
+ * base64 encoded Active Directory Certificate Service's self-signed root
+ * CA certificate, this optional parameter is used only for dual protocol
+ * with LDAP user-mapping volumes.
+ */
+ @JsonProperty(value = "serverRootCACertificate")
+ private String serverRootCACertificate;
+
+ /**
+ * Get id of the Active Directory.
+ *
+ * @return the activeDirectoryId value
+ */
+ public String activeDirectoryId() {
+ return this.activeDirectoryId;
+ }
+
+ /**
+ * Set id of the Active Directory.
+ *
+ * @param activeDirectoryId the activeDirectoryId value to set
+ * @return the ActiveDirectory object itself.
+ */
+ public ActiveDirectory withActiveDirectoryId(String activeDirectoryId) {
+ this.activeDirectoryId = activeDirectoryId;
+ return this;
+ }
+
+ /**
+ * Get username of Active Directory domain administrator.
+ *
+ * @return the username value
+ */
+ public String username() {
+ return this.username;
+ }
+
+ /**
+ * Set username of Active Directory domain administrator.
+ *
+ * @param username the username value to set
+ * @return the ActiveDirectory object itself.
+ */
+ public ActiveDirectory withUsername(String username) {
+ this.username = username;
+ return this;
+ }
+
+ /**
+ * Get plain text password of Active Directory domain administrator, value is masked in the response.
+ *
+ * @return the password value
+ */
+ public String password() {
+ return this.password;
+ }
+
+ /**
+ * Set plain text password of Active Directory domain administrator, value is masked in the response.
+ *
+ * @param password the password value to set
+ * @return the ActiveDirectory object itself.
+ */
+ public ActiveDirectory withPassword(String password) {
+ this.password = password;
+ return this;
+ }
+
+ /**
+ * Get name of the Active Directory domain.
+ *
+ * @return the domain value
+ */
+ public String domain() {
+ return this.domain;
+ }
+
+ /**
+ * Set name of the Active Directory domain.
+ *
+ * @param domain the domain value to set
+ * @return the ActiveDirectory object itself.
+ */
+ public ActiveDirectory withDomain(String domain) {
+ this.domain = domain;
+ return this;
+ }
+
+ /**
+ * Get comma separated list of DNS server IP addresses (IPv4 only) for the Active Directory domain.
+ *
+ * @return the dns value
+ */
+ public String dns() {
+ return this.dns;
+ }
+
+ /**
+ * Set comma separated list of DNS server IP addresses (IPv4 only) for the Active Directory domain.
+ *
+ * @param dns the dns value to set
+ * @return the ActiveDirectory object itself.
+ */
+ public ActiveDirectory withDns(String dns) {
+ this.dns = dns;
+ return this;
+ }
+
+ /**
+ * Get status of the Active Directory. Possible values include: 'Created', 'InUse', 'Deleted', 'Error', 'Updating'.
+ *
+ * @return the status value
+ */
+ public ActiveDirectoryStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get any details in regards to the Status of the Active Directory.
+ *
+ * @return the statusDetails value
+ */
+ public String statusDetails() {
+ return this.statusDetails;
+ }
+
+ /**
+ * Get netBIOS name of the SMB server. This name will be registered as a computer account in the AD and used to mount volumes.
+ *
+ * @return the smbServerName value
+ */
+ public String smbServerName() {
+ return this.smbServerName;
+ }
+
+ /**
+ * Set netBIOS name of the SMB server. This name will be registered as a computer account in the AD and used to mount volumes.
+ *
+ * @param smbServerName the smbServerName value to set
+ * @return the ActiveDirectory object itself.
+ */
+ public ActiveDirectory withSmbServerName(String smbServerName) {
+ this.smbServerName = smbServerName;
+ return this;
+ }
+
+ /**
+ * Get the Organizational Unit (OU) within the Windows Active Directory.
+ *
+ * @return the organizationalUnit value
+ */
+ public String organizationalUnit() {
+ return this.organizationalUnit;
+ }
+
+ /**
+ * Set the Organizational Unit (OU) within the Windows Active Directory.
+ *
+ * @param organizationalUnit the organizationalUnit value to set
+ * @return the ActiveDirectory object itself.
+ */
+ public ActiveDirectory withOrganizationalUnit(String organizationalUnit) {
+ this.organizationalUnit = organizationalUnit;
+ return this;
+ }
+
+ /**
+ * Get the Active Directory site the service will limit Domain Controller discovery to.
+ *
+ * @return the site value
+ */
+ public String site() {
+ return this.site;
+ }
+
+ /**
+ * Set the Active Directory site the service will limit Domain Controller discovery to.
+ *
+ * @param site the site value to set
+ * @return the ActiveDirectory object itself.
+ */
+ public ActiveDirectory withSite(String site) {
+ this.site = site;
+ return this;
+ }
+
+ /**
+ * Get users to be added to the Built-in Backup Operator active directory group. A list of unique usernames without domain specifier.
+ *
+ * @return the backupOperators value
+ */
+ public List backupOperators() {
+ return this.backupOperators;
+ }
+
+ /**
+ * Set users to be added to the Built-in Backup Operator active directory group. A list of unique usernames without domain specifier.
+ *
+ * @param backupOperators the backupOperators value to set
+ * @return the ActiveDirectory object itself.
+ */
+ public ActiveDirectory withBackupOperators(List backupOperators) {
+ this.backupOperators = backupOperators;
+ return this;
+ }
+
+ /**
+ * Get kdc server IP addresses for the active directory machine. This optional parameter is used only while creating kerberos volume.
+ *
+ * @return the kdcIP value
+ */
+ public String kdcIP() {
+ return this.kdcIP;
+ }
+
+ /**
+ * Set kdc server IP addresses for the active directory machine. This optional parameter is used only while creating kerberos volume.
+ *
+ * @param kdcIP the kdcIP value to set
+ * @return the ActiveDirectory object itself.
+ */
+ public ActiveDirectory withKdcIP(String kdcIP) {
+ this.kdcIP = kdcIP;
+ return this;
+ }
+
+ /**
+ * Get name of the active directory machine. This optional parameter is used only while creating kerberos volume.
+ *
+ * @return the adName value
+ */
+ public String adName() {
+ return this.adName;
+ }
+
+ /**
+ * Set name of the active directory machine. This optional parameter is used only while creating kerberos volume.
+ *
+ * @param adName the adName value to set
+ * @return the ActiveDirectory object itself.
+ */
+ public ActiveDirectory withAdName(String adName) {
+ this.adName = adName;
+ return this;
+ }
+
+ /**
+ * Get when LDAP over SSL/TLS is enabled, the LDAP client is required to have base64 encoded Active Directory Certificate Service's self-signed root CA certificate, this optional parameter is used only for dual protocol with LDAP user-mapping volumes.
+ *
+ * @return the serverRootCACertificate value
+ */
+ public String serverRootCACertificate() {
+ return this.serverRootCACertificate;
+ }
+
+ /**
+ * Set when LDAP over SSL/TLS is enabled, the LDAP client is required to have base64 encoded Active Directory Certificate Service's self-signed root CA certificate, this optional parameter is used only for dual protocol with LDAP user-mapping volumes.
+ *
+ * @param serverRootCACertificate the serverRootCACertificate value to set
+ * @return the ActiveDirectory object itself.
+ */
+ public ActiveDirectory withServerRootCACertificate(String serverRootCACertificate) {
+ this.serverRootCACertificate = serverRootCACertificate;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ActiveDirectoryStatus.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ActiveDirectoryStatus.java
new file mode 100644
index 0000000000000..6cc9b87b4f4db
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ActiveDirectoryStatus.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ActiveDirectoryStatus.
+ */
+public final class ActiveDirectoryStatus extends ExpandableStringEnum {
+ /** Static value Created for ActiveDirectoryStatus. */
+ public static final ActiveDirectoryStatus CREATED = fromString("Created");
+
+ /** Static value InUse for ActiveDirectoryStatus. */
+ public static final ActiveDirectoryStatus IN_USE = fromString("InUse");
+
+ /** Static value Deleted for ActiveDirectoryStatus. */
+ public static final ActiveDirectoryStatus DELETED = fromString("Deleted");
+
+ /** Static value Error for ActiveDirectoryStatus. */
+ public static final ActiveDirectoryStatus ERROR = fromString("Error");
+
+ /** Static value Updating for ActiveDirectoryStatus. */
+ public static final ActiveDirectoryStatus UPDATING = fromString("Updating");
+
+ /**
+ * Creates or finds a ActiveDirectoryStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ActiveDirectoryStatus
+ */
+ @JsonCreator
+ public static ActiveDirectoryStatus fromString(String name) {
+ return fromString(name, ActiveDirectoryStatus.class);
+ }
+
+ /**
+ * @return known ActiveDirectoryStatus values
+ */
+ public static Collection values() {
+ return values(ActiveDirectoryStatus.class);
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/AuthorizeRequest.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/AuthorizeRequest.java
new file mode 100644
index 0000000000000..e9b90e20cf73e
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/AuthorizeRequest.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Authorize request.
+ */
+public class AuthorizeRequest {
+ /**
+ * Resource id of the remote volume.
+ */
+ @JsonProperty(value = "remoteVolumeResourceId")
+ private String remoteVolumeResourceId;
+
+ /**
+ * Get resource id of the remote volume.
+ *
+ * @return the remoteVolumeResourceId value
+ */
+ public String remoteVolumeResourceId() {
+ return this.remoteVolumeResourceId;
+ }
+
+ /**
+ * Set resource id of the remote volume.
+ *
+ * @param remoteVolumeResourceId the remoteVolumeResourceId value to set
+ * @return the AuthorizeRequest object itself.
+ */
+ public AuthorizeRequest withRemoteVolumeResourceId(String remoteVolumeResourceId) {
+ this.remoteVolumeResourceId = remoteVolumeResourceId;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPatch.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPatch.java
new file mode 100644
index 0000000000000..b8dab1e2e7a12
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPatch.java
@@ -0,0 +1,150 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Map;
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Backup patch.
+ */
+@JsonFlatten
+public class BackupPatch {
+ /**
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * backupId.
+ * UUID v4 used to identify the Backup.
+ */
+ @JsonProperty(value = "properties.backupId", access = JsonProperty.Access.WRITE_ONLY)
+ private String backupId;
+
+ /**
+ * name.
+ * The creation date of the backup.
+ */
+ @JsonProperty(value = "properties.creationDate", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime 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;
+
+ /**
+ * Get resource tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set resource tags.
+ *
+ * @param tags the tags value to set
+ * @return the BackupPatch object itself.
+ */
+ public BackupPatch withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get uUID v4 used to identify the Backup.
+ *
+ * @return the backupId value
+ */
+ public String backupId() {
+ return this.backupId;
+ }
+
+ /**
+ * Get the creation date of the backup.
+ *
+ * @return the creationDate value
+ */
+ public DateTime creationDate() {
+ return this.creationDate;
+ }
+
+ /**
+ * Get azure lifecycle management.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get size of backup.
+ *
+ * @return the size value
+ */
+ public Long size() {
+ return this.size;
+ }
+
+ /**
+ * Get label for backup.
+ *
+ * @return the label value
+ */
+ public String label() {
+ return this.label;
+ }
+
+ /**
+ * Set label for backup.
+ *
+ * @param label the label value to set
+ * @return the BackupPatch object itself.
+ */
+ public BackupPatch withLabel(String label) {
+ this.label = label;
+ return this;
+ }
+
+ /**
+ * Get type of backup adhoc or scheduled.
+ *
+ * @return the backupType value
+ */
+ public String backupType() {
+ return this.backupType;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPolicies.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPolicies.java
new file mode 100644
index 0000000000000..f7a3922f062ac
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPolicies.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.BackupPoliciesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupPolicies.
+ */
+public interface BackupPolicies extends SupportsCreating, HasInner {
+ /**
+ * Get a backup Policy.
+ * 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
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName, String backupPolicyName);
+
+ /**
+ * List backup policies.
+ * 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
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Delete a backup policy.
+ * 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
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String accountName, String backupPolicyName);
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPolicy.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPolicy.java
new file mode 100644
index 0000000000000..d7eb0848c32e1
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPolicy.java
@@ -0,0 +1,349 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.BackupPolicyInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppManager;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Type representing BackupPolicy.
+ */
+public interface BackupPolicy extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the dailyBackupsToKeep value.
+ */
+ Integer dailyBackupsToKeep();
+
+ /**
+ * @return the enabled value.
+ */
+ Boolean enabled();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the monthlyBackupsToKeep value.
+ */
+ Integer monthlyBackupsToKeep();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the name1 value.
+ */
+ String name1();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the volumeBackups value.
+ */
+ List volumeBackups();
+
+ /**
+ * @return the volumesAssigned value.
+ */
+ Integer volumesAssigned();
+
+ /**
+ * @return the weeklyBackupsToKeep value.
+ */
+ Integer weeklyBackupsToKeep();
+
+ /**
+ * @return the yearlyBackupsToKeep value.
+ */
+ Integer yearlyBackupsToKeep();
+
+ /**
+ * The entirety of the BackupPolicy definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithNetAppAccount, DefinitionStages.WithLocation, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of BackupPolicy definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a BackupPolicy definition.
+ */
+ interface Blank extends WithNetAppAccount {
+ }
+
+ /**
+ * The stage of the backuppolicy definition allowing to specify NetAppAccount.
+ */
+ interface WithNetAppAccount {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName The name of the resource group
+ * @param accountName The name of the NetApp account
+ * @return the next definition stage
+ */
+ WithLocation withExistingNetAppAccount(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the backuppolicy definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location the location parameter value
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the backuppolicy definition allowing to specify DailyBackupsToKeep.
+ */
+ interface WithDailyBackupsToKeep {
+ /**
+ * Specifies dailyBackupsToKeep.
+ * @param dailyBackupsToKeep Daily backups count to keep
+ * @return the next definition stage
+ */
+ WithCreate withDailyBackupsToKeep(Integer dailyBackupsToKeep);
+ }
+
+ /**
+ * The stage of the backuppolicy definition allowing to specify Enabled.
+ */
+ interface WithEnabled {
+ /**
+ * Specifies enabled.
+ * @param enabled The property to decide policy is enabled or not
+ * @return the next definition stage
+ */
+ WithCreate withEnabled(Boolean enabled);
+ }
+
+ /**
+ * The stage of the backuppolicy definition allowing to specify MonthlyBackupsToKeep.
+ */
+ interface WithMonthlyBackupsToKeep {
+ /**
+ * Specifies monthlyBackupsToKeep.
+ * @param monthlyBackupsToKeep Monthly backups count to keep
+ * @return the next definition stage
+ */
+ WithCreate withMonthlyBackupsToKeep(Integer monthlyBackupsToKeep);
+ }
+
+ /**
+ * The stage of the backuppolicy definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the backuppolicy definition allowing to specify VolumeBackups.
+ */
+ interface WithVolumeBackups {
+ /**
+ * Specifies volumeBackups.
+ * @param volumeBackups A list of volumes assigned to this policy
+ * @return the next definition stage
+ */
+ WithCreate withVolumeBackups(List volumeBackups);
+ }
+
+ /**
+ * The stage of the backuppolicy definition allowing to specify VolumesAssigned.
+ */
+ interface WithVolumesAssigned {
+ /**
+ * Specifies volumesAssigned.
+ * @param volumesAssigned Volumes using current backup policy
+ * @return the next definition stage
+ */
+ WithCreate withVolumesAssigned(Integer volumesAssigned);
+ }
+
+ /**
+ * The stage of the backuppolicy definition allowing to specify WeeklyBackupsToKeep.
+ */
+ interface WithWeeklyBackupsToKeep {
+ /**
+ * Specifies weeklyBackupsToKeep.
+ * @param weeklyBackupsToKeep Weekly backups count to keep
+ * @return the next definition stage
+ */
+ WithCreate withWeeklyBackupsToKeep(Integer weeklyBackupsToKeep);
+ }
+
+ /**
+ * The stage of the backuppolicy definition allowing to specify YearlyBackupsToKeep.
+ */
+ interface WithYearlyBackupsToKeep {
+ /**
+ * Specifies yearlyBackupsToKeep.
+ * @param yearlyBackupsToKeep Yearly backups count to keep
+ * @return the next definition stage
+ */
+ WithCreate withYearlyBackupsToKeep(Integer yearlyBackupsToKeep);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithDailyBackupsToKeep, DefinitionStages.WithEnabled, DefinitionStages.WithMonthlyBackupsToKeep, DefinitionStages.WithTags, DefinitionStages.WithVolumeBackups, DefinitionStages.WithVolumesAssigned, DefinitionStages.WithWeeklyBackupsToKeep, DefinitionStages.WithYearlyBackupsToKeep {
+ }
+ }
+ /**
+ * The template for a BackupPolicy update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithDailyBackupsToKeep, UpdateStages.WithEnabled, UpdateStages.WithLocation, UpdateStages.WithMonthlyBackupsToKeep, UpdateStages.WithVolumeBackups, UpdateStages.WithVolumesAssigned, UpdateStages.WithWeeklyBackupsToKeep, UpdateStages.WithYearlyBackupsToKeep {
+ }
+
+ /**
+ * Grouping of BackupPolicy update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the backuppolicy update allowing to specify DailyBackupsToKeep.
+ */
+ interface WithDailyBackupsToKeep {
+ /**
+ * Specifies dailyBackupsToKeep.
+ * @param dailyBackupsToKeep Daily backups count to keep
+ * @return the next update stage
+ */
+ Update withDailyBackupsToKeep(Integer dailyBackupsToKeep);
+ }
+
+ /**
+ * The stage of the backuppolicy update allowing to specify Enabled.
+ */
+ interface WithEnabled {
+ /**
+ * Specifies enabled.
+ * @param enabled The property to decide policy is enabled or not
+ * @return the next update stage
+ */
+ Update withEnabled(Boolean enabled);
+ }
+
+ /**
+ * The stage of the backuppolicy update allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Resource location
+ * @return the next update stage
+ */
+ Update withLocation(String location);
+ }
+
+ /**
+ * The stage of the backuppolicy update allowing to specify MonthlyBackupsToKeep.
+ */
+ interface WithMonthlyBackupsToKeep {
+ /**
+ * Specifies monthlyBackupsToKeep.
+ * @param monthlyBackupsToKeep Monthly backups count to keep
+ * @return the next update stage
+ */
+ Update withMonthlyBackupsToKeep(Integer monthlyBackupsToKeep);
+ }
+
+ /**
+ * The stage of the backuppolicy update allowing to specify VolumeBackups.
+ */
+ interface WithVolumeBackups {
+ /**
+ * Specifies volumeBackups.
+ * @param volumeBackups A list of volumes assigned to this policy
+ * @return the next update stage
+ */
+ Update withVolumeBackups(List volumeBackups);
+ }
+
+ /**
+ * The stage of the backuppolicy update allowing to specify VolumesAssigned.
+ */
+ interface WithVolumesAssigned {
+ /**
+ * Specifies volumesAssigned.
+ * @param volumesAssigned Volumes using current backup policy
+ * @return the next update stage
+ */
+ Update withVolumesAssigned(Integer volumesAssigned);
+ }
+
+ /**
+ * The stage of the backuppolicy update allowing to specify WeeklyBackupsToKeep.
+ */
+ interface WithWeeklyBackupsToKeep {
+ /**
+ * Specifies weeklyBackupsToKeep.
+ * @param weeklyBackupsToKeep Weekly backups count to keep
+ * @return the next update stage
+ */
+ Update withWeeklyBackupsToKeep(Integer weeklyBackupsToKeep);
+ }
+
+ /**
+ * The stage of the backuppolicy update allowing to specify YearlyBackupsToKeep.
+ */
+ interface WithYearlyBackupsToKeep {
+ /**
+ * Specifies yearlyBackupsToKeep.
+ * @param yearlyBackupsToKeep Yearly backups count to keep
+ * @return the next update stage
+ */
+ Update withYearlyBackupsToKeep(Integer yearlyBackupsToKeep);
+ }
+
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPolicyDetails.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPolicyDetails.java
new file mode 100644
index 0000000000000..ac29cc982e7cf
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPolicyDetails.java
@@ -0,0 +1,233 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * Backup policy properties.
+ */
+@JsonFlatten
+public class BackupPolicyDetails extends Resource {
+ /**
+ * Name of backup policy.
+ */
+ @JsonProperty(value = "properties.name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name1;
+
+ /**
+ * 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 name of backup policy.
+ *
+ * @return the name1 value
+ */
+ public String name1() {
+ return this.name1;
+ }
+
+ /**
+ * Get azure lifecycle management.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get daily backups count to keep.
+ *
+ * @return the dailyBackupsToKeep value
+ */
+ public Integer dailyBackupsToKeep() {
+ return this.dailyBackupsToKeep;
+ }
+
+ /**
+ * Set daily backups count to keep.
+ *
+ * @param dailyBackupsToKeep the dailyBackupsToKeep value to set
+ * @return the BackupPolicyDetails object itself.
+ */
+ public BackupPolicyDetails withDailyBackupsToKeep(Integer dailyBackupsToKeep) {
+ this.dailyBackupsToKeep = dailyBackupsToKeep;
+ return this;
+ }
+
+ /**
+ * Get weekly backups count to keep.
+ *
+ * @return the weeklyBackupsToKeep value
+ */
+ public Integer weeklyBackupsToKeep() {
+ return this.weeklyBackupsToKeep;
+ }
+
+ /**
+ * Set weekly backups count to keep.
+ *
+ * @param weeklyBackupsToKeep the weeklyBackupsToKeep value to set
+ * @return the BackupPolicyDetails object itself.
+ */
+ public BackupPolicyDetails withWeeklyBackupsToKeep(Integer weeklyBackupsToKeep) {
+ this.weeklyBackupsToKeep = weeklyBackupsToKeep;
+ return this;
+ }
+
+ /**
+ * Get monthly backups count to keep.
+ *
+ * @return the monthlyBackupsToKeep value
+ */
+ public Integer monthlyBackupsToKeep() {
+ return this.monthlyBackupsToKeep;
+ }
+
+ /**
+ * Set monthly backups count to keep.
+ *
+ * @param monthlyBackupsToKeep the monthlyBackupsToKeep value to set
+ * @return the BackupPolicyDetails object itself.
+ */
+ public BackupPolicyDetails withMonthlyBackupsToKeep(Integer monthlyBackupsToKeep) {
+ this.monthlyBackupsToKeep = monthlyBackupsToKeep;
+ return this;
+ }
+
+ /**
+ * Get yearly backups count to keep.
+ *
+ * @return the yearlyBackupsToKeep value
+ */
+ public Integer yearlyBackupsToKeep() {
+ return this.yearlyBackupsToKeep;
+ }
+
+ /**
+ * Set yearly backups count to keep.
+ *
+ * @param yearlyBackupsToKeep the yearlyBackupsToKeep value to set
+ * @return the BackupPolicyDetails object itself.
+ */
+ public BackupPolicyDetails withYearlyBackupsToKeep(Integer yearlyBackupsToKeep) {
+ this.yearlyBackupsToKeep = yearlyBackupsToKeep;
+ return this;
+ }
+
+ /**
+ * Get volumes using current backup policy.
+ *
+ * @return the volumesAssigned value
+ */
+ public Integer volumesAssigned() {
+ return this.volumesAssigned;
+ }
+
+ /**
+ * Set volumes using current backup policy.
+ *
+ * @param volumesAssigned the volumesAssigned value to set
+ * @return the BackupPolicyDetails object itself.
+ */
+ public BackupPolicyDetails withVolumesAssigned(Integer volumesAssigned) {
+ this.volumesAssigned = volumesAssigned;
+ return this;
+ }
+
+ /**
+ * Get the property to decide policy is enabled or not.
+ *
+ * @return the enabled value
+ */
+ public Boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set the property to decide policy is enabled or not.
+ *
+ * @param enabled the enabled value to set
+ * @return the BackupPolicyDetails object itself.
+ */
+ public BackupPolicyDetails withEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Get a list of volumes assigned to this policy.
+ *
+ * @return the volumeBackups value
+ */
+ public List volumeBackups() {
+ return this.volumeBackups;
+ }
+
+ /**
+ * Set a list of volumes assigned to this policy.
+ *
+ * @param volumeBackups the volumeBackups value to set
+ * @return the BackupPolicyDetails object itself.
+ */
+ public BackupPolicyDetails withVolumeBackups(List volumeBackups) {
+ this.volumeBackups = volumeBackups;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPolicyPatch.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPolicyPatch.java
new file mode 100644
index 0000000000000..93e7ad98b29aa
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupPolicyPatch.java
@@ -0,0 +1,258 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Backup policy Details for create and update.
+ */
+@JsonFlatten
+public class BackupPolicyPatch {
+ /**
+ * Resource location.
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /**
+ * Name of backup policy.
+ */
+ @JsonProperty(value = "properties.name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * 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 resource location.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set resource location.
+ *
+ * @param location the location value to set
+ * @return the BackupPolicyPatch object itself.
+ */
+ public BackupPolicyPatch withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get name of backup policy.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get azure lifecycle management.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get daily backups count to keep.
+ *
+ * @return the dailyBackupsToKeep value
+ */
+ public Integer dailyBackupsToKeep() {
+ return this.dailyBackupsToKeep;
+ }
+
+ /**
+ * Set daily backups count to keep.
+ *
+ * @param dailyBackupsToKeep the dailyBackupsToKeep value to set
+ * @return the BackupPolicyPatch object itself.
+ */
+ public BackupPolicyPatch withDailyBackupsToKeep(Integer dailyBackupsToKeep) {
+ this.dailyBackupsToKeep = dailyBackupsToKeep;
+ return this;
+ }
+
+ /**
+ * Get weekly backups count to keep.
+ *
+ * @return the weeklyBackupsToKeep value
+ */
+ public Integer weeklyBackupsToKeep() {
+ return this.weeklyBackupsToKeep;
+ }
+
+ /**
+ * Set weekly backups count to keep.
+ *
+ * @param weeklyBackupsToKeep the weeklyBackupsToKeep value to set
+ * @return the BackupPolicyPatch object itself.
+ */
+ public BackupPolicyPatch withWeeklyBackupsToKeep(Integer weeklyBackupsToKeep) {
+ this.weeklyBackupsToKeep = weeklyBackupsToKeep;
+ return this;
+ }
+
+ /**
+ * Get monthly backups count to keep.
+ *
+ * @return the monthlyBackupsToKeep value
+ */
+ public Integer monthlyBackupsToKeep() {
+ return this.monthlyBackupsToKeep;
+ }
+
+ /**
+ * Set monthly backups count to keep.
+ *
+ * @param monthlyBackupsToKeep the monthlyBackupsToKeep value to set
+ * @return the BackupPolicyPatch object itself.
+ */
+ public BackupPolicyPatch withMonthlyBackupsToKeep(Integer monthlyBackupsToKeep) {
+ this.monthlyBackupsToKeep = monthlyBackupsToKeep;
+ return this;
+ }
+
+ /**
+ * Get yearly backups count to keep.
+ *
+ * @return the yearlyBackupsToKeep value
+ */
+ public Integer yearlyBackupsToKeep() {
+ return this.yearlyBackupsToKeep;
+ }
+
+ /**
+ * Set yearly backups count to keep.
+ *
+ * @param yearlyBackupsToKeep the yearlyBackupsToKeep value to set
+ * @return the BackupPolicyPatch object itself.
+ */
+ public BackupPolicyPatch withYearlyBackupsToKeep(Integer yearlyBackupsToKeep) {
+ this.yearlyBackupsToKeep = yearlyBackupsToKeep;
+ return this;
+ }
+
+ /**
+ * Get volumes using current backup policy.
+ *
+ * @return the volumesAssigned value
+ */
+ public Integer volumesAssigned() {
+ return this.volumesAssigned;
+ }
+
+ /**
+ * Set volumes using current backup policy.
+ *
+ * @param volumesAssigned the volumesAssigned value to set
+ * @return the BackupPolicyPatch object itself.
+ */
+ public BackupPolicyPatch withVolumesAssigned(Integer volumesAssigned) {
+ this.volumesAssigned = volumesAssigned;
+ return this;
+ }
+
+ /**
+ * Get the property to decide policy is enabled or not.
+ *
+ * @return the enabled value
+ */
+ public Boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set the property to decide policy is enabled or not.
+ *
+ * @param enabled the enabled value to set
+ * @return the BackupPolicyPatch object itself.
+ */
+ public BackupPolicyPatch withEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Get a list of volumes assigned to this policy.
+ *
+ * @return the volumeBackups value
+ */
+ public List volumeBackups() {
+ return this.volumeBackups;
+ }
+
+ /**
+ * Set a list of volumes assigned to this policy.
+ *
+ * @param volumeBackups the volumeBackups value to set
+ * @return the BackupPolicyPatch object itself.
+ */
+ public BackupPolicyPatch withVolumeBackups(List volumeBackups) {
+ this.volumeBackups = volumeBackups;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Backups.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Backups.java
new file mode 100644
index 0000000000000..d9f1e93c30bd6
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Backups.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.BackupsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Backups.
+ */
+public interface Backups extends SupportsCreating, HasInner {
+ /**
+ * Get a backup.
+ * 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
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName, String poolName, String volumeName, String backupName);
+
+ /**
+ * List Backups.
+ * 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
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Delete backup.
+ * 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
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String accountName, String poolName, String volumeName, String backupName);
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupsList.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupsList.java
new file mode 100644
index 0000000000000..f43bb82842fc2
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BackupsList.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.BackupsListInner;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.BackupInner;
+import java.util.List;
+
+/**
+ * Type representing BackupsList.
+ */
+public interface BackupsList extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BreakReplicationRequest.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BreakReplicationRequest.java
new file mode 100644
index 0000000000000..e6b545e107935
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/BreakReplicationRequest.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Break replication request.
+ */
+public class BreakReplicationRequest {
+ /**
+ * If replication is in status transferring and you want to force break the
+ * replication, set to true.
+ */
+ @JsonProperty(value = "forceBreakReplication")
+ private Boolean forceBreakReplication;
+
+ /**
+ * Get if replication is in status transferring and you want to force break the replication, set to true.
+ *
+ * @return the forceBreakReplication value
+ */
+ public Boolean forceBreakReplication() {
+ return this.forceBreakReplication;
+ }
+
+ /**
+ * Set if replication is in status transferring and you want to force break the replication, set to true.
+ *
+ * @param forceBreakReplication the forceBreakReplication value to set
+ * @return the BreakReplicationRequest object itself.
+ */
+ public BreakReplicationRequest withForceBreakReplication(Boolean forceBreakReplication) {
+ this.forceBreakReplication = forceBreakReplication;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CapacityPool.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CapacityPool.java
new file mode 100644
index 0000000000000..1e21376647953
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CapacityPool.java
@@ -0,0 +1,230 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.CapacityPoolInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppManager;
+import java.util.Map;
+
+/**
+ * Type representing CapacityPool.
+ */
+public interface CapacityPool extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the poolId value.
+ */
+ String poolId();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the qosType value.
+ */
+ QosType qosType();
+
+ /**
+ * @return the serviceLevel value.
+ */
+ ServiceLevel serviceLevel();
+
+ /**
+ * @return the size value.
+ */
+ long size();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the totalThroughputMibps value.
+ */
+ Double totalThroughputMibps();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the utilizedThroughputMibps value.
+ */
+ Double utilizedThroughputMibps();
+
+ /**
+ * The entirety of the CapacityPool definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithNetAppAccount, DefinitionStages.WithLocation, DefinitionStages.WithServiceLevel, DefinitionStages.WithSize, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of CapacityPool definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a CapacityPool definition.
+ */
+ interface Blank extends WithNetAppAccount {
+ }
+
+ /**
+ * The stage of the capacitypool definition allowing to specify NetAppAccount.
+ */
+ interface WithNetAppAccount {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName The name of the resource group
+ * @param accountName The name of the NetApp account
+ * @return the next definition stage
+ */
+ WithLocation withExistingNetAppAccount(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the capacitypool definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location the location parameter value
+ * @return the next definition stage
+ */
+ WithServiceLevel withLocation(String location);
+ }
+
+ /**
+ * The stage of the capacitypool definition allowing to specify ServiceLevel.
+ */
+ interface WithServiceLevel {
+ /**
+ * Specifies serviceLevel.
+ * @param serviceLevel The service level of the file system. Possible values include: 'Standard', 'Premium', 'Ultra'
+ * @return the next definition stage
+ */
+ WithSize withServiceLevel(ServiceLevel serviceLevel);
+ }
+
+ /**
+ * The stage of the capacitypool definition allowing to specify Size.
+ */
+ interface WithSize {
+ /**
+ * Specifies size.
+ * @param size Provisioned size of the pool (in bytes). Allowed values are in 4TiB chunks (value must be multiply of 4398046511104)
+ * @return the next definition stage
+ */
+ WithCreate withSize(long size);
+ }
+
+ /**
+ * The stage of the capacitypool definition allowing to specify QosType.
+ */
+ interface WithQosType {
+ /**
+ * Specifies qosType.
+ * @param qosType The qos type of the pool. Possible values include: 'Auto', 'Manual'
+ * @return the next definition stage
+ */
+ WithCreate withQosType(QosType qosType);
+ }
+
+ /**
+ * The stage of the capacitypool definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithQosType, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a CapacityPool update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithQosType, UpdateStages.WithSize, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of CapacityPool update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the capacitypool update allowing to specify QosType.
+ */
+ interface WithQosType {
+ /**
+ * Specifies qosType.
+ * @param qosType The qos type of the pool. Possible values include: 'Auto', 'Manual'
+ * @return the next update stage
+ */
+ Update withQosType(QosType qosType);
+ }
+
+ /**
+ * The stage of the capacitypool update allowing to specify Size.
+ */
+ interface WithSize {
+ /**
+ * Specifies size.
+ * @param size Provisioned size of the pool (in bytes). Allowed values are in 4TiB chunks (value must be multiply of 4398046511104)
+ * @return the next update stage
+ */
+ Update withSize(Long size);
+ }
+
+ /**
+ * The stage of the capacitypool update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CapacityPoolNetAppAccountBackup.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CapacityPoolNetAppAccountBackup.java
new file mode 100644
index 0000000000000..86b5df7cabe69
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CapacityPoolNetAppAccountBackup.java
@@ -0,0 +1,175 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.BackupInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppManager;
+import java.util.Map;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing CapacityPoolNetAppAccountBackup.
+ */
+public interface CapacityPoolNetAppAccountBackup extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the backupId value.
+ */
+ String backupId();
+
+ /**
+ * @return the backupType value.
+ */
+ String backupType();
+
+ /**
+ * @return the creationDate value.
+ */
+ DateTime creationDate();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the label value.
+ */
+ String label();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the size value.
+ */
+ Long size();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the CapacityPoolNetAppAccountBackup definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithVolume, DefinitionStages.WithLocation, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of CapacityPoolNetAppAccountBackup definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a CapacityPoolNetAppAccountBackup definition.
+ */
+ interface Blank extends WithVolume {
+ }
+
+ /**
+ * The stage of the capacitypoolnetappaccountbackup definition allowing to specify Volume.
+ */
+ interface WithVolume {
+ /**
+ * Specifies resourceGroupName, accountName, poolName, volumeName.
+ * @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
+ * @return the next definition stage
+ */
+ WithLocation withExistingVolume(String resourceGroupName, String accountName, String poolName, String volumeName);
+ }
+
+ /**
+ * The stage of the capacitypoolnetappaccountbackup definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Resource location
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the capacitypoolnetappaccountbackup definition allowing to specify Label.
+ */
+ interface WithLabel {
+ /**
+ * Specifies label.
+ * @param label Label for backup
+ * @return the next definition stage
+ */
+ WithCreate withLabel(String label);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithLabel {
+ }
+ }
+ /**
+ * The template for a CapacityPoolNetAppAccountBackup update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithLabel, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of CapacityPoolNetAppAccountBackup update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the capacitypoolnetappaccountbackup update allowing to specify Label.
+ */
+ interface WithLabel {
+ /**
+ * Specifies label.
+ * @param label Label for backup
+ * @return the next update stage
+ */
+ Update withLabel(String label);
+ }
+
+ /**
+ * The stage of the capacitypoolnetappaccountbackup update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags Resource tags
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CapacityPoolPatch.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CapacityPoolPatch.java
new file mode 100644
index 0000000000000..71c659278ab76
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CapacityPoolPatch.java
@@ -0,0 +1,75 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * Capacity pool patch resource.
+ */
+@JsonFlatten
+public class CapacityPoolPatch extends Resource {
+ /**
+ * size.
+ * Provisioned size of the pool (in bytes). Allowed values are in 4TiB
+ * chunks (value must be multiply of 4398046511104).
+ */
+ @JsonProperty(value = "properties.size")
+ private Long size;
+
+ /**
+ * qosType.
+ * The qos type of the pool. Possible values include: 'Auto', 'Manual'.
+ */
+ @JsonProperty(value = "properties.qosType")
+ private QosType qosType;
+
+ /**
+ * Get 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 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 CapacityPoolPatch object itself.
+ */
+ public CapacityPoolPatch withSize(Long size) {
+ this.size = size;
+ return this;
+ }
+
+ /**
+ * Get the qos type of the pool. Possible values include: 'Auto', 'Manual'.
+ *
+ * @return the qosType value
+ */
+ public QosType qosType() {
+ return this.qosType;
+ }
+
+ /**
+ * Set the qos type of the pool. Possible values include: 'Auto', 'Manual'.
+ *
+ * @param qosType the qosType value to set
+ * @return the CapacityPoolPatch object itself.
+ */
+ public CapacityPoolPatch withQosType(QosType qosType) {
+ this.qosType = qosType;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CheckAvailabilityResponse.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CheckAvailabilityResponse.java
new file mode 100644
index 0000000000000..b58f127b21d4e
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CheckAvailabilityResponse.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.CheckAvailabilityResponseInner;
+
+/**
+ * Type representing CheckAvailabilityResponse.
+ */
+public interface CheckAvailabilityResponse extends HasInner, HasManager {
+ /**
+ * @return the isAvailable value.
+ */
+ Boolean isAvailable();
+
+ /**
+ * @return the message value.
+ */
+ String message();
+
+ /**
+ * @return the reason value.
+ */
+ InAvailabilityReasonType reason();
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CheckNameResourceTypes.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CheckNameResourceTypes.java
new file mode 100644
index 0000000000000..73465bdfe2ad7
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CheckNameResourceTypes.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for CheckNameResourceTypes.
+ */
+public final class CheckNameResourceTypes extends ExpandableStringEnum {
+ /** Static value Microsoft.NetApp/netAppAccounts for CheckNameResourceTypes. */
+ public static final CheckNameResourceTypes MICROSOFT_NET_APPNET_APP_ACCOUNTS = fromString("Microsoft.NetApp/netAppAccounts");
+
+ /** Static value Microsoft.NetApp/netAppAccounts/capacityPools for CheckNameResourceTypes. */
+ public static final CheckNameResourceTypes MICROSOFT_NET_APPNET_APP_ACCOUNTSCAPACITY_POOLS = fromString("Microsoft.NetApp/netAppAccounts/capacityPools");
+
+ /** Static value Microsoft.NetApp/netAppAccounts/capacityPools/volumes for CheckNameResourceTypes. */
+ public static final CheckNameResourceTypes MICROSOFT_NET_APPNET_APP_ACCOUNTSCAPACITY_POOLSVOLUMES = fromString("Microsoft.NetApp/netAppAccounts/capacityPools/volumes");
+
+ /** Static value Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots for CheckNameResourceTypes. */
+ public static final CheckNameResourceTypes MICROSOFT_NET_APPNET_APP_ACCOUNTSCAPACITY_POOLSVOLUMESSNAPSHOTS = fromString("Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots");
+
+ /**
+ * Creates or finds a CheckNameResourceTypes from its string representation.
+ * @param name a name to look for
+ * @return the corresponding CheckNameResourceTypes
+ */
+ @JsonCreator
+ public static CheckNameResourceTypes fromString(String name) {
+ return fromString(name, CheckNameResourceTypes.class);
+ }
+
+ /**
+ * @return known CheckNameResourceTypes values
+ */
+ public static Collection values() {
+ return values(CheckNameResourceTypes.class);
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CheckQuotaNameResourceTypes.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CheckQuotaNameResourceTypes.java
new file mode 100644
index 0000000000000..a4bd097a50a07
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/CheckQuotaNameResourceTypes.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for CheckQuotaNameResourceTypes.
+ */
+public final class CheckQuotaNameResourceTypes extends ExpandableStringEnum {
+ /** Static value Microsoft.NetApp/netAppAccounts for CheckQuotaNameResourceTypes. */
+ public static final CheckQuotaNameResourceTypes MICROSOFT_NET_APPNET_APP_ACCOUNTS = fromString("Microsoft.NetApp/netAppAccounts");
+
+ /** Static value Microsoft.NetApp/netAppAccounts/capacityPools for CheckQuotaNameResourceTypes. */
+ public static final CheckQuotaNameResourceTypes MICROSOFT_NET_APPNET_APP_ACCOUNTSCAPACITY_POOLS = fromString("Microsoft.NetApp/netAppAccounts/capacityPools");
+
+ /** Static value Microsoft.NetApp/netAppAccounts/capacityPools/volumes for CheckQuotaNameResourceTypes. */
+ public static final CheckQuotaNameResourceTypes MICROSOFT_NET_APPNET_APP_ACCOUNTSCAPACITY_POOLSVOLUMES = fromString("Microsoft.NetApp/netAppAccounts/capacityPools/volumes");
+
+ /** Static value Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots for CheckQuotaNameResourceTypes. */
+ public static final CheckQuotaNameResourceTypes MICROSOFT_NET_APPNET_APP_ACCOUNTSCAPACITY_POOLSVOLUMESSNAPSHOTS = fromString("Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots");
+
+ /**
+ * Creates or finds a CheckQuotaNameResourceTypes from its string representation.
+ * @param name a name to look for
+ * @return the corresponding CheckQuotaNameResourceTypes
+ */
+ @JsonCreator
+ public static CheckQuotaNameResourceTypes fromString(String name) {
+ return fromString(name, CheckQuotaNameResourceTypes.class);
+ }
+
+ /**
+ * @return known CheckQuotaNameResourceTypes values
+ */
+ public static Collection values() {
+ return values(CheckQuotaNameResourceTypes.class);
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/DailySchedule.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/DailySchedule.java
new file mode 100644
index 0000000000000..81bf28672f497
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/DailySchedule.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Daily Schedule properties.
+ */
+public class DailySchedule {
+ /**
+ * Daily snapshot count to keep.
+ */
+ @JsonProperty(value = "snapshotsToKeep")
+ private Integer snapshotsToKeep;
+
+ /**
+ * Indicates which hour in UTC timezone a snapshot should be taken.
+ */
+ @JsonProperty(value = "hour")
+ private Integer hour;
+
+ /**
+ * Indicates which minute snapshot should be taken.
+ */
+ @JsonProperty(value = "minute")
+ private Integer minute;
+
+ /**
+ * Resource size in bytes, current storage usage for the volume in bytes.
+ */
+ @JsonProperty(value = "usedBytes")
+ private Long usedBytes;
+
+ /**
+ * Get daily snapshot count to keep.
+ *
+ * @return the snapshotsToKeep value
+ */
+ public Integer snapshotsToKeep() {
+ return this.snapshotsToKeep;
+ }
+
+ /**
+ * Set daily snapshot count to keep.
+ *
+ * @param snapshotsToKeep the snapshotsToKeep value to set
+ * @return the DailySchedule object itself.
+ */
+ public DailySchedule withSnapshotsToKeep(Integer snapshotsToKeep) {
+ this.snapshotsToKeep = snapshotsToKeep;
+ return this;
+ }
+
+ /**
+ * Get indicates which hour in UTC timezone a snapshot should be taken.
+ *
+ * @return the hour value
+ */
+ public Integer hour() {
+ return this.hour;
+ }
+
+ /**
+ * Set indicates which hour in UTC timezone a snapshot should be taken.
+ *
+ * @param hour the hour value to set
+ * @return the DailySchedule object itself.
+ */
+ public DailySchedule withHour(Integer hour) {
+ this.hour = hour;
+ return this;
+ }
+
+ /**
+ * Get indicates which minute snapshot should be taken.
+ *
+ * @return the minute value
+ */
+ public Integer minute() {
+ return this.minute;
+ }
+
+ /**
+ * Set indicates which minute snapshot should be taken.
+ *
+ * @param minute the minute value to set
+ * @return the DailySchedule object itself.
+ */
+ public DailySchedule withMinute(Integer minute) {
+ this.minute = minute;
+ return this;
+ }
+
+ /**
+ * Get resource size in bytes, current storage usage for the volume in bytes.
+ *
+ * @return the usedBytes value
+ */
+ public Long usedBytes() {
+ return this.usedBytes;
+ }
+
+ /**
+ * Set resource size in bytes, current storage usage for the volume in bytes.
+ *
+ * @param usedBytes the usedBytes value to set
+ * @return the DailySchedule object itself.
+ */
+ public DailySchedule withUsedBytes(Long usedBytes) {
+ this.usedBytes = usedBytes;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Dimension.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Dimension.java
new file mode 100644
index 0000000000000..9b341e34368d7
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Dimension.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Dimension of blobs, possibly be blob type or access tier.
+ */
+public class Dimension {
+ /**
+ * Display name of dimension.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Display name of dimension.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Get display name of dimension.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set display name of dimension.
+ *
+ * @param name the name value to set
+ * @return the Dimension object itself.
+ */
+ public Dimension withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get display name of dimension.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set display name of dimension.
+ *
+ * @param displayName the displayName value to set
+ * @return the Dimension object itself.
+ */
+ public Dimension withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/EndpointType.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/EndpointType.java
new file mode 100644
index 0000000000000..eee0f3af94f9b
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/EndpointType.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for EndpointType.
+ */
+public final class EndpointType extends ExpandableStringEnum {
+ /** Static value src for EndpointType. */
+ public static final EndpointType SRC = fromString("src");
+
+ /** Static value dst for EndpointType. */
+ public static final EndpointType DST = fromString("dst");
+
+ /**
+ * Creates or finds a EndpointType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding EndpointType
+ */
+ @JsonCreator
+ public static EndpointType fromString(String name) {
+ return fromString(name, EndpointType.class);
+ }
+
+ /**
+ * @return known EndpointType values
+ */
+ public static Collection values() {
+ return values(EndpointType.class);
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ExportPolicyRule.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ExportPolicyRule.java
new file mode 100644
index 0000000000000..ffab4191c6ed9
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ExportPolicyRule.java
@@ -0,0 +1,388 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Volume Export Policy Rule.
+ */
+public class ExportPolicyRule {
+ /**
+ * Order index.
+ */
+ @JsonProperty(value = "ruleIndex")
+ private Integer ruleIndex;
+
+ /**
+ * Read only access.
+ */
+ @JsonProperty(value = "unixReadOnly")
+ private Boolean unixReadOnly;
+
+ /**
+ * Read and write access.
+ */
+ @JsonProperty(value = "unixReadWrite")
+ private Boolean unixReadWrite;
+
+ /**
+ * Kerberos5 Read only access. To be use with swagger version 2020-05-01 or
+ * later.
+ */
+ @JsonProperty(value = "kerberos5ReadOnly")
+ private Boolean kerberos5ReadOnly;
+
+ /**
+ * Kerberos5 Read and write access. To be use with swagger version
+ * 2020-05-01 or later.
+ */
+ @JsonProperty(value = "kerberos5ReadWrite")
+ private Boolean kerberos5ReadWrite;
+
+ /**
+ * Kerberos5i Read only access. To be use with swagger version 2020-05-01
+ * or later.
+ */
+ @JsonProperty(value = "kerberos5iReadOnly")
+ private Boolean kerberos5iReadOnly;
+
+ /**
+ * Kerberos5i Read and write access. To be use with swagger version
+ * 2020-05-01 or later.
+ */
+ @JsonProperty(value = "kerberos5iReadWrite")
+ private Boolean kerberos5iReadWrite;
+
+ /**
+ * Kerberos5p Read only access. To be use with swagger version 2020-05-01
+ * or later.
+ */
+ @JsonProperty(value = "kerberos5pReadOnly")
+ private Boolean kerberos5pReadOnly;
+
+ /**
+ * Kerberos5p Read and write access. To be use with swagger version
+ * 2020-05-01 or later.
+ */
+ @JsonProperty(value = "kerberos5pReadWrite")
+ private Boolean kerberos5pReadWrite;
+
+ /**
+ * Allows CIFS protocol.
+ */
+ @JsonProperty(value = "cifs")
+ private Boolean cifs;
+
+ /**
+ * Allows NFSv3 protocol. Enable only for NFSv3 type volumes.
+ */
+ @JsonProperty(value = "nfsv3")
+ private Boolean nfsv3;
+
+ /**
+ * Allows NFSv4.1 protocol. Enable only for NFSv4.1 type volumes.
+ */
+ @JsonProperty(value = "nfsv41")
+ private Boolean nfsv41;
+
+ /**
+ * Client ingress specification as comma separated string with IPv4 CIDRs,
+ * IPv4 host addresses and host names.
+ */
+ @JsonProperty(value = "allowedClients")
+ private String allowedClients;
+
+ /**
+ * Has root access to volume.
+ */
+ @JsonProperty(value = "hasRootAccess")
+ private Boolean hasRootAccess;
+
+ /**
+ * Get order index.
+ *
+ * @return the ruleIndex value
+ */
+ public Integer ruleIndex() {
+ return this.ruleIndex;
+ }
+
+ /**
+ * Set order index.
+ *
+ * @param ruleIndex the ruleIndex value to set
+ * @return the ExportPolicyRule object itself.
+ */
+ public ExportPolicyRule withRuleIndex(Integer ruleIndex) {
+ this.ruleIndex = ruleIndex;
+ return this;
+ }
+
+ /**
+ * Get read only access.
+ *
+ * @return the unixReadOnly value
+ */
+ public Boolean unixReadOnly() {
+ return this.unixReadOnly;
+ }
+
+ /**
+ * Set read only access.
+ *
+ * @param unixReadOnly the unixReadOnly value to set
+ * @return the ExportPolicyRule object itself.
+ */
+ public ExportPolicyRule withUnixReadOnly(Boolean unixReadOnly) {
+ this.unixReadOnly = unixReadOnly;
+ return this;
+ }
+
+ /**
+ * Get read and write access.
+ *
+ * @return the unixReadWrite value
+ */
+ public Boolean unixReadWrite() {
+ return this.unixReadWrite;
+ }
+
+ /**
+ * Set read and write access.
+ *
+ * @param unixReadWrite the unixReadWrite value to set
+ * @return the ExportPolicyRule object itself.
+ */
+ public ExportPolicyRule withUnixReadWrite(Boolean unixReadWrite) {
+ this.unixReadWrite = unixReadWrite;
+ return this;
+ }
+
+ /**
+ * Get kerberos5 Read only access. To be use with swagger version 2020-05-01 or later.
+ *
+ * @return the kerberos5ReadOnly value
+ */
+ public Boolean kerberos5ReadOnly() {
+ return this.kerberos5ReadOnly;
+ }
+
+ /**
+ * Set kerberos5 Read only access. To be use with swagger version 2020-05-01 or later.
+ *
+ * @param kerberos5ReadOnly the kerberos5ReadOnly value to set
+ * @return the ExportPolicyRule object itself.
+ */
+ public ExportPolicyRule withKerberos5ReadOnly(Boolean kerberos5ReadOnly) {
+ this.kerberos5ReadOnly = kerberos5ReadOnly;
+ return this;
+ }
+
+ /**
+ * Get kerberos5 Read and write access. To be use with swagger version 2020-05-01 or later.
+ *
+ * @return the kerberos5ReadWrite value
+ */
+ public Boolean kerberos5ReadWrite() {
+ return this.kerberos5ReadWrite;
+ }
+
+ /**
+ * Set kerberos5 Read and write access. To be use with swagger version 2020-05-01 or later.
+ *
+ * @param kerberos5ReadWrite the kerberos5ReadWrite value to set
+ * @return the ExportPolicyRule object itself.
+ */
+ public ExportPolicyRule withKerberos5ReadWrite(Boolean kerberos5ReadWrite) {
+ this.kerberos5ReadWrite = kerberos5ReadWrite;
+ return this;
+ }
+
+ /**
+ * Get kerberos5i Read only access. To be use with swagger version 2020-05-01 or later.
+ *
+ * @return the kerberos5iReadOnly value
+ */
+ public Boolean kerberos5iReadOnly() {
+ return this.kerberos5iReadOnly;
+ }
+
+ /**
+ * Set kerberos5i Read only access. To be use with swagger version 2020-05-01 or later.
+ *
+ * @param kerberos5iReadOnly the kerberos5iReadOnly value to set
+ * @return the ExportPolicyRule object itself.
+ */
+ public ExportPolicyRule withKerberos5iReadOnly(Boolean kerberos5iReadOnly) {
+ this.kerberos5iReadOnly = kerberos5iReadOnly;
+ return this;
+ }
+
+ /**
+ * Get kerberos5i Read and write access. To be use with swagger version 2020-05-01 or later.
+ *
+ * @return the kerberos5iReadWrite value
+ */
+ public Boolean kerberos5iReadWrite() {
+ return this.kerberos5iReadWrite;
+ }
+
+ /**
+ * Set kerberos5i Read and write access. To be use with swagger version 2020-05-01 or later.
+ *
+ * @param kerberos5iReadWrite the kerberos5iReadWrite value to set
+ * @return the ExportPolicyRule object itself.
+ */
+ public ExportPolicyRule withKerberos5iReadWrite(Boolean kerberos5iReadWrite) {
+ this.kerberos5iReadWrite = kerberos5iReadWrite;
+ return this;
+ }
+
+ /**
+ * Get kerberos5p Read only access. To be use with swagger version 2020-05-01 or later.
+ *
+ * @return the kerberos5pReadOnly value
+ */
+ public Boolean kerberos5pReadOnly() {
+ return this.kerberos5pReadOnly;
+ }
+
+ /**
+ * Set kerberos5p Read only access. To be use with swagger version 2020-05-01 or later.
+ *
+ * @param kerberos5pReadOnly the kerberos5pReadOnly value to set
+ * @return the ExportPolicyRule object itself.
+ */
+ public ExportPolicyRule withKerberos5pReadOnly(Boolean kerberos5pReadOnly) {
+ this.kerberos5pReadOnly = kerberos5pReadOnly;
+ return this;
+ }
+
+ /**
+ * Get kerberos5p Read and write access. To be use with swagger version 2020-05-01 or later.
+ *
+ * @return the kerberos5pReadWrite value
+ */
+ public Boolean kerberos5pReadWrite() {
+ return this.kerberos5pReadWrite;
+ }
+
+ /**
+ * Set kerberos5p Read and write access. To be use with swagger version 2020-05-01 or later.
+ *
+ * @param kerberos5pReadWrite the kerberos5pReadWrite value to set
+ * @return the ExportPolicyRule object itself.
+ */
+ public ExportPolicyRule withKerberos5pReadWrite(Boolean kerberos5pReadWrite) {
+ this.kerberos5pReadWrite = kerberos5pReadWrite;
+ return this;
+ }
+
+ /**
+ * Get allows CIFS protocol.
+ *
+ * @return the cifs value
+ */
+ public Boolean cifs() {
+ return this.cifs;
+ }
+
+ /**
+ * Set allows CIFS protocol.
+ *
+ * @param cifs the cifs value to set
+ * @return the ExportPolicyRule object itself.
+ */
+ public ExportPolicyRule withCifs(Boolean cifs) {
+ this.cifs = cifs;
+ return this;
+ }
+
+ /**
+ * Get allows NFSv3 protocol. Enable only for NFSv3 type volumes.
+ *
+ * @return the nfsv3 value
+ */
+ public Boolean nfsv3() {
+ return this.nfsv3;
+ }
+
+ /**
+ * Set allows NFSv3 protocol. Enable only for NFSv3 type volumes.
+ *
+ * @param nfsv3 the nfsv3 value to set
+ * @return the ExportPolicyRule object itself.
+ */
+ public ExportPolicyRule withNfsv3(Boolean nfsv3) {
+ this.nfsv3 = nfsv3;
+ return this;
+ }
+
+ /**
+ * Get allows NFSv4.1 protocol. Enable only for NFSv4.1 type volumes.
+ *
+ * @return the nfsv41 value
+ */
+ public Boolean nfsv41() {
+ return this.nfsv41;
+ }
+
+ /**
+ * Set allows NFSv4.1 protocol. Enable only for NFSv4.1 type volumes.
+ *
+ * @param nfsv41 the nfsv41 value to set
+ * @return the ExportPolicyRule object itself.
+ */
+ public ExportPolicyRule withNfsv41(Boolean nfsv41) {
+ this.nfsv41 = nfsv41;
+ return this;
+ }
+
+ /**
+ * Get client ingress specification as comma separated string with IPv4 CIDRs, IPv4 host addresses and host names.
+ *
+ * @return the allowedClients value
+ */
+ public String allowedClients() {
+ return this.allowedClients;
+ }
+
+ /**
+ * Set client ingress specification as comma separated string with IPv4 CIDRs, IPv4 host addresses and host names.
+ *
+ * @param allowedClients the allowedClients value to set
+ * @return the ExportPolicyRule object itself.
+ */
+ public ExportPolicyRule withAllowedClients(String allowedClients) {
+ this.allowedClients = allowedClients;
+ return this;
+ }
+
+ /**
+ * Get has root access to volume.
+ *
+ * @return the hasRootAccess value
+ */
+ public Boolean hasRootAccess() {
+ return this.hasRootAccess;
+ }
+
+ /**
+ * Set has root access to volume.
+ *
+ * @param hasRootAccess the hasRootAccess value to set
+ * @return the ExportPolicyRule object itself.
+ */
+ public ExportPolicyRule withHasRootAccess(Boolean hasRootAccess) {
+ this.hasRootAccess = hasRootAccess;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/HourlySchedule.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/HourlySchedule.java
new file mode 100644
index 0000000000000..cfb30070d49ef
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/HourlySchedule.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Hourly Schedule properties.
+ */
+public class HourlySchedule {
+ /**
+ * Hourly snapshot count to keep.
+ */
+ @JsonProperty(value = "snapshotsToKeep")
+ private Integer snapshotsToKeep;
+
+ /**
+ * Indicates which minute snapshot should be taken.
+ */
+ @JsonProperty(value = "minute")
+ private Integer minute;
+
+ /**
+ * Resource size in bytes, current storage usage for the volume in bytes.
+ */
+ @JsonProperty(value = "usedBytes")
+ private Long usedBytes;
+
+ /**
+ * Get hourly snapshot count to keep.
+ *
+ * @return the snapshotsToKeep value
+ */
+ public Integer snapshotsToKeep() {
+ return this.snapshotsToKeep;
+ }
+
+ /**
+ * Set hourly snapshot count to keep.
+ *
+ * @param snapshotsToKeep the snapshotsToKeep value to set
+ * @return the HourlySchedule object itself.
+ */
+ public HourlySchedule withSnapshotsToKeep(Integer snapshotsToKeep) {
+ this.snapshotsToKeep = snapshotsToKeep;
+ return this;
+ }
+
+ /**
+ * Get indicates which minute snapshot should be taken.
+ *
+ * @return the minute value
+ */
+ public Integer minute() {
+ return this.minute;
+ }
+
+ /**
+ * Set indicates which minute snapshot should be taken.
+ *
+ * @param minute the minute value to set
+ * @return the HourlySchedule object itself.
+ */
+ public HourlySchedule withMinute(Integer minute) {
+ this.minute = minute;
+ return this;
+ }
+
+ /**
+ * Get resource size in bytes, current storage usage for the volume in bytes.
+ *
+ * @return the usedBytes value
+ */
+ public Long usedBytes() {
+ return this.usedBytes;
+ }
+
+ /**
+ * Set resource size in bytes, current storage usage for the volume in bytes.
+ *
+ * @param usedBytes the usedBytes value to set
+ * @return the HourlySchedule object itself.
+ */
+ public HourlySchedule withUsedBytes(Long usedBytes) {
+ this.usedBytes = usedBytes;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/InAvailabilityReasonType.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/InAvailabilityReasonType.java
new file mode 100644
index 0000000000000..6b4d8c5433407
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/InAvailabilityReasonType.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for InAvailabilityReasonType.
+ */
+public final class InAvailabilityReasonType extends ExpandableStringEnum {
+ /** Static value Invalid for InAvailabilityReasonType. */
+ public static final InAvailabilityReasonType INVALID = fromString("Invalid");
+
+ /** Static value AlreadyExists for InAvailabilityReasonType. */
+ public static final InAvailabilityReasonType ALREADY_EXISTS = fromString("AlreadyExists");
+
+ /**
+ * Creates or finds a InAvailabilityReasonType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding InAvailabilityReasonType
+ */
+ @JsonCreator
+ public static InAvailabilityReasonType fromString(String name) {
+ return fromString(name, InAvailabilityReasonType.class);
+ }
+
+ /**
+ * @return known InAvailabilityReasonType values
+ */
+ public static Collection values() {
+ return values(InAvailabilityReasonType.class);
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MetricSpecification.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MetricSpecification.java
new file mode 100644
index 0000000000000..afb348ecee967
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MetricSpecification.java
@@ -0,0 +1,252 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Metric specification of operation.
+ */
+public class MetricSpecification {
+ /**
+ * Name of metric specification.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Display name of metric specification.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Display description of metric specification.
+ */
+ @JsonProperty(value = "displayDescription")
+ private String displayDescription;
+
+ /**
+ * Unit could be Bytes or Count.
+ */
+ @JsonProperty(value = "unit")
+ private String unit;
+
+ /**
+ * Dimensions of blobs, including blob type and access tier.
+ */
+ @JsonProperty(value = "dimensions")
+ private List dimensions;
+
+ /**
+ * Aggregation type could be Average.
+ */
+ @JsonProperty(value = "aggregationType")
+ private String aggregationType;
+
+ /**
+ * The property to decide fill gap with zero or not.
+ */
+ @JsonProperty(value = "fillGapWithZero")
+ private Boolean fillGapWithZero;
+
+ /**
+ * The category this metric specification belong to, could be Capacity.
+ */
+ @JsonProperty(value = "category")
+ private String category;
+
+ /**
+ * Account Resource Id.
+ */
+ @JsonProperty(value = "resourceIdDimensionNameOverride")
+ private String resourceIdDimensionNameOverride;
+
+ /**
+ * Get name of metric specification.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of metric specification.
+ *
+ * @param name the name value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get display name of metric specification.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set display name of metric specification.
+ *
+ * @param displayName the displayName value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get display description of metric specification.
+ *
+ * @return the displayDescription value
+ */
+ public String displayDescription() {
+ return this.displayDescription;
+ }
+
+ /**
+ * Set display description of metric specification.
+ *
+ * @param displayDescription the displayDescription value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withDisplayDescription(String displayDescription) {
+ this.displayDescription = displayDescription;
+ return this;
+ }
+
+ /**
+ * Get unit could be Bytes or Count.
+ *
+ * @return the unit value
+ */
+ public String unit() {
+ return this.unit;
+ }
+
+ /**
+ * Set unit could be Bytes or Count.
+ *
+ * @param unit the unit value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withUnit(String unit) {
+ this.unit = unit;
+ return this;
+ }
+
+ /**
+ * Get dimensions of blobs, including blob type and access tier.
+ *
+ * @return the dimensions value
+ */
+ public List dimensions() {
+ return this.dimensions;
+ }
+
+ /**
+ * Set dimensions of blobs, including blob type and access tier.
+ *
+ * @param dimensions the dimensions value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withDimensions(List dimensions) {
+ this.dimensions = dimensions;
+ return this;
+ }
+
+ /**
+ * Get aggregation type could be Average.
+ *
+ * @return the aggregationType value
+ */
+ public String aggregationType() {
+ return this.aggregationType;
+ }
+
+ /**
+ * Set aggregation type could be Average.
+ *
+ * @param aggregationType the aggregationType value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withAggregationType(String aggregationType) {
+ this.aggregationType = aggregationType;
+ return this;
+ }
+
+ /**
+ * Get the property to decide fill gap with zero or not.
+ *
+ * @return the fillGapWithZero value
+ */
+ public Boolean fillGapWithZero() {
+ return this.fillGapWithZero;
+ }
+
+ /**
+ * Set the property to decide fill gap with zero or not.
+ *
+ * @param fillGapWithZero the fillGapWithZero value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withFillGapWithZero(Boolean fillGapWithZero) {
+ this.fillGapWithZero = fillGapWithZero;
+ return this;
+ }
+
+ /**
+ * Get the category this metric specification belong to, could be Capacity.
+ *
+ * @return the category value
+ */
+ public String category() {
+ return this.category;
+ }
+
+ /**
+ * Set the category this metric specification belong to, could be Capacity.
+ *
+ * @param category the category value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withCategory(String category) {
+ this.category = category;
+ return this;
+ }
+
+ /**
+ * Get account Resource Id.
+ *
+ * @return the resourceIdDimensionNameOverride value
+ */
+ public String resourceIdDimensionNameOverride() {
+ return this.resourceIdDimensionNameOverride;
+ }
+
+ /**
+ * Set account Resource Id.
+ *
+ * @param resourceIdDimensionNameOverride the resourceIdDimensionNameOverride value to set
+ * @return the MetricSpecification object itself.
+ */
+ public MetricSpecification withResourceIdDimensionNameOverride(String resourceIdDimensionNameOverride) {
+ this.resourceIdDimensionNameOverride = resourceIdDimensionNameOverride;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MirrorState.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MirrorState.java
new file mode 100644
index 0000000000000..bf72556df13bf
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MirrorState.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for MirrorState.
+ */
+public final class MirrorState extends ExpandableStringEnum {
+ /** Static value Uninitialized for MirrorState. */
+ public static final MirrorState UNINITIALIZED = fromString("Uninitialized");
+
+ /** Static value Mirrored for MirrorState. */
+ public static final MirrorState MIRRORED = fromString("Mirrored");
+
+ /** Static value Broken for MirrorState. */
+ public static final MirrorState BROKEN = fromString("Broken");
+
+ /**
+ * Creates or finds a MirrorState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding MirrorState
+ */
+ @JsonCreator
+ public static MirrorState fromString(String name) {
+ return fromString(name, MirrorState.class);
+ }
+
+ /**
+ * @return known MirrorState values
+ */
+ public static Collection values() {
+ return values(MirrorState.class);
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MonthlySchedule.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MonthlySchedule.java
new file mode 100644
index 0000000000000..37a63eadd8904
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MonthlySchedule.java
@@ -0,0 +1,148 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Monthly Schedule properties.
+ */
+public class MonthlySchedule {
+ /**
+ * Monthly snapshot count to keep.
+ */
+ @JsonProperty(value = "snapshotsToKeep")
+ private Integer snapshotsToKeep;
+
+ /**
+ * Indicates which days of the month snapshot should be taken. A comma
+ * delimited string.
+ */
+ @JsonProperty(value = "daysOfMonth")
+ private String daysOfMonth;
+
+ /**
+ * Indicates which hour in UTC timezone a snapshot should be taken.
+ */
+ @JsonProperty(value = "hour")
+ private Integer hour;
+
+ /**
+ * Indicates which minute snapshot should be taken.
+ */
+ @JsonProperty(value = "minute")
+ private Integer minute;
+
+ /**
+ * Resource size in bytes, current storage usage for the volume in bytes.
+ */
+ @JsonProperty(value = "usedBytes")
+ private Long usedBytes;
+
+ /**
+ * Get monthly snapshot count to keep.
+ *
+ * @return the snapshotsToKeep value
+ */
+ public Integer snapshotsToKeep() {
+ return this.snapshotsToKeep;
+ }
+
+ /**
+ * Set monthly snapshot count to keep.
+ *
+ * @param snapshotsToKeep the snapshotsToKeep value to set
+ * @return the MonthlySchedule object itself.
+ */
+ public MonthlySchedule withSnapshotsToKeep(Integer snapshotsToKeep) {
+ this.snapshotsToKeep = snapshotsToKeep;
+ return this;
+ }
+
+ /**
+ * Get indicates which days of the month snapshot should be taken. A comma delimited string.
+ *
+ * @return the daysOfMonth value
+ */
+ public String daysOfMonth() {
+ return this.daysOfMonth;
+ }
+
+ /**
+ * Set indicates which days of the month snapshot should be taken. A comma delimited string.
+ *
+ * @param daysOfMonth the daysOfMonth value to set
+ * @return the MonthlySchedule object itself.
+ */
+ public MonthlySchedule withDaysOfMonth(String daysOfMonth) {
+ this.daysOfMonth = daysOfMonth;
+ return this;
+ }
+
+ /**
+ * Get indicates which hour in UTC timezone a snapshot should be taken.
+ *
+ * @return the hour value
+ */
+ public Integer hour() {
+ return this.hour;
+ }
+
+ /**
+ * Set indicates which hour in UTC timezone a snapshot should be taken.
+ *
+ * @param hour the hour value to set
+ * @return the MonthlySchedule object itself.
+ */
+ public MonthlySchedule withHour(Integer hour) {
+ this.hour = hour;
+ return this;
+ }
+
+ /**
+ * Get indicates which minute snapshot should be taken.
+ *
+ * @return the minute value
+ */
+ public Integer minute() {
+ return this.minute;
+ }
+
+ /**
+ * Set indicates which minute snapshot should be taken.
+ *
+ * @param minute the minute value to set
+ * @return the MonthlySchedule object itself.
+ */
+ public MonthlySchedule withMinute(Integer minute) {
+ this.minute = minute;
+ return this;
+ }
+
+ /**
+ * Get resource size in bytes, current storage usage for the volume in bytes.
+ *
+ * @return the usedBytes value
+ */
+ public Long usedBytes() {
+ return this.usedBytes;
+ }
+
+ /**
+ * Set resource size in bytes, current storage usage for the volume in bytes.
+ *
+ * @param usedBytes the usedBytes value to set
+ * @return the MonthlySchedule object itself.
+ */
+ public MonthlySchedule withUsedBytes(Long usedBytes) {
+ this.usedBytes = usedBytes;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MountTarget.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MountTarget.java
new file mode 100644
index 0000000000000..4fcc999059d36
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MountTarget.java
@@ -0,0 +1,203 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Mount Target.
+ */
+@JsonFlatten
+public class MountTarget {
+ /**
+ * Resource location.
+ */
+ @JsonProperty(value = "location", required = true)
+ private String location;
+
+ /**
+ * Resource Id.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * Resource name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * Resource type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /**
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * mountTargetId.
+ * UUID v4 used to identify the MountTarget.
+ */
+ @JsonProperty(value = "properties.mountTargetId", access = JsonProperty.Access.WRITE_ONLY)
+ private String mountTargetId;
+
+ /**
+ * fileSystemId.
+ * UUID v4 used to identify the MountTarget.
+ */
+ @JsonProperty(value = "properties.fileSystemId", required = true)
+ private String fileSystemId;
+
+ /**
+ * ipAddress.
+ * The mount target's IPv4 address.
+ */
+ @JsonProperty(value = "properties.ipAddress", access = JsonProperty.Access.WRITE_ONLY)
+ private String ipAddress;
+
+ /**
+ * smbServerFQDN.
+ * The SMB server's Fully Qualified Domain Name, FQDN.
+ */
+ @JsonProperty(value = "properties.smbServerFqdn")
+ private String smbServerFqdn;
+
+ /**
+ * Get resource location.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set resource location.
+ *
+ * @param location the location value to set
+ * @return the MountTarget object itself.
+ */
+ public MountTarget withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get resource Id.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get resource name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get resource type.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get resource tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set resource tags.
+ *
+ * @param tags the tags value to set
+ * @return the MountTarget object itself.
+ */
+ public MountTarget withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get uUID v4 used to identify the MountTarget.
+ *
+ * @return the mountTargetId value
+ */
+ public String mountTargetId() {
+ return this.mountTargetId;
+ }
+
+ /**
+ * Get uUID v4 used to identify the MountTarget.
+ *
+ * @return the fileSystemId value
+ */
+ public String fileSystemId() {
+ return this.fileSystemId;
+ }
+
+ /**
+ * Set uUID v4 used to identify the MountTarget.
+ *
+ * @param fileSystemId the fileSystemId value to set
+ * @return the MountTarget object itself.
+ */
+ public MountTarget withFileSystemId(String fileSystemId) {
+ this.fileSystemId = fileSystemId;
+ return this;
+ }
+
+ /**
+ * Get the mount target's IPv4 address.
+ *
+ * @return the ipAddress value
+ */
+ public String ipAddress() {
+ return this.ipAddress;
+ }
+
+ /**
+ * Get the SMB server's Fully Qualified Domain Name, FQDN.
+ *
+ * @return the smbServerFqdn value
+ */
+ public String smbServerFqdn() {
+ return this.smbServerFqdn;
+ }
+
+ /**
+ * Set the SMB server's Fully Qualified Domain Name, FQDN.
+ *
+ * @param smbServerFqdn the smbServerFqdn value to set
+ * @return the MountTarget object itself.
+ */
+ public MountTarget withSmbServerFqdn(String smbServerFqdn) {
+ this.smbServerFqdn = smbServerFqdn;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MountTargetProperties.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MountTargetProperties.java
new file mode 100644
index 0000000000000..914dafe42c52b
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/MountTargetProperties.java
@@ -0,0 +1,103 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Mount target properties.
+ */
+public class MountTargetProperties {
+ /**
+ * mountTargetId.
+ * UUID v4 used to identify the MountTarget.
+ */
+ @JsonProperty(value = "mountTargetId", access = JsonProperty.Access.WRITE_ONLY)
+ private String mountTargetId;
+
+ /**
+ * fileSystemId.
+ * UUID v4 used to identify the MountTarget.
+ */
+ @JsonProperty(value = "fileSystemId", required = true)
+ private String fileSystemId;
+
+ /**
+ * ipAddress.
+ * The mount target's IPv4 address.
+ */
+ @JsonProperty(value = "ipAddress", access = JsonProperty.Access.WRITE_ONLY)
+ private String ipAddress;
+
+ /**
+ * smbServerFQDN.
+ * The SMB server's Fully Qualified Domain Name, FQDN.
+ */
+ @JsonProperty(value = "smbServerFqdn")
+ private String smbServerFqdn;
+
+ /**
+ * Get uUID v4 used to identify the MountTarget.
+ *
+ * @return the mountTargetId value
+ */
+ public String mountTargetId() {
+ return this.mountTargetId;
+ }
+
+ /**
+ * Get uUID v4 used to identify the MountTarget.
+ *
+ * @return the fileSystemId value
+ */
+ public String fileSystemId() {
+ return this.fileSystemId;
+ }
+
+ /**
+ * Set uUID v4 used to identify the MountTarget.
+ *
+ * @param fileSystemId the fileSystemId value to set
+ * @return the MountTargetProperties object itself.
+ */
+ public MountTargetProperties withFileSystemId(String fileSystemId) {
+ this.fileSystemId = fileSystemId;
+ return this;
+ }
+
+ /**
+ * Get the mount target's IPv4 address.
+ *
+ * @return the ipAddress value
+ */
+ public String ipAddress() {
+ return this.ipAddress;
+ }
+
+ /**
+ * Get the SMB server's Fully Qualified Domain Name, FQDN.
+ *
+ * @return the smbServerFqdn value
+ */
+ public String smbServerFqdn() {
+ return this.smbServerFqdn;
+ }
+
+ /**
+ * Set the SMB server's Fully Qualified Domain Name, FQDN.
+ *
+ * @param smbServerFqdn the smbServerFqdn value to set
+ * @return the MountTargetProperties object itself.
+ */
+ public MountTargetProperties withSmbServerFqdn(String smbServerFqdn) {
+ this.smbServerFqdn = smbServerFqdn;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/NetAppAccount.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/NetAppAccount.java
new file mode 100644
index 0000000000000..34bf1893312b3
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/NetAppAccount.java
@@ -0,0 +1,103 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppManager;
+import java.util.List;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppAccountInner;
+
+/**
+ * Type representing NetAppAccount.
+ */
+public interface NetAppAccount extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the activeDirectories value.
+ */
+ List activeDirectories();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * The entirety of the NetAppAccount definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of NetAppAccount definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a NetAppAccount definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the NetAppAccount definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the netappaccount definition allowing to specify ActiveDirectories.
+ */
+ interface WithActiveDirectories {
+ /**
+ * Specifies activeDirectories.
+ * @param activeDirectories Active Directories
+ * @return the next definition stage
+ */
+ WithCreate withActiveDirectories(List activeDirectories);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, Resource.DefinitionWithTags, DefinitionStages.WithActiveDirectories {
+ }
+ }
+ /**
+ * The template for a NetAppAccount update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithActiveDirectories {
+ }
+
+ /**
+ * Grouping of NetAppAccount update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the netappaccount update allowing to specify ActiveDirectories.
+ */
+ interface WithActiveDirectories {
+ /**
+ * Specifies activeDirectories.
+ * @param activeDirectories Active Directories
+ * @return the next update stage
+ */
+ Update withActiveDirectories(List activeDirectories);
+ }
+
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/NetAppAccountBackup.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/NetAppAccountBackup.java
new file mode 100644
index 0000000000000..782087eb6a708
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/NetAppAccountBackup.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.BackupInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing NetAppAccountBackup.
+ */
+public interface NetAppAccountBackup extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the backupId value.
+ */
+ String backupId();
+
+ /**
+ * @return the backupType value.
+ */
+ String backupType();
+
+ /**
+ * @return the creationDate value.
+ */
+ DateTime creationDate();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the label value.
+ */
+ String label();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the size value.
+ */
+ Long size();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/NetAppAccountPatch.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/NetAppAccountPatch.java
new file mode 100644
index 0000000000000..6aa022fc4803f
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/NetAppAccountPatch.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * NetApp account patch resource.
+ */
+@JsonFlatten
+public class NetAppAccountPatch extends Resource {
+ /**
+ * Azure lifecycle management.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * Active Directories.
+ */
+ @JsonProperty(value = "properties.activeDirectories")
+ private List activeDirectories;
+
+ /**
+ * Get azure lifecycle management.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get active Directories.
+ *
+ * @return the activeDirectories value
+ */
+ public List activeDirectories() {
+ return this.activeDirectories;
+ }
+
+ /**
+ * Set active Directories.
+ *
+ * @param activeDirectories the activeDirectories value to set
+ * @return the NetAppAccountPatch object itself.
+ */
+ public NetAppAccountPatch withActiveDirectories(List activeDirectories) {
+ this.activeDirectories = activeDirectories;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/NetAppResources.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/NetAppResources.java
new file mode 100644
index 0000000000000..fcc1c202a216e
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/NetAppResources.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppResourcesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing NetAppResources.
+ */
+public interface NetAppResources extends HasInner {
+ /**
+ * Check resource name availability.
+ * Check if a resource name is available.
+ *
+ * @param location The location
+ * @param name Resource name to verify.
+ * @param type Resource type used for verification. Possible values include: 'Microsoft.NetApp/netAppAccounts', 'Microsoft.NetApp/netAppAccounts/capacityPools', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots'
+ * @param resourceGroup Resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkNameAvailabilityAsync(String location, String name, CheckNameResourceTypes type, String resourceGroup);
+
+ /**
+ * Check file path availability.
+ * Check if a file path is available.
+ *
+ * @param location The location
+ * @param name Resource name to verify.
+ * @param type Resource type used for verification. Possible values include: 'Microsoft.NetApp/netAppAccounts', 'Microsoft.NetApp/netAppAccounts/capacityPools', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots'
+ * @param resourceGroup Resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkFilePathAvailabilityAsync(String location, String name, CheckNameResourceTypes type, String resourceGroup);
+
+ /**
+ * Check quota availability.
+ * Check if a quota is available.
+ *
+ * @param location The location
+ * @param name Name of the resource to verify.
+ * @param type Resource type used for verification. Possible values include: 'Microsoft.NetApp/netAppAccounts', 'Microsoft.NetApp/netAppAccounts/capacityPools', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots'
+ * @param resourceGroup Resource group name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkQuotaAvailabilityAsync(String location, String name, CheckQuotaNameResourceTypes type, String resourceGroup);
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Operation.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Operation.java
new file mode 100644
index 0000000000000..2ba19e65f2fe9
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Operation.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.OperationInner;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDisplay display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the origin value.
+ */
+ String origin();
+
+ /**
+ * @return the serviceSpecification value.
+ */
+ ServiceSpecification serviceSpecification();
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/OperationDisplay.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/OperationDisplay.java
new file mode 100644
index 0000000000000..d7c82b59a4d16
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/OperationDisplay.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Display metadata associated with the operation.
+ */
+public class OperationDisplay {
+ /**
+ * Service provider: Microsoft NetApp.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * Resource on which the operation is performed etc.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * Type of operation: get, read, delete, etc.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * Operation description.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get service provider: Microsoft NetApp.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set service provider: Microsoft NetApp.
+ *
+ * @param provider the provider value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get resource on which the operation is performed etc.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set resource on which the operation is performed etc.
+ *
+ * @param resource the resource value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get type of operation: get, read, delete, etc.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set type of operation: get, read, delete, etc.
+ *
+ * @param operation the operation value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get operation description.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set operation description.
+ *
+ * @param description the description value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Operations.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Operations.java
new file mode 100644
index 0000000000000..05b76fd013077
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Operations.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Describes the Resource Provider.
+ * Lists all of the available Microsoft.NetApp Rest API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/PoolChangeRequest.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/PoolChangeRequest.java
new file mode 100644
index 0000000000000..c417850631b4f
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/PoolChangeRequest.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Pool change request.
+ */
+public class PoolChangeRequest {
+ /**
+ * Resource id of the pool to move volume to.
+ */
+ @JsonProperty(value = "newPoolResourceId", required = true)
+ private String newPoolResourceId;
+
+ /**
+ * Get resource id of the pool to move volume to.
+ *
+ * @return the newPoolResourceId value
+ */
+ public String newPoolResourceId() {
+ return this.newPoolResourceId;
+ }
+
+ /**
+ * Set resource id of the pool to move volume to.
+ *
+ * @param newPoolResourceId the newPoolResourceId value to set
+ * @return the PoolChangeRequest object itself.
+ */
+ public PoolChangeRequest withNewPoolResourceId(String newPoolResourceId) {
+ this.newPoolResourceId = newPoolResourceId;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Pools.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Pools.java
new file mode 100644
index 0000000000000..eda6629150857
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Pools.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.PoolsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Pools.
+ */
+public interface Pools extends SupportsCreating, HasInner {
+ /**
+ * Describe a Capacity Pool.
+ * 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
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName, String poolName);
+
+ /**
+ * Describe all Capacity Pools.
+ * 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
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName);
+
+ /**
+ * Delete a capacity pool.
+ * 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
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String accountName, String poolName);
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/QosType.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/QosType.java
new file mode 100644
index 0000000000000..4bc4f198d5330
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/QosType.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for QosType.
+ */
+public final class QosType extends ExpandableStringEnum {
+ /** Static value Auto for QosType. */
+ public static final QosType AUTO = fromString("Auto");
+
+ /** Static value Manual for QosType. */
+ public static final QosType MANUAL = fromString("Manual");
+
+ /**
+ * Creates or finds a QosType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding QosType
+ */
+ @JsonCreator
+ public static QosType fromString(String name) {
+ return fromString(name, QosType.class);
+ }
+
+ /**
+ * @return known QosType values
+ */
+ public static Collection values() {
+ return values(QosType.class);
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/QuotaAvailabilityRequest.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/QuotaAvailabilityRequest.java
new file mode 100644
index 0000000000000..d8b746b63c7b3
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/QuotaAvailabilityRequest.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Quota availability request content.
+ */
+public class QuotaAvailabilityRequest {
+ /**
+ * Name of the resource to verify.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Resource type used for verification. Possible values include:
+ * 'Microsoft.NetApp/netAppAccounts',
+ * 'Microsoft.NetApp/netAppAccounts/capacityPools',
+ * 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes',
+ * 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots'.
+ */
+ @JsonProperty(value = "type", required = true)
+ private CheckQuotaNameResourceTypes type;
+
+ /**
+ * Resource group name.
+ */
+ @JsonProperty(value = "resourceGroup", required = true)
+ private String resourceGroup;
+
+ /**
+ * Get name of the resource to verify.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the resource to verify.
+ *
+ * @param name the name value to set
+ * @return the QuotaAvailabilityRequest object itself.
+ */
+ public QuotaAvailabilityRequest withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get resource type used for verification. Possible values include: 'Microsoft.NetApp/netAppAccounts', 'Microsoft.NetApp/netAppAccounts/capacityPools', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots'.
+ *
+ * @return the type value
+ */
+ public CheckQuotaNameResourceTypes type() {
+ return this.type;
+ }
+
+ /**
+ * Set resource type used for verification. Possible values include: 'Microsoft.NetApp/netAppAccounts', 'Microsoft.NetApp/netAppAccounts/capacityPools', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots'.
+ *
+ * @param type the type value to set
+ * @return the QuotaAvailabilityRequest object itself.
+ */
+ public QuotaAvailabilityRequest withType(CheckQuotaNameResourceTypes type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get resource group name.
+ *
+ * @return the resourceGroup value
+ */
+ public String resourceGroup() {
+ return this.resourceGroup;
+ }
+
+ /**
+ * Set resource group name.
+ *
+ * @param resourceGroup the resourceGroup value to set
+ * @return the QuotaAvailabilityRequest object itself.
+ */
+ public QuotaAvailabilityRequest withResourceGroup(String resourceGroup) {
+ this.resourceGroup = resourceGroup;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/RelationshipStatus.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/RelationshipStatus.java
new file mode 100644
index 0000000000000..013df1ba2838f
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/RelationshipStatus.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for RelationshipStatus.
+ */
+public final class RelationshipStatus extends ExpandableStringEnum {
+ /** Static value Idle for RelationshipStatus. */
+ public static final RelationshipStatus IDLE = fromString("Idle");
+
+ /** Static value Transferring for RelationshipStatus. */
+ public static final RelationshipStatus TRANSFERRING = fromString("Transferring");
+
+ /**
+ * Creates or finds a RelationshipStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding RelationshipStatus
+ */
+ @JsonCreator
+ public static RelationshipStatus fromString(String name) {
+ return fromString(name, RelationshipStatus.class);
+ }
+
+ /**
+ * @return known RelationshipStatus values
+ */
+ public static Collection values() {
+ return values(RelationshipStatus.class);
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ReplicationObject.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ReplicationObject.java
new file mode 100644
index 0000000000000..e1d9b5e576e29
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ReplicationObject.java
@@ -0,0 +1,148 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Replication properties.
+ */
+public class ReplicationObject {
+ /**
+ * Id.
+ */
+ @JsonProperty(value = "replicationId")
+ private String replicationId;
+
+ /**
+ * Indicates whether the local volume is the source or destination for the
+ * Volume Replication. Possible values include: 'src', 'dst'.
+ */
+ @JsonProperty(value = "endpointType")
+ private EndpointType endpointType;
+
+ /**
+ * Schedule. Possible values include: '_10minutely', 'hourly', 'daily'.
+ */
+ @JsonProperty(value = "replicationSchedule", required = true)
+ private ReplicationSchedule replicationSchedule;
+
+ /**
+ * The resource ID of the remote volume.
+ */
+ @JsonProperty(value = "remoteVolumeResourceId", required = true)
+ private String remoteVolumeResourceId;
+
+ /**
+ * The remote region for the other end of the Volume Replication.
+ */
+ @JsonProperty(value = "remoteVolumeRegion")
+ private String remoteVolumeRegion;
+
+ /**
+ * Get id.
+ *
+ * @return the replicationId value
+ */
+ public String replicationId() {
+ return this.replicationId;
+ }
+
+ /**
+ * Set id.
+ *
+ * @param replicationId the replicationId value to set
+ * @return the ReplicationObject object itself.
+ */
+ public ReplicationObject withReplicationId(String replicationId) {
+ this.replicationId = replicationId;
+ return this;
+ }
+
+ /**
+ * Get indicates whether the local volume is the source or destination for the Volume Replication. Possible values include: 'src', 'dst'.
+ *
+ * @return the endpointType value
+ */
+ public EndpointType endpointType() {
+ return this.endpointType;
+ }
+
+ /**
+ * Set indicates whether the local volume is the source or destination for the Volume Replication. Possible values include: 'src', 'dst'.
+ *
+ * @param endpointType the endpointType value to set
+ * @return the ReplicationObject object itself.
+ */
+ public ReplicationObject withEndpointType(EndpointType endpointType) {
+ this.endpointType = endpointType;
+ return this;
+ }
+
+ /**
+ * Get schedule. Possible values include: '_10minutely', 'hourly', 'daily'.
+ *
+ * @return the replicationSchedule value
+ */
+ public ReplicationSchedule replicationSchedule() {
+ return this.replicationSchedule;
+ }
+
+ /**
+ * Set schedule. Possible values include: '_10minutely', 'hourly', 'daily'.
+ *
+ * @param replicationSchedule the replicationSchedule value to set
+ * @return the ReplicationObject object itself.
+ */
+ public ReplicationObject withReplicationSchedule(ReplicationSchedule replicationSchedule) {
+ this.replicationSchedule = replicationSchedule;
+ return this;
+ }
+
+ /**
+ * Get the resource ID of the remote volume.
+ *
+ * @return the remoteVolumeResourceId value
+ */
+ public String remoteVolumeResourceId() {
+ return this.remoteVolumeResourceId;
+ }
+
+ /**
+ * Set the resource ID of the remote volume.
+ *
+ * @param remoteVolumeResourceId the remoteVolumeResourceId value to set
+ * @return the ReplicationObject object itself.
+ */
+ public ReplicationObject withRemoteVolumeResourceId(String remoteVolumeResourceId) {
+ this.remoteVolumeResourceId = remoteVolumeResourceId;
+ return this;
+ }
+
+ /**
+ * Get the remote region for the other end of the Volume Replication.
+ *
+ * @return the remoteVolumeRegion value
+ */
+ public String remoteVolumeRegion() {
+ return this.remoteVolumeRegion;
+ }
+
+ /**
+ * Set the remote region for the other end of the Volume Replication.
+ *
+ * @param remoteVolumeRegion the remoteVolumeRegion value to set
+ * @return the ReplicationObject object itself.
+ */
+ public ReplicationObject withRemoteVolumeRegion(String remoteVolumeRegion) {
+ this.remoteVolumeRegion = remoteVolumeRegion;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ReplicationSchedule.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ReplicationSchedule.java
new file mode 100644
index 0000000000000..67f915fb0ad69
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ReplicationSchedule.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ReplicationSchedule.
+ */
+public final class ReplicationSchedule extends ExpandableStringEnum {
+ /** Static value _10minutely for ReplicationSchedule. */
+ public static final ReplicationSchedule _10MINUTELY = fromString("_10minutely");
+
+ /** Static value hourly for ReplicationSchedule. */
+ public static final ReplicationSchedule HOURLY = fromString("hourly");
+
+ /** Static value daily for ReplicationSchedule. */
+ public static final ReplicationSchedule DAILY = fromString("daily");
+
+ /**
+ * Creates or finds a ReplicationSchedule from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ReplicationSchedule
+ */
+ @JsonCreator
+ public static ReplicationSchedule fromString(String name) {
+ return fromString(name, ReplicationSchedule.class);
+ }
+
+ /**
+ * @return known ReplicationSchedule values
+ */
+ public static Collection values() {
+ return values(ReplicationSchedule.class);
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ReplicationStatus.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ReplicationStatus.java
new file mode 100644
index 0000000000000..98d9c10535d2c
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ReplicationStatus.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.ReplicationStatusInner;
+
+/**
+ * Type representing ReplicationStatus.
+ */
+public interface ReplicationStatus extends HasInner, HasManager {
+ /**
+ * @return the errorMessage value.
+ */
+ String errorMessage();
+
+ /**
+ * @return the healthy value.
+ */
+ Boolean healthy();
+
+ /**
+ * @return the mirrorState value.
+ */
+ MirrorState mirrorState();
+
+ /**
+ * @return the relationshipStatus value.
+ */
+ RelationshipStatus relationshipStatus();
+
+ /**
+ * @return the totalProgress value.
+ */
+ String totalProgress();
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ResourceNameAvailabilityRequest.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ResourceNameAvailabilityRequest.java
new file mode 100644
index 0000000000000..aa44d177e30d3
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ResourceNameAvailabilityRequest.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Resource name availability request content.
+ */
+public class ResourceNameAvailabilityRequest {
+ /**
+ * Resource name to verify.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Resource type used for verification. Possible values include:
+ * 'Microsoft.NetApp/netAppAccounts',
+ * 'Microsoft.NetApp/netAppAccounts/capacityPools',
+ * 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes',
+ * 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots'.
+ */
+ @JsonProperty(value = "type", required = true)
+ private CheckNameResourceTypes type;
+
+ /**
+ * Resource group name.
+ */
+ @JsonProperty(value = "resourceGroup", required = true)
+ private String resourceGroup;
+
+ /**
+ * Get resource name to verify.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set resource name to verify.
+ *
+ * @param name the name value to set
+ * @return the ResourceNameAvailabilityRequest object itself.
+ */
+ public ResourceNameAvailabilityRequest withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get resource type used for verification. Possible values include: 'Microsoft.NetApp/netAppAccounts', 'Microsoft.NetApp/netAppAccounts/capacityPools', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots'.
+ *
+ * @return the type value
+ */
+ public CheckNameResourceTypes type() {
+ return this.type;
+ }
+
+ /**
+ * Set resource type used for verification. Possible values include: 'Microsoft.NetApp/netAppAccounts', 'Microsoft.NetApp/netAppAccounts/capacityPools', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes', 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots'.
+ *
+ * @param type the type value to set
+ * @return the ResourceNameAvailabilityRequest object itself.
+ */
+ public ResourceNameAvailabilityRequest withType(CheckNameResourceTypes type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get resource group name.
+ *
+ * @return the resourceGroup value
+ */
+ public String resourceGroup() {
+ return this.resourceGroup;
+ }
+
+ /**
+ * Set resource group name.
+ *
+ * @param resourceGroup the resourceGroup value to set
+ * @return the ResourceNameAvailabilityRequest object itself.
+ */
+ public ResourceNameAvailabilityRequest withResourceGroup(String resourceGroup) {
+ this.resourceGroup = resourceGroup;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SecurityStyle.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SecurityStyle.java
new file mode 100644
index 0000000000000..2f3a4013e520d
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SecurityStyle.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SecurityStyle.
+ */
+public final class SecurityStyle extends ExpandableStringEnum {
+ /** Static value ntfs for SecurityStyle. */
+ public static final SecurityStyle NTFS = fromString("ntfs");
+
+ /** Static value unix for SecurityStyle. */
+ public static final SecurityStyle UNIX = fromString("unix");
+
+ /**
+ * Creates or finds a SecurityStyle from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SecurityStyle
+ */
+ @JsonCreator
+ public static SecurityStyle fromString(String name) {
+ return fromString(name, SecurityStyle.class);
+ }
+
+ /**
+ * @return known SecurityStyle values
+ */
+ public static Collection values() {
+ return values(SecurityStyle.class);
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ServiceLevel.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ServiceLevel.java
new file mode 100644
index 0000000000000..88bd634bc6d9d
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ServiceLevel.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ServiceLevel.
+ */
+public final class ServiceLevel extends ExpandableStringEnum {
+ /** Static value Standard for ServiceLevel. */
+ public static final ServiceLevel STANDARD = fromString("Standard");
+
+ /** Static value Premium for ServiceLevel. */
+ public static final ServiceLevel PREMIUM = fromString("Premium");
+
+ /** Static value Ultra for ServiceLevel. */
+ public static final ServiceLevel ULTRA = fromString("Ultra");
+
+ /**
+ * Creates or finds a ServiceLevel from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ServiceLevel
+ */
+ @JsonCreator
+ public static ServiceLevel fromString(String name) {
+ return fromString(name, ServiceLevel.class);
+ }
+
+ /**
+ * @return known ServiceLevel values
+ */
+ public static Collection values() {
+ return values(ServiceLevel.class);
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ServiceSpecification.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ServiceSpecification.java
new file mode 100644
index 0000000000000..b0e2d1b39c677
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/ServiceSpecification.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * One property of operation, include metric specifications.
+ */
+public class ServiceSpecification {
+ /**
+ * Metric specifications of operation.
+ */
+ @JsonProperty(value = "metricSpecifications")
+ private List metricSpecifications;
+
+ /**
+ * Get metric specifications of operation.
+ *
+ * @return the metricSpecifications value
+ */
+ public List metricSpecifications() {
+ return this.metricSpecifications;
+ }
+
+ /**
+ * Set metric specifications of operation.
+ *
+ * @param metricSpecifications the metricSpecifications value to set
+ * @return the ServiceSpecification object itself.
+ */
+ public ServiceSpecification withMetricSpecifications(List metricSpecifications) {
+ this.metricSpecifications = metricSpecifications;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Snapshot.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Snapshot.java
new file mode 100644
index 0000000000000..5467c4169ddbf
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Snapshot.java
@@ -0,0 +1,135 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.SnapshotInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing Snapshot.
+ */
+public interface Snapshot extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the created value.
+ */
+ DateTime created();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the snapshotId value.
+ */
+ String snapshotId();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Snapshot definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithVolume, DefinitionStages.WithLocation, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Snapshot definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Snapshot definition.
+ */
+ interface Blank extends WithVolume {
+ }
+
+ /**
+ * The stage of the snapshot definition allowing to specify Volume.
+ */
+ interface WithVolume {
+ /**
+ * Specifies resourceGroupName, accountName, poolName, volumeName.
+ * @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
+ * @return the next definition stage
+ */
+ WithLocation withExistingVolume(String resourceGroupName, String accountName, String poolName, String volumeName);
+ }
+
+ /**
+ * The stage of the snapshot definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Resource location
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable {
+ }
+ }
+ /**
+ * The template for a Snapshot update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithBody {
+ }
+
+ /**
+ * Grouping of Snapshot update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the snapshot update allowing to specify Body.
+ */
+ interface WithBody {
+ /**
+ * Specifies body.
+ * @param body Snapshot object supplied in the body of the operation
+ * @return the next update stage
+ */
+ Update withBody(Object body);
+ }
+
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicies.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicies.java
new file mode 100644
index 0000000000000..f832dbfdc2def
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicies.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.SnapshotPoliciesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing SnapshotPolicies.
+ */
+public interface SnapshotPolicies extends SupportsCreating, HasInner {
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName, String snapshotPolicyName);
+
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName);
+
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String accountName, String snapshotPolicyName);
+
+ /**
+ * Get volumes associated with snapshot policy.
+ * 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
+ * @return the observable for the request
+ */
+ Observable listVolumesAsync(String resourceGroupName, String accountName, String snapshotPolicyName);
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicy.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicy.java
new file mode 100644
index 0000000000000..5002762d7d64b
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicy.java
@@ -0,0 +1,302 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.SnapshotPolicyInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppManager;
+import java.util.Map;
+
+/**
+ * Type representing SnapshotPolicy.
+ */
+public interface SnapshotPolicy extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the dailySchedule value.
+ */
+ DailySchedule dailySchedule();
+
+ /**
+ * @return the enabled value.
+ */
+ Boolean enabled();
+
+ /**
+ * @return the hourlySchedule value.
+ */
+ HourlySchedule hourlySchedule();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the monthlySchedule value.
+ */
+ MonthlySchedule monthlySchedule();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the name1 value.
+ */
+ String name1();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the weeklySchedule value.
+ */
+ WeeklySchedule weeklySchedule();
+
+ /**
+ * The entirety of the SnapshotPolicy definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithNetAppAccount, DefinitionStages.WithLocation, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of SnapshotPolicy definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a SnapshotPolicy definition.
+ */
+ interface Blank extends WithNetAppAccount {
+ }
+
+ /**
+ * The stage of the snapshotpolicy definition allowing to specify NetAppAccount.
+ */
+ interface WithNetAppAccount {
+ /**
+ * Specifies resourceGroupName, accountName.
+ * @param resourceGroupName The name of the resource group
+ * @param accountName The name of the NetApp account
+ * @return the next definition stage
+ */
+ WithLocation withExistingNetAppAccount(String resourceGroupName, String accountName);
+ }
+
+ /**
+ * The stage of the snapshotpolicy definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location the location parameter value
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the snapshotpolicy definition allowing to specify DailySchedule.
+ */
+ interface WithDailySchedule {
+ /**
+ * Specifies dailySchedule.
+ * @param dailySchedule Schedule for daily snapshots
+ * @return the next definition stage
+ */
+ WithCreate withDailySchedule(DailySchedule dailySchedule);
+ }
+
+ /**
+ * The stage of the snapshotpolicy definition allowing to specify Enabled.
+ */
+ interface WithEnabled {
+ /**
+ * Specifies enabled.
+ * @param enabled The property to decide policy is enabled or not
+ * @return the next definition stage
+ */
+ WithCreate withEnabled(Boolean enabled);
+ }
+
+ /**
+ * The stage of the snapshotpolicy definition allowing to specify HourlySchedule.
+ */
+ interface WithHourlySchedule {
+ /**
+ * Specifies hourlySchedule.
+ * @param hourlySchedule Schedule for hourly snapshots
+ * @return the next definition stage
+ */
+ WithCreate withHourlySchedule(HourlySchedule hourlySchedule);
+ }
+
+ /**
+ * The stage of the snapshotpolicy definition allowing to specify MonthlySchedule.
+ */
+ interface WithMonthlySchedule {
+ /**
+ * Specifies monthlySchedule.
+ * @param monthlySchedule Schedule for monthly snapshots
+ * @return the next definition stage
+ */
+ WithCreate withMonthlySchedule(MonthlySchedule monthlySchedule);
+ }
+
+ /**
+ * The stage of the snapshotpolicy definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the snapshotpolicy definition allowing to specify WeeklySchedule.
+ */
+ interface WithWeeklySchedule {
+ /**
+ * Specifies weeklySchedule.
+ * @param weeklySchedule Schedule for weekly snapshots
+ * @return the next definition stage
+ */
+ WithCreate withWeeklySchedule(WeeklySchedule weeklySchedule);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithDailySchedule, DefinitionStages.WithEnabled, DefinitionStages.WithHourlySchedule, DefinitionStages.WithMonthlySchedule, DefinitionStages.WithTags, DefinitionStages.WithWeeklySchedule {
+ }
+ }
+ /**
+ * The template for a SnapshotPolicy update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithDailySchedule, UpdateStages.WithEnabled, UpdateStages.WithHourlySchedule, UpdateStages.WithLocation, UpdateStages.WithMonthlySchedule, UpdateStages.WithTags, UpdateStages.WithWeeklySchedule {
+ }
+
+ /**
+ * Grouping of SnapshotPolicy update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the snapshotpolicy update allowing to specify DailySchedule.
+ */
+ interface WithDailySchedule {
+ /**
+ * Specifies dailySchedule.
+ * @param dailySchedule Schedule for daily snapshots
+ * @return the next update stage
+ */
+ Update withDailySchedule(DailySchedule dailySchedule);
+ }
+
+ /**
+ * The stage of the snapshotpolicy update allowing to specify Enabled.
+ */
+ interface WithEnabled {
+ /**
+ * Specifies enabled.
+ * @param enabled The property to decide policy is enabled or not
+ * @return the next update stage
+ */
+ Update withEnabled(Boolean enabled);
+ }
+
+ /**
+ * The stage of the snapshotpolicy update allowing to specify HourlySchedule.
+ */
+ interface WithHourlySchedule {
+ /**
+ * Specifies hourlySchedule.
+ * @param hourlySchedule Schedule for hourly snapshots
+ * @return the next update stage
+ */
+ Update withHourlySchedule(HourlySchedule hourlySchedule);
+ }
+
+ /**
+ * The stage of the snapshotpolicy update allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Resource location
+ * @return the next update stage
+ */
+ Update withLocation(String location);
+ }
+
+ /**
+ * The stage of the snapshotpolicy update allowing to specify MonthlySchedule.
+ */
+ interface WithMonthlySchedule {
+ /**
+ * Specifies monthlySchedule.
+ * @param monthlySchedule Schedule for monthly snapshots
+ * @return the next update stage
+ */
+ Update withMonthlySchedule(MonthlySchedule monthlySchedule);
+ }
+
+ /**
+ * The stage of the snapshotpolicy update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags Resource tags
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ /**
+ * The stage of the snapshotpolicy update allowing to specify WeeklySchedule.
+ */
+ interface WithWeeklySchedule {
+ /**
+ * Specifies weeklySchedule.
+ * @param weeklySchedule Schedule for weekly snapshots
+ * @return the next update stage
+ */
+ Update withWeeklySchedule(WeeklySchedule weeklySchedule);
+ }
+
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicyDetails.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicyDetails.java
new file mode 100644
index 0000000000000..e8b0ab36bc199
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicyDetails.java
@@ -0,0 +1,281 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Snapshot policy properties.
+ */
+@JsonFlatten
+public class SnapshotPolicyDetails {
+ /**
+ * Resource location.
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /**
+ * Resource Id.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * Resource name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * Resource type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /**
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Snapshot policy name.
+ */
+ @JsonProperty(value = "properties.name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name1;
+
+ /**
+ * hourlySchedule.
+ * Schedule for hourly snapshots.
+ */
+ @JsonProperty(value = "properties.hourlySchedule")
+ private HourlySchedule hourlySchedule;
+
+ /**
+ * dailySchedule.
+ * Schedule for daily snapshots.
+ */
+ @JsonProperty(value = "properties.dailySchedule")
+ private DailySchedule dailySchedule;
+
+ /**
+ * weeklySchedule.
+ * Schedule for weekly snapshots.
+ */
+ @JsonProperty(value = "properties.weeklySchedule")
+ private WeeklySchedule weeklySchedule;
+
+ /**
+ * monthlySchedule.
+ * 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 resource location.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set resource location.
+ *
+ * @param location the location value to set
+ * @return the SnapshotPolicyDetails object itself.
+ */
+ public SnapshotPolicyDetails withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get resource Id.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get resource name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get resource type.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get resource tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set resource tags.
+ *
+ * @param tags the tags value to set
+ * @return the SnapshotPolicyDetails object itself.
+ */
+ public SnapshotPolicyDetails withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get snapshot policy name.
+ *
+ * @return the name1 value
+ */
+ public String name1() {
+ return this.name1;
+ }
+
+ /**
+ * Get schedule for hourly snapshots.
+ *
+ * @return the hourlySchedule value
+ */
+ public HourlySchedule hourlySchedule() {
+ return this.hourlySchedule;
+ }
+
+ /**
+ * Set schedule for hourly snapshots.
+ *
+ * @param hourlySchedule the hourlySchedule value to set
+ * @return the SnapshotPolicyDetails object itself.
+ */
+ public SnapshotPolicyDetails withHourlySchedule(HourlySchedule hourlySchedule) {
+ this.hourlySchedule = hourlySchedule;
+ return this;
+ }
+
+ /**
+ * Get schedule for daily snapshots.
+ *
+ * @return the dailySchedule value
+ */
+ public DailySchedule dailySchedule() {
+ return this.dailySchedule;
+ }
+
+ /**
+ * Set schedule for daily snapshots.
+ *
+ * @param dailySchedule the dailySchedule value to set
+ * @return the SnapshotPolicyDetails object itself.
+ */
+ public SnapshotPolicyDetails withDailySchedule(DailySchedule dailySchedule) {
+ this.dailySchedule = dailySchedule;
+ return this;
+ }
+
+ /**
+ * Get schedule for weekly snapshots.
+ *
+ * @return the weeklySchedule value
+ */
+ public WeeklySchedule weeklySchedule() {
+ return this.weeklySchedule;
+ }
+
+ /**
+ * Set schedule for weekly snapshots.
+ *
+ * @param weeklySchedule the weeklySchedule value to set
+ * @return the SnapshotPolicyDetails object itself.
+ */
+ public SnapshotPolicyDetails withWeeklySchedule(WeeklySchedule weeklySchedule) {
+ this.weeklySchedule = weeklySchedule;
+ return this;
+ }
+
+ /**
+ * Get schedule for monthly snapshots.
+ *
+ * @return the monthlySchedule value
+ */
+ public MonthlySchedule monthlySchedule() {
+ return this.monthlySchedule;
+ }
+
+ /**
+ * Set schedule for monthly snapshots.
+ *
+ * @param monthlySchedule the monthlySchedule value to set
+ * @return the SnapshotPolicyDetails object itself.
+ */
+ public SnapshotPolicyDetails withMonthlySchedule(MonthlySchedule monthlySchedule) {
+ this.monthlySchedule = monthlySchedule;
+ return this;
+ }
+
+ /**
+ * Get the property to decide policy is enabled or not.
+ *
+ * @return the enabled value
+ */
+ public Boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set the property to decide policy is enabled or not.
+ *
+ * @param enabled the enabled value to set
+ * @return the SnapshotPolicyDetails object itself.
+ */
+ public SnapshotPolicyDetails withEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Get azure lifecycle management.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicyPatch.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicyPatch.java
new file mode 100644
index 0000000000000..463e4b594c612
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicyPatch.java
@@ -0,0 +1,281 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Snapshot policy Details for create and update.
+ */
+@JsonFlatten
+public class SnapshotPolicyPatch {
+ /**
+ * Resource location.
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /**
+ * Resource Id.
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /**
+ * Resource name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * Resource type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /**
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Snapshot policy name.
+ */
+ @JsonProperty(value = "properties.name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name1;
+
+ /**
+ * hourlySchedule.
+ * Schedule for hourly snapshots.
+ */
+ @JsonProperty(value = "properties.hourlySchedule")
+ private HourlySchedule hourlySchedule;
+
+ /**
+ * dailySchedule.
+ * Schedule for daily snapshots.
+ */
+ @JsonProperty(value = "properties.dailySchedule")
+ private DailySchedule dailySchedule;
+
+ /**
+ * weeklySchedule.
+ * Schedule for weekly snapshots.
+ */
+ @JsonProperty(value = "properties.weeklySchedule")
+ private WeeklySchedule weeklySchedule;
+
+ /**
+ * monthlySchedule.
+ * 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 resource location.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set resource location.
+ *
+ * @param location the location value to set
+ * @return the SnapshotPolicyPatch object itself.
+ */
+ public SnapshotPolicyPatch withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get resource Id.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get resource name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get resource type.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get resource tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set resource tags.
+ *
+ * @param tags the tags value to set
+ * @return the SnapshotPolicyPatch object itself.
+ */
+ public SnapshotPolicyPatch withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get snapshot policy name.
+ *
+ * @return the name1 value
+ */
+ public String name1() {
+ return this.name1;
+ }
+
+ /**
+ * Get schedule for hourly snapshots.
+ *
+ * @return the hourlySchedule value
+ */
+ public HourlySchedule hourlySchedule() {
+ return this.hourlySchedule;
+ }
+
+ /**
+ * Set schedule for hourly snapshots.
+ *
+ * @param hourlySchedule the hourlySchedule value to set
+ * @return the SnapshotPolicyPatch object itself.
+ */
+ public SnapshotPolicyPatch withHourlySchedule(HourlySchedule hourlySchedule) {
+ this.hourlySchedule = hourlySchedule;
+ return this;
+ }
+
+ /**
+ * Get schedule for daily snapshots.
+ *
+ * @return the dailySchedule value
+ */
+ public DailySchedule dailySchedule() {
+ return this.dailySchedule;
+ }
+
+ /**
+ * Set schedule for daily snapshots.
+ *
+ * @param dailySchedule the dailySchedule value to set
+ * @return the SnapshotPolicyPatch object itself.
+ */
+ public SnapshotPolicyPatch withDailySchedule(DailySchedule dailySchedule) {
+ this.dailySchedule = dailySchedule;
+ return this;
+ }
+
+ /**
+ * Get schedule for weekly snapshots.
+ *
+ * @return the weeklySchedule value
+ */
+ public WeeklySchedule weeklySchedule() {
+ return this.weeklySchedule;
+ }
+
+ /**
+ * Set schedule for weekly snapshots.
+ *
+ * @param weeklySchedule the weeklySchedule value to set
+ * @return the SnapshotPolicyPatch object itself.
+ */
+ public SnapshotPolicyPatch withWeeklySchedule(WeeklySchedule weeklySchedule) {
+ this.weeklySchedule = weeklySchedule;
+ return this;
+ }
+
+ /**
+ * Get schedule for monthly snapshots.
+ *
+ * @return the monthlySchedule value
+ */
+ public MonthlySchedule monthlySchedule() {
+ return this.monthlySchedule;
+ }
+
+ /**
+ * Set schedule for monthly snapshots.
+ *
+ * @param monthlySchedule the monthlySchedule value to set
+ * @return the SnapshotPolicyPatch object itself.
+ */
+ public SnapshotPolicyPatch withMonthlySchedule(MonthlySchedule monthlySchedule) {
+ this.monthlySchedule = monthlySchedule;
+ return this;
+ }
+
+ /**
+ * Get the property to decide policy is enabled or not.
+ *
+ * @return the enabled value
+ */
+ public Boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set the property to decide policy is enabled or not.
+ *
+ * @param enabled the enabled value to set
+ * @return the SnapshotPolicyPatch object itself.
+ */
+ public SnapshotPolicyPatch withEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Get azure lifecycle management.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicyVolumeList.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicyVolumeList.java
new file mode 100644
index 0000000000000..1e9fb56ff14bb
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/SnapshotPolicyVolumeList.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.SnapshotPolicyVolumeListInner;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.VolumeInner;
+import java.util.List;
+
+/**
+ * Type representing SnapshotPolicyVolumeList.
+ */
+public interface SnapshotPolicyVolumeList extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Snapshots.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Snapshots.java
new file mode 100644
index 0000000000000..6e1c733320962
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Snapshots.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.SnapshotsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Snapshots.
+ */
+public interface Snapshots extends SupportsCreating, HasInner {
+ /**
+ * Describe a snapshot.
+ * 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
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName, String poolName, String volumeName, String snapshotName);
+
+ /**
+ * Describe all snapshots.
+ * 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
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Delete a snapshot.
+ * 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
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String accountName, String poolName, String volumeName, String snapshotName);
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Vault.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Vault.java
new file mode 100644
index 0000000000000..7a930c8ff7b38
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Vault.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.VaultInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppManager;
+
+/**
+ * Type representing Vault.
+ */
+public interface Vault extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the vaultName value.
+ */
+ String vaultName();
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Vaults.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Vaults.java
new file mode 100644
index 0000000000000..891885b070dc3
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Vaults.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.VaultsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Vaults.
+ */
+public interface Vaults extends HasInner {
+ /**
+ * List vaults.
+ * 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
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName);
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Volume.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Volume.java
new file mode 100644
index 0000000000000..f0109c446ad27
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Volume.java
@@ -0,0 +1,484 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.VolumeInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.NetAppManager;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Type representing Volume.
+ */
+public interface Volume extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the backupId value.
+ */
+ String backupId();
+
+ /**
+ * @return the baremetalTenantId value.
+ */
+ String baremetalTenantId();
+
+ /**
+ * @return the creationToken value.
+ */
+ String creationToken();
+
+ /**
+ * @return the dataProtection value.
+ */
+ VolumePropertiesDataProtection dataProtection();
+
+ /**
+ * @return the exportPolicy value.
+ */
+ VolumePropertiesExportPolicy exportPolicy();
+
+ /**
+ * @return the fileSystemId value.
+ */
+ String fileSystemId();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the isRestoring value.
+ */
+ Boolean isRestoring();
+
+ /**
+ * @return the kerberosEnabled value.
+ */
+ Boolean kerberosEnabled();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the mountTargets value.
+ */
+ List mountTargets();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the protocolTypes value.
+ */
+ List protocolTypes();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the securityStyle value.
+ */
+ SecurityStyle securityStyle();
+
+ /**
+ * @return the serviceLevel value.
+ */
+ ServiceLevel serviceLevel();
+
+ /**
+ * @return the snapshotDirectoryVisible value.
+ */
+ Boolean snapshotDirectoryVisible();
+
+ /**
+ * @return the snapshotId value.
+ */
+ String snapshotId();
+
+ /**
+ * @return the subnetId value.
+ */
+ String subnetId();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the throughputMibps value.
+ */
+ Double throughputMibps();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the usageThreshold value.
+ */
+ long usageThreshold();
+
+ /**
+ * @return the volumeType value.
+ */
+ String volumeType();
+
+ /**
+ * The entirety of the Volume definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithCapacityPool, DefinitionStages.WithCreationToken, DefinitionStages.WithLocation, DefinitionStages.WithSubnetId, DefinitionStages.WithUsageThreshold, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Volume definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Volume definition.
+ */
+ interface Blank extends WithCapacityPool {
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify CapacityPool.
+ */
+ interface WithCapacityPool {
+ /**
+ * Specifies resourceGroupName, accountName, poolName.
+ * @param resourceGroupName The name of the resource group
+ * @param accountName The name of the NetApp account
+ * @param poolName The name of the capacity pool
+ * @return the next definition stage
+ */
+ WithCreationToken withExistingCapacityPool(String resourceGroupName, String accountName, String poolName);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify CreationToken.
+ */
+ interface WithCreationToken {
+ /**
+ * Specifies creationToken.
+ * @param creationToken A unique file path for the volume. Used when creating mount targets
+ * @return the next definition stage
+ */
+ WithLocation withCreationToken(String creationToken);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location the location parameter value
+ * @return the next definition stage
+ */
+ WithSubnetId withLocation(String location);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify SubnetId.
+ */
+ interface WithSubnetId {
+ /**
+ * Specifies subnetId.
+ * @param subnetId The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes
+ * @return the next definition stage
+ */
+ WithUsageThreshold withSubnetId(String subnetId);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify UsageThreshold.
+ */
+ interface WithUsageThreshold {
+ /**
+ * Specifies usageThreshold.
+ * @param usageThreshold Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes
+ * @return the next definition stage
+ */
+ WithCreate withUsageThreshold(long usageThreshold);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify BackupId.
+ */
+ interface WithBackupId {
+ /**
+ * Specifies backupId.
+ * @param backupId UUID v4 or resource identifier used to identify the Backup
+ * @return the next definition stage
+ */
+ WithCreate withBackupId(String backupId);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify DataProtection.
+ */
+ interface WithDataProtection {
+ /**
+ * Specifies dataProtection.
+ * @param dataProtection DataProtection type volumes include an object containing details of the replication
+ * @return the next definition stage
+ */
+ WithCreate withDataProtection(VolumePropertiesDataProtection dataProtection);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify ExportPolicy.
+ */
+ interface WithExportPolicy {
+ /**
+ * Specifies exportPolicy.
+ * @param exportPolicy Set of export policy rules
+ * @return the next definition stage
+ */
+ WithCreate withExportPolicy(VolumePropertiesExportPolicy exportPolicy);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify IsRestoring.
+ */
+ interface WithIsRestoring {
+ /**
+ * Specifies isRestoring.
+ * @param isRestoring Restoring
+ * @return the next definition stage
+ */
+ WithCreate withIsRestoring(Boolean isRestoring);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify KerberosEnabled.
+ */
+ interface WithKerberosEnabled {
+ /**
+ * Specifies kerberosEnabled.
+ * @param kerberosEnabled Describe if a volume is KerberosEnabled. To be use with swagger version 2020-05-01 or later
+ * @return the next definition stage
+ */
+ WithCreate withKerberosEnabled(Boolean kerberosEnabled);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify MountTargets.
+ */
+ interface WithMountTargets {
+ /**
+ * Specifies mountTargets.
+ * @param mountTargets List of mount targets
+ * @return the next definition stage
+ */
+ WithCreate withMountTargets(List mountTargets);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify ProtocolTypes.
+ */
+ interface WithProtocolTypes {
+ /**
+ * Specifies protocolTypes.
+ * @param protocolTypes Set of protocol types
+ * @return the next definition stage
+ */
+ WithCreate withProtocolTypes(List protocolTypes);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify SecurityStyle.
+ */
+ interface WithSecurityStyle {
+ /**
+ * Specifies securityStyle.
+ * @param securityStyle The security style of volume. Possible values include: 'ntfs', 'unix'
+ * @return the next definition stage
+ */
+ WithCreate withSecurityStyle(SecurityStyle securityStyle);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify ServiceLevel.
+ */
+ interface WithServiceLevel {
+ /**
+ * Specifies serviceLevel.
+ * @param serviceLevel The service level of the file system. Possible values include: 'Standard', 'Premium', 'Ultra'
+ * @return the next definition stage
+ */
+ WithCreate withServiceLevel(ServiceLevel serviceLevel);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify SnapshotDirectoryVisible.
+ */
+ interface WithSnapshotDirectoryVisible {
+ /**
+ * Specifies snapshotDirectoryVisible.
+ * @param snapshotDirectoryVisible If enabled (true) the volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots (default to true)
+ * @return the next definition stage
+ */
+ WithCreate withSnapshotDirectoryVisible(Boolean snapshotDirectoryVisible);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify SnapshotId.
+ */
+ interface WithSnapshotId {
+ /**
+ * Specifies snapshotId.
+ * @param snapshotId UUID v4 or resource identifier used to identify the Snapshot
+ * @return the next definition stage
+ */
+ WithCreate withSnapshotId(String snapshotId);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify ThroughputMibps.
+ */
+ interface WithThroughputMibps {
+ /**
+ * Specifies throughputMibps.
+ * @param throughputMibps the throughputMibps parameter value
+ * @return the next definition stage
+ */
+ WithCreate withThroughputMibps(Double throughputMibps);
+ }
+
+ /**
+ * The stage of the volume definition allowing to specify VolumeType.
+ */
+ interface WithVolumeType {
+ /**
+ * Specifies volumeType.
+ * @param volumeType What type of volume is this
+ * @return the next definition stage
+ */
+ WithCreate withVolumeType(String volumeType);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithBackupId, DefinitionStages.WithDataProtection, DefinitionStages.WithExportPolicy, DefinitionStages.WithIsRestoring, DefinitionStages.WithKerberosEnabled, DefinitionStages.WithMountTargets, DefinitionStages.WithProtocolTypes, DefinitionStages.WithSecurityStyle, DefinitionStages.WithServiceLevel, DefinitionStages.WithSnapshotDirectoryVisible, DefinitionStages.WithSnapshotId, DefinitionStages.WithTags, DefinitionStages.WithThroughputMibps, DefinitionStages.WithVolumeType {
+ }
+ }
+ /**
+ * The template for a Volume update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithDataProtection, UpdateStages.WithExportPolicy, UpdateStages.WithServiceLevel, UpdateStages.WithTags, UpdateStages.WithThroughputMibps, UpdateStages.WithUsageThreshold {
+ }
+
+ /**
+ * Grouping of Volume update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the volume update allowing to specify DataProtection.
+ */
+ interface WithDataProtection {
+ /**
+ * Specifies dataProtection.
+ * @param dataProtection DataProtection type volumes include an object containing details of the replication
+ * @return the next update stage
+ */
+ Update withDataProtection(VolumePatchPropertiesDataProtection dataProtection);
+ }
+
+ /**
+ * The stage of the volume update allowing to specify ExportPolicy.
+ */
+ interface WithExportPolicy {
+ /**
+ * Specifies exportPolicy.
+ * @param exportPolicy Set of export policy rules
+ * @return the next update stage
+ */
+ Update withExportPolicy(VolumePatchPropertiesExportPolicy exportPolicy);
+ }
+
+ /**
+ * The stage of the volume update allowing to specify ServiceLevel.
+ */
+ interface WithServiceLevel {
+ /**
+ * Specifies serviceLevel.
+ * @param serviceLevel The service level of the file system. Possible values include: 'Standard', 'Premium', 'Ultra'
+ * @return the next update stage
+ */
+ Update withServiceLevel(ServiceLevel serviceLevel);
+ }
+
+ /**
+ * The stage of the volume update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags the tags parameter value
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ /**
+ * The stage of the volume update allowing to specify ThroughputMibps.
+ */
+ interface WithThroughputMibps {
+ /**
+ * Specifies throughputMibps.
+ * @param throughputMibps the throughputMibps parameter value
+ * @return the next update stage
+ */
+ Update withThroughputMibps(Double throughputMibps);
+ }
+
+ /**
+ * The stage of the volume update allowing to specify UsageThreshold.
+ */
+ interface WithUsageThreshold {
+ /**
+ * Specifies usageThreshold.
+ * @param usageThreshold Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes
+ * @return the next update stage
+ */
+ Update withUsageThreshold(Long usageThreshold);
+ }
+
+ }
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumeBackupProperties.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumeBackupProperties.java
new file mode 100644
index 0000000000000..05283141b8ea2
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumeBackupProperties.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Volume Backup Properties.
+ */
+public class VolumeBackupProperties {
+ /**
+ * Backup Policy Resource ID.
+ */
+ @JsonProperty(value = "backupPolicyId")
+ private String backupPolicyId;
+
+ /**
+ * Policy Enforced.
+ */
+ @JsonProperty(value = "policyEnforced")
+ private Boolean policyEnforced;
+
+ /**
+ * Vault Resource ID.
+ */
+ @JsonProperty(value = "vaultId")
+ private String vaultId;
+
+ /**
+ * Backup Enabled.
+ */
+ @JsonProperty(value = "backupEnabled")
+ private Boolean backupEnabled;
+
+ /**
+ * Get backup Policy Resource ID.
+ *
+ * @return the backupPolicyId value
+ */
+ public String backupPolicyId() {
+ return this.backupPolicyId;
+ }
+
+ /**
+ * Set backup Policy Resource ID.
+ *
+ * @param backupPolicyId the backupPolicyId value to set
+ * @return the VolumeBackupProperties object itself.
+ */
+ public VolumeBackupProperties withBackupPolicyId(String backupPolicyId) {
+ this.backupPolicyId = backupPolicyId;
+ return this;
+ }
+
+ /**
+ * Get policy Enforced.
+ *
+ * @return the policyEnforced value
+ */
+ public Boolean policyEnforced() {
+ return this.policyEnforced;
+ }
+
+ /**
+ * Set policy Enforced.
+ *
+ * @param policyEnforced the policyEnforced value to set
+ * @return the VolumeBackupProperties object itself.
+ */
+ public VolumeBackupProperties withPolicyEnforced(Boolean policyEnforced) {
+ this.policyEnforced = policyEnforced;
+ return this;
+ }
+
+ /**
+ * Get vault Resource ID.
+ *
+ * @return the vaultId value
+ */
+ public String vaultId() {
+ return this.vaultId;
+ }
+
+ /**
+ * Set vault Resource ID.
+ *
+ * @param vaultId the vaultId value to set
+ * @return the VolumeBackupProperties object itself.
+ */
+ public VolumeBackupProperties withVaultId(String vaultId) {
+ this.vaultId = vaultId;
+ return this;
+ }
+
+ /**
+ * Get backup Enabled.
+ *
+ * @return the backupEnabled value
+ */
+ public Boolean backupEnabled() {
+ return this.backupEnabled;
+ }
+
+ /**
+ * Set backup Enabled.
+ *
+ * @param backupEnabled the backupEnabled value to set
+ * @return the VolumeBackupProperties object itself.
+ */
+ public VolumeBackupProperties withBackupEnabled(Boolean backupEnabled) {
+ this.backupEnabled = backupEnabled;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumeBackups.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumeBackups.java
new file mode 100644
index 0000000000000..19cbd843504df
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumeBackups.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Volume details using the backup policy.
+ */
+public class VolumeBackups {
+ /**
+ * Volume name.
+ */
+ @JsonProperty(value = "volumeName")
+ private String volumeName;
+
+ /**
+ * Total count of backups for volume.
+ */
+ @JsonProperty(value = "backupsCount")
+ private Integer backupsCount;
+
+ /**
+ * Policy enabled.
+ */
+ @JsonProperty(value = "policyEnabled")
+ private Boolean policyEnabled;
+
+ /**
+ * Get volume name.
+ *
+ * @return the volumeName value
+ */
+ public String volumeName() {
+ return this.volumeName;
+ }
+
+ /**
+ * Set volume name.
+ *
+ * @param volumeName the volumeName value to set
+ * @return the VolumeBackups object itself.
+ */
+ public VolumeBackups withVolumeName(String volumeName) {
+ this.volumeName = volumeName;
+ return this;
+ }
+
+ /**
+ * Get total count of backups for volume.
+ *
+ * @return the backupsCount value
+ */
+ public Integer backupsCount() {
+ return this.backupsCount;
+ }
+
+ /**
+ * Set total count of backups for volume.
+ *
+ * @param backupsCount the backupsCount value to set
+ * @return the VolumeBackups object itself.
+ */
+ public VolumeBackups withBackupsCount(Integer backupsCount) {
+ this.backupsCount = backupsCount;
+ return this;
+ }
+
+ /**
+ * Get policy enabled.
+ *
+ * @return the policyEnabled value
+ */
+ public Boolean policyEnabled() {
+ return this.policyEnabled;
+ }
+
+ /**
+ * Set policy enabled.
+ *
+ * @param policyEnabled the policyEnabled value to set
+ * @return the VolumeBackups object itself.
+ */
+ public VolumeBackups withPolicyEnabled(Boolean policyEnabled) {
+ this.policyEnabled = policyEnabled;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePatch.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePatch.java
new file mode 100644
index 0000000000000..50d24c3fae7c2
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePatch.java
@@ -0,0 +1,159 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * Volume patch resource.
+ */
+@JsonFlatten
+public class VolumePatch extends Resource {
+ /**
+ * serviceLevel.
+ * The service level of the file system. Possible values include:
+ * 'Standard', 'Premium', 'Ultra'.
+ */
+ @JsonProperty(value = "properties.serviceLevel")
+ private ServiceLevel serviceLevel;
+
+ /**
+ * usageThreshold.
+ * Maximum storage quota allowed for a file system in bytes. This is a soft
+ * quota used for alerting only. Minimum size is 100 GiB. Upper limit is
+ * 100TiB. Specified in bytes.
+ */
+ @JsonProperty(value = "properties.usageThreshold")
+ private Long usageThreshold;
+
+ /**
+ * exportPolicy.
+ * Set of export policy rules.
+ */
+ @JsonProperty(value = "properties.exportPolicy")
+ private VolumePatchPropertiesExportPolicy exportPolicy;
+
+ /**
+ * Maximum throughput in Mibps that can be achieved by this volume, value
+ * between 1 and 4500.
+ */
+ @JsonProperty(value = "properties.throughputMibps")
+ private Double throughputMibps;
+
+ /**
+ * DataProtection.
+ * DataProtection type volumes include an object containing details of the
+ * replication.
+ */
+ @JsonProperty(value = "properties.dataProtection")
+ private VolumePatchPropertiesDataProtection dataProtection;
+
+ /**
+ * Get the service level of the file system. Possible values include: 'Standard', 'Premium', 'Ultra'.
+ *
+ * @return the serviceLevel value
+ */
+ public ServiceLevel serviceLevel() {
+ return this.serviceLevel;
+ }
+
+ /**
+ * Set the service level of the file system. Possible values include: 'Standard', 'Premium', 'Ultra'.
+ *
+ * @param serviceLevel the serviceLevel value to set
+ * @return the VolumePatch object itself.
+ */
+ public VolumePatch withServiceLevel(ServiceLevel serviceLevel) {
+ this.serviceLevel = serviceLevel;
+ return this;
+ }
+
+ /**
+ * Get maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes.
+ *
+ * @return the usageThreshold value
+ */
+ public Long usageThreshold() {
+ return this.usageThreshold;
+ }
+
+ /**
+ * Set maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes.
+ *
+ * @param usageThreshold the usageThreshold value to set
+ * @return the VolumePatch object itself.
+ */
+ public VolumePatch withUsageThreshold(Long usageThreshold) {
+ this.usageThreshold = usageThreshold;
+ return this;
+ }
+
+ /**
+ * Get set of export policy rules.
+ *
+ * @return the exportPolicy value
+ */
+ public VolumePatchPropertiesExportPolicy exportPolicy() {
+ return this.exportPolicy;
+ }
+
+ /**
+ * Set set of export policy rules.
+ *
+ * @param exportPolicy the exportPolicy value to set
+ * @return the VolumePatch object itself.
+ */
+ public VolumePatch withExportPolicy(VolumePatchPropertiesExportPolicy exportPolicy) {
+ this.exportPolicy = exportPolicy;
+ return this;
+ }
+
+ /**
+ * Get the throughputMibps value.
+ *
+ * @return the throughputMibps value
+ */
+ public Double throughputMibps() {
+ return this.throughputMibps;
+ }
+
+ /**
+ * Set the throughputMibps value.
+ *
+ * @param throughputMibps the throughputMibps value to set
+ * @return the VolumePatch object itself.
+ */
+ public VolumePatch withThroughputMibps(Double throughputMibps) {
+ this.throughputMibps = throughputMibps;
+ return this;
+ }
+
+ /**
+ * Get dataProtection type volumes include an object containing details of the replication.
+ *
+ * @return the dataProtection value
+ */
+ public VolumePatchPropertiesDataProtection dataProtection() {
+ return this.dataProtection;
+ }
+
+ /**
+ * Set dataProtection type volumes include an object containing details of the replication.
+ *
+ * @param dataProtection the dataProtection value to set
+ * @return the VolumePatch object itself.
+ */
+ public VolumePatch withDataProtection(VolumePatchPropertiesDataProtection dataProtection) {
+ this.dataProtection = dataProtection;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePatchPropertiesDataProtection.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePatchPropertiesDataProtection.java
new file mode 100644
index 0000000000000..db89bfccf5466
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePatchPropertiesDataProtection.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * DataProtection.
+ * DataProtection type volumes include an object containing details of the
+ * replication.
+ */
+public class VolumePatchPropertiesDataProtection {
+ /**
+ * Backup.
+ * Backup Properties.
+ */
+ @JsonProperty(value = "backup")
+ private VolumeBackupProperties backup;
+
+ /**
+ * Get backup Properties.
+ *
+ * @return the backup value
+ */
+ public VolumeBackupProperties backup() {
+ return this.backup;
+ }
+
+ /**
+ * Set backup Properties.
+ *
+ * @param backup the backup value to set
+ * @return the VolumePatchPropertiesDataProtection object itself.
+ */
+ public VolumePatchPropertiesDataProtection withBackup(VolumeBackupProperties backup) {
+ this.backup = backup;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePatchPropertiesExportPolicy.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePatchPropertiesExportPolicy.java
new file mode 100644
index 0000000000000..df9f49cf7f70c
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePatchPropertiesExportPolicy.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * exportPolicy.
+ * Set of export policy rules.
+ */
+public class VolumePatchPropertiesExportPolicy {
+ /**
+ * Export policy rule.
+ * Export policy rule.
+ */
+ @JsonProperty(value = "rules")
+ private List rules;
+
+ /**
+ * Get export policy rule.
+ *
+ * @return the rules value
+ */
+ public List rules() {
+ return this.rules;
+ }
+
+ /**
+ * Set export policy rule.
+ *
+ * @param rules the rules value to set
+ * @return the VolumePatchPropertiesExportPolicy object itself.
+ */
+ public VolumePatchPropertiesExportPolicy withRules(List rules) {
+ this.rules = rules;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePropertiesDataProtection.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePropertiesDataProtection.java
new file mode 100644
index 0000000000000..28b9fb069e103
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePropertiesDataProtection.java
@@ -0,0 +1,100 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * DataProtection.
+ * DataProtection type volumes include an object containing details of the
+ * replication.
+ */
+public class VolumePropertiesDataProtection {
+ /**
+ * Backup.
+ * Backup Properties.
+ */
+ @JsonProperty(value = "backup")
+ private VolumeBackupProperties backup;
+
+ /**
+ * Replication.
+ * Replication properties.
+ */
+ @JsonProperty(value = "replication")
+ private ReplicationObject replication;
+
+ /**
+ * Snapshot.
+ * Snapshot properties.
+ */
+ @JsonProperty(value = "snapshot")
+ private VolumeSnapshotProperties snapshot;
+
+ /**
+ * Get backup Properties.
+ *
+ * @return the backup value
+ */
+ public VolumeBackupProperties backup() {
+ return this.backup;
+ }
+
+ /**
+ * Set backup Properties.
+ *
+ * @param backup the backup value to set
+ * @return the VolumePropertiesDataProtection object itself.
+ */
+ public VolumePropertiesDataProtection withBackup(VolumeBackupProperties backup) {
+ this.backup = backup;
+ return this;
+ }
+
+ /**
+ * Get replication properties.
+ *
+ * @return the replication value
+ */
+ public ReplicationObject replication() {
+ return this.replication;
+ }
+
+ /**
+ * Set replication properties.
+ *
+ * @param replication the replication value to set
+ * @return the VolumePropertiesDataProtection object itself.
+ */
+ public VolumePropertiesDataProtection withReplication(ReplicationObject replication) {
+ this.replication = replication;
+ return this;
+ }
+
+ /**
+ * Get snapshot properties.
+ *
+ * @return the snapshot value
+ */
+ public VolumeSnapshotProperties snapshot() {
+ return this.snapshot;
+ }
+
+ /**
+ * Set snapshot properties.
+ *
+ * @param snapshot the snapshot value to set
+ * @return the VolumePropertiesDataProtection object itself.
+ */
+ public VolumePropertiesDataProtection withSnapshot(VolumeSnapshotProperties snapshot) {
+ this.snapshot = snapshot;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePropertiesExportPolicy.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePropertiesExportPolicy.java
new file mode 100644
index 0000000000000..4ae0050f306ac
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumePropertiesExportPolicy.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * exportPolicy.
+ * Set of export policy rules.
+ */
+public class VolumePropertiesExportPolicy {
+ /**
+ * Export policy rule.
+ * Export policy rule.
+ */
+ @JsonProperty(value = "rules")
+ private List rules;
+
+ /**
+ * Get export policy rule.
+ *
+ * @return the rules value
+ */
+ public List rules() {
+ return this.rules;
+ }
+
+ /**
+ * Set export policy rule.
+ *
+ * @param rules the rules value to set
+ * @return the VolumePropertiesExportPolicy object itself.
+ */
+ public VolumePropertiesExportPolicy withRules(List rules) {
+ this.rules = rules;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumeRevert.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumeRevert.java
new file mode 100644
index 0000000000000..60c16cd09c880
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumeRevert.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * revert a volume to the snapshot.
+ */
+public class VolumeRevert {
+ /**
+ * Resource id of the snapshot.
+ */
+ @JsonProperty(value = "snapshotId")
+ private String snapshotId;
+
+ /**
+ * Get resource id of the snapshot.
+ *
+ * @return the snapshotId value
+ */
+ public String snapshotId() {
+ return this.snapshotId;
+ }
+
+ /**
+ * Set resource id of the snapshot.
+ *
+ * @param snapshotId the snapshotId value to set
+ * @return the VolumeRevert object itself.
+ */
+ public VolumeRevert withSnapshotId(String snapshotId) {
+ this.snapshotId = snapshotId;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumeSnapshotProperties.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumeSnapshotProperties.java
new file mode 100644
index 0000000000000..12f2b266b5c7d
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/VolumeSnapshotProperties.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Volume Snapshot Properties.
+ */
+public class VolumeSnapshotProperties {
+ /**
+ * Snapshot Policy ResourceId.
+ */
+ @JsonProperty(value = "snapshotPolicyId")
+ private String snapshotPolicyId;
+
+ /**
+ * Get snapshot Policy ResourceId.
+ *
+ * @return the snapshotPolicyId value
+ */
+ public String snapshotPolicyId() {
+ return this.snapshotPolicyId;
+ }
+
+ /**
+ * Set snapshot Policy ResourceId.
+ *
+ * @param snapshotPolicyId the snapshotPolicyId value to set
+ * @return the VolumeSnapshotProperties object itself.
+ */
+ public VolumeSnapshotProperties withSnapshotPolicyId(String snapshotPolicyId) {
+ this.snapshotPolicyId = snapshotPolicyId;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Volumes.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Volumes.java
new file mode 100644
index 0000000000000..fe7d1b3b2bcea
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/Volumes.java
@@ -0,0 +1,164 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.netapp.v2020_07_01.implementation.VolumesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Volumes.
+ */
+public interface Volumes extends SupportsCreating, HasInner {
+ /**
+ * Revert a volume to one of its snapshots.
+ * 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
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable revertAsync(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Break volume replication.
+ * 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
+ * @return the observable for the request
+ */
+ Completable breakReplicationAsync(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Resync volume replication.
+ * 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
+ * @return the observable for the request
+ */
+ Completable resyncReplicationAsync(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Delete volume replication.
+ * 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
+ * @return the observable for the request
+ */
+ Completable deleteReplicationAsync(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Authorize source volume replication.
+ * 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
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable authorizeReplicationAsync(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * ReInitialize volume replication.
+ * 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
+ * @return the observable for the request
+ */
+ Completable reInitializeReplicationAsync(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Change pool for volume.
+ * 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 newPoolResourceId Resource id of the pool to move volume to
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable poolChangeAsync(String resourceGroupName, String accountName, String poolName, String volumeName, String newPoolResourceId);
+
+ /**
+ * Describe a volume.
+ * 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
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Describe all volumes.
+ * 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
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String accountName, String poolName);
+
+ /**
+ * Delete a volume.
+ * 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
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+ /**
+ * Get volume replication status.
+ * 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
+ * @return the observable for the request
+ */
+ Observable replicationStatusMethodAsync(String resourceGroupName, String accountName, String poolName, String volumeName);
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/WeeklySchedule.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/WeeklySchedule.java
new file mode 100644
index 0000000000000..bf424577a5290
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/WeeklySchedule.java
@@ -0,0 +1,149 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Weekly Schedule properties, make a snapshot every week at a specific day or
+ * days.
+ */
+public class WeeklySchedule {
+ /**
+ * Weekly snapshot count to keep.
+ */
+ @JsonProperty(value = "snapshotsToKeep")
+ private Integer snapshotsToKeep;
+
+ /**
+ * Indicates which weekdays snapshot should be taken, accepts a comma
+ * separated list of week day names in english.
+ */
+ @JsonProperty(value = "day")
+ private String day;
+
+ /**
+ * Indicates which hour in UTC timezone a snapshot should be taken.
+ */
+ @JsonProperty(value = "hour")
+ private Integer hour;
+
+ /**
+ * Indicates which minute snapshot should be taken.
+ */
+ @JsonProperty(value = "minute")
+ private Integer minute;
+
+ /**
+ * Resource size in bytes, current storage usage for the volume in bytes.
+ */
+ @JsonProperty(value = "usedBytes")
+ private Long usedBytes;
+
+ /**
+ * Get weekly snapshot count to keep.
+ *
+ * @return the snapshotsToKeep value
+ */
+ public Integer snapshotsToKeep() {
+ return this.snapshotsToKeep;
+ }
+
+ /**
+ * Set weekly snapshot count to keep.
+ *
+ * @param snapshotsToKeep the snapshotsToKeep value to set
+ * @return the WeeklySchedule object itself.
+ */
+ public WeeklySchedule withSnapshotsToKeep(Integer snapshotsToKeep) {
+ this.snapshotsToKeep = snapshotsToKeep;
+ return this;
+ }
+
+ /**
+ * Get indicates which weekdays snapshot should be taken, accepts a comma separated list of week day names in english.
+ *
+ * @return the day value
+ */
+ public String day() {
+ return this.day;
+ }
+
+ /**
+ * Set indicates which weekdays snapshot should be taken, accepts a comma separated list of week day names in english.
+ *
+ * @param day the day value to set
+ * @return the WeeklySchedule object itself.
+ */
+ public WeeklySchedule withDay(String day) {
+ this.day = day;
+ return this;
+ }
+
+ /**
+ * Get indicates which hour in UTC timezone a snapshot should be taken.
+ *
+ * @return the hour value
+ */
+ public Integer hour() {
+ return this.hour;
+ }
+
+ /**
+ * Set indicates which hour in UTC timezone a snapshot should be taken.
+ *
+ * @param hour the hour value to set
+ * @return the WeeklySchedule object itself.
+ */
+ public WeeklySchedule withHour(Integer hour) {
+ this.hour = hour;
+ return this;
+ }
+
+ /**
+ * Get indicates which minute snapshot should be taken.
+ *
+ * @return the minute value
+ */
+ public Integer minute() {
+ return this.minute;
+ }
+
+ /**
+ * Set indicates which minute snapshot should be taken.
+ *
+ * @param minute the minute value to set
+ * @return the WeeklySchedule object itself.
+ */
+ public WeeklySchedule withMinute(Integer minute) {
+ this.minute = minute;
+ return this;
+ }
+
+ /**
+ * Get resource size in bytes, current storage usage for the volume in bytes.
+ *
+ * @return the usedBytes value
+ */
+ public Long usedBytes() {
+ return this.usedBytes;
+ }
+
+ /**
+ * Set resource size in bytes, current storage usage for the volume in bytes.
+ *
+ * @param usedBytes the usedBytes value to set
+ * @return the WeeklySchedule object itself.
+ */
+ public WeeklySchedule withUsedBytes(Long usedBytes) {
+ this.usedBytes = usedBytes;
+ return this;
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/implementation/AccountBackupsImpl.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/implementation/AccountBackupsImpl.java
new file mode 100644
index 0000000000000..679a89decb955
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/implementation/AccountBackupsImpl.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ *
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.netapp.v2020_07_01.AccountBackups;
+import rx.Completable;
+import rx.Observable;
+import rx.functions.Func1;
+import com.microsoft.azure.management.netapp.v2020_07_01.BackupsList;
+import com.microsoft.azure.management.netapp.v2020_07_01.NetAppAccountBackup;
+
+class AccountBackupsImpl extends WrapperImpl implements AccountBackups {
+ private final NetAppManager manager;
+
+ AccountBackupsImpl(NetAppManager manager) {
+ super(manager.inner().accountBackups());
+ this.manager = manager;
+ }
+
+ public NetAppManager manager() {
+ return this.manager;
+ }
+
+ private NetAppAccountBackupImpl wrapModel(BackupInner inner) {
+ return new NetAppAccountBackupImpl(inner, manager());
+ }
+
+ @Override
+ public Observable listAsync(String resourceGroupName, String accountName) {
+ AccountBackupsInner client = this.inner();
+ return client.listAsync(resourceGroupName, accountName)
+ .map(new Func1() {
+ @Override
+ public BackupsList call(BackupsListInner inner) {
+ return new BackupsListImpl(inner, manager());
+ }
+ });
+ }
+
+ @Override
+ public Observable getAsync(String resourceGroupName, String accountName, String backupName) {
+ AccountBackupsInner client = this.inner();
+ return client.getAsync(resourceGroupName, accountName, backupName)
+ .flatMap(new Func1>() {
+ @Override
+ public Observable call(BackupInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((NetAppAccountBackup)wrapModel(inner));
+ }
+ }
+ });
+ }
+
+ @Override
+ public Completable deleteAsync(String resourceGroupName, String accountName, String backupName) {
+ AccountBackupsInner client = this.inner();
+ return client.deleteAsync(resourceGroupName, accountName, backupName).toCompletable();
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/implementation/AccountBackupsInner.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/implementation/AccountBackupsInner.java
new file mode 100644
index 0000000000000..eb7459d86ffb7
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/implementation/AccountBackupsInner.java
@@ -0,0 +1,437 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.CloudException;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import okhttp3.ResponseBody;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.HTTP;
+import retrofit2.http.Path;
+import retrofit2.http.Query;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in AccountBackups.
+ */
+public class AccountBackupsInner {
+ /** The Retrofit service to perform REST calls. */
+ private AccountBackupsService service;
+ /** The service client containing this operation class. */
+ private AzureNetAppFilesManagementClientImpl client;
+
+ /**
+ * Initializes an instance of AccountBackupsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public AccountBackupsInner(Retrofit retrofit, AzureNetAppFilesManagementClientImpl client) {
+ this.service = retrofit.create(AccountBackupsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AccountBackups to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface AccountBackupsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.netapp.v2020_07_01.AccountBackups list" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/accountBackups")
+ Observable> list(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("accountName") String accountName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.netapp.v2020_07_01.AccountBackups get" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/accountBackups/{backupName}")
+ Observable> get(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("accountName") String accountName, @Path("backupName") String backupName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.netapp.v2020_07_01.AccountBackups delete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/accountBackups/{backupName}", method = "DELETE", hasBody = true)
+ Observable> delete(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("accountName") String accountName, @Path("backupName") String backupName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.netapp.v2020_07_01.AccountBackups beginDelete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/accountBackups/{backupName}", method = "DELETE", hasBody = true)
+ Observable> beginDelete(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("accountName") String accountName, @Path("backupName") String backupName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * List Backups for a Netapp Account.
+ * 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 CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the BackupsListInner object if successful.
+ */
+ public BackupsListInner list(String resourceGroupName, String accountName) {
+ return listWithServiceResponseAsync(resourceGroupName, accountName).toBlocking().single().body();
+ }
+
+ /**
+ * List Backups for a Netapp Account.
+ * List all Backups for a Netapp Account.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param accountName The name of the NetApp account
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture listAsync(String resourceGroupName, String accountName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(listWithServiceResponseAsync(resourceGroupName, accountName), serviceCallback);
+ }
+
+ /**
+ * List Backups for a Netapp Account.
+ * 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
+ * @return the observable to the BackupsListInner object
+ */
+ public Observable listAsync(String resourceGroupName, String accountName) {
+ return listWithServiceResponseAsync(resourceGroupName, accountName).map(new Func1, BackupsListInner>() {
+ @Override
+ public BackupsListInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * List Backups for a Netapp Account.
+ * 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
+ * @return the observable to the BackupsListInner object
+ */
+ public Observable> listWithServiceResponseAsync(String resourceGroupName, String accountName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (accountName == null) {
+ throw new IllegalArgumentException("Parameter accountName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.list(this.client.subscriptionId(), resourceGroupName, accountName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = listDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse listDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Get Backup for a Netapp Account.
+ * 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 CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the BackupInner object if successful.
+ */
+ public BackupInner get(String resourceGroupName, String accountName, String backupName) {
+ return getWithServiceResponseAsync(resourceGroupName, accountName, backupName).toBlocking().single().body();
+ }
+
+ /**
+ * Get Backup for a Netapp Account.
+ * 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 serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture getAsync(String resourceGroupName, String accountName, String backupName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getWithServiceResponseAsync(resourceGroupName, accountName, backupName), serviceCallback);
+ }
+
+ /**
+ * Get Backup for a Netapp Account.
+ * 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
+ * @return the observable to the BackupInner object
+ */
+ public Observable getAsync(String resourceGroupName, String accountName, String backupName) {
+ return getWithServiceResponseAsync(resourceGroupName, accountName, backupName).map(new Func1, BackupInner>() {
+ @Override
+ public BackupInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Get Backup for a Netapp Account.
+ * 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
+ * @return the observable to the BackupInner object
+ */
+ public Observable> getWithServiceResponseAsync(String resourceGroupName, String accountName, String backupName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (accountName == null) {
+ throw new IllegalArgumentException("Parameter accountName is required and cannot be null.");
+ }
+ if (backupName == null) {
+ throw new IllegalArgumentException("Parameter backupName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.get(this.client.subscriptionId(), resourceGroupName, accountName, backupName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = getDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse getDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Delete Backup for a Netapp Account.
+ * 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 CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ public void delete(String resourceGroupName, String accountName, String backupName) {
+ deleteWithServiceResponseAsync(resourceGroupName, accountName, backupName).toBlocking().last().body();
+ }
+
+ /**
+ * Delete Backup for a Netapp Account.
+ * 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 serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture deleteAsync(String resourceGroupName, String accountName, String backupName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(deleteWithServiceResponseAsync(resourceGroupName, accountName, backupName), serviceCallback);
+ }
+
+ /**
+ * Delete Backup for a Netapp Account.
+ * 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
+ * @return the observable for the request
+ */
+ public Observable deleteAsync(String resourceGroupName, String accountName, String backupName) {
+ return deleteWithServiceResponseAsync(resourceGroupName, accountName, backupName).map(new Func1, Void>() {
+ @Override
+ public Void call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Delete Backup for a Netapp Account.
+ * 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
+ * @return the observable for the request
+ */
+ public Observable> deleteWithServiceResponseAsync(String resourceGroupName, String accountName, String backupName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (accountName == null) {
+ throw new IllegalArgumentException("Parameter accountName is required and cannot be null.");
+ }
+ if (backupName == null) {
+ throw new IllegalArgumentException("Parameter backupName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ Observable> observable = service.delete(this.client.subscriptionId(), resourceGroupName, accountName, backupName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
+ return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken() { }.getType());
+ }
+
+ /**
+ * Delete Backup for a Netapp Account.
+ * 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 CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ public void beginDelete(String resourceGroupName, String accountName, String backupName) {
+ beginDeleteWithServiceResponseAsync(resourceGroupName, accountName, backupName).toBlocking().single().body();
+ }
+
+ /**
+ * Delete Backup for a Netapp Account.
+ * 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 serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture beginDeleteAsync(String resourceGroupName, String accountName, String backupName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(beginDeleteWithServiceResponseAsync(resourceGroupName, accountName, backupName), serviceCallback);
+ }
+
+ /**
+ * Delete Backup for a Netapp Account.
+ * 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
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ public Observable beginDeleteAsync(String resourceGroupName, String accountName, String backupName) {
+ return beginDeleteWithServiceResponseAsync(resourceGroupName, accountName, backupName).map(new Func1, Void>() {
+ @Override
+ public Void call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Delete Backup for a Netapp Account.
+ * 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
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ public Observable> beginDeleteWithServiceResponseAsync(String resourceGroupName, String accountName, String backupName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (accountName == null) {
+ throw new IllegalArgumentException("Parameter accountName is required and cannot be null.");
+ }
+ if (backupName == null) {
+ throw new IllegalArgumentException("Parameter backupName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.beginDelete(this.client.subscriptionId(), resourceGroupName, accountName, backupName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = beginDeleteDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse beginDeleteDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .register(202, new TypeToken() { }.getType())
+ .register(204, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+}
diff --git a/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/implementation/AccountsImpl.java b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/implementation/AccountsImpl.java
new file mode 100644
index 0000000000000..dc2204d19cac1
--- /dev/null
+++ b/sdk/netapp/mgmt-v2020_07_01/src/main/java/com/microsoft/azure/management/netapp/v2020_07_01/implementation/AccountsImpl.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * def
+ */
+
+package com.microsoft.azure.management.netapp.v2020_07_01.implementation;
+
+import com.microsoft.azure.arm.resources.collection.implementation.GroupableResourcesCoreImpl;
+import com.microsoft.azure.management.netapp.v2020_07_01.Accounts;
+import com.microsoft.azure.management.netapp.v2020_07_01.NetAppAccount;
+import rx.Observable;
+import rx.Completable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import com.microsoft.azure.arm.resources.ResourceUtilsCore;
+import com.microsoft.azure.arm.utils.RXMapper;
+import rx.functions.Func1;
+import com.microsoft.azure.PagedList;
+import com.microsoft.azure.Page;
+
+class AccountsImpl extends GroupableResourcesCoreImpl implements Accounts {
+ protected AccountsImpl(NetAppManager manager) {
+ super(manager.inner().accounts(), manager);
+ }
+
+ @Override
+ protected Observable getInnerAsync(String resourceGroupName, String name) {
+ AccountsInner client = this.inner();
+ return client.getByResourceGroupAsync(resourceGroupName, name);
+ }
+
+ @Override
+ protected Completable deleteInnerAsync(String resourceGroupName, String name) {
+ AccountsInner client = this.inner();
+ return client.deleteAsync(resourceGroupName, name).toCompletable();
+ }
+
+ @Override
+ public Observable deleteByIdsAsync(Collection ids) {
+ if (ids == null || ids.isEmpty()) {
+ return Observable.empty();
+ }
+ Collection